1、MM 算法:

  MM算法是一种迭代优化方法,利用函数的凸性来寻找它们的最大值或最小值。 MM表示 “majorize-minimize MM 算法” 或“minorize maximize MM 算法”,取决于需要的优化是最大化还是最小化。 MM本身不是算法,而是一种如何构造优化算法的描述。

  MM算法的思想是不直接对目标函数求最优化解,转而找到一个目标函数的替代函数,对这个替代函数求解。每迭代一次,根据所求解构造用于下一次迭代的新的替代函数,然后对新的替代函数最优化求解得到下一次迭代的求解。通过多次迭代,可以得到越来越接近目标函数最优解的解。

  (1)目标函数最小化问题:

    此时,MM算法具体为 majorize-minimize MM 算法。思想是,每次迭代找到一个目标函数的上界函数,求上界函数的最小值。

  (2)目标函数最大化问题:

    此时,MM算法具体为  minorize maximize MM 算法。思想是,每次迭代找到一个目标函数的下界函数,求下界函数的最大值。

2、EM 算法:

  EM算法是机器学习中常用到的优化算法。EM算法可以被看作是MM算法的一个特例。

   然而,在EM算法中通常涉及到条件期望值,而在MM算法中,凸性和不等式是主要的焦点,并且在大多数情况下更容易理解和应用。

EM 算法的目标是:找到具有潜在变量(隐含变量)的模型的最大似然解。

【Reference】

1. A Tutorial on MM Algorithms.  David R Hunter &Kenneth Lange

2. MM algorithms for generalized Bradley-Terry models.  David R. Hunter (A Psychological Model for Consumption Prediction  cites it)

3. Wiki :MM algorithm

MM 算法与 EM算法概述的更多相关文章

  1. 机器学习优化算法之EM算法

    EM算法简介 EM算法其实是一类算法的总称.EM算法分为E-Step和M-Step两步.EM算法的应用范围很广,基本机器学习需要迭代优化参数的模型在优化时都可以使用EM算法. EM算法的思想和过程 E ...

  2. Python实现机器学习算法:EM算法

    ''' 数据集:伪造数据集(两个高斯分布混合) 数据集长度:1000 ------------------------------ 运行结果: ---------------------------- ...

  3. 【机器学习】K-means聚类算法与EM算法

    初始目的 将样本分成K个类,其实说白了就是求一个样本例的隐含类别y,然后利用隐含类别将x归类.由于我们事先不知道类别y,那么我们首先可以对每个样例假定一个y吧,但是怎么知道假定的对不对呢?怎样评价假定 ...

  4. K-means聚类算法与EM算法

    K-means聚类算法 K-means聚类算法也是聚类算法中最简单的一种了,但是里面包含的思想却不一般. 聚类属于无监督学习.在聚类问题中,给我们的训练样本是,每个,没有了y. K-means算法是将 ...

  5. 机器学习十大算法之EM算法

    此文已由作者赵斌授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 由于目前论坛的Markdown不支持Mathjax,数学公式没法正常识别,文章只能用截图上传了...     ...

  6. EM算法(4):EM算法证明

    目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(4):EM算法证明 1. 概述 上一篇博客我们已经讲过 ...

  7. [MCSM]随机搜索和EM算法

    1. 概述 本节将介绍两类问题的不同解决方案.其一是通过随机的搜索算法对某一函数的取值进行比较,求取最大/最小值的过程:其二则和积分类似,是使得某一函数被最优化,这一部分内容的代表算法是EM算法.(书 ...

  8. [转]EM算法(Expectation Maximization Algorithm)详解

    https://blog.csdn.net/zhihua_oba/article/details/73776553 EM算法(Expectation Maximization Algorithm)详解 ...

  9. EM算法及其推广

    概述 EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计. EM算法的每次迭代由两步组成:E步,求期望(expectation): ...

随机推荐

  1. 安卓5.1/7.1/8.1+wifi有叉问题解决

    7.1/8.1 adb shell "settings put global captive_portal_http_url http://captive.v2ex.co/generate_ ...

  2. Spring Boot中application.yml与bootstrap.yml的区别(转)

    说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序.且一个项目上要么yml或者properties,二选一的存在. Bootstra ...

  3. 读书笔记之:C语言深度剖析

    读书笔记之:C语言深度剖析 <C 语言深度解剖>这本书是一本“解开程序员面试笔试的秘密”的好书.作者陈正冲老师提出“以含金量勇敢挑战国内外同类书籍”,确实,这本书中的知识点都是一些在面试中 ...

  4. data-stream-as-disjoint-intervals

    https://leetcode.com/problems/data-stream-as-disjoint-intervals/ /** * Definition for an interval. * ...

  5. 第六章 企业项目开发--cookie

    注:本章代码基于<第五章 企业项目开发--mybatis注解与xml并用>的代码,链接如下: http://www.cnblogs.com/java-zhao/p/5120792.html ...

  6. Simplify Path leetcode java

    题目: Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home/&qu ...

  7. PowerDesigner导入SQL脚本

    方法/步骤     打开PowerDesigner,鼠标单击File菜单:   选择:Reverse Enginer,然后在他的子菜单选择Database...;   选择好DBMS(数据库管理系统) ...

  8. 全局 Style

    1.定义一个全局资源文件,如下 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pres ...

  9. 在 Linux 中永久修改 USB 设备权限

    问题 当我尝试在 Linux 中运行 USB GPS 接收器时我遇到了下面来自 gpsd 的错误.看上去 gpsd 没有权限访问 USB 设备(/dev/ttyUSB0).我该如何永久修改它在Linu ...

  10. 转: python _main_ _name_的说明

    转:http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792463.html python中if __name__ == '__main__': ...