1.凸优化和非凸优化
凸优化问题是指X是闭合的凸集且f是X上的凸函数的最优化问题,这两个条件任一不满足则该问题即为非凸的最优化问题。
之所以要区分凸优化问题和非凸的问题原因在于凸优化问题中局部最优解同时也是全局最优解,这个特性使凸优化问题在一定意义上更易于解决,而一般的非凸最优化问题相比之下更难解决。
详细的可以参考 https://blog.csdn.net/kebu12345678/article/details/54926287
2.非凸优化的解决方法
非凸优化问题转化为凸优化问题:
1)修改目标函数,使之转化为凸函数
2)抛弃一些约束条件,使新的可行域为凸集并且包含原可行域
近期出现了一些论文开始探讨非凸优化,不过第一批论文仍然坚持使用凸优化,致力于证明特定类别的非凸问题(具备与这些问题的自然实例类似的合适结构)可以在没有损失的前提下转换成凸问题。更准确地说,原始的非凸问题和修改后的凸问题具备共同的最优解,因此凸问题的解也可以自动解决非凸问题!但是,这种方法需要耗费大量时间解决所谓的松弛凸问题(relaxed convex problem)。
第二批论文研究在避免松弛凸优化的情况下可证明的非凸优化技术,并用于解决原本形式的非凸问题,似乎取得了与凸松弛方法同等质量的结果。伴随这些较新结果的是新的实现:对于稀疏恢复(sparse recovery)、矩阵补全(matrix completion)、稳健式学习(robust learning)等大量应用,这些直接技术能更快地收敛到最优解,速度通常比基于松弛凸优化的技术提高一个数量级甚至更多,而准确率与后者差不多。
这里有一个详细介绍: https://blog.csdn.net/R1uNW1W/article/details/79000042(讲了一篇论文Non-convex Optimization for Machine Learning)