李宏毅老师机器学习课程笔记——Gradient descent 梯度下降
在上一篇笔记regression回归中,提到了回归过程中参数求解利用了梯度下降法,本篇笔记将对梯度下降法展开深入讨论。
梯度下降是机器学习过程中常见的优化算法,用于求解机器学习算法的模型参数。
一、理论
机器学习算法求解最优参数可以表示为:
其中,L(θ)为loss function损失函数,θ为parameters参数。
假设现在有{θ_1,θ_2}两个待计算的参数,
(1)随机生成初始值:
(2)求函数在θ1,θ2位置上的偏微分:
代入θ1,θ2,即:
(3)持续迭代直至到达局部最优点,梯度下降的方向一直由∇L(θ)决定:
-学习率 η
选取正确的learning rate 学习率 η:
如图是不同选值的学习率在梯度下降过程中的表现,明显可知:
选取best η 能够又快又好得完成迭代。
二、adaptive learning rate 自适应学习率
自适应学习率满足两个条件:
(1)每一步迭代都用不同的学习率
(2)每个参数用不同的学习率
简单自适应学习率只满足条件(1):
其中,
Adagrad则同时满足条件(1)和(2):
其中,σ^t是过去所有值的均方
代入
化为:
其中,分母能够防止梯度爆炸或梯度消失.
三、stochastic gradient descent 随机梯度下降
损失函数表示为:
批量梯度下降对所有所有样本都计算:
而随机梯度下降法,只取一个样本计算损失函数进行迭代:
优点:随机梯度下降速度比批量梯度下降更快。
四、feature scaling 特征缩放
特征缩放是梯度下降过程中常用的技法之一。
需要用到特征缩放的情况:
在Y=B+W1X1+W2X2的函数中,X1的取数范围在1-10,而X2的取数范围在1000-10000,这就需要进行特征归一化平衡特征值,使得梯度更加容易得下降到全局最优。
实现特征缩放:
其中mi是特征的平均值,σi是特征最大值减去最小值。