机器学习中的极大似然估计

极大似然估计

这里有一个对极大似然估计较好的理解 求极大似然函数估计值的一般步骤:
(1) 写出似然函数;
(2) 对似然函数取对数,并整理;
(3) 求导数 ;
(4) 解似然方程 。

似然函数:

python极大似然估计高斯分布画图 极大似然估计编程_统计学


那么01分类任务中的似然函数是什么呢?

python极大似然估计高斯分布画图 极大似然估计编程_人工智能_02


P是概率,y就是对应的二分类的值,因为当y=0的时候这一项就相当于不存在了。

顾名思义,就是通过最大的可能性估计出最有可能的参数值。

举个例子,你想要的知道学校的男生和女生的身高分布。你该怎么做呢?首先假设全校同学的身高分布是符合正态分布的。那么,我们就需要知道正态分布的均值和方差。那该怎么求呢?总不能全部统计一下吧,这样太费时费力了。然后你就想到了一个好办法,通过随机抽样,取出100个男生和100个女生,然后统计他们的身高分布,然后用这200个人的身高分布近似代替总体的身高分布。

上面这就是极大似然估计的思想。下面就来具体解决一下实际过程中的一些问题。

第一个问题:怎么样抽取200个人?

python极大似然估计高斯分布画图 极大似然估计编程_统计学_03


第二个问题:那为什么就恰好抽到了这200个人呢?

其实这个问题真正想问的是,我们抽出来的这200个人的身高具有代表性吗?

当然具有代表性了。。。(不然你让我怎么继续讲下去啊),毕竟只要你够随机,一般是具有代表性的。

在学校那么学生中,我一抽就抽到这 200 个学生(身高),而不是其他人,那是不是表示在整个学校中,这 200 个人(的身高)出现的概率极大啊,也就是其对应的似然函数极大,即

python极大似然估计高斯分布画图 极大似然估计编程_极大似然估计_04


所以这就是我们要求的极大似然估计量。

第三个问题:怎么求极大似然函数?
分别对所有的参数求导呗。

总结一下:
极大似然估计你可以把它看作是一个反推。多数情况下我们是根据已知条件来推算结果,而极大似然估计是已经知道了结果,然后寻求使该结果出现的可能性极大的条件,以此作为估计值。
比如说,

假如一个学校的学生男女比例为 9:1 (条件),那么你可以推出,你在这个学校里更大可能性遇到的是男生 (结果);

假如你不知道那女比例,你走在路上,碰到100个人,发现男生就有90个 (结果),这时候你可以推断这个学校的男女比例更有可能为 9:1 (条件),这就是极大似然估计。

极大似然估计,只是一种概率论在统计学的应用,它是参数估计的方法之一。说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,通过若干次试验,观察其结果,利用结果推出参数的大概值。

极大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率极大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。

机器学习中的极大似然估计

看到上面的总结是不是以为结束了。。。我们的题目是机器学习中的极大似然估计,上面根本和机器学习没有任何关系啊。下面才是我们要讲的重点。

首先复习一下求极大似然函数的一般步骤:
(1)写出似然函数;

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

(3)求导数,令导数为 0,得到似然方程;

(4)解似然方程,得到的参数。

应用一
回归问题中的极小化平方和:

python极大似然估计高斯分布画图 极大似然估计编程_人工智能_05


python极大似然估计高斯分布画图 极大似然估计编程_极大似然估计_06


结论:极大化似然函数和最初的最小二乘损失函数的估计结果是等价的。但是要注意这两者只是恰好有着相同的表达结果,原理和出发点完全不同。

应用二:分类问题中极小化交叉熵 (极小化代价函数)

python极大似然估计高斯分布画图 极大似然估计编程_统计学_07


在上面的基础上稍微进行一定的变换。

添加一项与参数θ完全无关的项。

python极大似然估计高斯分布画图 极大似然估计编程_python极大似然估计高斯分布画图_08


上式方括号内就是KL散度,所以如果直建模了条件概率,极大似然估计也等同于最小化KL散度等价。

结论:交叉熵和KL散度的本质就是似然函数的极大化。