李宏毅机器学习笔记(4): Gradient descent

Gradient descent

1 回顾

在实际模型中,我们需要对参数进行处理,使用梯度下降法。

梯度下降过程

实际要求:

θ=argmaxL(θ)

L为损失函数,θ为参数

选取相应参数:θ1θ2

随机选取初始值:θ0=θ10θ20

梯度下降:

梯度:

算法过程:

Gradient:loss的等高线的法线方向

2 调节你的学习率

学习率:梯度下降的步长,也是决定学习器的学习速度

如图,如果学习率太小,会导致学习的速度会很慢很慢,学习率太大,可能会导致略过极小值,学习率要合适。确保损失函数为稳定的下降。

图2-1 学习率

调节学习率比较繁琐,但是有自动的方法帮我们调节,经常学习率是要随着参数的不断更新,学习率要不断调节小。即靠近目标时,要调节为较小的学习率,为了使目标收敛。举例: 学习率的一种选择方法。

实际中,不同参数选择不同学习率。

3 adagrad

每一个参数的学习率都除以之前的微分值的方均根。

Vanilla gradient descent:w是某一个参数

Adagrad:            g偏微分,σ过去所有参数的方均根。

图3-1 adagrad

如图可知,学习率为ηtσt,整体学习率会越来越小,速度也越来越慢。

注意:如图3-2在一般梯度下降中,随着梯度越大,移动的步长也就会越大。

但在adagrad,梯度越大,可能会出现反差,即移动的步长反而会减小。而Adagrad使用之中,求均值的分母会被约掉。

图3-2

最好的步长发现是一次微分与二次微分的比值的绝对值。 最好的步长与微分的大小成正比。

多参数:单参数选取最好的步长方法不一定成立,最好的步长发现是一次微分与二次微分的比值的绝对值。

使用一次微分估计二次微分吗,所以该式子可以反映出二次微分的大小,不用直接计算。

图3-2 二次微分

4 随机梯度下降Stochastic gradient dsecent

每次进行随机取样本,只取一个,进行计算loss function,梯度。由于每次只考虑一个样本,速度将会变快。使用时,可以进行特称缩放,将各个参数分布特征转化为相似分布特征。否则,数值较大的参数会对loss影响较大。

如何做特征缩放呢,可以求整个样本的平均值与方差,计算:

这样可以使分布均值为0,方差为1。

5 其他

可以使用泰勒级数把loss function简化。在小范围内可以更快速地计算出结果。

图5-1泰勒级数用于分析梯度下降

实际发现,为了让损失函数最小,即让上图中的两个∆θ之和最小,可知,该值最小应与u、v反方向。

梯度下降问题:局部最优值与驻点。

图5-2 驻点与局部最优

 

发布了14 篇原创文章 · 获赞 4 · 访问量 2790

猜你喜欢

转载自blog.csdn.net/wasser000/article/details/90611314