Likelihood (似然) 与 Maximun Likelihood Estimation
似然与概率
概率是已知模型的参数,求某个事情发生的可能性。概率可以表示为 p ( x ∣ Θ ) p(x|\Theta) p(x∣Θ)
似然是根据统计信息,推测产生这种统计结果的可能参数,似然可表示为 L ( x ∣ Θ ) L(x|\Theta) L(x∣Θ)
在结果和参数相互对应时,概率与似然在值上是相等的,但是意义并不相同。
极大似然估计中采样需满足一个重要的假设,就是所有的采样都是独立同分布的(即采样得到的样本的分布,要与所有样本总体的分布相同)。
似然函数
概率描述的是在一定条件下某个事件发生的可能性,概率越大说明这件事情越可能会发生;而似然描述的是结果已知的情况下,该事件在不同条件下发生的可能性,似然函数的值越大说明该事件在对应的条件下发生的可能性越大。–https://zhuanlan.zhihu.com/p/22092462
如抛硬币,我们可以假设抛硬币的模型是 二项分布
则似然函数
f
(
x
;
Θ
)
=
{
Θ
,
if x = 1
1
−
Θ
,
if x = 0
f(x;\Theta) = \begin{cases} \Theta, & \text{if x = 1}\\ 1-\Theta, & \text{if x = 0} \end{cases}
f(x;Θ)={Θ,1−Θ,if x = 1if x = 0
也可以写成
f
(
x
)
=
Θ
x
(
1
−
Θ
)
1
−
x
,
x
∈
0
,
1
f(x) = \Theta^x(1-\Theta)^{1-x}, x\in{0,1}
f(x)=Θx(1−Θ)1−x,x∈0,1
若抛十次的统计数据 x 是: 反正正正正反正正正反
则似然函数为
f
(
x
)
=
(
1
−
Θ
)
×
Θ
×
Θ
×
Θ
×
Θ
×
(
1
−
Θ
)
×
Θ
×
Θ
×
Θ
×
(
1
−
Θ
)
=
Θ
7
(
1
−
Θ
)
3
f(x) = (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(x)=(1−Θ)×Θ×Θ×Θ×Θ×(1−Θ)×Θ ×Θ ×Θ×(1−Θ)=Θ7(1−Θ)3
令似然函数的偏导数为 0, 求得极大值;
这里 Θ \Theta Θ 有无数种选择,但是选取的原则应该是选择 Θ \Theta Θ 是的出现该统计结果的可能性最大
在 Θ = 0.7 \Theta = 0.7 Θ=0.7 时,似然函数取得最大值,也可以画出图直观地看
参考:https://blog.csdn.net/u011508640/article/details/72815981
Entropy (熵)
信息量
设 X 是一个离散型随机变量, 其取值为集合 $ X = {x_0, x_1, x_2, …, x_n}$, 则其概率分布函数为
p
(
x
)
=
P
r
(
X
=
x
)
,
x
∈
X
p(x) = P_r(X=x), x\in X
p(x)=Pr(X=x),x∈X, 则定义时间
X
=
x
0
X=x_0
X=x0的信息量为:
I
(
x
0
)
=
−
l
o
g
(
p
(
x
0
)
)
I(x0) = -log(p(x_0))
I(x0)=−log(p(x0))
当
p
(
x
0
)
=
1
p(x0) = 1
p(x0)=1 时,该事件必定发生,其信息量为 0
熵是用来衡量一个系统的混乱程度的,代表系统中信息量的总和。其计算公式如下
H
(
x
)
=
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
(
p
(
x
i
)
)
H(x) = -\sum_{i=1}^np(x_i)log(p(x_i))
H(x)=−i=1∑np(xi)log(p(xi))
其中
p
(
x
i
)
p(x_i)
p(xi)为事件
X
=
x
i
X=x_i
X=xi的概率,
−
l
o
g
(
p
(
x
i
)
)
-log(p(xi))
−log(p(xi))为事件
X
=
x
i
X=x_i
X=xi的信息量。熵就是所有事件的信息量的加权和(信息量的期望值)
Kullback-Leibler (KL) divergence (KL 散度/ Relative Entropy相对熵)
相对熵也称为 KL 散度, 表示同一个随机变量的两个不同分布的距离。
设
p
(
x
)
p(x)
p(x) 和
q
(
x
)
q(x)
q(x)分别是离散随机变量 X 的两个概率分布, 则 p 对 q 的相对熵( KL散度)是:
D
K
L
(
p
∣
∣
q
)
=
∑
i
p
(
x
i
)
l
o
g
(
p
(
x
i
)
p
(
y
i
)
)
D_{KL}(p||q) = \sum_i p(x_i)log(\frac{p(x_i)}{p(y_i)})
DKL(p∣∣q)=i∑p(xi)log(p(yi)p(xi))
相对熵具有一下性质:
1. 如果 p(x)和 q(x) 的分布相同,则其相对熵等于 0
2.
D
K
L
(
p
∣
∣
q
)
≠
D
K
L
(
q
∣
∣
p
)
,也就是相对熵不具有对称性。
D_KL(p||q) \neq D_KL(q||p) \text{,也就是相对熵不具有对称性。}
DKL(p∣∣q)=DKL(q∣∣p),也就是相对熵不具有对称性。
3.
D
K
L
(
p
∣
∣
q
)
≥
0
D_KL(p||q) \geq 0
DKL(p∣∣q)≥0
在实际应用中,假如p(x)是目标真实的分布,而q(x)是预测得来的分布,为了让这两个分布尽可能的相同的,就需要最小化 KL散度。
交叉熵
设
p
(
x
p(x
p(x),
q
(
x
)
q(x)
q(x)分别是 离散随机变量X的两个概率分布,其中
p
(
x
)
p(x)
p(x) 是目标分布,
p
p
p 和
q
q
q 的交叉熵可以看做是,使用分布
q
(
x
)
q(x)
q(x) 表示目标分布
p
(
x
)
p(x)
p(x) 的困难程度
H
(
p
,
q
)
=
∑
i
p
(
x
i
)
l
o
g
(
1
l
o
g
q
(
x
i
)
)
=
−
∑
i
p
(
x
i
)
l
o
g
q
(
x
i
)
H(p,q) = \sum_ip(x_i)log(\frac{1}{logq(xi)}) = -\sum_i p(x_i)logq(x_i)
H(p,q)=i∑p(xi)log(logq(xi)1)=−i∑p(xi)logq(xi)
将熵、相对熵以及交叉熵的关系
熵:
H
(
p
)
=
∑
i
p
(
x
i
)
l
o
g
p
(
x
i
)
KL散度:
D
K
L
(
p
∣
∣
q
)
=
∑
i
(
p
(
x
i
)
l
o
g
p
(
x
i
)
−
p
(
x
i
)
l
o
g
q
(
x
i
)
)
交叉熵:
H
(
p
,
q
)
=
−
∑
i
p
(
x
i
)
l
o
g
q
(
x
i
)
\text{熵: } H(p) = \sum_i p(x_i)logp(x_i) \\ \text{KL散度: } D_{KL}(p||q) = \sum_i (p(x_i)logp(x_i) - p(xi)logq(xi)) \\ \text{交叉熵: } H(p,q) = -\sum_ip(x_i)logq(x_i)
熵: H(p)=i∑p(xi)logp(xi)KL散度: DKL(p∣∣q)=i∑(p(xi)logp(xi)−p(xi)logq(xi))交叉熵: H(p,q)=−i∑p(xi)logq(xi)
通过上面三个公式就可以得到
D
K
L
(
p
∣
∣
q
)
=
H
(
p
,
q
)
−
H
(
p
)
D_{KL}(p||q) = H(p,q) - H(p)
DKL(p∣∣q)=H(p,q)−H(p)
从上面可以看到 KL 散度 = 交叉熵 - 熵
在机器学习中,目标的分布 p(x) 通常是训练数据的分布是固定的,即 H§ 是一个常量。这样两个分布的交叉熵,也就等价于最小化这两个分布的相对熵。
设p(x) 是目标分布(训练数据的分布),我们的目标的就让训练得到的分布q(x)尽可能的接近 p(x),这时候就可以最小化 $D_KL(p,q)$,等价于最小化交叉熵 $H(p,q)$ 。
从最大似然函数看交叉熵
设有一组训练样本
X
=
x
1
,
x
2
,
x
3
,
…
,
x
m
X = {x_1, x_2, x_3, …, x_m}
X=x1,x2,x3,…,xm,该样本的分布为
p
(
x
)
p(x)
p(x)。假设使用
Θ
\Theta
Θ 参数化模型得到
q
(
x
;
Θ
)
q(x;\Theta)
q(x;Θ),现在用这个模型估计 X 的概率分布(
Θ
\Theta
Θ), 得到似然函数:
L
(
Θ
)
=
q
(
X
;
Θ
)
=
∏
i
m
q
(
x
i
;
Θ
)
L(\Theta) = q(X;\Theta) = \prod_{i}^{m}q(x_i;\Theta)
L(Θ)=q(X;Θ)=i∏mq(xi;Θ)
最大似然估计就是求 参数
Θ
\Theta
Θ 是的 似然函数
L
(
Θ
)
L(\Theta)
L(Θ) 最大, 也就是
Θ
M
L
=
arg,max
Θ
∏
i
m
q
(
x
i
,
Θ
)
\Theta_{ML} \begin{gathered} = \operatorname*{arg,max}_\Theta \prod_i^m q(x_i,\Theta) \ \end{gathered}
ΘML=Θarg,maxi∏mq(xi,Θ)
对上面的式子两边取 log,等价于优化 log 的最大似然估计,即 log-likehood,对最大似然估计
并对式子进行缩放(式子右边除以样本的个数 m)不会改变 argmax 的解
Θ
M
L
=
arg,max
Θ
1
m
∑
i
m
l
o
g
q
(
x
i
,
Θ
)
\Theta_{ML} \begin{gathered} =\operatorname*{arg,max}\Theta \frac{1}{m} \sum_i^mlog q(x_i,\Theta) \end{gathered}
ΘML=arg,maxΘm1i∑mlogq(xi,Θ)
上式最大化
Θ
M
L
\Theta{ML}
ΘML 和训练样本是没有关联的,就需要某种变换使其可以用训练样本的分布来表示,因为训练样本的分布可以看作是已知的,也是对最大似然的一个约束
上是的 $ \frac{1}{m} \sum_i^mlogq(x_i,\Theta)$ 相当于求 随机变量 X 的函数 l o g ( X ; Θ ) log(X;\Theta) log(X;Θ) 的均值
根据大数定理,当样本容量趋于无穷时,样本的均值趋于其期望。也就是说
1
m
∑
i
m
l
o
g
q
(
x
i
,
Θ
)
→
E
x
∼
p
(
l
o
g
q
(
x
;
Θ
)
)
\frac{1}{m} \sum_i^mlog q(x_i,\Theta) \rightarrow E_{x\sim p}(logq(x;\Theta))
m1i∑mlogq(xi,Θ)→Ex∼p(logq(x;Θ))
其中
E
X
∼
P
E_{X \sim P}
EX∼P 表示符合样本分布 P 的期望,这样就将最大似然估计使用真实样本的期望来表示。对右边取符号,将最大化变成最小化
Θ
M
L
=
arg,max
Θ
E
X
∼
P
(
l
o
g
q
(
x
;
Θ
)
)
=
arg,min
Θ
E
X
∼
P
(
−
l
o
g
q
(
x
;
Θ
)
)
\Theta_{ML} \begin{gathered} =\operatorname*{arg,max}\Theta E{X \sim P}(logq(x;\Theta)) \end{gathered} \ \begin{gathered} =\operatorname*{arg,min}\Theta E{X \sim P}(-logq(x;\Theta)) \end{gathered}
ΘML=arg,maxΘEX∼P(logq(x;Θ)) =arg,minΘEX∼P(−logq(x;Θ))
KL 散度
D
K
L
(
p
∣
∣
q
)
=
∑
i
p
(
x
i
)
l
o
g
(
p
(
x
i
)
q
(
x
i
)
)
x 是训练样本,其分布已知
=
E
x
∼
p
(
l
o
g
p
(
x
)
q
(
x
)
)
=
E
x
∼
p
(
l
o
g
p
(
x
)
−
l
o
g
(
q
(
x
)
)
=
E
x
∼
p
(
l
o
g
(
p
(
x
)
)
−
E
x
∼
p
(
l
o
g
q
(
x
)
)
D_{KL}(p||q) = \sum_i p(x_i) log(\frac{p(x_i)}{q(x_i)})\\ \text{x 是训练样本,其分布已知}\\ = E_{x\sim p}(log \frac{p(x)}{q(x)})\\ = E_{x\sim p}(log p(x) - log(q(x))\\ =E_{x\sim p}(log(p(x)) - E_{x\sim p}(logq(x))
DKL(p∣∣q)=i∑p(xi)log(q(xi)p(xi))x 是训练样本,其分布已知=Ex∼p(logq(x)p(x))=Ex∼p(logp(x)−log(q(x))=Ex∼p(log(p(x))−Ex∼p(logq(x))
由于
E
x
∼
p
(
l
o
g
(
p
(
x
)
)
E_{x\sim p}(log(p(x))
Ex∼p(log(p(x)) 是训练样本的期望,是个常数,因此在求最小值的时候可以忽略,所以最小化
D
K
L
(
p
∣
∣
q
)
D_{KL}(p||q)
DKL(p∣∣q) 就变成了最小化
−
E
x
∼
p
(
l
o
g
q
(
x
)
)
- E_{x\sim p}(logq(x))
−Ex∼p(logq(x)), 这和最大似然估计是等价的
最大化似然函数,等于求
arg min
Θ
E
X
∼
P
(
−
l
o
g
q
(
x
;
Θ
)
)
\begin{gathered} \operatorname*{arg\,min}_\Theta E_{X \sim P}(-logq(x;\Theta)) \end{gathered}
ΘargminEX∼P(−logq(x;Θ))
因此最小化 KL 散度等于求 $\Theta$ 使得似然函数最小
而训练参数的熵是已知的,因此等价于最小化交叉熵
交叉熵可以用于计算“学习模型的分布”与“训练数据分布”之间的不同。当交叉熵最低时(等于训练数据分布的熵),我们学到了“最好的模型”。
Reference