似然估计例子
假如你要统计学校女生的平均身高,但是你没有能力得到全校女生的数据,你想了想,可以统计你们班女生的身高,然后估计全校女生的平均身高。这其实就是极大然估计的思想。极大似然是指,当模型确定,参数不知时,我们利用采集的信息,反推出最有可能生成这组信息的模型。这和我们的对世界认知是一致的,对于一个有多种可能的事件,我们总是认为,我们看到的那些结果(样本),是该事件概率最大的可能。即“存在即合理,所见即真实”。
极大似然有两个假设:
- 模型确定,参数未知
- 样本独立同分布得到
这样所有的数据都是由同一个分布(模型)得到的,模型也就可以可以倒推出来。
假设一组样本
X
=
(
x
1
,
x
2
,
⋯
,
x
n
)
X=({x_{1},x_{2},\cdots,x_{n}})
X=(x1,x2,⋯,xn),是我们独立同分布采样得到的,模型确定,参数未知,假设参数为
θ
\theta
θ,那么得到这组样本的概率是
f
(
x
1
,
x
2
,
⋯
,
x
n
∣
θ
)
=
f
(
x
1
∣
θ
)
f
(
x
2
∣
θ
)
⋯
f
(
x
n
∣
θ
)
f(x_{1},x_{2},\cdots,x_{n}|\theta)=f(x_{1}|\theta)f(x_{2}|\theta)\cdots f(x_{n}|\theta)
f(x1,x2,⋯,xn∣θ)=f(x1∣θ)f(x2∣θ)⋯f(xn∣θ)
不同的参数
θ
\theta
θ会以不同的概率生成这组样本,最大概率的那个
θ
\theta
θ,最有可能生成这组样本,也就是我们要求的的。
L
(
θ
∣
x
1
,
x
2
,
⋯
,
x
n
)
=
f
(
x
1
,
x
2
,
⋯
,
x
n
∣
θ
)
=
∏
i
f
(
x
i
∣
θ
)
)
L(\theta|x_{1},x_{2},\cdots,x_{n})=f(x_{1},x_{2},\cdots,x_{n}|\theta)=\prod _{i}f(x_{i}|\theta))
L(θ∣x1,x2,⋯,xn)=f(x1,x2,⋯,xn∣θ)=i∏f(xi∣θ))
我们直接求其最大值
m
a
x
L
(
θ
∣
x
1
,
x
2
,
⋯
,
x
n
)
maxL(\theta|x_{1},x_{2},\cdots,x_{n})
maxL(θ∣x1,x2,⋯,xn)非常困难,可以先取对数
l
(
θ
)
=
l
o
g
L
(
θ
)
=
∑
i
f
(
x
i
∣
θ
)
l(\theta)=logL(\theta)=\sum_{i}f(x_{i}|\theta)
l(θ)=logL(θ)=i∑f(xi∣θ)然后再求最大值。我们可以求导数
∂
l
(
θ
)
∂
θ
=
0
\frac{\partial l(\theta) }{\partial \theta}=0
∂θ∂l(θ)=0。
举个例子,我们猜到班级女生的身高
{
1.6
,
1.64
,
1.65
,
1.6
,
1.58
,
1.57
,
1.7
}
\{1.6,1.64,1.65,1.6,1.58,1.57,1.7\}
{1.6,1.64,1.65,1.6,1.58,1.57,1.7},我们要估计均值和方差,此时模型参数是
θ
=
(
μ
,
σ
)
\theta=(\mu,\sigma)
θ=(μ,σ)。假设身高服从高斯分布
x
∼
N
(
μ
,
σ
2
)
x \sim N(\mu,\sigma^{2})
x∼N(μ,σ2),根据公式得到
∂
l
(
μ
,
σ
)
∂
μ
=
∑
i
=
1
n
∂
∂
μ
(
1
σ
2
π
e
−
(
x
i
−
μ
)
2
2
σ
2
)
=
0
\frac{\partial l(\mu ,\sigma )}{\partial \mu}=\sum_{i=1}^{n}\frac{\partial }{\partial \mu}(\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x_{i}-\mu)^{2}}{2\sigma^{2}}})=0
∂μ∂l(μ,σ)=i=1∑n∂μ∂(σ2π1e−2σ2(xi−μ)2)=0同理可以对
σ
\sigma
σ求导。
有限样本估计
由于样本是有限的,我们其实可以得到很多组模型参数。例如给定5个点(有限的样本),通过这个5个点拟合出一条曲线,可以看到这样的曲线非常多
或者我们有一个质量分布不均匀的硬币,抛出正的概率为
θ
\theta
θ,我们抛出5次,得到一组样本,根据这5个样本估计
θ
\theta
θ
次数 | 1 | 1 | 1 | 1 | 1 |
---|---|---|---|---|---|
正反 | 正 | 正 | 反 | 正 | 反 |
我们天然就会得出 θ = 3 5 \theta=\frac{3}{5} θ=53,但是概率这种事情,只要你大于0,总是有可能的出现的,而概率是0-1之间的实数,是无穷的,因此我们 θ \theta θ的取值也是无限多的。 θ = 0.1 \theta=0.1 θ=0.1有可能抛出这组样本吧, θ = 0.2 \theta=0.2 θ=0.2也有可能吧, θ = 0.99999999999 \theta=0.99999999999 θ=0.99999999999或者 θ = 0.00000000001 \theta=0.00000000001 θ=0.00000000001也都是有可能的吧,虽然很难。
似然估计与经验分布
什么叫经验分布呢?历史的数据就是经验,生成这组数据的分布就叫做经验分布,也就是我的模型参数,而我们也是根据历史数据来估计模型的。
假如我们有很多张猫和狗的图片,要训练一个猫狗分类网络,似然估计的思想就是,我们假定有一个猫狗分类的模型(可以是lr,可以是svm,可以是卷积神经网络),这个模型有很多参数,我们通过所有的猫狗图片来估计出模型的参数。
怎么来判断这组参数估计的是否好呢?模型生成这组样本的概率越大越好。其实这里我就有点糊涂了,生成这组样本的概率,假如猫的图片占80%,狗的图片占20%,我们在估计模型的
注意不是生成猫狗的图片概率,而是生成
x
1
=
(
c
a
t
1.
i
m
g
,
1
)
,
x
2
=
(
c
a
t
2.
i
m
g
,
1
)
,
x
3
=
(
c
a
t
3.
i
m
g
,
1
)
,
x
4
=
(
d
o
g
1.
i
m
g
,
0
)
,
x
1
=
(
d
o
g
2.
i
m
g
,
0
)
x_1=(cat1.img, 1),x_2=(cat2.img, 1),x_3=(cat3.img, 1),x_4=(dog1.img, 0),x_1=(dog2.img, 0)
x1=(cat1.img,1),x2=(cat2.img,1),x3=(cat3.img,1),x4=(dog1.img,0),x1=(dog2.img,0)
我们要估计的是
P
(
X
,
Y
)
P(X,Y)
P(X,Y)的最大概率
模型训练为什么要有负样本
从似然估计的角度来看,其实没有什么正负样本一说。我们根据【给出的全部样本】来估计模型的参数,自然是要包含负样本的。