神经网络训练方法
以下内容是根据torch官网和莫烦python学习所得
SGD随机梯度下降
假设样本数量为
N
N
N,关于梯度下降,最重要的就是损失函数最小化,其中权
W
W
W的更新方式为
W
=
W
−
λ
∗
1
M
∑
i
=
1
M
∂
L
(
x
i
)
∂
W
(1)
W = W - \lambda * \frac{1}{M}\sum_{i=1}^M\frac{\partial{L(x_i)}}{\partial{W}} \tag{1}
W=W−λ∗M1i=1∑M∂W∂L(xi)(1)
按照
M
M
M的不同,可分为三种情况:
-
batch梯度下降(batch gradient descent, BGD)
M = N M = N M=N,即所有样本都参与权的更新,计算量最大,下降趋势比较平滑
-
mini-batch梯度下降
1 < M < N 1<M<N 1<M<N,随机选择 M M M个样本作为代表,快速下降后波动
-
随机梯度下降(stochastic gradient descent, SGD)
N = 1 N = 1 N=1,每次随机选择1个作为代表参与计算,快速下降后趋于平稳