凸优化中如何改进GD方法以防止陷入局部最优解

在对函数进行凸优化时,如果使用导数的方法(如:梯度下降法/GD,牛顿法等)来寻找最优解,有可能陷入到局部最优解而非全局最优解。

为了防止得到局部最优,可以对梯度下降法进行一些改进,防止陷入局部最优。

但是请注意,这些方法只能保证以最大的可能找到全局最优,无法保证100%得到全局最优。

一、incremental GD/stochastic GD

在GD中,是需要遍历所有的点之后才计算w的变化的;但是,在stochastic GD中,每输入一个点,就根据该点计算下一步的w,这样,不仅可以从batch training变成online training方法,而且每次是按照单点的最优方向而不是整体的最优方向前进,从而相当于在朝目标前进的路上多拐了好多弯,有可能逃出局部最优。

二、momentum方法

momentum相当与记忆住上一次的更新。在每次的更新中,都要加一个k倍的上一次更新量。这样,也不再是按照标准路线前进,每次的步骤都容易受到上一次的影响,从而可能会逃出局部最优。另外,也会加大步长,从而加快收敛。

三、我印象中还有一种方法?

再回去查书的时候没有翻到,但我印象中记得还有一种思路。在上面两种对GD的改进中,w的更新都是在所有维度上同时更新的,但是,可以通过每次只在一个维度上进行更新,相当于把多维上的一步变成了多个一维上的一步,这样最终的“行走路线”会和标准的GD有区别,因此,也有可能逃出局部最优。


你可能感兴趣的:(机器学习)