优化器
深度学习的目的是最小化损失,在损失函数定义好的情况下,使用优化器进行求解最小损失。
损失函数是用来计算测试集中目标Yd 额真实值和预测值的偏差程度。
梯度下降法
梯度下降:学习训练的模型参数为w,损失函数为J(w),则损失函数关于模型参数的偏导数即相关梯度为ΔJ(w),学习率为η,梯度下降法更新参数公式:w=w−η×ΔJ(w),模型参数的调整沿着梯度方向不断减小的方向最小化损失函数。
- 批量梯度下降(BGD)
它们会在一个大批量中同时处理所有样本。 - 随机梯度下降(SGD)
随机梯度下降法不同于批量梯度下降,随机梯度下降是在每次迭代时 使用一个样本来对参数进行更新(mini-batch size =1) - 小批量梯度下降(MBGD)
使用一个以上而又不是全部的训练样本
SGD的梯度下降过程,类似于一个小球从山坡上滚下,它的前进方向只于当前山坡的最大倾斜方向一致(最大负梯度方向),每一个时刻的初速度为0
SGDM Momentum 动量
- 公式
v t = γ v t − 1 + η ∇ θ J ( θ ) θ = θ − v t \begin{aligned} v_{t} &=\gamma v_{t-1}+\eta \nabla_{\theta} J(\theta) \\ \theta &=\theta-v_{t} \end{aligned} vtθ=γvt−1+η∇θJ(θ)=θ−vt - SGD的梯度下降过程,类似于一个小球从山坡上滚下,它的前进方向由当前山坡的最大倾斜方向与之前的下降方向共同决定,小球具有初速度(动量),不只被梯度制约。SGDM克服了之前SGD易震荡的缺点,对比效果如下图:
Nesterov accelerated gradient
- 公式
v t = γ v t − 1 + η ∇ θ J ( θ − γ v t − 1 ) θ = θ − v t \begin{aligned} v_{t} &=\gamma v_{t-1}+\eta \nabla_{\theta} J\left(\theta-\gamma v_{t-1}\right) \\ \theta &=\theta-v_{t} \end{aligned} vtθ=γvt−1+η∇θJ(θ−γvt−1)=θ−vt