最大似然参数估计
来源:互联网 发布:windows pe如何分区 编辑:程序博客网 时间:2024/05/01 05:30
最普遍的情况是概率密度函数并不是已知的,在很多的问题中,潜在的概率密度函数必须从可用的数据中估计。例如有时可能知道概率密度函数的类型(高斯、瑞利等),但不知道具体的参数如方差或均值;相反,有时知道一些参数,但不知道概率密度的类型。有各种各样的方法解决这个问题,根据不同的已知信息采取不同的解决办法。这里介绍最大似然参数估计。
考虑一个M类的问题,特征向量服从p(x|wi),i=1,2,…,M的概率分布。假设似然函数以参数的形式给出,相应的参数构成未知向量θi。为了表示与θi相关,概率密度函数记为p(x|wi;θi)。目的是利用每一类中已知的特征向量集合来估计未知参数。接着进一步加假设每一类中的数据不影响其他类参数的估计,就可以用公式表达这个问题,并简化符号。最后可以各类独立地解决这样的问题。
设x1,x2,...,xN是从概率密度函数p(x|wi;θi)中随机抽取的样本,得到联合概率密度函数p(x;θi),其中x={x1,x2,...,xN}是样本集。假设不同的样本之间具有独立的统计性,则有
(1)
这是一个关于θ的函数,也称为θ关于x的似然函数。用最大似然估计法(Maximum Likelihood,ML)估计θ,计算似然函数的最大值,即
(2)
为了得到最大值,似然函数对θ的梯度必须为0,即
(3)
由于对数函数的单调性,定义对数似然函数为
(4)
于是式(3)等价于
(5)
求解式(5)得到θ,即为参数的估计值。
例如已知概率密度函数的类型为高斯分布,对参数进行最大似然估计:设x1,x2,...,xN是来源于已知协方差矩阵、未知均值的正态分布的样本向量,即联合概率密度函数的似然函数为
(6)
其中,l为样本向量的维数。求未知均值向量的最大似然估计。
对N个可用的样本,有对数似然函数为
(7)
对未知向量μ计算梯度,得
(8)
即
(9)
由此可知,对于高斯分布,均值向量的最大似然估计是样本均值。
同理,当均值向量和协方差均未知时可求得协方差的最大似然估计为
(10)
接下来以matlab语言进行实验,实验思路是通过给定均值向量和协方差矩阵生成高斯分布的40000个样本数据,然后运用最大似然估计求出样本的均值向量和协方差矩阵,其MATLAB代码如下:
mu=[2 1 3];sigma=[1 0 0;0 4 0;0 0 2];r=mvnrnd(mu,sigma,40000);%得到样本数据[x,y] = size(r);% 散点的均值计算mu1 = sum(r)/x;%最大似然估计的均值是样本均值% 散点的协方差矩阵计算a = 0;for i = 1:x a = a + (r(i,:,:) - mu1)' * (r(i,:,:) - mu1);endsigma1 = a/x;%根据最大似然估计的公式计算disp(['最大似然估计方法估计的',num2str(y),'维均值矢量为:']);disp(mu1);disp(['最大似然估计方法估计的',num2str(y),'维协方差矩阵为:']);disp(sigma1);
运行结果如下
从运行结果可知,有一定的估计误差,通过公式err=||u1-u2||来衡量估计误差,其中||·||表示向量和矩阵范数,一般取欧式范数。MATLAB代码如下
%估计误差Emu = norm((mu1 - mu),2);Esigma = norm((sigma1 - sigma),2);fprintf(['最大似然估计方法估计的',num2str(y),'维高斯分布的均值误差为:',num2str(Emu),'\n']);fprintf(['\n最大似然估计方法估计的',num2str(y),'维高斯分布的协方差误差为:',num2str(Esigma),'\n\n']);
运行结果如下:
上文已经得到均值和协方差的ML估计,它们也能递归计算,即
(11)
且 (12)
证明过程如下
- 最大似然参数估计
- 最大似然参数估计
- 最大似然参数估计与贝叶斯参数估计
- 参数估计-最大似然估计和贝叶斯参数估计
- 参数估计:最大似然估计MLE
- 参数估计之最大似然估计
- 参数估计:最大似然、贝叶斯与最大后验
- 参数估计:最大似然、贝叶斯与最大后验
- 参数估计:最大似然、贝叶斯与最大后验
- 模式分类对于最大似然参数估计与贝叶斯参数估计的一些理解
- 第三章 模式识别 - 最大似然估计和贝叶斯参数估计
- 参数估计-最大似然估计、MAP及贝叶斯估计
- 参数估计-最大似然估计、MAP及贝叶斯估计
- 数学篇----参数估计之最大似然估计法[概率论]
- 最大似然估计和贝叶斯参数估计.md
- 正则化在最大似然参数估计中的解释
- 极大似然参数估计
- 参数估计:最大似然估计、贝叶斯估计与最大后验估计
- 高性能网站架构之负载均衡 Nginx的安装
- Oracle数据库安装及配置
- js 让另一个方法失效
- shell多机器分发文件以及执行命令
- Debian下安装Mosquitto
- 最大似然参数估计
- 数字进度条NumberProgressBar
- 【web】对比时间大小的工具函数
- 图像边缘检测--OpenCV之cvCanny函数
- Linux YUM下载指定rpm包
- 1057. 数零壹(20) PAT 乙级
- unlocked_ioctl和compat_ioctl
- C/C++ 数组参数传递后,还能计算长度吗?
- Linux 文件与目录管理