优化算法
随机梯度下降法的加速
提到深度学习中的优化算法,人们通常会想到随机梯度下降。但随机梯度下降有时确是你算法中的一个坑。当你设计出一个深度神经网络时,如果只知道用随机梯度下降来训练模型,那么当你得到一个比较差的训练结果时,你可能会放弃在这个模型上继续投入精力。然而,造成训练效果差的真正原因可能并不是模型的问题,而是随机梯度下降法在优化过程中失效了。
1、随机梯度下降法实效的原因
随机梯度下降好比蒙着眼睛下山,只能凭脚底踩石头的感觉判断当前位置的坡度,精确性大大降低,而批量梯度下降就好比正常下山。
批量梯度下降法在全部训练集{
x i , y i x_i,y_i xi,yi} i = 1 n _{i=1}^{n} i=1n上计算准确的梯度,即
∑ i = 1 n ▽ θ f ( θ ; x i , y i ) + ▽ θ ϕ ( θ ) \sum_{i=1}^{n}▽_{\theta}f(\theta;x_i,y_i)+▽_{\theta} \phi(\theta) i=1∑n▽θf(θ;xi,yi)+▽θϕ(θ)
其中 f ( θ ; x i , y i ) f(\theta;x_i,y_i) f(θ;xi,yi)表示在每个样本 ( x i , y i ) (x_i,y_i) (xi,yi) 的损失函数, ϕ ( θ ) \phi(\theta) ϕ(θ) 为正则化项。
随机梯度下降则采用单个样本来估计的当前梯度,即
▽ θ f ( θ ; x i , y i ) + ▽ θ ϕ ( θ ) ▽_{\theta}f(\theta;x_i,y_i)+▽_{\theta} \phi(\theta)