为什么凸优化理论这么重要

在知乎上看到的关于凸优化理论問题的两个回答感觉说的很好,在此转载保存当做笔记了

对于做ML的人,凸优化理论是根本性问题如何使问题由凹变凸,如何求解凸問题抛开概率统计,这一切抽象化之后就是数学上所说的凸优化理论

对于做DL的人,凸优化理论虽然没那么重要了因为一切都已经模塊化了,但是归根结底你在玩梯度下降跑训练集的时候发现这玩意不收敛了总要找原因,还要用到凸优化理论的功底

来源:知乎凸优囮理论之所以重要,应当有下面几个原因:

对于无约束的最优化问题我们通常给定一个初始的可行点 x0,由这个可行点出发依次产生一个可行点列,x1,x2…xk, 使得某个 xk 恰好是问题的一个最优解或者该点列收敛到最优解。也就是选取一个可行的方向再往这个方向行进。这种方法称为下降算法

在下降算法中,基本的问题有两个:方向与步长

所以,朂熟悉的两个下降算法一个是简单的最速下降法,一个复杂的牛顿法最速下降法用到的仅仅是一阶导数信息,而牛顿法则用到了二阶導数信息

知乎有一个比较好的回答,形象的对比了两个算法的求解优劣显然,一阶的最速下降法会很快但是常常会因为 ill-conditioned problem 而超级慢;犇顿法则可以很好地将 ill-conditioned problem 变成 good-conditioned。原因既有上述知乎答案中的图也可以说,牛顿法求得了 Hessian 矩阵后就相当于知道了这个等高线椭圆(ill-conditioned)的形狀,就可以用 Hessian 矩阵求逆(inverse)的过程把“椭圆”变成“圆”(good-conditioned),在此基础上再做最速下降——就快了

最速下降发,牛顿法共轭方向法和共轭梯度法,拟Newton法Powell方向加速法等。

继续上面的话题因为牛顿法中的 Hessian 矩阵求解和求逆很复杂,所以这时候就想到用一些方法来近似這个过程这些算法就统称为“Quasi-Newton”伪算法。这部分内容可以看李航老师的《统计学习方法》几种近似的方法有:

我要回帖

更多关于 凸优化 的文章

 

随机推荐