MM(Majorize-Minimization, Minorize-Maximization)优化方法
MM算法是一种迭代优化方法,它利用函数的凸性找到它们的最大值或最小值。算法寻找一个易于优化的目标函数替代原目标函数,然后对这个替代函数求解,以逼近于原目标函数的最优解。每迭代一次,根据所求解构造用于下一次迭代的新的替代函数,然后对新的替代函数最优化求解得到下一次迭代的求解。
原文作者:@qiuhlee
本文转载自:https://www.cnblogs.com/qiuhlee/p/9298877.html
MM算法是一种迭代优化方法,利用函数的凸性来寻找它们的最大值或最小值。 MM表示 “majorize-minimize MM 算法” 或“minorize-maximize MM 算法”,取决于需要的优化是最小化还是最大化。实际上,MM本身不是算法,而是一种如何构造优化算法的描述。
MM算法是一种迭代优化方法,它利用函数的凸性来找到原函数的最大值或最小值。当原目标函数 f ( θ ) f(\theta) f(θ)较难优化时,算法不直接对原目标函数求最优解,而去求解逼近于原目标函数的一个易于优化的目标函数 g ( θ ) g(\theta) g(θ),通过对这个替代函数求解,使得 g ( θ ) g(\theta) g(θ)的最优解逼近于 f ( θ ) f(\theta) f(θ)的最优解。每迭代一次,根据所求解构造用于下一次迭代的新的替代函数,然后对新的替代函数最优化求解得到下一次迭代的求解。通过多次迭代,可以得到越来越接近目标函数最优解的解。
目标函数最小化问题:
- 此时,MM算法具体为Majorize-Minimization:每次迭代找到原非凸目标函数的一个上界函数,求上界函数的最小值。
目标函数最大化问题:
- 此时,MM算法具体为Minorize-Maximization:每次迭代找到原非凸目标函数的一个下界函数,求下界函数的最大值。
期望最大化(EM)算法可以被视为MM算法的特殊情况,在机器学习中经常用到。MM算法与EM算法有联系但是又有区别,在EM算法中通常涉及条件期望,而在MM算法中,凸性和不等式是主要焦点。
以Minorize-Maximization为例, 使目标函数 f ( θ ) f(\theta) f(θ)最大化。
在算法的第 m ( m = 0 , 1... ) m(m=0,1...) m(m=0,1...)步,若满足以下条件,则目标函数 f ( θ m ) f(\theta_m) f(θm)可用构造函数 g m ( θ m ) g_m(\theta_m) gm(θm)代替。
g m ( θ ) ≤ f ( θ m ) ∀ θ g m ( θ m ) = f ( θ m ) g_m(\theta) \leq f(\theta_m) \ \ \ \ \ \forall \theta \ \ \ \ \\ g_m(\theta_m) = f(\theta_m) gm(θ)≤f(θm) ∀θ gm(θm)=f(θm)
MM算法步骤
- 使 m = 1 m = 1 m=1,并初始化 θ 0 \theta_0 θ0。
- 构造 g m ( θ ) g_m(\theta) gm(θ)满足条件 ( 1 ) (1) (1)和 ( 2 ) (2) (2)。
- 令 θ m + 1 = arg min θ g m ( θ ) \theta_{m+1}=\arg\underset{\theta }{\mathop{\min }} \ g_m(\theta) θm+1=argθmin gm(θ)。
- 使 m = m + 1 m=m+1 m=m+1,返回步骤2。
θ m \theta_m θm和目标函数的替代函数的迭代步骤如下图所示。
由以上条件可得如下不等式:
f ( θ m + 1 ) ≥ g m ( θ m + 1 ) ≥ g ( θ m ∣ θ m ) = f ( θ m ) f(\theta_{m+1}) \geq g_m(\theta_{m+1}) \geq g(\theta_m|\theta_m) = f(\theta_m) f(θm+1)≥gm(θm+1)≥g(θm∣θm)=f(θm)
博主不定期发布『保研/推免、C/C++、5G移动通信、Linux、生活随笔』系列文章,如果觉得本文对你有帮助,可以『点赞+关注』支持一下哦!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)