1) 最大似然估计 MLE

模型已定,参数未知”。例如,我们知道这个分布是正态分布,但是不知道均值和方差;或者是二项分布,但是不知道均值。 最大似然估计(MLE,Maximum Likelihood Estimation)就可以用来估计模型的参数。MLE的目标是找出一组参数,使得模型产生出观测数据的概率最大:


python正态分布随机数可以限定范围吗 python正态概率图_似然函数

其中

python正态分布随机数可以限定范围吗 python正态概率图_似然函数_02

就是似然函数,表示在参数

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_03

下出现观测数据的概率。我们假设每个观测数据是独立的,那么有

python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_04

为了求导方便,一般对目标取log。 所以最优化对似然函数等同于最优化对数似然函数:


python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_05

举一个抛硬币的简单例子。 现在有一个正反面不是很匀称的硬币,如果正面朝上记为H,方面朝上记为T,抛10次的结果如下:


python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_06

求这个硬币正面朝上的概率有多大?

很显然这个概率是0.2。现在我们用MLE的思想去求解它。我们知道每次抛硬币都是一次二项分布,设正面朝上的概率是

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_03

,那么似然函数为:

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_08

x=1表示正面朝上,x=0表示方面朝上。那么有:


python正态分布随机数可以限定范围吗 python正态概率图_二项分布_09

求导:


python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_10

令导数为0,很容易得到:


python正态分布随机数可以限定范围吗 python正态概率图_二项分布_11

也就是0.2 。

2) 最大后验概率  MAP

以上MLE求的是找出一组能够使似然函数最大的参数,即

python正态分布随机数可以限定范围吗 python正态概率图_似然函数

。 现在问题稍微复杂一点点,假如这个参数

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_03

有一个先验概率呢?比如说,在上面抛硬币的例子,假如我们的经验告诉我们,硬币一般都是匀称的,也就是

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_03

=0.5的可能性最大,

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_03

=0.2的可能性比较小,那么参数该怎么估计呢?这就是MAP要考虑的问题。 MAP优化的是一个后验概率,即给定了观测值后使

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_03

概率最大:

python正态分布随机数可以限定范围吗 python正态概率图_似然函数_17

把上式根据贝叶斯公式展开:


python正态分布随机数可以限定范围吗 python正态概率图_似然函数_18

我们可以看出第一项

python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_19

就是似然函数,第二项

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_20

就是参数的先验知识。取log之后就是:

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_21

回到刚才的抛硬币例子,假设参数

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_03

有一个先验估计,它服从Beta分布,即:

python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_23

而每次抛硬币任然服从二项分布:


python正态分布随机数可以限定范围吗 python正态概率图_似然函数_24

那么,目标函数的导数为:


python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_25

求导的第一项已经在上面MLE中给出了,第二项为:


python正态分布随机数可以限定范围吗 python正态概率图_似然函数_26

令导数为0,求解为:


python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_27

其中,

python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_28

表示正面朝上的次数。这里看以看出,MLE与MAP的不同之处在于,MAP的结果多了一些先验分布的参数。

 

补充知识: Beta分布

Beat分布是一种常见的先验分布,它形状由两个参数控制,定义域为[0,1]


python正态分布随机数可以限定范围吗 python正态概率图_似然函数_29

Beta分布的最大值是x等于

python正态分布随机数可以限定范围吗 python正态概率图_最大似然估计_30

的时候:

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_31

所以在抛硬币中,如果先验知识是说硬币是匀称的,那么就让

python正态分布随机数可以限定范围吗 python正态概率图_似然函数_32

。 但是很显然即使它们相等,它两的值也对最终结果很有影响。它两的值越大,表示偏离匀称的可能性越小:

python正态分布随机数可以限定范围吗 python正态概率图_二项分布_33