机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

梯度下降 Gradient Decent

我们回忆深度学习“三板斧”,

  1. 选择神经网络
  2. 定义神经网络的好坏
  3. 选择最好的参数集合

其中步骤三,如何选择神经网络的好坏呢?
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

梯度下降是目前,最有效的方法之一。

方法:我们举两个参数的例子θ1\theta1,θ2\theta2, 损失函数是L。那么它的梯度是:
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

那我为了求得最小值,我们有:
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

参数不断被梯度乘以学习率η 迭代
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

那么上述公示公为什么是减号,不是加号呢?
我们定义θ\theta改变的方向是movement的方向, 而gradient的方向是等高线的法线方向
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

基础的Gradient Decent已经介绍完了,接下来,我们一起探讨GD的使用技巧。

Learning rate学习率的设定

Learning Rate η 如果设定不好,Loss反而增大
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

自适应的学习率 adaptive learning rate

很多小伙伴在机器学习代码中,学习率一般都是设置为一个固定的数值(需要不断调参)。
根据学习经验,一般的我们有如下结论:

  1. 训练刚开始的时候,学习率较大,
  2. 经过几轮训练后,结果慢慢接近的时候,需要调小学习率
    机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

Adagrad 的学习率是现有学习率 除以 导数的平方和的开根号

机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

Stochastic Gradient Decent (SGD)

让训练更加快速

一般的GD方法是所有的训练数据后,进行一次参数更新
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

SGD是一个样本就可以更新参数,
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

GD和SGD的对比效果:
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

特征裁剪 Feature Scaling

让不同维度的数据,有相同的变化幅度
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

训练的时候,哪一个好train,一目了然
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

归一化方法:
机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降

总结: Gradient Decent 是机器学习、深度学习求解Optimal问题的“普世”方法,但是也会遇到很多问题,
例如local minima 和 saddle point 的问题。 我们以后会展开讨论。

机器学习与深度学习系列连载: 第二部分 深度学习(二)梯度下降