1.前言
信息论(Information Theory)是数学、物理、计算机科学等多个学科的交叉领域。信息论是由香农最早提出,主要研究的是信息的量化、存储和通信等方法。
信息指的是一组消息的集合。在机器学习领域,信息论也有着大量的应用,比如特征抽取、统计推断、自然语言处理等
[
1
]
^{\left[ 1 \right]}
[1]。
2.熵
熵(Entropy)最早是物理学的概念,在信息论中,熵是用来衡量一个随机事件的不确定性。
2.1自信息和熵
自信息表示一个随机事件所包含的信息量。一个随机事件发生的概率越高,其自信息越低。如果一个事件必然发生,其自信息为0.
对于一个随机变量
X
X
X概率分布为
p
(
x
)
p(x)
p(x)自信息的定义为:
I
(
x
)
=
−
log
p
(
x
)
I\left( x \right) =-\log p\left( x \right)
I(x)=−logp(x)
当地为2的时候,自信息的单位为bit。
对于分布为
p
(
x
)
p(x)
p(x)的随机变量
X
X
X,其自信息的数学期望,基熵
H
(
x
)
H(x)
H(x)定义为:
H
(
X
)
=
E
X
[
I
(
x
)
]
H\left( X \right) =\mathbb{E}_X\left[ I\left( x \right) \right]
H(X)=EX[I(x)]
=
E
X
[
−
log
p
(
x
)
]
\ \ \ \ \ \ =\mathbb{E}_X\left[ -\log p\left( x \right) \right]
=EX[−logp(x)]
=
−
∑
x
∈
X
p
(
x
)
log
p
(
x
)
\ \ \ \ \ \ =-\sum_{x∈X}{p\left( x \right) \log p\left( x \right)}
=−x∈X∑p(x)logp(x)
当
p
(
x
)
=
0
p(x)=0
p(x)=0时我们定义
0
l
o
g
0
=
0
0log0=0
0log0=0,这与极限一致。熵越高,则随机变量的信息量越多;熵越低,则随机变量的信息量越少。如果变量
X
X
X当且仅当在
x
x
x时
p
(
x
)
=
1
p(x)=1
p(x)=1则熵为0。对于一个确定的信息,其熵为0,信息量也为0.如果其概率分布为一个均匀分布,则熵最大。
2.2熵编码
信息论研究的内容之一是如何用最少的编码表示传递信息。给定一串要传输的文本信息,其中字母信息
x
x
x出现的概率为
p
(
x
)
p(x)
p(x),其最佳的编码长度为
−
log
2
p
(
x
)
-\log _2p\left( x \right)
−log2p(x),整段文本的平均编码长度为
−
∑
x
p
(
x
)
log
2
p
(
x
)
-\sum_x{p\left( x \right) \log _2p\left( x \right)}
−∑xp(x)log2p(x)即底为2的熵。
在对分布
p
(
x
)
p(x)
p(x)的符号进行编码时,熵
H
(
p
)
H(p)
H(p)也是理论上最优平均编码长度,这种编码被称作熵编码(Emtropy Encoding)。
3.交叉熵
交叉熵(Cross Entropy)是按照概率分布
q
q
q的最优编码对真实分布为
p
p
p的信息进行编码的长度,定义为
H
(
p
,
q
)
=
E
x
[
−
log
q
(
x
)
]
H\left( p,q \right) =\mathbb{E}_x\left[ -\log q\left( x \right) \right]
H(p,q)=Ex[−logq(x)]
=
−
∑
x
p
(
x
)
log
q
(
x
)
\ \ \ \ \ \ \ \ =-\sum_x{p\left( x \right) \log q\left( x \right)}
=−x∑p(x)logq(x)
在给定
p
p
p的情况下,如果
q
q
q和
p
p
p越接近,交叉熵越小;如果
q
q
q和
p
p
p越远,交叉熵就越大。
3.1交叉熵损失函数
比如对于三分类问题,一个样本的标签向量为
y
=
[
0
,
0
,
1
]
T
y=\left[ 0,0,1 \right] ^T
y=[0,0,1]T
,模型预测的标签分布为
f
(
x
:
θ
)
=
[
0.3
,
0.3
,
0.4
]
T
f\left( x:\theta \right) =\left[ 0.3,0.3,0.4 \right] ^T
f(x:θ)=[0.3,0.3,0.4]T则它们的交叉熵为
−
(
0
×
l
o
g
(
0.3
)
+
0
×
l
o
g
(
0.3
)
+
1
×
l
o
g
(
0.4
)
=
−
l
o
g
(
0.4
)
-(0×log(0.3)+0×log(0.3)+1×log(0.4)=-log(0.4)
−(0×log(0.3)+0×log(0.3)+1×log(0.4)=−log(0.4)
因为y为one-hot向量,公式可以化简为
L
(
y
,
f
(
x
;
θ
)
)
=
−
log
f
y
(
x
;
θ
)
\mathcal{L}\left( \boldsymbol{y,}f\left( \boldsymbol{x;}\theta \right) \right) =-\log f_{\boldsymbol{y}}\left( \boldsymbol{x;}\theta \right)
L(y,f(x;θ))=−logfy(x;θ)
其中
f
y
(
x
;
θ
)
f_{\boldsymbol{y}}\left( \boldsymbol{x;}\theta \right)
fy(x;θ)可以看作真实类别
y
y
y的似然函数。因此交叉熵损失函数也就是负对数似然函数
(
N
e
g
a
t
i
v
e
L
o
g
−
L
i
k
e
l
i
h
o
o
d
)
(Negative Log-Likelihood)
(NegativeLog−Likelihood)
最大似然估计的目的:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。利用试验结果得到某个参数值能够使样本出现的概率为最大则为极大似然估计。
似然函数:联合概率密度函数
P
(
D
∣
θ
)
P(D|\theta)
P(D∣θ)称为相对于
{
x
1
,
x
2
,
⋅
⋅
⋅
⋅
,
x
N
}
\left\{ x_{1,}x_2,····,x_N \right\}
{x1,x2,⋅⋅⋅⋅,xN}的
θ
\theta
θ的似然函数。