文章目錄
  1. 1. Stochastic Gradient Descent (SGD)
    1. 1.1. SGD的参数
      1. 1.1.1. Learning Rate
      2. 1.1.2. Weight decay
      3. 1.1.3. Learning Rate Decay
      4. 1.1.4. Momentum
    2. 1.2. SGD优缺点
  2. 2. Averaged Stochastic Gradient Descent (ASGD)
    1. 2.1. ASGD的参数
    2. 2.2. ASGD优缺点
  3. 3. 3. Conjugate Gradient(共轭梯度法)
  4. 4. Limited-memory Broyden-Fletcher-Goldfarb-Shanno (LBFGS) (一种拟牛顿算法)
  5. 5. 应用分析

Stochastic Gradient Descent (SGD)

SGD的参数

在使用随机梯度下降(SGD)的学习方法时,一般来说有以下几个可供调节的参数:

  • Learning Rate 学习率
  • Weight Decay 权值衰减
  • Momentum 动量
  • Learning Rate Decay 学习率衰减

再此之中只有第一的参数(Learning Rate)是必须的,其余部分都是为了提高自适应性的参数,也就是说后3个参数不需要时可以设为0。

Learning Rate

学习率决定了权值更新的速度,设置得太大会使结果越过最优值,太小会使下降速度过慢。仅靠人为干预调整参数需要不断修改学习率,因此后面3种参数都是基于自适应的思路提出的解决方案。
$$w_i←w_i-\eta\frac{\partial{E}}{\partial{w_i}}$$

Weight decay

在实际运用中,为了避免模型的over-fitting,需要对cost function加入规范项,在SGD中我们加入$−ηλw_i$这一项来对cost function进行规范化。
$$w_i←w_i-\eta\frac{\partial{E}}{\partial{w_i}}-\eta\lambda w_i$$
这个公式的基本思路是减小不重要的参数对结果的影响,而有用的权重则不会受到Weight decay的影响,这种思路与Dropout的思路原理上十分相似。

Link 1
Link 2

Learning Rate Decay

一种提高SGD寻优能力的方法,具体做法是每次迭代减小学习率的大小。

  • initial learning rate $\eta=\eta_0$
  • learning rate decay $\eta_d$
  • At each iteration $s$:

$$\eta(s)=\frac{\eta_0}{1+s\cdot{\eta_d}}$$
在许多论文中,另一种比较常见的方法是迭代30-50次左右直接对学习率进行操作($\eta←0.5\cdot\eta$)

Momentum

灵感来自于牛顿第一定律,基本思路是为寻优加入了“惯性”的影响,这样一来,当误差曲面中存在平坦区SGD可以一更快的速度学习。
$$w_i←m\cdot w_i-\eta\frac{\partial{E}}{\partial{w_i}}$$
注意:这里的表示方法并没有统一的规定,这里只是其中一种

Link 1
Link 2
Link 3
Link 4

SGD优缺点

  • 实现简单,当训练样本足够多时优化速度非常快
  • 需要人为调整很多参数,比如学习率,收敛准则等

Averaged Stochastic Gradient Descent (ASGD)

在SGD的基础上计算了权值的平均值。
$$\bar{w}t=\frac{1}{t-t_0}\sum^t{i=t_0+1} w_t$$

ASGD的参数

在SGD的基础上增加参数$t_0$

  • 学习率 $\eta$
  • 参数 $t_0$

ASGD优缺点

  • 运算花费和second order stochastic gradient descent (2SGD)一样小。
  • 比SGD的训练速度更为缓慢。
  • $t_0$的设置十分困难

Link 1

3. Conjugate Gradient(共轭梯度法)

介于最速下降法与牛顿法之间的一个方法,它仅仅需要利用一阶导数的信息,克服了GD方法收敛慢的特点。

Link 1

Limited-memory Broyden-Fletcher-Goldfarb-Shanno (LBFGS) (一种拟牛顿算法)

L-BFGS算法比较适合在大规模的数值计算中,具备牛顿法收敛速度快的特点,但不需要牛顿法那样存储Hesse矩阵,因此节省了大量的空间以及计算资源。

Link 1
Link 2
Link 3

应用分析

不同的优化算法有不同的优缺点,适合不同的场合:

  • LBFGS算法在参数的维度比较低(一般指小于10000维)时的效果要比SGD(随机梯度下降)和CG(共轭梯度下降)效果好,特别是带有convolution的模型。
  • 针对高维的参数问题,CG的效果要比另2种好。也就是说一般情况下,SGD的效果要差一些,这种情况在使用GPU加速时情况一样,即在GPU上使用LBFGS和CG时,优化速度明显加快,而SGD算法优化速度提高很小。
  • 在单核处理器上,LBFGS的优势主要是利用参数之间的2阶近视特性来加速优化,而CG则得得益于参数之间的共轭信息,需要计算器Hessian矩阵。

Link 1

文章目錄
  1. 1. Stochastic Gradient Descent (SGD)
    1. 1.1. SGD的参数
      1. 1.1.1. Learning Rate
      2. 1.1.2. Weight decay
      3. 1.1.3. Learning Rate Decay
      4. 1.1.4. Momentum
    2. 1.2. SGD优缺点
  2. 2. Averaged Stochastic Gradient Descent (ASGD)
    1. 2.1. ASGD的参数
    2. 2.2. ASGD优缺点
  3. 3. 3. Conjugate Gradient(共轭梯度法)
  4. 4. Limited-memory Broyden-Fletcher-Goldfarb-Shanno (LBFGS) (一种拟牛顿算法)
  5. 5. 应用分析