随机梯度下降–Stochastic Gradient Descent | 丕子 http://www.zhizhihu.com/html/y2012/3731.html
在求损失度最小值时,我们一般用到导数为0时求相应参数,但有时会导致很高的计算复杂度。这时,就要乃至随机梯度下降算法了,是用来简化求最小值的计算的。先给W一个初始值,然后朝梯度方向下降,直到不能下降为止,此时即可得到对应的极小值,但注意得到的是局部最小值,有时要对初始值进行不断修正。
但这样,每iteration一次就得用所有数据求一次导数,代价太大,那么每一步只随机抽几个数据点来算一个梯度如何呢?当然可以!这被称之为Stochastic Gradient Descent,非常高效(随机梯度下降算法)。
记得在ML中的目标函数通常是损失+罚()的形式。例如ridge regression就是平方误差+罚,lasso是平方误差+罚,SVM是hinge loss+罚。最小化这个目标函数可以等价于在的限制下最小化。和是一一对应的关系。实际上就是定义了一个凸子空间,例如使用罚时就是一个半径为的球。所以,Online Gradient Descent可以online的解这一类目标函数,只是对于不同的罚选择不同的投影子。
下面是理论分析。记投影前的,以及offline最优解。因为是凸的且在其中,所以对投影只会减少其与的距离,既。记,注意到
由于是凸的,所以有
取固定的,对进行累加就有。记的直径为,且对所有有成立(既Lipschitz常数为),再取,那么
这个bound可以通过设置变动的学习率加强。