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

Gradient Descent ML03

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

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

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

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

θ2=θ1ηL(θ1) θ 2 = θ 1 − η ▽ L ( θ 1 )

  • 梯度下降步骤

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

1533017556008

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会以一个适当的速度下降,且能降到最低点。

这里写图片描述

Adaptive Learning Rates

自动更新

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

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

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

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

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

这里写图片描述

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

这里写图片描述

Adagrad步骤:

这里写图片描述

Adagrad的更新公式,w的简化

这里写图片描述

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

Contradiction

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

这里写图片描述

解释:

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

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

这里写图片描述
正式的解释:

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

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

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

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

这里写图片描述

Comparison between different parameters

同时考虑很多参数时候:

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

  • 左图的颜色是loss

  • w1 w 1 中a的微分较大,距离最低点较远, w2 w 2 c c 的微分较大,距离最低点较远,但是c 距离最低点较 a a

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

这里写图片描述

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

这里写图片描述

图中:

  • w1方向上,二次微分较小,较为平滑

  • w2 w 2 方向上,二次微分较大,变化较为剧烈,图像比较尖。
  • 综合考虑一次和二次微分,才能真正反映现在的位置同最低点的距离
    这里写图片描述

与Adagrad的关系

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

1533047716365

Tip2 Stohastic Gradient Descent

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

这里写图片描述

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

这里写图片描述

Tip3 Feature Scaling

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

这里写图片描述

为什么这么做:

y=b+w1x1+w2x2 y = b + w 1 x 1 + w 2 x 2

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

这里写图片描述

如何做scaling?

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

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

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

这里写图片描述

Gradient Descent Theroy

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

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

这里写图片描述

Warning of Math

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

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

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

这里写图片描述

泰勒:

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

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

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

这里写图片描述

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

这里写图片描述

这里写图片描述

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

这里写图片描述
这里写图片描述

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

这里写图片描述

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

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

这里写图片描述

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

这里写图片描述

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

添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值