极大似然估计、贝叶斯估计、EM算法
参考文献:http://blog.csdn.net/zouxy09/article/details/8537620
极大似然估计
已知样本满足某种概率分布,但是其中具体的参数不清楚,极大似然估计估计就是把待估参数看做是确定性的量,只是其取值未知。最佳估计就是使得产生当前样本的概率最大下的参数值。
贝叶斯估计
已知样本满足某种概率分布,但参数未知。贝叶斯估计把待估参数看成符合某种先验概率分布的随机变量。对样本进行观测的过程就是把先验概率密度转化为后验概率密度,这样就利用样本信息修正了对参数的初始估计值。
EM算法
EM算法
EM(Expectation-maximization,期望最大化)算法是一种迭代算法,用于含有隐含变量概率模型参数的极大似然估计或后验概率估计。
EM的算法流程
初始化分布参数θ;
重复以下步骤直到收敛:
E步骤:根据参数初始值或上一次迭代的模型参数来计算出隐性变量的后验概率,其实就是隐性变量的期望。作为隐藏变量的现估计值:

M步骤:将似然函数最大化以修正新的参数值:

这个不断的迭代,就可以得到使似然函数L(θ)最大化的参数θ了。
EM算法应用
EM算法有很多的应用,最广泛的就是GMM混合高斯模型、聚类(如K-means聚类)、HMM等等。具体可以参考JerryLead的cnblog中的Machine Learning专栏。
如果将样本看作观察值,潜在类别看作是隐藏变量,那么聚类问题也就是参数估计问题,只不过聚类问题中参数分为隐含类别变量和其他参数,这犹如在x-y坐标系中找一个曲线的极值,然而曲线函数不能直接求导,因此什么梯度下降方法就不适用了。但固定一个变量后,另外一个可以通过求导得到,因此可以使用坐标上升法,一次固定一个变量,对另外的求极值,最后逐步逼近极值。对应到EM上,E步估计隐含变量,M步估计其他参数,交替将极值推向最大。EM中还有“硬”指定和“软”指定的概念,“软”指定看似更为合理,但计算量要大,“硬”指定在某些场合如K-means中更为实用(要是保持一个样本点到其他所有中心的概率,就会很麻烦)。
另外,EM的收敛性证明方法确实很牛,能够利用log的凹函数性质,还能够想到利用创造下界,拉平函数下界,优化下界的方法来逐步逼近极大值。而且每一步迭代都能保证是单调的。最重要的是证明的数学公式非常精妙,硬是分子分母都乘以z的概率变成期望来套上Jensen不等式,前人都是怎么想到的。
在Mitchell的Machine Learning书中也举了一个EM应用的例子,明白地说就是将班上学生的身高都放在一起,要求聚成两个类。这些身高可以看作是男生身高的高斯分布和女生身高的高斯分布组成。因此变成了如何估计每个样例是男生还是女生,然后在确定男女生情况下,如何估计均值和方差。
EM算法例子
以K-means聚类为例,说明EM算法基本原理。
EM算法是一种迭代算法,用于含有隐变量概率模型参数的极大似然估计或后验概率估计。由于含有无法直接观测的隐变量,所以不能直接用极大似然估计。其基本思想是先初始化一个参数值;接着在这个参数值下求隐变量的期望值作为估计值;然后在隐变量估计值下反过来求参数的极大似然估计值来修正原来的参数值;如此迭代直到参数值不再明显变化为止。
对应到K-means聚类中,各样本应该属于哪个类是隐变量,每个类的中心是参数。相应地,聚类过程为先指定k个点作为聚类中心;接着将每个样本划归为距离最近的聚类中心所属的类,这样就将所有样本划为k类;然后对根据每个聚类的样本重新计算聚类中心;重复该过程直到聚类中心不再明显变化为止。
极大似然估计、贝叶斯估计、EM算法的更多相关文章
- 【ML数学知识】极大似然估计
它是建立在极大似然原理的基础上的一个统计方法,极大似然原理的直观想法是,一个随机试验如有若干个可能的结果A,B,C,... ,若在一次试验中,结果A出现了,那么可以认为实验条件对A的出现有利,也即出现 ...
- B-概率论-极大似然估计
[TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ ...
- LR为什么用极大似然估计,损失函数为什么是log损失函数(交叉熵)
首先,逻辑回归是一个概率模型,不管x取什么值,最后模型的输出也是固定在(0,1)之间,这样就可以代表x取某个值时y是1的概率 这里边的参数就是θ,我们估计参数的时候常用的就是极大似然估计,为什么呢?可 ...
- 极大似然估计MLE 极大后验概率估计MAP
https://www.cnblogs.com/sylvanas2012/p/5058065.html 写的贼好 http://www.cnblogs.com/washa/p/3222109.html ...
- 记录:EM 算法估计混合高斯模型参数
当概率模型依赖于无法观测的隐性变量时,使用普通的极大似然估计法无法估计出概率模型中参数.此时需要利用优化的极大似然估计:EM算法. 在这里我只是想要使用这个EM算法估计混合高斯模型中的参数.由于直观原 ...
- 含隐变量模型求解——EM算法
1 EM算法的引入1.1 EM算法1.2 EM算法的导出2 EM算法的收敛性3EM算法在高斯混合模型的应用3.1 高斯混合模型Gaussian misture model3.2 GMM中参数估计的EM ...
- 概率图模型之EM算法
一.EM算法概述 EM算法(Expectation Maximization Algorithm,期望极大算法)是一种迭代算法,用于求解含有隐变量的概率模型参数的极大似然估计(MLE)或极大后验概率估 ...
- 学习笔记——EM算法
EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(expectation):M步,求 ...
- EM算法(Expectation Maximization Algorithm)初探
1. 通过一个简单的例子直观上理解EM的核心思想 0x1: 问题背景 假设现在有两枚硬币Coin_a和Coin_b,随机抛掷后正面朝上/反面朝上的概率分别是 Coin_a:P1:-P1 Coin_b: ...
- EM算法(expectation maximization)
EM算法简述 EM算法是一种迭代算法,主要用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步完成: E步,求期望 M步,求极大. EM算法的引入 如果概率模型的变 ...
随机推荐
- 【转】【Asp.Net】asp.net(c#) 网页跳转
在asp.net下,经常需要页面的跳转,下面是具体的几种方法.跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于.net中response.redirect sever.execute se ...
- [py]导入模块3种方法
import os <--通过os.system()引用 from os import * <---直接system()引用,不建议使用 from os import argv i ...
- DropDownList中显示无限级树形结构
效果图: 数据库表: DirID:目录的ID,ParentID:目录的父路径ID,Name:目录的名字主要代码: using System;using System.Collections;using ...
- caffe windows学习:第一个测试程序
caffe windows编译成功后,就可以开始进行测试了.如果还没有编译成功的,请参考:caffe windows 学习第一步:编译和安装(vs2012+win 64) 一般第一个测试都是建议对手写 ...
- 那么小伙伴么,问题来了,WPF中,控件的Width="*"在后台怎么写?
用到DataGrid的列是自动生成的,但是大家都知道,WPF的DataGrid会在最后多出一列,通常的解决办法都是在最后一列的列宽上这样设置 Width="*",这样,最后一列多出 ...
- IOS开发之—— UITextView禁止Emoji输入
UITextView代理方法:判断 -(void)textViewDidEndEditing:(UITextView *)textView{ if ([self stringContai ...
- android用欢迎界面加载运行环境
以前一直以为splash页只是图好玩.. 今天才知道是应该把环境加载放在这个页面... 论坛和github上太多仿XXX的项目果然只能学习下ui的思路... 以前把环境加载放在application里 ...
- ASP.NET 系列:RBAC权限设计
权限系统的组成通常包括RBAC模型.权限验证.权限管理以及界面访问控制.现有的一些权限系统分析通常存在以下问题: (1)没有权限的设计思路 认为所有系统都可以使用一套基于Table设计的权限系统.事实 ...
- Boostrap(1)
1.简介 Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,可以认为bootstrap就是一个样式库. ...
- HTML5——单次定位请求
单次定位请求及点击一次只发出一次请求 下面是个获取经纬度的简单Demo 简要截图如下: 简要代码如下: <!DOCTYPE html> <html> <head> ...