极大似然估计及其应用
引言:最近在温习机器学习相关算法以及课堂上老师最近也都提到了极大似然估计,然而博主早已忘得差不多了,所以重新学习顺便记录下。
极大似然估计的主要作用是:当我们不知道样本的分布时我们可以通过假设样本服从某种概率分布,然后结合训练样本对其概率分布中的未知参数进行估计。似然在西瓜书中是likehood,翻译过来就是可能性、概率的意思。
本文主要参考了西瓜书和《概率论与统计学习(第二版)》。
1.似然函数
(1)离散型变量的似然函数
定义:设总体X是离散型随机变量,分布律为
P
(
X
=
x
)
=
p
(
x
,
θ
)
P(X=x)=p(x,\theta)
P(X=x)=p(x,θ),其中
θ
\theta
θ是未知参数,当样本
X
1
,
X
2
,
.
.
.
,
X
n
X_1,X_2,...,X_n
X1,X2,...,Xn得到一组观测值
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x1,x2,...,xn,有样本的独立同分布性,记样本取得这组观测值的概率为:
P
(
X
1
=
x
1
,
X
2
=
x
2
,
.
.
.
,
X
n
=
x
n
)
=
P
(
X
1
=
x
1
)
P
(
X
2
=
x
2
)
.
.
.
P
(
X
n
=
x
n
)
=
∏
i
=
1
n
p
(
x
i
,
θ
)
=
L
(
θ
)
P(X_1=x_1,X_2=x_2,...,X_n=x_n)\\=P(X_1=x_1)P(X_2=x_2)...P(X_n=x_n)\\=\prod_{i=1}^{n}p(x_i,\theta)=L(\theta)
P(X1=x1,X2=x2,...,Xn=xn)=P(X1=x1)P(X2=x2)...P(Xn=xn)=i=1∏np(xi,θ)=L(θ)
称
L
(
θ
)
L(\theta)
L(θ)为似然函数(对于给定的观测值
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x1,x2,...,xn它是未知参数
θ
\theta
θ的函数)
(2)连续变量的似然函数
当
X
X
X是连续变量时,其概率密度函数为
f
(
x
,
θ
)
f(x,\theta)
f(x,θ),其中
θ
\theta
θ是未知参数。因为随机变量
X
i
X_i
Xi落在
x
i
x_i
xi的邻域(设长度为
Δ
x
i
\Delta x_i
Δxi)内的概率近似为
f
(
x
i
,
θ
)
Δ
x
i
,
i
=
1
,
2
,
.
.
.
,
n
f(x_i,\theta)\Delta x_i, i=1,2,...,n
f(xi,θ)Δxi,i=1,2,...,n,则样本
X
1
,
X
2
,
.
.
.
,
X
n
X_1,X_2,...,X_n
X1,X2,...,Xn落在观测值
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x1,x2,...,xn邻域的概率近似为
∏
i
=
1
n
f
(
x
i
,
θ
)
Δ
x
i
\prod_{i=1}^{n}f(x_i,\theta)\Delta x_i
∏i=1nf(xi,θ)Δxi, 因此似然函数
L
(
θ
)
=
∏
i
=
1
n
f
(
x
i
,
θ
)
Δ
x
i
L(\theta)=\prod_{i=1}^{n}f(x_i,\theta)\Delta x_i
L(θ)=∏i=1nf(xi,θ)Δxi。
(3)例子
设一袋中装有黑白两种球,设p为从袋中随机摸得一个白球的概率,写出p的似然函数并对参数p进行估计。
首先这里是离散型变量,所以可以令
X
=
{
1
,
取得白球
0
,
取得黑球
X=\begin{cases} 1,&\text{取得白球} \\0,&\text{取得黑球}\end{cases}
X={1,0,取得白球取得黑球
可以发现X服从0-1二项分布,即X~B(1,p),这里就相当于一个先验知识,我们知道了随机变量的概率分布形式。
为了估计参数p,做有放回的摸球10次,其结果可用随机变量
X
i
X_i
Xi表示:
X
i
=
{
1
,
第i次取得白球
0
,
第i次取得黑球
X_i=\begin{cases} 1,&\text{第i次取得白球} \\0,&\text{第i次取得黑球}\end{cases}
Xi={1,0,第i次取得白球第i次取得黑球
假设样本
X
1
,
X
2
,
.
.
.
,
X
10
X_1,X_2,...,X_{10}
X1,X2,...,X10的观测值为
(
x
1
,
x
2
,
.
.
.
x
n
)
=
(
1
,
0
,
1
,
0
,
0
,
0
,
1
,
0
,
0
,
0
)
(x_1,x_2,...x_n)=(1,0,1,0,0,0,1,0,0,0)
(x1,x2,...xn)=(1,0,1,0,0,0,1,0,0,0),则其似然函数为:
L
(
p
)
=
P
(
X
1
=
1
,
X
2
=
0
,
X
3
=
1
,
X
4
=
0
,
.
.
.
,
X
10
=
0
)
=
p
3
(
1
−
p
)
7
L(p)=P(X_1=1,X_2=0,X_3=1,X_4=0,...,X_{10}=0)\\=p^3(1-p)^7
L(p)=P(X1=1,X2=0,X3=1,X4=0,...,X10=0)=p3(1−p)7
至于如何估计参数p,则需要引出极大似然估计。
2.极大似然估计
极大似然估计的思想是:在随机试验中有所干个可能结果,如果一次实验中某一结果出现了,根据小概率事件原理,我们认为这一结果出现的概率较大,从而可以认为这一结果是所有可能结果中出现概率最大的一个。因此对于我们的似然函数 L ( θ ) L(\theta) L(θ)就是要找到一个 θ ^ \hat{\theta} θ^使得观测值的概率最大,也就是 a r g m a x θ L ( θ ) {argmax}_{\theta}L(\theta) argmaxθL(θ)。
因此对于上面摸球的例子我们估计参数p的做法就是求 d L ( p ) d p = 0 \frac{dL(p)}{dp}=0 dpdL(p)=0,最后求得p=0.3。
然而由于似然函数中的连乘易造成下溢,因此通常使用对数似然,即
L
L
(
θ
)
=
l
o
g
∏
i
=
1
n
p
(
x
i
,
θ
)
=
∑
i
=
1
n
l
o
g
(
p
(
x
i
,
θ
)
)
LL(\theta)=log \prod_{i=1}^{n}p(x_i,\theta)\\=\sum_{i=1}^{n}log (p(x_i,\theta))
LL(θ)=logi=1∏np(xi,θ)=i=1∑nlog(p(xi,θ))
然后求解
θ
^
=
a
r
g
m
a
x
θ
L
L
(
θ
)
\hat{\theta}={argmax}_{\theta}LL(\theta)
θ^=argmaxθLL(θ)
3.极大似然估计在机器学习中的应用
(1)逻辑回归
逻辑回归的模型为:
y
=
1
1
+
e
−
(
w
T
x
+
b
)
y=\frac{1}{1+e^{-(w^Tx+b)}}
y=1+e−(wTx+b)1,设
p
1
:
p
(
y
=
1
)
=
e
w
T
x
+
b
1
+
e
w
T
x
+
b
,
p
0
:
p
(
y
=
0
)
=
1
1
+
e
w
T
x
+
b
p_1:p(y=1)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}}, p_0:p(y=0)=\frac{1}{1+e^{w^Tx+b}}
p1:p(y=1)=1+ewTx+bewTx+b,p0:p(y=0)=1+ewTx+b1,其中
p
1
和
p
0
p_1和p_0
p1和p0是关于未知参数
w
,
b
w,b
w,b的概率分布,其具体形式可以通过对逻辑回归模型两边同取对数求得。然后通过对数极大似然估计法对未知参数进行估计得:
L
L
(
w
,
b
)
=
l
o
g
(
∏
i
=
1
m
p
(
y
i
)
)
=
∑
i
=
1
m
l
o
g
(
y
i
p
1
+
(
1
−
y
i
)
p
0
)
LL(w,b)=log(\prod_{i=1}^mp(y_i))\\=\sum_{i=1}^mlog(y_ip_1+(1-y_i)p_0)
LL(w,b)=log(i=1∏mp(yi))=i=1∑mlog(yip1+(1−yi)p0)
然后利用梯度法求解极值即可。
(2)朴素贝叶斯分类器
朴素贝叶斯分类器的基本原理:
p
(
c
∣
x
)
=
p
(
c
)
p
(
x
)
∏
i
=
1
n
p
(
x
(
i
)
∣
c
)
p(c|x)=\frac{p(c)}{p(x)}\prod_{i=1}^np(x^{(i)}|c)
p(c∣x)=p(x)p(c)∏i=1np(x(i)∣c),其中c是类别,x是训练样本,
x
(
i
)
x^{(i)}
x(i)是样本在第i个属性上的取值,通过训练样本x预测类别c其中
p
(
c
)
和
p
(
x
)
p(c)和p(x)
p(c)和p(x)比较好求,而
p
(
x
(
i
)
∣
c
)
p(x^{(i)}|c)
p(x(i)∣c)可以通过极大似然估计的方法对其概率分布进行估计,首先假设p(x|c)是服从关于参数
θ
\theta
θ的概率分布,即
p
(
x
,
θ
)
p(x,\theta)
p(x,θ),则其对数似然函数为:
L
L
(
θ
)
=
∑
i
=
1
m
p
(
x
i
,
θ
)
LL(\theta)=\sum_{i=1}^mp(x_i,\theta)
LL(θ)=i=1∑mp(xi,θ)
然后求解
θ
^
=
a
r
g
m
a
x
θ
L
L
(
θ
)
\hat{\theta}={argmax}_{\theta}LL(\theta)
θ^=argmaxθLL(θ)得到参数。但是使用极大似然估计来估计类条件概率有以下困难:
使用极大似然估计法对参数进行估计时,结果的准确性严重依赖于所假设的概率分布是否符合真实数据分布。在逻辑回归中因为我们已经有了每个似然项的概率分布,相当于有了这个先验知识,所以结果是可靠的。