上一篇文章我们已经了解了似然函数是什么,但怎么去把里面的 θ θ θ给求出来是个更加关键的问题。这篇我们将来探讨下这个问题。
还是先举一个例子,假设有一个造币厂生产某种硬币,现在我们拿到了一枚这种硬币,想试试这硬币是不是均匀的。即想知道抛这枚硬币,正反面出现的概率(记为 θ θ θ)各是多少?
这是一个统计问题,回想一下,解决统计问题需要什么? 数据!
于是我们拿这枚硬币抛了10次,得到的数据 x 0 x_0 x0是:反正正正正反正正正反。我们想求的正面概率 θ θ θ是模型参数,而抛硬币模型是二项分布(除非硬币立起来,那么这个时候要马上去买彩票,还搞什么算法)。
那么,出现实验结果
x
0
x_0
x0(即反正正正正反正正正反)的似然函数是多少呢?式子是这样的:
f
(
x
0
,
θ
)
=
(
1
−
θ
)
×
θ
×
θ
×
θ
×
θ
×
(
1
−
θ
)
×
θ
×
θ
×
θ
×
(
1
−
θ
)
=
θ
7
(
1
−
θ
)
3
=
f
(
θ
)
f \left( x _ { 0 } , \theta \right) = ( 1 - \theta ) \times \theta \times \theta \times \theta \times \theta \times ( 1 - \theta ) \times \theta \times \theta \times \theta \times ( 1 - \theta ) = \theta ^ { 7 } ( 1 - \theta ) ^ { 3 } = f ( \theta )
f(x0,θ)=(1−θ)×θ×θ×θ×θ×(1−θ)×θ×θ×θ×(1−θ)=θ7(1−θ)3=f(θ)求出来函数的最大值是
θ
=
0.7
\theta=0.7
θ=0.7时取得的。这样,我们已经完成了对
θ
θ
θ的极大似然估计。即抛10次硬币,发现7次硬币正面向上,最大似然估计认为正面向上的概率是0.7。
我们用更加严谨的公式把似然函数和极大似然估计都用数学表达出来如下(其中
arg
max
θ
\arg \max _ { \theta }
argmaxθ表示当右边函数取得最大值时
θ
\theta
θ的取值):
似
然
函
数
:
l
(
θ
)
=
P
(
x
∣
θ
)
=
p
(
x
1
,
x
2
,
⋯
,
x
N
∣
θ
)
=
∏
i
=
1
N
p
(
x
i
∣
θ
)
似然函数:l ( \theta ) = P ( x | \theta ) = p \left( x _ { 1 } , x _ { 2 } , \cdots , x _ { N } | \theta \right) = \prod _ { i = 1 } ^ { N } p \left( x _ { i } | \theta \right)
似然函数:l(θ)=P(x∣θ)=p(x1,x2,⋯,xN∣θ)=i=1∏Np(xi∣θ)
极 大 似 然 估 计 : θ ^ = arg max θ l ( θ ) = arg max θ ∏ i = 1 N p ( x i ∣ θ ) 极大似然估计:\hat { \theta } = \arg \max _ { \theta } l ( \theta ) = \arg \max _ { \theta } \prod _ { i = 1 } ^ { N } p \left( x _ { i } | \theta \right) 极大似然估计:θ^=argθmaxl(θ)=argθmaxi=1∏Np(xi∣θ)
当然这个公式看起来虽好,但有个问题,算起来比较要命,因为是连乘啊!这求个导能把人求哭。怎么办?两边取对数(因为
ln
x
\ln x
lnx是随着
x
x
x增大而单调增大的,也就是说当
ln
x
\ln x
lnx取得最大值的时候
x
x
x也取得最大值),这个时候极大似然估计变成这样:
θ
^
=
arg
max
θ
H
(
θ
)
=
arg
max
θ
ln
l
(
θ
)
=
arg
max
θ
∑
i
=
1
N
ln
p
(
x
i
∣
θ
)
\hat { \theta } = \arg \max _ { \theta } H ( \theta ) = \arg \max _ { \theta } \ln l ( \theta ) = \arg \max _ { \theta } \sum _ { i = 1 } ^ { N } \ln p \left( x _ { i } | \theta \right)
θ^=argθmaxH(θ)=argθmaxlnl(θ)=argθmaxi=1∑Nlnp(xi∣θ)连乘变成累加,世界瞬间清净了!