zoukankan      html  css  js  c++  java
  • MM(Majorize-Minimization, Minorize-Maximization)优化方法

    MM算法思想

    MM算法是一种迭代优化方法,它利用函数的凸性来找到原函数的最大值或最小值。当原目标函数(f( heta))较难优化时,算法不直接对原目标函数求最优解,而去求解逼近于原目标函数的一个易于优化的目标函数(g( heta)),通过对这个替代函数求解,使得(g( heta))的最优解逼近于(f( heta))的最优解。每迭代一次,根据所求解构造用于下一次迭代的新的替代函数,然后对新的替代函数最优化求解得到下一次迭代的求解。通过多次迭代,可以得到越来越接近目标函数最优解的解。

    MM代表“Majorize-Minimization”或“Minorize-Maximization”,取决于所需的优化是最大化还是最小化。

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

    期望最大化(EM)算法可以被视为MM算法的特殊情况,在机器学习中经常用到。MM算法与EM算法有联系但是又有区别,在EM算法中通常涉及条件期望,而在MM算法中,凸性和不等式是主要焦点。

    以Minorize-Maximization为例, 使目标函数(f( heta))最大化。

    在算法的第(m(m=0,1...))步,若满足以下条件,则目标函数(f( heta_m))可用构造函数(g_m( heta_m))代替。

    [g_m( heta) leq f( heta_m) forall heta $$ $$ g_m( heta_m) = f( heta_m) ]

    MM算法步骤

    1. 使(m = 1),并初始化( heta_0)
    2. 构造(g_m( heta))满足条件((1))((2))
    3. ( heta_{m+1}=argunderset{ heta }{mathop{min }} g_m( heta))
    4. 使(m=m+1),返回步骤2。

    ( heta_m)和目标函数的替代函数的迭代步骤如下图所示。

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

    [f( heta_{m+1}) geq g_m( heta_{m+1}) geq g( heta_m| heta_m) = f( heta_m) ]

    本文作者:@qiuhlee
    本文为作者原创,转载请注明出处。本文地址:https://www.cnblogs.com/qiuhlee/p/9298877.html

  • 相关阅读:
    app缓存设计-文件缓存
    设计模式-模板方式
    设计模式-观察者模式
    java 类加载顺序
    Java项目添加log4j日志文件错误记录
    如何在eclipse中配置反编译工具JadClipse
    eclipse反编译插件jadClipse安装使用教程
    StringUtils工具类的isBlank()方法使用说明
    SLF4J: Failed to load class的问题及解决
    GitHub的Fork 是什么意思
  • 原文地址:https://www.cnblogs.com/qiuhlee/p/9298877.html
Copyright © 2011-2022 走看看