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

  数学 数值计算 最优化    浏览次数:12457        分享

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

 

MrMath   2017-05-26 22:26



   4个回答 
14

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


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

SofaSofa数据科学社区DS面试题库 DS面经

雷猴   2017-05-30 22:47

5

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

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


SofaSofa数据科学社区DS面试题库 DS面经

高代兄   2017-09-21 13:07

3

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

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

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2018-10-09 12:20

1

随机类型的算法,看收敛性质是看Expectation期望的,是error的期望值收敛。

SofaSofa数据科学社区DS面试题库 DS面经

yottatiana   2019-03-04 17:57



  相关讨论

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

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

Adam优化算法

最速下降法与梯度下降法

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

Newton–Raphson和牛顿法区别?

nesterov’s momentum和momentum的区别?

RMSProp的直白解释

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

学习率不当会导致sgd不收敛吗?

  随便看看

Pandas怎样对dataframe中的一个时间列进行排序?

如果数据不是正态分布,能用3sigma原则剔除异常值吗?

matplotlib一个画板上多个图叠加,如何决定图层上下?

如何清空pandas dataframe里的全部数据但是保留列名?

除了PCA,还有什么降维的方法?