台大李宏毅课程笔记2——Gradient Descent(梯度下降)

本次笔记主要包含三节课:Gradient Descent 1 2 3(梯度下降)李老师将梯度下降分为三节来讲,本次笔记对其进行统一的总结和记录。
先放上视频链接:
Gradient Descent 1
https://www.bilibili.com/video/BV1JE411g7XF?p=5

Gradient Descent 2
https://www.bilibili.com/video/BV1JE411g7XF?p=6

Gradient Descent 3
https://www.bilibili.com/video/BV1JE411g7XF?p=7

先给出梯度下降的总公式:
θi=θi1ηL(θi1) \theta^i=\theta^{i-1}-\eta\bigtriangledown L(\theta^{i-1})
其中,L(θi1)\bigtriangledown L(\theta^{i-1})是对损失函数求输入特征的偏导。

Adagrad

也是直接给公式:
ωiωi1ηi1σi1L(θi1) \omega^i\gets\omega^{i-1}-\frac{\eta^{i-1}}{\sigma^{i-1}}\bigtriangledown L(\theta^{i-1})
其中,
σi=1i+1i=0i((L(θi))2)\sigma^{i}=\sqrt{\frac{1}{i+1}\sum_{i=0}^{i}((\bigtriangledown L(\theta^{i}))^2)}
也就是之前所有迭代求得的参数导数的均方根值
台大李宏毅课程笔记2——Gradient Descent(梯度下降)其中,gig^i就是L(θi)\bigtriangledown L(\theta^{i})
李老师给出的直观解释是,Adagrad过程目的是强调本次迭代中偏导结果的反差
台大李宏毅课程笔记2——Gradient Descent(梯度下降)从数学角度解释呢,李老师介绍为,Adagrad方法中用σ\sigma来近似参数的二次微分结果。而且这个方法没有真的求微分,降低了计算量,又能提高迭代速度和精度。

Stochastic Gradient Descent

这个方法就是,不讲数据整体送入模型迭代,而是每次迭代只对一个数据进行,说是这样有助于提高迭代速度。(并不确定这样做的效果好坏,这个有待验证)
台大李宏毅课程笔记2——Gradient Descent(梯度下降)

Feature Scaling(特征缩放)

当数据具备多种特征时,建议对其进行归一化,这样避免不同参数的权重影响效果不同。
下图给出的是具体的归一化方法,其实就是数学中的标准化。归一化后,均值为0,方差为1。
注意,是对不同数据中相同的特征进行标准化,其中上标为数据编号,下标为特征编号!
台大李宏毅课程笔记2——Gradient Descent(梯度下降)

梯度下降的理论解释

这段信息量很大,李老师用很通俗的语言进行了大量解释,忘记了还是去看原视频:
理论描述:44:20——end
之后的量P视频,李老师用了游戏来解释,为什么梯度下降会求得局部极值,以及为什么learning rate不合理会使Loss不降反增。
每个视频都很简短,可以看看。