一、gradient descend的应用场景
问题 最小化L , 求对应的参数:

方法:梯度下降,如下:

二、多参数情况下的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法,步长=原步长/斜率的累加


三、 Stochastic Gradient Descent 随机梯度下降
Make the training faster
训练速度明显优于上面的梯度下降
原理: 一次仅仅处理一个数据,进行更新参数。等每个数据都处理了一遍,参数也就更新完了。
实验表明,
1. 假如有20个数据,每次仅仅处理一次数据,处理20次 ——————随机梯度下降
2. 直接20个数据一次处理完,仅处理一次——————————普通梯度下降
以上两种情况,第一次的速度明显优于第二次。

四、Feature Scaling 特征标准化

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

一种标准化的方法:

对于每一个特征:

原文:https://blog.csdn.net/mosbest/article/details/79685771
网友评论