苏州 网站建设一个品牌的策划方案
简介:
极大似然方法(Maximum Likelihood Estimation, MLE)是一种用于估计统计模型参数的方法。其核心思想是基于观测数据来寻找最可能产生这些数据的模型参数。
早在1821年,德国数学家高斯(C. F. Gauss)就利用极大似然方法MLE取估算误差概率分布(正态分布)的概率密度函数。(高斯这老哥的思想领先了100年)
但这一概念则由罗纳德·费希尔(R. A. Fisher)在1922年的论文《On the mathematical foundations of theoretical statistics, reprinted in Contributions to Mathematical Statistics》进行了系统阐述,并且首先探讨了这种方法的一些性质。极大似然估计这一名称也是出自费希尔。
极大似然估计法MLE
描述函数和似然函数
极大似然方法很简单,就是利用观测值去推测数学描述模型的参数。
没错,利用极大似然估计法时,我们需要提前知道观测数值的分布的描述函数(一般为概率密度分布式),或者自己去进行假设结构,只有得到描述函数,将它带入似然函数(Likelihood Function)后,我们才能基于MLE的框架利用偏导求解。
因此,在讲 MLE前,我们要明确两个概念:描述函数和似然函数。这两个概念在MLE中是不同层次的,很多初学者会将两者弄混。
描述函数:描述“发生概率”(或者称为密度)与对象变量x之间的映射关系,这是一个理想化的概率,写为
, 常见的的描述函数如正态分布概率密度函数:
似然函数 :描述描述函数参数变化时,当前抽样结果对应发生概率的函数。写作:
其中,意味,描述函数参数为
组合下,集合X(抽样结果)发生的概率,其值为
(取值0~1),
是单次抽样中,描述函数参数为
组合下,结果为
的概率,这些概率的交集(即连乘)就是最终概率
注意:
根据似然函数的结构特质,抽样的各类事件或数值相互独立,无不影响。
在构建似然函数时,抽样结果是既定发生的(也就是固定的),否者无法进行MLE。
似然函数中,描述函数的可变参数为自变量,抽样结果发生的概率是应变量,因此MLE的本质就是找到一组最佳可变参数,使得既定发生的抽样结果对应发生的概率最大,故称作为最大似然估计。
MLE:基于似然函数对描述函数的参数进行反推
从数学思想的角度来说,MLE就是基于现实得到的数据,基于概率学对描述函数的参数进行反推。
假设神明以80为均值,方差为40以正态分布随机地赋予人类寿命,对于寿命的分布,理想的描述函数为:
对于身为人类的我而言,关于寿命,我什么都不知道,只能借助抽样调查和最大似然估计反向推测神明的设计,于是我做了一项3个单位调查(我们有请MATLAB来帮忙模拟一下):
% 设置均值和方差
mu = 80;
sigma_squared = 40;
sigma = sqrt(sigma_squared); % 标准差是方差的平方根% 随机生成3个样本
num_samples = 3;
samples = normrnd(mu, sigma, [num_samples, 1]);% 显示生成的样本
disp(samples);%%83.400591.598565.7138
人们不能总是直接猜到上帝的想法,在这个问题中,假如我是一个不知道正态分布概率密度函数的白痴,要不这个问题就太简单了,没办法体现MLE的用法
得到抽样数据后,我认为神明关于寿命的安排应该是长这个样吧:一个以e为底的对数函数,满足以x=c点中心对称,且其在定义域的积为1。(当然,以2、3、4其他自数为底也是可以的,但是对数求导过程会复杂一些,有兴趣的读者可以自己去尝试一下)
其中,定义域的积必须为1,否则其参数的偏导=0会无解
即:
令
根据高斯积分定义
且
原式:
故a、d、b应满足:
既然如此,我们就用d和b表示a吧,于是:
d被消掉了 令新b=-b变化一下:
看来不需要上帝,我凭实力构建了一个类正态概率密度函数(笑)
继续!
根据MLE,似然函数:
,其中
及
似然函数两边取对数,方便求导
展开:
在对似然函数中对参数b求偏导
在对似然函数中对参数c求偏导
其中,对于c的偏导数为0最好解,将抽样结果 83.4005,91.5985和65.7138带入(很明显,就是取抽样均值时,c的偏导为0):
将c=80.2376带入,再令b的偏导数为0,有
解得:
因此利用在3样本采样下,利用MLE,我们推测出概率密度函数最有可能的样子,即最大似然估计的概率密度函数为:
上帝给的真实概率密度函数为:
这差距还挺大啊,哈哈哈,因为要手算,所以我只抽样了三个样本啊,接下来让MATLAB秘书帮我们自动化地计算采样100、1000、和10000下的基于MLE的概率密度函数。
%% 设置均值和方差
mu = 80;
sigma_squared = 40;
sigma = sqrt(sigma_squared); % 标准差是方差的平方根% 随机生成100个样本
num_samples = 100;
samples = normrnd(mu, sigma, [num_samples, 1]);%%将计算的偏导数,进行自动化计算%1。求解c的偏导
c=mean(samples);
%2.求解b的偏导,利用了自定义的函数
b = solve_for_b_explicit(samples, c);disp([num2str((b/pi)^(1/2)),'*e^(',num2str(-b),'(x-',num2str(c),'))'])function b = solve_for_b_explicit(x, c)% 输入:% x - 输入数组% c - 已知常数%% 输出:% b - 求解的值% 计算输入数组的元素个数n = length(x);% 计算求和部分sum_xi_minus_c_squared = sum((x - c).^2);% 计算b的显式解b = n / (2 * sum_xi_minus_c_squared);
end
采样数量为10时:0.044206*e^(-0.0061392(x-76.8192)^2)
采样数量为50时:0.072282*e^(-0.016414(x-80.4277)^2)
采样数量为100时:0.05551*e^(-0.0096803(x-80.1956)^2)
采样数量为500时:0.064705*e^(-0.013153(x-80.2877)^2)
采样数量为1000时:0.062513*e^(-0.012277(x-79.9881)^2)
采样数量为10000时:0.06283*e^(-0.012402(x-80.0022)^2)
真实概率密度分布函数:0.631*e^(-0.0125(x-80 )^2)
可以发现,随着采样数量的增加,最大似然估计的分布函数越来越准确!
总结:
通过详细的推导过程和问题的实践,我们可以很好的掌握MLE的基本思想和基础理论。在本篇文章中,我们在不知道正太分布概率密度分布函数的背景下,仍利用MLE拟合出了具体的数值表达式,可见MLE对数据分布的强大拟合能力。
MLE是信息论和机器学习的重要方法,比如:在隐马尔可夫模型(HMM)等序列数据建模中,MLE通过Baum-Welch算法(一种特殊的期望最大化EM算法)来迭代地优化模型参数。