随机梯度下降(sgd)的收敛问题

  数学 数值计算 最优化    浏览次数: 1758
6

对于凸优化来说,剃度下降(批量剃度下降)是肯定会收敛到全局最优的。那么对于凸问题,sgd也会收敛到全局最优吗?我在线性回归上试了一下,发现即使很多次迭代之后,回归系数一直在波动,看起来并没收敛。

 

MrMath   2017-05-26 22:26



   3个回答 
13

随机剃度下降是不会收敛的,它总是在最优点附近跳来跳去。即使我们到达了最优点,它依然会跳动,因为对于随机的样本来说,这些少数的样本在最优点的梯度也未必是0(整体的梯度是0)。


有一个方法可以使随机梯度下降收敛——让步长衰减。因为随机梯度很快就能到达最优点附近,如果步长逐步减小,最终它会停在最优点附近一个较优的点上(未必是正好停在最优点)。

SofaSofa数据科学社区 DS面经 问答 实战

雷猴   2017-05-30 22:47

4

是的,不收敛的。随机梯度下降(Stochastic Gradient Descent)和小批量梯度下降(mini-batch)都存在这个现象。

现在很多的算法和一些封装好的package在使用SGD或者类似算法的时候都使用了不固定的learning rate(步长),其目的就是为了解决不收敛。


SofaSofa数据科学社区 DS面经 问答 实战

高代兄   2017-09-21 13:07

2

凸优化的全局最优点是针对训练数据而言的,更换了训练数据,最优点就变了。所以SGD本来就没有固定的全局最优点。最后得到的是多个batch上最优点的一个或几何均值。比如多个batch上最优点组成一个圆,那么最后结果就是圆内随机一点。因为GD用了全部训练数据,所以最优点固定,是圆的重心。

以简单二维输入最小二乘为例,每一个训练数据产生loss funtion的曲面是以此点对应系数为中心的倒钟形,有点像沙坑里落下一个铅球,每个点都产生一个坑。一个batch的数据生成的坑的乘积就是batch对应的loss funtion的曲面。换一组铅球的话,最低点自然就会移动。

SofaSofa数据科学社区 DS面经 问答 实战

Zealing   2018-10-09 12:20



  相关主题

梯度上升算法是什么?   2回答

随机平均梯度法(Stochasitc Average Gradient)和随机梯度下降(SGD)有什么区别   3回答

最速下降法与梯度下降法   1回答

对于小批量随机剃度下降法(mini-batch SGD),如何选择每批样本的数量?   1回答

用SGD时陷入局部最优解的解决方法   3回答

RMSProp的直白解释   1回答

为什么梯度的反方向是函数下降最快的方向?   3回答

牛顿法到底是一阶优化算法还是二阶优化算法?   2回答

Adam优化算法   1回答

线性回归有精确的解析解为什么还要用梯度下降得到数值解?   4回答

优化算法中的“带冲量”是什么意思?   1回答

什么是Hessian矩阵和Jacobian矩阵   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!