总结自
目录
MM算法原理
MM(Majorization-Minimization)算法是优化领域的一个重要方法。与其说它是一个具体算法,不如说是一个算法框架,因为很多具体的算法都可以被推断成MM框架(例如坐标下降法(coordinate descent)、近端梯度法(proximal gradient)、EM算法等等)
用 Majorization 、 Minimization 两步骤迭代进行,通过不断求近似问题的最优解,逼近原问题的解。从数学角度来说,MM算法的核心思想是连续上限最小化(Successive upper bound minimization),设计一系列近似的优化(majorizing)函数来控制原函数的上限,通过最小化序列来收敛至原目标的最优解。
优化函数定义
目标函数f(x)
在点xk
处的优化函数 g(x|xk) 满足两点性质
-
占优条件(dominance condition)
-
切线条件(tangent condition)
只要满足这两个条件,如下迭代产生的序列必能收敛至局部最优解。
MM过程可视化
- 蓝色:原始的目标函数
- 绿色:一系列优化函数
- 红色:切点的选择
优化函数的构造-用MM导出经典算法
选择合适的优化函数尤为重要,通常有四种方式[7]:一阶泰勒展开、二阶泰勒展开、凸性不等式和特殊不等式。
一阶泰勒展开
二阶泰勒展开
凸不等式 – Expectation Maximization
还有一类就是用一些不等式放缩比如琴声不等式,可以用MM推出著名的EM算法。这个方面感觉文章[0]的ppt讲得特别好,这里就懒一下直接放截图啦。
实际应用例子
DC programming
[0] Majorization-Minimization Algorithms in Signal Processing, Communications, and Machine Learning
CCCP:Convex-Concave procedure(凹凸过程)
摘抄于 https://blog.csdn.net/qq_33530069/article/details/85132668
CCCP是一种单调递减全局优化的方法。其形式可以表示为凸函数-凸函数 或者 凸函数+凹函数
本质上是寻找两个凸函数之间梯度相同的两个点,逐步减小两个函数之间的距离,使其收敛到距离最接近的点