优化器算法Optimizer

记:g_t=\nabla{E(w_{t-1})}

算法名称 算法公式 描述
BGD w_t=w_{t-1}-\eta\nabla{E(w_{t-1})} 每次使用全部样本
SGD w_t=w_{t-1}-\eta\nabla{E(w_{t-1},x^{(i)},y^{(i)})} 每次使用一个样本
MGD w_t=w_{t-1}-\eta\nabla{E(w_{t-1},x^{(i:i+m)},y^{(i:i+m)})} 每次使用m个样本
Momentum v_t=\gamma{v_{t-1}}+g_t w_t=w_{t-1}-\eta{v_t} 指数累加梯度值,\eta=0.01
Nesterov v_t=\gamma{v_{t-1}}+\eta\nabla{E(w_{t-1}-\gamma{v_{t-1})}} w_t=w_{t-1}-v_t 以未来位置w_{t-1}-\gamma{v_{t-1}}的梯度作为本次累加的梯度,\gamma=0.9
Adagrad w_t =w_{t-1}-\frac{\eta}{\sqrt{\sum_{i=1}^{t}g_i^2}+\epsilon}g_t 对稀疏数据低频大更高频小更,\eta=0.01
RMSprop E[g^2]_t=\gamma{E[g^2]_{t-1}}+(1-\gamma)g_t^2 w_t=w_{t-1}-\frac{\eta}{\sqrt{E[g^2]_t}+\epsilon}g_t 用指数平滑均值代替全梯度求和,\gamma=0.9,\eta=0.001
AdaDelta E[g^2]_t=\gamma{E[g^2]_{t-1}}+(1-\gamma)g_t^2 w_t =w_{t-1}-\frac{\sqrt{E[\Delta{w}]_{t-1}}}{\sqrt{E[g^2]_t}+\epsilon}g_t 或令RMS[g]_t=\sqrt{E[g^2]_t} w_t=w_{t-1}-\frac{RMS[\Delta{w}]_{t-1}}{RMS[g]_t}g_t 一阶方法逼近二阶牛顿法,\gamma=0.9
Adam(Adaptive Moment Estimation) m_t=\beta_1m_{t-1}+(1-\beta_1)g_t v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2 \hat{m}_t=\frac{m_t}{1-\beta_1^t} \hat{v}_t=\frac{v_t}{1-\beta_2^t} w_t=w_{t-1}-\frac{\eta}{\sqrt{\hat{v}_t}+\epsilon}\hat{m}_t RMSprop + Momentum+偏差矫正,\beta_1=0.9 \beta_2=0.999 \epsilon=10^{-8}

梯度下降算法

系数更新公式为:
w_t=w_{t-1}-\eta\nabla{E(w_{t-1})}
不妨设\bar{y}^{(i)}=wx+b,且损失函数为:
E(w)=\frac{1}{2}\sum_{i=1}^n(y^{(i)}-\bar{y}^{(i)})^2
则梯度为:
\begin{align} \nabla{E(w)}&=\frac{1}{2}\sum_{i=1}^{n}\frac{\partial}{\partial{w}}(y^{(i)}-\bar{y}^{(i)})^2\\ &=\frac{1}{2}\sum_{i=1}^{n}\frac{\partial}{\partial{w}}(y^{(i)2}-2y^{(i)}\bar{y}^{(i)}+\bar{y}^{(i)2})\\ &=\frac{1}{2}\sum_{i=1}^{n}2(-y^{(i)}+\bar{y}^{(i)})\mathrm{x}\\ &=-\sum_{i=1}^{n}(y^{(i)}-\bar{y}^{(i)})\mathrm{x} \end{align}
对于BGD,n为全体数据量;对于SGD,n为1;对于MGD,n为批量大小m。

牛顿二阶梯度优化法的推导

f(x)f(x_k)泰勒展开以及梯度为
f(x)=f(x_k)+g_k(x-x_k)+\frac{1}{2}(x-x_k)^TH_k(x-x_k) \\ \nabla{f(x)}=g_k+H_k(x-x_k)\nabla{f(x)}=0x=x_{k+1},得
\nabla{f(x_{k+1})}=g_k+H_k(x_{k+1}-x_k)=0 从而
x_{k+1}=x_k-H_k^{-1}g_k

牛顿二阶系数更新公式

系数更新公式为:
w_t=w_{t-1}-H_t^{-1}\nabla{E(w_{t-1})}
其中H为参数二阶导矩阵,即Hessian矩阵。H_t^{-1}代替了\eta,不过计算复杂度为O(n^3),代价太高。

AdaDelta

使用一阶方法近似牛顿二阶,从而可以省去超参\eta。记:g_t=\nabla{E(w_{t-1})}
由牛顿二阶法系数更新公式
\Delta{w} \propto H_t^{-1}g_t可得
H_t^{-1} \propto \frac{\Delta{w}}{g_t} \approx \frac{RMS[\Delta{w}]_{t-1}}{RMS[g]_t}从而
w_t=w_{t-1}-\frac{RMS[\Delta{w}]_{t-1}}{RMS[g]_t}g_t

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间...
    在河之简阅读 20,731评论 4 65
  • 文 | 驼玲 转眼间,2017第一季度已经过去多日,在我准备上半年的自考前夕, 迎来了猫群“晨读营”,对于期间还有...
    玲歌阅读 1,567评论 0 1
  • 背景 在探讨机械化施工之前,先就几个非常浅显的问题做一下回顾,对某些概念做一下定位及深化: 1、什么是机械化施工?...
    老鼠夹阅读 2,532评论 0 0
  • 浮云飘伴白鹭行, 生气蓬然翠柳迎。 若即若离寻桃花, 梦回方塘通幽亭。 为乐狎酒赋长歌, 欢语饮茶书真情。 几回世...
    一纸淋漓阅读 2,166评论 0 2
  • 屋子里,到处都是你的影子,你的声音。梦里是你,一醒过来,脑海里还是你,停不下来的想念,停不下来的眼泪。为什么这些东...
    八竖阅读 1,468评论 0 0

友情链接更多精彩内容