机器学习(李宏毅)—— Gradient Descent

使用梯度下降法时要谨慎的调整学习率:\theta ^{i}=\theta ^{i-1}-\eta\cdot \triangledown L(\theta ^{i-1})\eta是学习率。在调整学习率后要把不同学习率的Parameter-Loss曲线画出来,以便调整学习率参数(学习率太大收敛到一定程度时Loss还很大,学习率太小时收敛速度慢)。
Feature Scaling:每一个参数的scaling要尽可能相匹配(对于多个参数情况,scaling匹配时不同参数的学习率迭代过程相近且迭代过程沿着目标方向进行)。如何进行Feature Scaling?数据标准化方法(处理后的数据均值为0,方差为1)。
为什么梯度下降的方向迭代是这样的? \theta ^{i}=\theta ^{i-1}-\eta\cdot \triangledown L(\theta ^{i-1})
x接近x_{0}时,我们可以从泰勒级数知道h(x)\approx h(x_{0})+h^{'}(x_{0})(x-x_{0});当x,y接近x_{0},y_{0}时,我们可以从泰勒级数中知道h(x,y)\approx h(x_{0},y_{0})+\frac{\partial h(x_{0},y_{0})}{\partial x}(x-x_{0})+\frac{\partial h(x_{0},y_{0})}{\partial y}(y-y_{0})
当损失函数在一个小的邻域圈内时,有L(\theta_{1},\theta_{2})\approx L(a,b)+\frac{\partial L(a,b)}{\partial \theta _{1}}(\theta _{1}-a)+\frac{\partial L(a,b)}{\partial \theta _{2}}(\theta _{2}-b)
s=L(a,b)u=\frac{\partial L(a,b)}{\partial \theta_{1}}v=\frac{\partial L(a,b)}{\partial \theta_{2}},有L(\theta _{1},\theta _{2})\approx s+u(\theta _{1}-a)+v(\theta _{2}-b),它在(\theta _{1}-a)^{2}+(\theta _{2}-b)^{2}\leq d^{2}约束下最小化L(\theta _{1},\theta _{2})
\Delta \theta _{1}=\theta _{1}-a\Delta \theta _{2}=\theta _{2}-b,则有\begin{bmatrix} \Delta \theta _{1}\\ \Delta \theta _{2} \end{bmatrix}=-\eta\begin{bmatrix} u\\ v \end{bmatrix}\Rightarrow \begin{bmatrix}\theta _{1}\\\theta _{2} \end{bmatrix}=\begin{bmatrix} a\\ b \end{bmatrix}-\eta\begin{bmatrix} u\\ v \end{bmatrix},即\begin{bmatrix}\theta _{1}\\\theta _{2} \end{bmatrix}=\begin{bmatrix} a\\ b \end{bmatrix}-\eta\begin{bmatrix} \frac{\partial L(a,b)}{\partial \theta _{1}}\\ \frac{\partial L(a,b)}{\partial \theta _{2}}\end{bmatrix}L(\theta _{1},\theta _{2})最小,这就是梯度下降法方向迭代的公式,只有\eta尽可能地小(受d限制)才能满足泰勒级数展开的要求,故在设置学习率的值时不能过于大。

Adaptive Learning Rates:在开始时离目标很远,设置较大的学习率;在经过几个epoch后离目标很近,需要设置较小的学习率(学习率随着epoch的增加呈现出衰减的趋势,例如设置学习率为\eta ^{t}=\frac{\eta }{\sqrt{t+1}}\eta是最初始学习率),对不同的参数要设置不同的学习率。
Adagrad:
w^{t+1}\leftarrow w^{t}-\frac{\eta ^{t}}{\sigma ^{t}}\cdot g^{t}\eta ^{t}=\frac{\eta }{\sqrt{t+1}}g^{t}=\frac{\partial L(\theta ^{t})}{\partial w}\sigma ^{t}=\sqrt{\frac{1}{t+1}\sum_{i=0}^{t}(g^{i})^{2}}L=\sum_{n}^{}(\hat{y}^{n}-(b+\sum w_{i}x_{i}^{n}))^{2}
\sigma ^{t}是微分值g^{t}(t=0,1,...,t-1,t)的均方根(先取平方和的平均值再开根号)。将上式化简可得w^{t+1}\leftarrow w^{t}-\frac{\eta}{\sqrt{\sum_{i=0}^{t}(g^{i})^{2}}}\cdot g^{t}\eta是最初设置的学习率。Adagrad强调迭代过程梯度大小反差的效果(步长最好为\frac{|First\, \, derivative|}{Second\, \, derivative})。

Stochastic Gradient Descent:随机选取一个样本x^{n},其损失函数为L^{n}=(\hat{y}^{n}-(b+\sum w_{i}x_{}^{n}))^{2}。SGD收敛速度与Gradient Descent相比更快一些(SGD每一个样本都进行一次迭代,而Gradient Descent每次迭代需要一系列数据导致其收敛速度较慢)。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年3月14日 下午6:33
下一篇 2022年3月14日 下午6:49

相关推荐