贪婪预测 与波束搜索 优化器

一、贪婪预测与波束搜索预测

作者认为传统的seq2seq模型存在以下问题,给定的输入句子只能顺序预测输出语句,或者贪婪地预测,或者用波束搜索预测。他认为这样的分解主要是受到观察的启发,即人类总是从一个句子的开头说到结尾。
贪婪策略指在对问题进行求解时,在每一步选择中都采取最好或者最优的选择,从而希望能够导致结果是最优的算法。贪婪算法的解,不一定是最优解,实质上得到的可能是相对近似的最优解。贪婪算法只考虑局部没有考虑到全局。贪心预测只能向前推进不能向后推进,这样就算发现后面的句子说不通也不能再回头。
为了解决这个问题,我们可以用波束搜索(Beam search),波束搜索是在每一步都保留k 个分数最高的输出,用这k个输出作为下一步的输入,又再发散出k ∗ k 种可能的输出,保留其中分数最高的k 个,再进行下一步的预测 。 波束搜索更详细的解答

二、优化器

1.传统优化梯度不足

BGD、SGD、MBGD分别为批量梯度下降算法、随机梯度下降算法、小批量梯度下降算法。BGD在训练的时候选用所有的训练集进行计算,SGD在训练的时候只选择一个数据进行训练,而MBGD在训练的时候只选择小部分数据进行训练。这三个优化算法在训练的时候虽然所采用的的数据量不同,但是他们在进行参数优化的时候是相同的。
在训练的时候一般都是使用小批量梯度下降算法,即选择部分数据进行训练,在此把这三种算法统称为传统梯度更新算法,因为他们在更新参数的时候采用相同的方式,而更优的优化算法从梯度方向和学习率方面对参数更新方式进行优化。

原文链接:https://blog.csdn.net/tcn760/article/details/123965374

2.AdaGrad算法

AdaGrad算法是通过参数来调整合适的学习率,是能独立自动调整模型参数的学习率,对稀疏参数进行大幅更新和对频繁参数进行小幅更新,因此,AdaGrad方法非常适合处理稀疏数据。AdaGrad算法在某些深度学习模型上效果不错。但还是有些不足,可能是因其累积梯度平方导致学习率过早或过量的减少所致。

3.RMSProp算法

RMSProp算法通过修改AdaGrad得来,其目的是在非凸背景下效果更好。针对梯度平方和累计越来越大的问题,RMSProp指数加权的移动平均代替梯度平方和。RMSProp为了使用移动平均,还引入了一个新的超参数ρ,用来控制移动平均的长度范围。以下是RMSProp算法的更新步骤:
贪婪预测 与波束搜索 优化器_第1张图片
RMSProp算法在实践中已被证明是一种有效且实用的深度神经网络优化算法,因而在深度学习中得到了广泛应用。

你可能感兴趣的:(算法,人工智能)