第六课 随机近似与随机梯度下降
1、例子介绍迭代均值
其实就是将动态规划的思想在求均值的过程中加以充分的利用,在常规情况下,求均值需要等所有数据采样完后再加和,但是现在可以通过增量式方法来处理数据
一步计算就可以求得新的平均数,增量式的计算思想
注意到1/k这个系数并不是唯一的,在满足一定条件时其他的系数也可以保证这个增量的存在,但是最终结果的表达式可能会更加复杂一些
2、RM算法的介绍和例子
SA:随机并且迭代的算法,进行方程的求解或者是优化问题
求根g(w)=0;
当函数表达式完全未知时,会运用到类似机器学习中的方法(ak实际上就是学习率)
用一个初始值带入之后不断迭代,最后形成w和g的两个矩阵
可以证明这个数列是单调且收敛的
3、RM算法的收敛性即应用(数学证明,可以略微跳过)
-
梯度介于两个大于0的的正数之间 g(w)必须是递增的
-
ak和等于无穷,ak平方和小于无穷(很重要的一个条件,在很多时候都有用,即系数必须收敛但又不能收敛太快)
-
eita均值为0,平方均值小于0,且不要求为高斯噪音
-
对第二个的解读:AK必须趋向于0,且AK不会收敛的太快(保证w1能任意选择,都能收敛到w*上来)
RM中三个条件必须完全满足,任意条件不满足都有可能导致算法无法正常工作
4、SGD随机梯度下降
GD:梯度下降
-
依旧是一个迭代式的算法,就是在机器学习中所运用到的梯度下降
-
问题:期望不便于求解
BGD:批量梯度下降
-
多次采样梯度,对所有的得到的数据求平均值
-
问题:采样次数过多
SGD:随机梯度下降
-
在不知道实际期望的情况下用一个简单的采样值(随机梯度)来代替期望
-
只采样一个梯度
问题:只随机采样一次能不能保证足够的精确性,会不会影响优化结果
5、SGD的例子与收敛性
SGD最终书写出来的表达形式和MEAN ESTIMATION几乎一模一样,也就是只采样一次,就把均值拿掉,用简单的一个采样数据来套进公式里
收敛性证明思路:证明SGD是一个特殊的RM算法,已知RM算法在一定条件下具有很好的收敛性,则可以通过RM算法的收敛性证明SGD的收敛性
本质回到g(w)=0的根的问题,也就是RM算法中的求解
测量值的梯度也就是RM算法中带噪声的变量部分
两者的收敛条件是一致的
6、SGD一些有趣的性质
-
SGD的收敛速度和收敛方向是否有比较好的性质
-
相对误差=(采样梯度-实际梯度)/实际梯度
-
在采样梯度较远时,SGD和GD近似,在采样梯度较近时才会产生比较明显的误差
-
因此收敛速度和方向都有比较好的性质
-
另一种和SGD很相像的问题描述
-
在没有随机变量的时候,引入一个均匀分布的随机变量,转化为SGD的问题描述
7、BGD、MBGD、SGD
-
BGD:用到N个所有的采样,将所有的数据进行平均
-
MBGD:用到采样中的一部分数据,将这一部分数据进行平均(随机抽取M个,但是不保证M个全都不同)
-
SGD:只采样一个数据,直接将采样数据代入
可以认为MBGD是BGD和SGD的最一般形式
MBGD的随机性介于两者之间,效率也是介于两者之间
在MBGD取到N的时候和BGD也有细微差距,BGD保证所有采样都能被抽取到一次,但是MBGD是随机的,有的采样可能不被抽到也有可能被重复抽到多次
-
求平均值的问题也可以被等价为一个优化问题,优化的是w-xi这个函数
-
几算法唯一的区别就是在最后的xi的表达形式上
可以看到batch越大,在迭代次数轴上反映出来的收敛速度会更快