美文网首页
优化器算法Optimizer

优化器算法Optimizer

作者: 热爱生活的大川 | 来源:发表于2018-10-09 17:40 被阅读0次

记: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

相关文章

  • 优化器算法Optimizer

    记: 梯度下降算法 系数更新公式为:不妨设,且损失函数为:则梯度为:对于BGD,n为全体数据量;对于SGD,n为1...

  • 优化问题记录

    优化问题可选解: optimizer优化算法总结 - CSDN博客 深度学习最全优化方法总结比较(SGD,Adag...

  • Optimizer 优化器

    本文介绍常见的优化器及其作用 1.数据及超参数准备 2. 批训练数据 注:Data.DataLoader ,组合数...

  • Optimizer优化器

    1、Adagrad优化算法(https://www.zhihu.com/question/453599361/an...

  • MySql高级之性能分析(四)

    1.MySql Query Optimizer:查询优化器。 ​ 1). Mysql中有专门负责优化SELECT语...

  • 深度学习优化器算法Optimizer详解

    在tensorflow中我们通过梯度下降算法来优化我们的模型,同时这个优化算法会在每一步的训练中来跟新,迭代模型的...

  • 01-08 Optimizers: Buliding a par

    优化器:构建参数化模型 Optimizer: find minimum values of functions b...

  • keras-常用函数

    顺序模型 Sequential 配置学习过程 compile 优化器 optimizer 损失函数 loss 评估...

  • RBO和CBO详解

    RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL...

  • sql优化

    1、 优化器 优化器(Optimizer)是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。主要有以...

网友评论

      本文标题:优化器算法Optimizer

      本文链接:https://www.haomeiwen.com/subject/hzdyaftx.html