2018-10-26 gradient descend

一、gradient descend的应用场景

问题 最小化L , 求对应的参数:

求最小L值时的参数

方法:梯度下降,如下:

gradient descend公式

二、多参数情况下的gradient descend,使用可变 learning rates(学习步长)

在多个变量情况下,我们画不出左图的情况,但是可以画出右图的情况。所以,编代码时,要画出右图,时时关注曲线变化,才能够找到自己的learning rates是否设置的合理

如上图所示,左右两图对照着看

1. 红色表示learning rates 正好

2. 蓝色表示learning rates 过小,可以到达谷底,但是速度太慢,如右图

3. 绿色表示learning rates过大,先下降很快,但是最后卡在了一个地方,就是下降不下来

4. 黄色表示learning rates太大,直接飞出去了,损失函数不仅没降下来,还增大了

发现,learning rates 的不同,直接影响了最终结果的好坏。因此有了,时时改变learning rates的想法。

基本想法:

learning rates 不能一成不变。根据参数的不同,给出不同的learning rates

1. 一开始, 离目的地远,所以learning rates可以大一些。即,一次跨大步子大。

2. 几个回合后,离得目的地近,调小learning rates,避免出现上图中绿色线一样,最终卡得不能走下去。

解决办法:adagrad法,步长=原步长/斜率的累加

adagrad的核心目的

三、 Stochastic Gradient Descent 随机梯度下降

Make the training faster

训练速度明显优于上面的梯度下降

原理: 一次仅仅处理一个数据,进行更新参数。等每个数据都处理了一遍,参数也就更新完了。

实验表明,

1. 假如有20个数据,每次仅仅处理一次数据,处理20次 ——————随机梯度下降

2. 直接20个数据一次处理完,仅处理一次——————————普通梯度下降

以上两种情况,第一次的速度明显优于第二次。


四、Feature Scaling 特征标准化


为什么要将特征标准化???

如上图所示,左图特征不在一个量级,右图特征在一个量级。那么左图等高线图像为不规则椭圆,右图等高线图像接近与圆。 对二者都进行梯度下降。如图所示,你会发现, 左图梯度下降很曲折,走了很多弯路,且很容易到达局部最优,且当learning rates取得不合适时,根本走不到谷底。 但是右图就很容易达到最优值,达到谷底。 

一种标准化的方法:


对于每一个特征: 


原文:https://blog.csdn.net/mosbest/article/details/79685771

你可能感兴趣的:(2018-10-26 gradient descend)