深度学习(1)-梯度下降
梯度下降
梯度下降法的基本思想是沿着函数梯度的负方向移动,直到找到一个局部最小值点。
利用泰勒展开,我们可以得到
如果取$\epsilon = -\eta f’(x)$, 我们会有
因为$\eta f’^2(x)>0$, 当$\eta$足够小,我们会有.
则通过$x \leftarrow x - \eta f’(x)$可以使得$f(x)$的值下降。
牛顿法
牛顿法是一种基于二阶泰勒展开的优化方法,利用Hessian矩阵来加速收敛。
通过泰勒展开,我们有
$f(x)$为最小值时,我们有$f’(x)=0$,则有
随机梯度下降
对于梯度下降,如果是n个样本的训练数据集,我们就需要计算n次每个样本的损失梯度,
计算负担会随着n的升高而变重,因此就有了随机梯度下降,即每次计算梯度时,只是随机抽取
一个样本进行计算。
由于
可以认为平均而言,随机梯度是对梯度的良好估计。
小批量随机梯度下降
小批量随机梯度下降和随机梯度下降所用的所有元素都是从训练集中随机抽取的,因此梯度的期望保持不变,但是方差显著降低了。
一般来说,小批量随机梯度下降比随机梯度下降和梯度下降的速度快,收敛风险较小。
动量法
动量法是一种优化算法,它通过对过去的梯度进行加权平均,来改进梯度下降法的性能。动量法的基本思想是在每次迭代时,不仅考虑当前的梯度方向,还考虑过去梯度的方向,从而平滑了更新方向,有助于加速收敛并减少振荡。
AdaGrad
AdaGrad 的核心在于动态调整每个参数的学习率。每个参数的学习率是根据该参数的历史梯度的平方和来调整的。如果某个参数的历史梯度变化较大,那么它的学习率会相应减小;反之,如果某个参数的历史梯度变化较小,那么它的学习率会相应增大。
RMSProp
RMSprop(Root Mean Square Propagation)是一种自适应学习率优化算法,旨在克服AdaGrad等方法中学习率递减过快的问题。RMSprop通过使用指数加权移动平均(Exponential Moving Average, EMA)来计算梯度平方的平均值,从而动态调整每个参数的学习率。这种方法在一定程度上解决了AdaGrad累积历史梯度平方和导致学习率过早减小的问题。
Adadelta
Adam
Adam 结合了 AdaGrad 和 RMSprop 的优点,同时解决了它们各自的缺点。Adam 通过使用梯度的一阶矩估计(即动量)和二阶矩估计(即 RMSprop 中的梯度平方的指数加权移动平均值)来动态调整每个参数的学习率。
参考文献
深度学习(1)-梯度下降
install_url
to use ShareThis. Please set it in _config.yml
.