极大似然估计方法在机器学习中用的非常多,是一个必须要掌握的知识点。在周志华《机器学习》中这一章讲的较为简略,以下我将用简单的例子解释下极大似然估计。
极大似然估计是什么意思?
似然(likelihood),其实就是可能性的意思。体重为5kg的猫是橘猫的可能性是多少?在这里我们称为体重为5kg是橘猫的似然是多少?
极大似然估计是一种统计学的方法,我们用已知的样本数据分布去推测具体的分布情况。(这句话有些复杂,不理解可以先看下面内容)
为什么我们要使用极大似然估计?
当我们使用机器学习解决具体现实问题时,我们是无法确切知道具体的数据分布情况的。例如我们现在想知道橘猫的体重分布,显然,我们是无法一只只去测的。这种情况在机器学习中非常普遍,那我们可不可以用部分已知数据去预测整体的分布呢?极大似然估计就是一个解决这类问题的方法。但是,这并不是绝对准确的,只能说实际情况最有可能接近这种猜测的分布。
使用极大似然估计方法的两个条件
1.我们假定数据服从某种已知的特定数据分布型。
2.我们已经得到了一定的数据集。
以下用我们估计橘猫体重的分布情况举例。
根据现实经验和科学道理,我们可以确切得到两个条件。
1.动物的体重分布是符合正态分布的。(也可以说我们假定它服从正态分布)
2.我们抓住了学校里所有的橘猫,得到了100只橘猫的体重。
那么如何用这100只橘猫的数据集D去推测橘猫具体的体重分布呢?
我们将这100只橘猫体重设为数据集D
D服从一个数学期望为μ、标准方差为σ2的正态分布(也叫高斯分布),记为:
D∼N(μ,σ2)
这里有两个参数,期望μ决定了分布图形在坐标轴中的位置,σ决定了分布图形的幅度。(正态分布的图像根据参数都会有不一样的形态)
于是,我们最终要解决的问题就是如何确定参数μ和σ,为了方便起见我一们一般把参数写成一个参数向量θ=(μ,σ)。
我们把在参数向量θ下的正态分布下,某只一定体重的猫是橘猫的概率密度写做
我们将统计到的100只橘猫数据集D在参数向量θ下的正态分布下可能性用连乘处理
为什么我们要求L(θ)的最大呢?
如下图例子现在有三只猫,10kg,20kg,30kg他们都是橘猫,我们已经知道它们服从正太分布,那么基于目前手上的数据,到底是哪一种分布更可能呢?显然是左边的,因为根据实际情况,这种出现的可能性最大(你在一堆橘猫中随意抓,最容易抓到体重趋于中位的那些个体)。的确右边这种情况也是会出现的,极大似然估计并不是百分百准确,但在数据量足够的情况下,还是可信的。所以我们理应相信左边这种情况更加靠谱。
于是我们的目标就是关于L(θ)函数最大值时参数向量θ的取值
但在实际情况下我们会取对数
因为就我们上图这个简单的例子而言它的值就非常小了,实际情况更小,容易超出计算机的浮点范围,造成下溢。而且取ln相当于把连乘转化成累加,更加方便于求偏导计算极值。
根据分布函数不同,具体求解似然函数的过程也有所差异,这里不做讨论。