李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Gradient Descent ML03

在ML的第三个步骤,需要找到最好的function,所以实际需要解决一个最优化问题

(求解使得损失函数L(θ)最小时的θL为损失函数,θ为模型中的参数)

在ML的第二步需要定义一个LossFunction L(是函数的函数)=>输入的自变量是一组参数 越小越好

假设有两个参数θ ,初始化之后,不断根据学习率和gradient对参数进行更新。

θ2=θ1ηL(θ1)

  • 梯度下降步骤

gradient是vector,图中红色箭头,Loss等高线的法线方向。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Tip1 小心调整Learning Rate

Learning Rate:

画出参数的变化与Loss之间的关系图,看每次update的参数的走势。

  • 对于small的learning tate,Loss会下降很缓慢。
  • 对于large的learning tate,Loss会一开始下降比较快,但会停住,不再下降。
  • 对于very large的learning tate,Loss会爆炸,无法下降。
  • 对于just make的learning tate,Loss会以一个适当的速度下降,且能降到最低点。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Adaptive Learning Rates

自动更新

  • 基本原则:随着参数的更新lr会越来越小。

流行且简单的方法,在不同周期,通过调整一些因素来减小学习率。

  • 在开始时,离目标点较远,可以选择大一点的学习率。
  • 在后面的周期中,离目标点变近,可以减小学习率。
  • 假设lr是t的函数,dependent参数,update次数,η是一个常量,t为第t个周期 ,ηt=η/t+1

学习率不会one-size-fits-all

  • 每个不同的参数都应该有不同的lr。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Adagrad
  • 对每一个参数的学习率,除以它之前微分值的均方差 root mean square
  • w是某一个参数,每一个参数都给不同的lr,每个参数分开考虑
  • 注意理解公式wt+1wt=ηtσtgt,不同参数的lr都不同
    • ηt就是第t个周期的学习率
    • gt就是损失函数Lw的偏微分
    • σt就是参数w之前所有偏微分的均方差

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Adagrad步骤:

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Adagrad的更新公式,w的简化

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Adagrad整体而言最后会变慢,(Adam是现在较为稳定的)

Contradiction

  • Adagrad中,w更新和批梯度下降方法更新中gt不同
    • gt使得:更大的梯度,更大的步长
    • 分母使得:更大的梯度,更小的步长

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

解释:

Adagrad 为了解释反差,今天的gradient有多反差。假设某一个参数,在某一个时候特别大或者小。

直觉的解释是:XXXX(分母项,之前所有倒数的均方差)是为了造成反差萌(原话)

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent
正式的解释:

一个参数:(下图二次函数)

  • 二次函数(上图)对x作微分(下图),那么想要到最低点x=b2ax0需要走|x0+b2a|,也就是|2ax0+b|2a,分子也就是x0这一点的微分。即最好的步伐跟微分大小呈正比。(仅考虑一个参数

  • 微分越大,距离最低点越远。更大的一次导数意味着离最小值更远(可以从图像看出,不管是第一象限,还是第二象限,离最小值越远的点,导数值越大)

    在只考虑一个参数的时候,如果踏出的步伐和微分一样是最好的。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Comparison between different parameters

同时考虑很多参数时候:

  • 微分越大, 和最低点距离越远。在很多参数情况下不一定成立

  • 左图的颜色是loss

  • w1中a的微分较大,距离最低点较远,w2c的微分较大,距离最低点较远,但是c 距离最低点较 a

  • 最好的步伐gradient跟微分大小呈正比,没考虑跨参数情况

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

  • 分母的来源:二次微分。
  • 最好的步长需要正比于一次微分,反比于二次微分。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

图中:

  • w1方向上,二次微分较小,较为平滑
  • w2方向上,二次微分较大,变化较为剧烈,图像比较尖。
  • 综合考虑一次和二次微分,才能真正反映现在的位置同最低点的距离
    李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

与Adagrad的关系

  • 在没有增加任何额外运算前提下,如何加入对二次微分的考虑。即分母与最佳步长中二次微分的关系。
  • 在某一个范围内,对多个点进行采样。
    • 对于比较平滑的峡谷(左侧蓝图),一次微分(左下)通常较小。尖的一次微分较大。
    • 对所有采样点进行平方和。过去所有一次微分平方和,就反映了二次微分的大小。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Tip2 Stohastic Gradient Descent

  • 每次就拿一个样本x出来,Loss只考虑一个example。
  • 在update参数的时候只考虑这一个example。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

  • Gradient Descent:看到所有example之后进行更新(左图更新一次)
  • SGD:看到一个example后逐个进行参数更新(右图更新20次)。步伐小且散乱

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Tip3 Feature Scaling

  • regression:y=b+w1x1+w2x2 预测宝可梦进化之后的CP值。
  • 两个输入的featurex1,x2,如果两个feature的分布不同,最好可以做一下scaling,使得两个特征的分布相同

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

为什么这么做:

y=b+w1x1+w2x2

  • 左图w2对y的变化影响很大,对LOSS影响也会很大,在w2方向上的变化很剧烈。椭圆,不会指向最低点走。
  • 右图有scaling的时候。会一直向着圆心走。更有效率

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

如何做scaling?

方法有很很多,常见方法如下:

有R个样本,每个样本i维,对于第r个样本的第i个元素xrixrimiσi

  • 样本中所有dimension的均值为0,方差为1。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Gradient Descent Theroy

  • 判断:每次更新参数之后,得到一个新的θ,会让我们的Loss较小嘛?

  • 错误.update之后loss不一定会下降。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

Warning of Math

从数学角度(主要是泰勒级数)解释梯度下降的合理性

起始点:θ0 ,可以在红圈范围中找到最低点。

如何在红色圈中快速找到使得loss最小的参数

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

泰勒:

  • 任何一个函数,如果在x=x0这一点的时候是无穷次可微的 ,则可以泰勒展开(微积分)

  • x 很接近 x0的时候,(xx0)>>(xx0)2>>(xx0)3后面的高次项可以省略。

  • 下一张ppt是sin(x)的例子

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

  • 依次考虑前几项得到的图像。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

  • 初始中心点(a,b),在红色圈范围内,可以把Loss近似写成:s+u(θ1a)+v(θ2b)
  • 相当于两个向量相乘,(u,v)(θ1a,θ2b)

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent
李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

  • (u,v)反方向且长度相同的向量,和其相乘之后数值最小。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

为了在红色圈找最小值,就是中心点(a,b)减掉η乘上(u,v)

  • 得到的式子就是gradient descent。前提是泰勒展开是精确的。
  • lr无穷小的时候才会成立。
  • 所以lr没有设置好,LOSS可能不会越来越少。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

more limitation of gradient descent

  • 容易卡在局部最小处、鞍点 、
  • 微分很小也有可能是高原的地方。

李宏毅机器学习(2017full)-Lecture 3 : Gradient Descent

参考【机器学习(李宏毅)】四、Gradient Descent
Gradient Descent课程视频