极大似然估计(MLE)

1,什么是极大似然估计

似然(linkehood)和概率(probability)是两个近义词,不仅如此,其实归根结底他们描述的事情也差不太多。当针对于某一个条件概率函数:P(X|θ)时,我们可以在已知θ的时候把它称之为关于x的条件概率函数,或者在已知x的时候称之为关于θ的似然函数。

从上面的描述来看似然和概率的区别只不过是在不同的条件给定下的不同叫法而已,举个例子来看:假如有这样的一个盒子,盒子里黑球和白球的个数为1:1。随机在盒子中抽取10个球(拿完要扔进去,保证每次实验是服从相同独立分布~ i.i.d)拿出10个黑球的概率是多少?

\theta = 0.5

p(x|\theta) = 0.5^{10} = 0.09765625

很容易算把,也就是说当已知θ的情况下,计算x的值,这是就是关于x的条件概率函数。

还是这个例子,我们现在从盒子中抽10次(拿完要扔进去,保证每次实验是服从相同独立分布~ i.i.d),也可以叫做进行了10次采样,发现拿出的黑球5个白球5个,请问盒子中黑球和白球的比是多少呢?这就是在已知采样样本的情况下,去计算参数θ的,这就是关于参数θ的似然函数。

在上述例子中,盒子里黑球和白球的比到底应该是多少呢?大家可以从直观的认知里感觉到黑白比应该是1:1。这个很好解释,一共采样10次,5个白的,5个黑的,只有盒子里的黑白比是1:1的情况时,才最有可能发生这样的情况。

其实这就是极大似然估计的核心思想了,它要解决的就是在已知样本的情况下,对参数值进行估计,只要估计出的参数值能让样本最有可能发生,那这个参数值就是极大似然估计的解。

换言简之,针对已经观察到的确定好的一件事,这件事的决定因素是什么的时候才会让这件事最有可能发生。比如,刚进入屋子的人身上湿漉漉的,最有可能的解释就是外面下雨了。

2,极大似然估计的数学意义

虽然我们在现实中生活中不停的在依靠着直觉进行极大似然估计,但是无论是想论证这个结果还是需要把极大似然估计使用到编程之中都需要用数学的方式展示出来。

把上述的观点转换成数学语言认知起来可以更加准确,但是在理解上可能会困难一点点。下面开始了~

由于样本集中的样本都是服从相同独立分布(i.i.d),所以可以只考虑一类样本集D,来估计参数向量θ。记已知的样本集为:

D = {x_1,x_2,x_3…x_N}

联合密度概率函数P(D|θ)称之为相对于样本。。。的θ的似然函数(因为要求样本最有可能发生的情况,所以要让针对于θ而言每一个样本x_i发生的概率都进行相乘运算)

l(\theta) = p(D|\theta) = p(x_1,x_2,x_3…x_N|\theta) = p(x_1|\theta)p(x_2|\theta)p(x_3|\theta)…p(x_3|\theta) = \prod^N_{i=1}p(x_i|\theta)

构造这个函数	l(θ)的目的则是要求出一个\hat \theta能够让似然函数l(θ)最大,那这个theta帽就是“最有可能”的参数值了。

3,对极大似然函数进行求解

从上述内容可以知道这样几个内容,①我们已经知道了一个关于θ的函数l(theta) ②我们需要对这个函数l(theta)求最大值解  ③针对这个函数L(theta)的最大解就是极大似然估计目标的参数值

所以下面就要对函数l(theta)求导就好了,只要找到该函数导数为0的值就可以找到极值了,且慢!!如果直接对这样一个连乘函数进行求到的计算难度太大了,所以我们一般都会对这个式子进行一个简单的处理。

定义一个对数似然函数H(theta) = lnl(theta)

(这里估计小白很容易蛋疼,为什么又多出来了一个函数呢?直接求导就好了啊~ 下面就从三方面解释一下这里为什么要定义一个对数似然函数:①从数学角度解释,因为log函数是一个严格单调递增函数,所以对求解theta的值毫无影响。②从计算角度解释,从求导计算量上来说,连加要比连乘要简单。③从意义上解释一下,log化后的函数可以避免在取某一个theta时样本的发生概率为0导致的计算浪费)

把式子完成的写出,并且整理得

\hat\theta =arg\max_\theta H(l(\theta)) = arg\max_\theta ln(l(\theta)) = arg \max_\theta \sum^N_{i=1}lnP(x_i|\theta)

对上式进行求导计算

1,未知参数为标量(也就是θ只有一个),在似然函数满足连续、可微的正则条件下,为下面方程的解

\frac{\partial H(\theta)}{\partial \theta} = \frac{\partial ln l(\theta)}{\partial\theta} = 0

2,未知参数为向量(也就是说θ有N个),若似然函数满足连续可导的条件,为下面方程的解

\Delta H(\theta) = \Delta_\theta lnl(\theta) = \sum^N_{i=1}\Delta_\theta lnP(x_i|\theta) = 0

4,极大似然估计算法总结和案例

求最大似然估计量theta-hat的一般步骤可以总结以下:

    (1)写出似然函数;

    (2)对似然函数取对数,并整理;

    (3)求导数;

    (4)解似然方程。	

针对最开始的案例来说,随机抽取一个球,设抽到黑球的概率为p,令样本为

X_i= \begin{cases} 1 & 第i次抽到的是黑球 \ 0&第i次抽到的是白球 \end{cases} i = 1,2,…100,

P(x_i=1) = p\P(x_i =0) = 1-p

所以抽取10个球拿出5个白球和5个黑球的似然公式为

l(\theta) = P(X=x_1)P(X=x_2)P(X=x_3)…P(X=x_n) = \prod^{10}_{i=1} P(X=x_i) = p{5}(1-p)5

接下来就要求这个似然函数的最大值(太简单了,就不需要再设对数似然函数了)

\hat\theta = arg\max_\theta l(\theta) = \frac{\partial l(\theta)}{\partial \theta} = 5(1-p)-5p=0

最后的结果就是p=0.5啦。也就是当黑球和白球的比例为1:1的时候,才最有可能发生实验情况~

5,极大似然的使用场景

极大似然的出发点是使得当前样本发生的可能性最大,所以当我们要求解的问题是关于数据模型为概率分布的数据时(大多为分类问题),就可以参考使用极大似然来作为代价函数(loss function)往往会在逻辑上更加清晰。

对于某些数值计算的求解问题也可以转换一下思考方式,比如在逻辑回归(LR)中的step2,也就是设定loss function时,如果选择数值运算的方式(RMSE、MES、SSE...)去定义损失值,loss function会是非凸函数,在求导计算时会有N多个极值点。所以可以更换思路,选择极大似然作为loss function(LR的对数似然函数是凸函数,求证过程自行查询)就可以用梯度下降法轻松的求解了。

总结

使用极大似然需要注意这样两点:①概率密度函数的选取很重要,模型正确,我们会得到较准确的估计值,如果模型都错了,那估计半天的参数,肯定也没啥意义了。②因为极大似然估计是源于大数定理的,它的方程解只是一个估计值,所以只有在样本数趋于无限多的时候,它才会接近于真实值。

极大似然估计可以将概率密度估计问题转化为参数估计问题,所以它的出现往往是以损失函数(loss function)的面目出现,我们在满足以上的要求之后就可以去尝试一下用到项目中咯~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值