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算法步驟
- 使\(m = 1\),並初始化\(\theta_0\)。
- 構造\(g_m(\theta)\)滿足條件\((1)\)和\((2)\)。
- 令\(\theta_{m+1}=\arg\underset{\theta }{\mathop{\min }} \ g_m(\theta)\)。
- 使\(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
