吴恩达深度学习-序列模型 3.5定向搜索的误差分析
2020-02-24 本文已影响0人
prophet__
由于束搜索只是一种近似最大值搜索的算法,它并不能保证我们输出的值是最大值,那么当它搜索到的不是最优值的时候,我们如何判断是B的宽度出了问题还是RNN网络出了问题?本节课会学习到相关的内容。
就像我们在训练数据集的时候,我们往往以为增加数据集的数量就能提高模型的训练效果,那么增大束宽度B也能提高预测准确率。
但是往往事实可能不是这样。
首先我们可以举一个例子,比如说这里有一句话,下面分别是它的两个翻译版本,y*代表好的版本,y^代表不好的版本。
假设我们现在已经有个训练好的RNN网络,我们可以把这两个预测结果都输入到网络当中,观察哪一个大哪一个小。
我们可以通过错误分析来发现到底是RNN网络出了问题还是束搜索出了问题。简单来说,假设本来应该选好的那个翻译的时候没有选,就是RNN网络出了问题,但是如果选了,那么就是束搜索出了问题。
其实这个比较应该用于长度归一化之后计算出来的平均值,但是为了方便,这里就先用单个单词进行代替。
然后我们把刚刚的这个过程运用在整个数据集当中,我们就可以把RNN出错的概率和集束宽度B出错的概率计算出来。如果我们发现有很多错误是因为集束宽度不够造成的,那么我们就值得通过增大集束宽度来改善模型,反之,如果有很多错误是因为RNN造成的,那么就应该通过改善模型或者增加数据集训练来优化。
其实本节课学习的是一种误差分析应用到深度学习里的方法,不是很高深,但是很实用。