随机梯度下降–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可以通过设置变动的学习率
加强。
本文介绍了随机梯度下降(Stochastic Gradient Descent, SGD)算法的基本原理及其在简化求解损失函数最小值过程中的应用。SGD通过每次迭代仅使用少量随机样本计算梯度来降低计算复杂度,适用于大规模数据集。文中还探讨了目标函数通常包含损失项和正则化项,并解释了在线梯度下降如何解决这类问题。
9236

被折叠的 条评论
为什么被折叠?



