极大似然估计是概率论中一个很常用的估计方法,在机器学习中的逻辑回归中就是基于它计算的损失函数,因此还是很有必要复习一下它的相关概念的。
背景
先来看看几个小例子:
- 猎人师傅和徒弟一同去打猎,遇到一只兔子,师傅和徒弟同时放枪,兔子被击中一枪,那么是师傅打中的,还是徒弟打中的?
- 一个袋子中总共有黑白两种颜色100个球,其中一种颜色90个,随机取出一个球,发现是黑球。那么是黑色球90个?还是白色球90个?
看着两个小故事,不知道有没有发现什么规律...由于师傅的枪法一般都高于徒弟,因此我们猜测兔子是被师傅打中的。随机抽取一个球,是黑色的,说明黑色抽中的概率最大,因此猜测90个的是黑色球。
他们有一个共同点,就是我们的猜测(估计),都是基于一个理论:概率最大的事件,最可能发生
其实我们生活中无时无刻不在使用这种方法,只是不知道它在数学中是如何确定或者推导的。而在数理统计中,它有一个专业的名词:
极大似然估计(maximum likelihood estimation, MLE),通俗的说就是 —— 最像估计法(最可能估计法)
数学过程
极大似然原理与数学表示
官方一点描述上面的过程,即:有n个实验结果,({ A }_{ i })到({ A }_{ n }),如果({ A }_{ j })发生了,则意味着({ A }_{ j })发生的概率最大。
即,一次试验就发生的事件,这个事件本身发生概率最大
PS
举个例子,我们在学校衡量学习成绩的标准就是考试成绩,高考更是一考定终身的感觉。高考成绩的好坏,则可以当做一个学生能力的体现,虽然有的人考试紧张考砸了,有的人超常发挥了,但是从概率上来说,高考的成绩基本可以判断这个人的(学习)能力。基于极大似然的解释就是,我们高考的成绩很大程度上反应了平时的学习能力,因此考得好的(当前发生的事件),可以认为是学习好的(所有事件发生概率最大的)。
再抽象一点,如果事件发生是关于 ( heta) 参数的,那么一次事件放生时,样本为({x}_{1},...{x}_{k}),那么(hat { heta } ({x}_{1},...{x}_{k}))就是( heta)的估计值。当( heta=hat { heta } ({x}_{1},...{x}_{k}))时,当前样本发生的概率最大。
PS
再举个射箭的例子,在《权力的游戏》中有个场景,老徒利死的时候,尸体放在穿上,需要弓箭手在岸边发射火箭引燃。但是当时的艾德慕·徒利公爵射了三箭都没中,布林登·徒利实在看不下去了,通过旗帜判断风向,一箭命中!
因此箭能否射中靶心,不仅跟弓箭手的瞄准能力有关,还跟外界的风向有关系。假设不考虑人的因素,但看风向...同样的瞄准和力度,风太大不行、太小也不行....那我们给风的大小设置一个值为( heta)。假设一名弓箭手射出了三只箭,分别是8环、6环、7环(即({x}_{1}=8),({x}_{2}=6),({x}_{3}=7)),当天风的大小为88。那么我们认为只有( heta=88),发生上面事件的概率最大。
极大似然估计法
如果总体X为离散型
假设分布率为(P=p(x; heta )),x是发生的样本,( heta)是代估计的参数,(p(x; heta))表示估计参数为( heta)时,发生x的的概率。
那么当我们的样本值为:({x}_{1},{x}_{2},...,{x}_{n})时,
其中(L( heta))成为样本的似然函数。
假设
有 (hat{ heta}) 使得 (L( heta)) 的取值最大,那么 (hat { heta})就叫做参数 ( heta) 的极大似然估计值。
如果总体X为连续型
基本和上面类似,只是概率密度为(f(x; heta)),替代p。
解法
- 构造似然函数(L( heta))
- 取对数:(lnL( heta))
- 求导,计算极值
- 解方程,得到( heta)
解释一下,其他的步骤很好理解,第二步取对数是为什么呢?
因为根据前面你的似然函数公式,是一堆的数字相乘,这种算法求导会非常麻烦,而取对数是一种很方便的手段:
- 由于ln对数属于单调递增函数,因此不会改变极值点
- 由于对数的计算法则:(ln{ a }^{ b }=blna)、(lnab=lna+lnb) ,求导就很方便了
例子这里就不举了,感兴趣的话,可以看看参考的第二篇里面有好几个求解极大似然估计的例子。