为什么 Non-Convex Optimization 受到了越来越大的关注?

近几年ICMl,NIPS 出现了许多Non-Convex Optimization的论文, 我虽然也在看Non-Convex Optimization,但是我仅在读论文的摘要和和老师交流的时候略微感受可能有这几个原因(不局限于):1> Deep Learning 大部分的目标函数是Non-Convex的。2> 如今出现了一些处理Non-Convex问题的理论技巧和方法。但是具体为什么Non-Convex问题受到越来越多的关注,我其实是不太清楚的。 比如可以尝试回答(1)具体Deep Learning 的Non-Convex体现…
关注者
1,430
被浏览
44,929

非凸优化本就该受到高度的关注,原因就如同上面“月光宝盒。。。”说的一样,现实问题中凸问题测度为0,绝大多数优化问题都是非凸的。所以我觉得问题应该是,为什么非凸优化现在才开始受到越来越多的关注。 凸优化与梯度方法紧密联系在一起,并不是因为梯度方法有多强,而是因为凸优化有多简单。其实优化的原理很简单,寻找关于最优解的信息,然后走向最优解。凸优化之所以简单,那就是每一个局部点的(负)梯度方向都指向最优解,因此求导就知道该往哪个方向走。而非凸、尤其是有大量局部极值的非凸优化问题,梯度与最优解不再有什么关系,最多是指向局部极值,因此梯度方法在有许多局部极值的非凸问题上不再有效。 上面有人讲了很多凸放松的例子,比如用L1范式代替L0、用nuclear norm代替rank等等,只有在很有限的范围下,这样的放松不会改变问题,更一般的情况,非凸问题进行凸放松,往往会改变原始问题。这是数学家最爱做的事,把不能解决的问题拉到能解决的范围。虽然优化变得好解了,然而离我们的目标可能更远了。 关于深度神经网络,似乎用梯度效果不错,是不是梯度方法就够了,可见最近ICML'17上的文章 “Failures of Gradient-Based Deep Learning“。 所以,优化是学习最重要的部分吗?我觉得不是,学习可以看作“表示+评价+优化”,优化只是学习的实施工具,泛化才是最关键的问题,如何设计更好的数据表示、更好的模型结构、更好的目标,以取得更好的泛化能力,是更需要考虑的问题。 然而,当我们只有梯度这一种实施工具的时候,表示得想着线性、模型要顾着简单、目标最好是凸的,削足适履,牺牲了设计机器学习系统的自由,失去了更多的可能性。 非凸优化的研究,是否是在凸优化的基础上继续往前走就可以解决,凸优化是否是非凸优化的基础,我感觉不会。两者是性质差别巨大,会搭积木也不是会盖大楼的基础,不同的问题需要有不同的方法。 顺便推销一下,其实有另一类优化方法——“非梯度优化”,更适合非凸优化问题。可见 zhihu.com/question/3867 这一类方法已显示出很好可用性,但还有很多富有挑战的问题有待研究。(打个广告)欢迎尝试非梯度优化python工具包 ZOOpt github.com/eyounx/ZOOpt 其中示例有非凸损失分类器学习、直接策略优化强化学习、L0范数稀疏回归直接求解等。梯度与非梯度的混合,可能更具潜质。 欢迎加入非梯度优化和学习的研究! for more possibilities! for freedom!