赞
踩
随机梯度下降算法(Stochastic gradient descent,SGD)在神经网络模型训练中,是一种很常见的优化算法。这种算法是基于梯度下降算法产生的,所以要理解随机梯度下降算法,必须要对梯度下降算法有一个全面的理解。
先来看一下公式
θ t + 1 = θ t − η g t \theta_{t+1} = \theta_{t} - \eta g_t θt+1=θt−ηgt
这里面 g t g_t gt表示的是我们通过求导求出来的梯度值, θ t + 1 \theta_{t+1} θt+1表示的是更新后的参数, θ t \theta_t θt表示的是更新前的参数。可以看到如果使用SGD算法,他只是单纯的对于求出来的梯度乘上一个系数然后进行下降。
动量法是传统梯度下降法(SGD)的一种扩展,它比SGD更高效。动量法又被称作基于动量的梯度下降法(SGD with momentum),是一种使梯度向量向相关方向加速变化、最终实现加速收敛的方法。动量法是一种非常受欢迎的优化算法,并被用于当下的很多模型中。
看一下公式:
V t = γ V t − 1 + η g t V_t = \gamma V_{t-1} + \eta g_t Vt=γVt−1+ηgt
θ t + 1 = θ t − V t \theta_{t+1} = \theta_t - V_t θt+1=θt−Vt
通过第二个式子和SGD的对比,我们可以发现,SGD里面的 η g t \eta g_t ηgt被换成了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。