美文网首页
凸优化,梯度下降和优化算法进阶

凸优化,梯度下降和优化算法进阶

作者: 英文名字叫dawntown | 来源:发表于2020-02-25 21:57 被阅读0次

1. 凸优化

优化方法目标:训练集损失函数值
深度学习目标:测试集损失函数值(泛化性)

1.1 优化在深度学习中的挑战

  1. 局部最小值
  2. 鞍点(Hessen阵判断)
  3. 梯度消失(梯度太小以至于消失)

1.2 凸函数(最优化课讲过)

性质

  1. 无局部极小值(f(x)>λf(x)+(1−λ)f(x′)≥f(λx+(1−λ)x′)
  2. 与凸集的关系(对于凸函数f(x),定义集合S_b:={x|x∈X and f(x)≤b},则集合S_b为凸集)
  3. 二阶条件(f′′(x)≥0⟺f(x)是凸函数)

具有限制条件的最优化(详见最优化课本)

2. 梯度下降

沿梯度反方向移动自变量可以减小函数值
x \leftarrow x-\eta f^{\prime}(x)
其中\eta就是学习率

梯度下降的不同情况.png

2.1 多维梯度下降

与一维梯度一样,只不过所有标量变成矢量。
\nabla f(\mathbf{x})=\left[\frac{\partial f(\mathbf{x})}{\partial x_{1}}, \frac{\partial f(\mathbf{x})}{\partial x_{2}}, \dots, \frac{\partial f(\mathbf{x})}{\partial x_{d}}\right]^{\top},\\f(\mathbf{x}+\epsilon)=f(\mathbf{x})+\epsilon^{\top} \nabla f(\mathbf{x})+\mathcal{O}\left(\|\epsilon\|^{2}\right),\\\mathbf{x} \leftarrow \mathbf{x}-\eta \nabla f(\mathbf{x}).

2.2 经典方法

2.2.1 牛顿法

\mathbf{x} \leftarrow \mathbf{x}-\eta \operatorname{diag}\left(H_{f}\right)^{-1} \nabla \mathbf{x}
类似的还有共轭梯度法

2.2.2 随机梯度下降

\mathbf{x} \leftarrow \mathbf{x}-\eta \nabla f_{i}(\mathbf{x})

2.2.3 小批量随机梯度下降

f_{B}(\mathbf{x})=\frac{1}{n_B} \sum_{i=1}^{n_B} f_{i}(\mathbf{x}),\\n_B:\space batch\space size
\mathbf{x} \leftarrow \mathbf{x}-\eta \nabla f_{B}(\mathbf{x})

3. 优化算法进阶

3.1 Momentum

针对病态问题(cond_H=\frac{\lambda_{max}}{\lambda_{min}}~20)会在某些参数方向上学习率过大而另一些参数方向上学习率过小的问题,引入动量算法
\begin{aligned} \boldsymbol{m}_t &\leftarrow \beta \boldsymbol{m}_{t-1} + \eta_t \boldsymbol{g}_t, \\ \boldsymbol{x}_t &\leftarrow \boldsymbol{x}_{t-1} - \boldsymbol{m}_t, \end{aligned}
使用了动量算法的的:AdaGrad,RMSProp,AdaDelta,Adam

相关文章

网友评论

      本文标题:凸优化,梯度下降和优化算法进阶

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