MM(Majorize-Minimization, Minorize-Maximization)優化方法


MM算法思想

MM算法是一種迭代優化方法,它利用函數的凸性來找到原函數的最大值或最小值。當原目標函數\(f(\theta)\)較難優化時,算法不直接對原目標函數求最優解,而去求解逼近於原目標函數的一個易於優化的目標函數\(g(\theta)\),通過對這個替代函數求解,使得\(g(\theta)\)的最優解逼近於\(f(\theta)\)的最優解。每迭代一次,根據所求解構造用於下一次迭代的新的替代函數,然后對新的替代函數最優化求解得到下一次迭代的求解。通過多次迭代,可以得到越來越接近目標函數最優解的解。

MM代表“Majorize-Minimization”或“Minorize-Maximization”,取決於所需的優化是最大化還是最小化。

  • Majorize-Minimization:每次迭代找到原非凸目標函數的一個上界函數,求上界函數的最小值。
  • Minorize-Maximization:每次迭代找到原非凸目標函數的一個下界函數,求下界函數的最大值。

期望最大化(EM)算法可以被視為MM算法的特殊情況,在機器學習中經常用到。MM算法與EM算法有聯系但是又有區別,在EM算法中通常涉及條件期望,而在MM算法中,凸性和不等式是主要焦點。

以Minorize-Maximization為例, 使目標函數\(f(\theta)\)最大化。

在算法的第\(m(m=0,1...)\)步,若滿足以下條件,則目標函數\(f(\theta_m)\)可用構造函數\(g_m(\theta_m)\)代替。

\[g_m(\theta) \leq f(\theta_m) \ \ \forall \theta $$ $$ g_m(\theta_m) = f(\theta_m) \]

MM算法步驟

  1. 使\(m = 1\),並初始化\(\theta_0\)
  2. 構造\(g_m(\theta)\)滿足條件\((1)\)\((2)\)
  3. \(\theta_{m+1}=\arg\underset{\theta }{\mathop{\min }} \ g_m(\theta)\)
  4. 使\(m=m+1\),返回步驟2。

\(\theta_m\)和目標函數的替代函數的迭代步驟如下圖所示。

由以上條件可得如下不等式:

\[f(\theta_{m+1}) \geq g_m(\theta_{m+1}) \geq g(\theta_m|\theta_m) = f(\theta_m) \]

本文作者:@qiuhlee
本文為作者原創,轉載請注明出處。本文地址:https://www.cnblogs.com/qiuhlee/p/9298877.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM