台大李宏毅课程笔记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
先给出梯度下降的总公式:
其中,是对损失函数求输入特征的偏导。
Adagrad
也是直接给公式:
其中,
也就是之前所有迭代求得的参数导数的均方根值。
其中,就是。
李老师给出的直观解释是,Adagrad过程目的是强调本次迭代中偏导结果的反差。
从数学角度解释呢,李老师介绍为,Adagrad方法中用来近似参数的二次微分结果。而且这个方法没有真的求微分,降低了计算量,又能提高迭代速度和精度。
Stochastic Gradient Descent
这个方法就是,不讲数据整体送入模型迭代,而是每次迭代只对一个数据进行,说是这样有助于提高迭代速度。(并不确定这样做的效果好坏,这个有待验证)
Feature Scaling(特征缩放)
当数据具备多种特征时,建议对其进行归一化,这样避免不同参数的权重影响效果不同。
下图给出的是具体的归一化方法,其实就是数学中的标准化。归一化后,均值为0,方差为1。
注意,是对不同数据中相同的特征进行标准化,其中上标为数据编号,下标为特征编号!
梯度下降的理论解释
这段信息量很大,李老师用很通俗的语言进行了大量解释,忘记了还是去看原视频:
理论描述:44:20——end
之后的量P视频,李老师用了游戏来解释,为什么梯度下降会求得局部极值,以及为什么learning rate不合理会使Loss不降反增。
每个视频都很简短,可以看看。