一:简单梯度下降

1. 概述

预测模型为 y=b+wxcp,真实标签为y^n,则损失函数loss function为
台大李宏毅--梯度下降Gradient Descent

我们目的是最小化 损失函数L(w,b),即找出最佳的w,b

台大李宏毅--梯度下降Gradient Descent

处理方法 : 梯度下降法

2. 仅含一个参数的梯度下降

对某一个参数的偏导数,就是对损失函数在这个参数的方向的斜率

台大李宏毅--梯度下降Gradient Descent

即,就是
台大李宏毅--梯度下降Gradient Descent

台大李宏毅--梯度下降Gradient Descent

然后,不对向极点逼近

台大李宏毅--梯度下降Gradient Descent

3. 含多个参数的梯度下降

台大李宏毅--梯度下降Gradient Descent

我们可以多个参数 列在一起,变成一个列向量。
台大李宏毅--梯度下降Gradient Descent

同时,通过链式法则,直接可以求出每一个点的偏导数的值
台大李宏毅--梯度下降Gradient Descent

梯度下降可能会出现一些问题。
1. 我们下降到一个局部最优值,但是不是全局最优值。
2. 下降到下图中第二种情况。这个地方的导数也是为0。但是也不在最优点,而且可能离最优点很远
3. 下降到下图中第一种情况。这个地方的导数约为0。而且离最优点更远

以上三种情况,都会对结果产生影响。
但是,在线性回归中,不用考虑这种问题。因为,线性回归的loss fuanction 损失函数是(y^y)2,即是平方。所以是个凸函数,呈现一个碗状。有且仅有一个最优值。上面三种情况不会出现。

台大李宏毅--梯度下降Gradient Descent

二: Tuning your learning rates 与 Adagrad算法

1. 回顾

问题 最小化L , 求对应的参数
台大李宏毅--梯度下降Gradient Descent

方法:梯度下降,如下
台大李宏毅--梯度下降Gradient Descent

2. 使用可变 learning rates

台大李宏毅--梯度下降Gradient Descent
在多个变量情况下,我们画不出左图的情况,但是可以画出右图的情况。所以,编代码时,要画出右图,时时关注曲线变化,才能够找到自己的learning rates是否设置的合理
如上图所示,左右两图对照着看
1. 红色表示learning rates 正好
2. 蓝色表示learning rates 过小,可以到达谷底,但是速度太慢,如右图
3. 绿色表示learning rates过大,先下降很快,但是最后卡在了一个地方,就是下降不下来
4. 黄色表示learning rates太大,直接飞出去了,损失函数不仅没降下来,还增大了

发现,learning rates 的不同,直接影响了最终结果的好坏。因此有了,时时改变learning rates的想法。
基本想法:
learning rates 不能一成不变。根据参数的不同,给出不同的learning rates
1. 一开始, 离目的地远,所以learning rates可以大一些。即,一次跨大步子大。
2. 几个回合后,离得目的地近,调小learning rates,避免出现上图中绿色线一样,最终卡得不能走下去。
比如台大李宏毅--梯度下降Gradient Descent

3. Adagrad 算法

普通梯度下降
台大李宏毅--梯度下降Gradient Descent

Adagrad 算法
台大李宏毅--梯度下降Gradient Descent

其中:
台大李宏毅--梯度下降Gradient Descent
台大李宏毅--梯度下降Gradient Descent

台大李宏毅--梯度下降Gradient Descent
台大李宏毅--梯度下降Gradient Descent

所以,最终Adagad算法核心为:
台大李宏毅--梯度下降Gradient Descent

三: Stochastic Gradient Descent 随机梯度下降

Make the training faster
训练速度明显优于上面的梯度下降

原理: 一次仅仅处理一个数据,进行更新参数。等每个数据都处理了一遍,参数也就更新完了。
实验表明,
1. 假如有20个数据,每次仅仅处理一次数据,处理20次 ——————随机梯度下降
2. 直接20个数据一次处理完,仅处理一次——————————普通梯度下降
以上两种情况,第一次的速度明显优于第二次。

台大李宏毅--梯度下降Gradient Descent
台大李宏毅--梯度下降Gradient Descent

四: Feature Scaling 特征标准化

比如:

台大李宏毅--梯度下降Gradient Descent

为什么要将特征标准化???

台大李宏毅--梯度下降Gradient Descent
如上图所示,左图特征不在一个量级,右图特征在一个量级。那么左图等高线图像为不规则椭圆,右图等高线图像接近与圆。
对二者都进行梯度下降。如图所示,你会发现,
左图梯度下降很曲折,走了很多弯路,且很容易到达局部最优,且当learning rates取得不合适时,根本走不到谷底。
但是右图就很容易达到最优值,达到谷底。

一种标准化的方法:

台大李宏毅--梯度下降Gradient Descent
对于每一个特征:
台大李宏毅--梯度下降Gradient Descent
此时每一个维度 平均值都为0 。方差都为1。

四: 梯度下降数学解释(梯度下降与泰勒级数)

一元泰勒级数

台大李宏毅--梯度下降Gradient Descent

多元泰勒级数(二元)

台大李宏毅--梯度下降Gradient Descent
仅仅保留一阶导数叫做 梯度下降。
用二阶导数 就是 Hessian矩阵。

多元泰勒级数与梯度下降

台大李宏毅--梯度下降Gradient Descent

那么梯度下降,就是梯度方向一小步一小步向下走,走到最低端。如下图。
台大李宏毅--梯度下降Gradient Descent

在二元泰勒级数上,我们去掉高阶导数,仅仅留一阶导数
台大李宏毅--梯度下降Gradient Descent
要找到最小的 (θ1,θ2)最小化L
同时点 (θ1,θ2)要在红色小圆内,所以
台大李宏毅--梯度下降Gradient Descent


Δθ1=θ1a
Δθ2=θ2b

L(θ)s+uΔθ1+vΔθ2=s+(u,v)(Δθ1,Δθ2)
其中s是常数,不变,那么就是怎样最小化(Δθ1,Δθ2) 与(u,v)两个向量的点积。
两个向量的点积什么时候最小?
u,v)(Δθ1,Δθ2)=|u,v)|(Δθ1,Δθ2)cos(θ)
则,两个向量的模值最大,且方向相反(即180度)。此时两个向量的点积最小。
(Δθ1,Δθ2)cos(θ)方向必须在圆内,所以点最佳在圆上。
所以
台大李宏毅--梯度下降Gradient Descent


台大李宏毅--梯度下降Gradient Descent


台大李宏毅--梯度下降Gradient Descent
综上:
台大李宏毅--梯度下降Gradient Descent

相关文章:

  • 2021-07-14
  • 2021-05-24
  • 2021-08-07
  • 2021-08-01
  • 2021-11-14
  • 2021-11-09
猜你喜欢
  • 2021-06-22
  • 2021-05-13
  • 2021-08-03
  • 2021-11-13
  • 2021-06-11
  • 2021-06-10
  • 2021-11-07
相关资源
相似解决方案