机器学习中的梯度下降法

算法的核心思想即沿着损失函数的负梯度方向调整参数,以达到损失函数的局部最小值。

$$ \theta=\theta-\eta\nabla J(\theta) $$

$\theta$为训练参数,$\eta$为学习率。


以平方损失函数为例:

$$ J(\theta;T)=\frac{1}{2N}\sum_i(y_i-f_\theta(x_i))^2 $$

T为整个训练数据集,N为训练数据集大小,$y_i$为真实标签,$f_\theta(x_i)$为模型预测值。


但在深度学习中,通常对每一个batch进行损失函数的计算和梯度下降法:

$$ J(\theta;batch)=\frac{1}{2m}\sum_i(y_i-f_\theta(x_i))^2 $$

m为一个batch的大小。

假设训练数据集中含有N个数据样本,对m的不同取值会有不同影响: