1. 概述

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

2. 随机搜索

对于优化,一本很有名的书是Stephen Boyd 的凸优化(Convex Optimization)。但看过的人可能思维会受到一点限制。最简单、最基本的求最大/最小值的算法,除了直接求解,就是把所有的可能值枚举出来,然后求最大/最小就可以了,而不是凸优化里面的下降方法。

当然,一个基本的条件是定义域有界,这样即使定义域连续,我们也可以求到足够近似的解。譬如如果要求解函数

在[0,1]之间的最大值,采用搜索算法可得到如下结果

MATLAB 代码

a = rand(1,10000);a = sort(a);b = (cos(50*a) + sin(20*a)).^2;a = (1:10000)./10000;c = (cos(50*a) + sin(20*a)).^2;subplot(1,2,1);plot(a,c);xlabel('Function');subplot(1,2,2);plot(a,b,'.','MarkerSize',4.5);xlabel('Evaluation');max(b)

View Code

但问题是这种方法很有可能要花费很多资源,但即便如此,在低维的很多问题下,速度还是可以接受的。在这一方法中我没没有利用任何的需要求解函数的特征(除了映射关系),从这一角度上来看,搜索方法还是有很大改进的余地的。

3. 梯度方法

参考凸优化中的基本算法——梯度下降,我们构造了一序列进行搜索,序列满足

更一般的情况下,我们需要对上面的式子加上一些扰动。这是因为函数或是解空间不是那么规则(我的理解是凸性),此时算法变成了(Rubinstein)

其中,服从均匀分布且范数为1,的逼近。

4. 模拟退火   

另一类算法是模拟退火算法,这一算法最初被应用在有限集合最小化准则函数下(Metropolis et al),但后来也被用在最优化连续集合上。这一算法引入了温度来改变搜索的尺度。算法可描述如下

1. 按照指定分布仿真产生

2. 依概率接受,否则保持

3. 更新

同第一节中的例子,MATLAB代码

% 定义域[0,1]for m = 1:4x = zeros(1,2500);y = (cos(50*x) + sin(20*x)).^2;for k = 2:2500T_t = 1/log(k);a = max(0,x(k-1)-0.5);b = min(1,x(k-1)+0.5);x(k) = a+(b-a)*rand(1);y(k) = (cos(50*x(k)) + sin(20*x(k))).^2;if(y(k) < y(k-1))if(rand(1)>exp((y(k)-y(k-1))/T_t))x(k) = x(k-1);y(k) = (cos(50*x(k)) + sin(20*x(k))).^2;endendendsubplot(2,2,m);plot(x,y,'Marker','.');end

View Code

    由于函数在[0,1]之间有两个最大值,最后模拟退火算法在两个值之间来回抖动。

5. Prior Feedback

没看懂(p169)

6. 随机近似(Stochastic Approximation)

We next turn to methods that work more directly with the objective function rather than being concerned with fast explorations of the space.

意思就是实际上之前的搜索算法解决的实际上是(以最大化为例)

也就是在的定义域上搜索最大值的过程。然而这里回到更本质的问题上去计算函数的最大/最小值在什么地方取得。

7. Missing Data Models(缺失数据模型)

文中提到这些近似方法多用在缺失数据模型中,此处先简要介绍缺失数据模型。数据的缺失往往会使得观测模型变得很复杂,譬如说Censored Data Model(观测范围有限,小于或大于某常数的观测值缺失了)以及混合模型(mixture models)。以下举例说明:

Censored Data Model Likewood:

假设我们观测到独立同分布的服从,假设前m没有被限制幅度,后n-m个被限制为a(最大值),那么似然函数可以表示为

如果假设我们得到了最后n-m的准确值,那么完整的似然函数应该是

同时有

这几个式子告诉我们,观测量似然函数和完整似然函数之间的关系,这一点在下一节将会用到。

8. EM算法

文中的EM算法介绍实在是晦涩难懂,而且各种似然函数和条件概率写法没有区别……

可以参考 http://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm或是 JerryLead的文章(EM算法)The EM Algorithm。(这两个的思想不一样)

下面是书本上的表示,感兴趣的还是去看WIKI上的吧,这个表示写得真的乱七八糟


从缺失数据模型考虑,对于缺失数据而言,条件概率可以表示为

完整似然函数和观测数据似然函数之间的关系可以表示为(对于任意的都成立)注意这里的L都代表似然函数。

为了最大化,我们先只关注右侧式子的第一项。

我们之后最大化,如果使得式子取值最大,那么更新,也就是说

此处EM算法具体表现为

1. E-step 计算(注意此处求解最后只是代入求条件概率去了,所以最后还是会有出现)

2. 最大化


EM算法的思想在于,由于都是未知的,此时不好求解,但是一旦其中一个固定,求另一个以最大化似然函数就变得简单了,而迭代进行这个过程,会得到最优值,有点类似坐标下降法。(EM算法是一种贪婪的算法,所以可能会收敛到局部最优)

对于EM算法收敛到最优值,可以证明,序列满足

单且仅当时等号成立。这是因为(定义)

和(Jensen不等式)

9. 其他

转载于:https://www.cnblogs.com/sea-wind/p/4505823.html

[MCSM]随机搜索和EM算法相关推荐

  1. 聚类和EM算法——K均值聚类

    20211116 数据分析 | 聚类分析--kmean kmeans最优k值的确定方法-手肘法和轮廓系数法 - 简书 python大战机器学习--聚类和EM算法 注:本文中涉及到的公式一律省略(公式不 ...

  2. EM算法(Expectation Maximization)期望最大化算法

    原文:EM(期望最大化)算法初步认识 - 大数据和AI躺过的坑 - 博客园 https://www.cnblogs.com/zlslch/p/6965374.html 机器学习十大算法之一:EM算法( ...

  3. 一文详尽系列之EM算法

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 EM 算法,全称 Expectation Maximization Algorithm ...

  4. 人人都能看懂的EM算法推导

    作者丨August@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/36331115 编辑丨极市平台 估计有很多入门机器学习的同学在看到EM算法的时候会有种种疑惑:EM ...

  5. 来个例子,彻底弄懂什么是 EM 算法

    今天,借助 2008 年论文中给出的解释EM算法的例子,最后解释EM算法:E步和M步 论文题目: What is the expectation maximizationalgorithm? 这是论文 ...

  6. 一文让你完全入门EM算法

    EM(Expectation Maximum,期望最大化)是一种迭代算法,用于对含有隐变量概率参数模型的极大似然估计或极大后验估计.模型参数的每一次迭代,含有隐变量概率参数模型的似然函数都会增加,当似 ...

  7. 第八课.EM算法的合理性与算法推导

    目录 EM算法背景 EM算法迭代的合理性 EM算法推导 EM算法的E步和M步 分析EM算法的由来 EM算法背景 在硬币投掷和班级身高问题中,引入了隐变量问题,模型变成了混合模型,我们不能直接利用极大似 ...

  8. 期望最大化算法(Expectation-Maximum,简称EM)算法+EM算法+EM的应用

    期望最大化算法(Expectation-Maximum,简称EM)算法+EM算法+EM的应用 EM的应用 EM算法有很多的应用,最广泛的就是GMM混合高斯模型.聚类.HMM等等.具体可以参考Jerry ...

  9. 期望最大EM(Expectation Maximum)算法是什么?为什么有时候不用梯度下降而是用EM算法

    EM(Expectation  Maximum)的应用: EM算法有很多的应用,最广泛的就是GMM混合高斯模型.聚类(典型的KMeans算法的过程就属于EM算法).HMM等等. EM的核心工作就是隐变 ...

  10. 调整模型 与 提纯样本的关系过程有点类似EM算法过程,不知道这样理解是否是正确理解,固定A调B,B调到最优后,固定B再调A,循环往复,直至最优。

    调整模型 与 提纯样本的关系过程有点类似EM算法过程,不知道这样理解是否是正确理解,固定A调B,B调到最优后,固定B再调A,循环往复,直至最优.  个人理解

最新文章

  1. 澳洲计算机学,2020年澳洲计算机科学专业工作好找吗
  2. android layout的一些注意事项
  3. 爬取虎扑NBA首页主干道推荐贴的一只小爬虫,日常爬不冷笑话解闷
  4. Spring入门(二)之下载与安装
  5. 一文理类加载相关知识:类加载器、双亲委派、SPI
  6. PID控制器开发笔记之十一:专家PID控制器的实现
  7. 2018年4月工业用微型计算机,2018年自考工业用微型计算机押密试题及答案(六)...
  8. 8 定制10MINs 3
  9. ELK logstash 处理MySQL慢查询日志
  10. 开源GIS(四)——openlayers中geoserver发布的WMS与WFS加载
  11. Oracle数据库中的数据类型
  12. RK3568平台开发系列讲解(安卓篇)JNI调用流程分析
  13. postgres的brin索引
  14. 中国地质大学武汉大学计算机学院,董燕妮-地球物理与空间信息学院
  15. 怎么关闭计算机桌面的弹窗,电脑桌面弹出的广告怎么设置关闭
  16. 结构体中使用冒号对位的操作
  17. 谈谈近期为什么没有写博客的动力
  18. python爬虫 豆瓣电影
  19. 2012年移动SEO启示
  20. .NET CORE 下收发邮件之 MAILKIT

热门文章

  1. list 转 json,以及 json 解析
  2. keyphrase抽取论文在聊什么?
  3. 2020-2021年NLP有什么核心技术的更迭吗?或者有什么推动领域发展的paper吗?
  4. 北大助理教授献给「后浪」的建议:奔涌吧,深度学习!
  5. 【推荐系统】16篇最新推荐系统论文送你
  6. Transformers Assemble(PART I)
  7. 【收藏版】深度学习中的各种优化算法
  8. 每日算法系列【LeetCode 1006】笨阶乘
  9. python—python2内置函数与python3内置函数总结
  10. 数据结构与算法python—7.链表题目leetcode总结