GD+Optimize

优化问题的框架,给定一个与参数x有关的目标函数J(x),求使得J(x)最小的参数x。通过不断向梯度负方向移动参数来求解。

BGD指批量梯度下降,要计算整个Batch中的梯度。优点:容易求得最优解。缺点:速度慢,数据量大时不能行。

SGD指随机梯度下降,只计算某个样本的梯度,用一个样本的梯度代替整体的梯度。优点:速度快。缺点:容易跳出最优,收敛不稳定。

MBGD指选取少量梯度下降,介于BGD和SGD之间。优点:速度快,收敛稳定。

存在问题:学习率的设定、学习率的调整策略、不同参数更新的学习率、局部最优

优化方法:

Momentum:利用惯性,当前梯度等于本身加上上次梯度,如果方向相同则更新步长增加,方向不同则更新步长减少。

NAG:梯度并非根据当前位置计算,而是根据移动后位置计算。对前方梯度做预测,如果前方梯度与当前梯度目标一致,则大步迈过去,若不一致,则小心更新。

Adagrade:采用以往所有梯度的平方和来调整学习率,为出现频率不高的参数提供大学习率,为出现频率很高的参数提供小学习率。但使得最后会应为学习率过低而学不到东西。

Adadelta:采用窗口范围内的梯度平方和来调整学习率。又称RMSprop。

Adam:为每个参数提供自适应学习率,在Adadelta基础上,不仅对梯度平方进行估计,还对梯度进行估计。

AdaMax:对Adam中的梯度二阶矩估计扩展到无穷阶矩。

补充:尽管各种优化算法在训练时表现不错,但是SGD训练出的结果还是最好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章