网站开发行业发展前景,昆明本地网站,学校网站建设的要点,地图 添加到网站深度学习#xff1a;常用优化器Optimizer简介 随机梯度下降SGD带动量的随机梯度下降SGD-MomentumSGDWAdamAdamW 随机梯度下降SGD
梯度下降算法是使权重参数沿着整个训练集的梯度方向下降#xff0c;但往往深度学习的训练集规模很大#xff0c;计算整个训练集的梯度需要很大… 深度学习常用优化器Optimizer简介 随机梯度下降SGD带动量的随机梯度下降SGD-MomentumSGDWAdamAdamW 随机梯度下降SGD
梯度下降算法是使权重参数沿着整个训练集的梯度方向下降但往往深度学习的训练集规模很大计算整个训练集的梯度需要很大的计算量为了减少计算量加速训练在此基础上演化出随机梯度下降算法SGD沿着随机选取的小批量数据的梯度方向下降。 假设权重记作 w w w学习率为 α \alpha α随机选取小批量样本计算梯度 d w dw dw模型在更新权重的公式如下 w t 1 w t − α × d w t w_{t1} w_t - \alpha \times dw_t wt1wt−α×dwt
带动量的随机梯度下降SGD-Momentum
虽然随机梯度下降是一种很受欢迎的优化方法但其学习过程有时比较慢引入动量momentum旨在提高收敛速度和收敛精确度特别是处理高曲率、小但一致的梯度或是带噪声的梯度。 动量是深度学习训练中一个用于更新模型参数的超参数假设记作mu则引入动量的随机梯度下降算法公式为 v t m u × v t − 1 − α t × d w t v_t mu \times v_{t-1} - \alpha_t \times dw_t vtmu×vt−1−αt×dwt w t 1 w t v t w_{t1} w_t v_t wt1wtvt 其中v初始化为0mu一般的取值为0.5、0.9、0.99等。 要是当前时刻的梯度与历史时刻梯度方向相似这种趋势在当前时刻则会加强要是不同则当前时刻的梯度方向减弱。前者能够加速收敛后者能够减小摆动提高收敛精确度。
SGDW
weight decay权值衰减的使用既不是为了提高收敛精确度也不是为了提高收敛速度其最终目的是防止过拟合。在损失函数中weight decay是放在正则项regularization前面的一个系数正则项一般指示模型的复杂度所以weight decay的作用是调节模型复杂度防止过拟合若weight decay很大则复杂的模型损失函数的值也就大。
SGDW 即 SGD Weight decate。SGDW直接将正则项的梯度加入反向传播的公式中而不是loss函数。 详细算法可参照
Adam
Adam是一种自适应优化器对超参数的选择较为鲁棒。SGD-Momentum在SGD基础上增加了一阶动量AdaGrad和AdaDelta在SGD基础上增加了二阶动量。Adam则是把一阶动量和二阶动量都用起来了。 一阶动量 m t β 1 × m t − 1 ( 1 − β 1 ) × d w t m_t \beta_1 \times m_{t-1} (1-\beta_1) \times dw_t mtβ1×mt−1(1−β1)×dwt 二阶动量 v t β 2 × v t − 1 ( 1 − β 2 ) × d 2 w t v_t \beta_2 \times v_{t-1} (1-\beta_2) \times d^2w_t vtβ2×vt−1(1−β2)×d2wt β 1 \beta_1 β1和 β 2 \beta_2 β2是Adam的两个超参数。
详细算法可参照Adam原始论文
AdamW
AdamW在Adam的基础上发展而来的一种自适应优化器。AdamW 即 Adam Weight decate ,效果与 Adam L2正则化相同,但是计算效率更高,因为L2正则化需要在loss中加入正则项,之后再算梯度,最后在反向传播,而AdamW直接将正则项的梯度加入反向传播的公式中,省去了手动在loss中加正则项这一步。
详细算法可参照AdamW原始论文