AI算法岗面试八股面经【超全整理】
- 概率论
- 信息论
- 机器学习
- CV
- NLP
1、自信息、信息熵
自信息
概率与信息量的关系:概率越大的事件,提供的信息量越小;概率越小的事件,信息量越大
信息量计算公式:
I
(
x
)
=
−
log
p
(
x
)
I(x)=-\log p(x)
I(x)=−logp(x)
对数底与信息的单位:
- 以2为底:bit(binary unit)
- 以e为底:nat(nature unit)
- 以10为底:Hart(Hartley)
熵(信息熵)
熵用来描述一个事件的不确定性,表示某事件所有可能发生的情况的信息量的期望值(所有可能情况信息量的均值)
设事件X共有n种可能,发生
x
i
x_i
xi的概率为
p
(
x
i
)
p(x_i)
p(xi),那么该事件熵的计算公式:
H
(
x
)
=
−
∑
i
=
1
n
p
(
x
i
)
log
(
p
(
x
i
)
)
=
E
(
log
1
p
(
x
i
)
)
H(x)=-\sum_{i=1}^{n}p(x_i)\log (p(x_i))=E(\log \frac{1}{p(x_i)})
H(x)=−i=1∑np(xi)log(p(xi))=E(logp(xi)1)
基本性质:
- 非负性: H ( X ) ≥ 0 H(X)\geq 0 H(X)≥0,当某事件是确定发生的事情,则其熵为0(太阳从东边升起的信息熵为0)
- 某随机变量每次发生的情况越不确定(不确定性越大),则其熵值越大,此时,该变量的分布也越混乱
- 当某事件对每种可能发生情况的概率是相等时,则其熵值最大
2、相对熵(KL散度)、交叉熵
相对熵(散度KL)
如果我们对于同一个随机变量 x 有两个单独的概率分布
P
(
X
)
P(X)
P(X)和
Q
(
X
)
Q(X)
Q(X),我们可以使用 KL 散度来衡量这两个分布的差异。
在机器学习中,P 往往用来表示样本的真实分布,Q 用来表示所预测的分布,那么 KL 散度是可以计算两个分布的差异,也是是 Loss 损失值。
D
K
L
(
p
∣
∣
q
)
=
∑
i
−
1
n
[
p
(
x
i
)
log
(
p
(
x
i
)
)
−
p
(
x
i
)
log
(
q
(
x
i
)
)
]
D_{KL}(p||q)=\sum_{i-1}^{n}[p(x_i)\log (p(x_i))-p(x_i)\log (q(x_i))]
DKL(p∣∣q)=i−1∑n[p(xi)log(p(xi))−p(xi)log(q(xi))]
D
K
L
(
p
∣
∣
q
)
=
∑
i
−
1
n
p
(
x
i
)
log
(
p
(
x
i
)
q
(
x
i
)
)
D_{KL}(p||q)=\sum_{i-1}^{n}p(x_i)\log (\frac{p(x_i)}{q(x_i)})
DKL(p∣∣q)=i−1∑np(xi)log(q(xi)p(xi))
- KL散度的值始终大于0,并且当且仅当两分布相同时,KL散度等于0,当 P ( X ) P(X) P(X)和 Q ( X ) Q(X) Q(X)的相似度越高,KL距离越小
- KL散度不对称,即P到Q的距离,不等于Q到P的距离
交叉熵
对
D
K
L
(
p
∣
∣
q
)
D_{KL}(p||q)
DKL(p∣∣q)公式进行变形可以得到
D
K
L
(
p
∣
∣
q
)
=
∑
i
−
1
n
[
p
(
x
i
)
log
(
p
(
x
i
)
)
−
p
(
x
i
)
log
(
q
(
x
i
)
)
]
D_{KL}(p||q)=\sum_{i-1}^{n}[p(x_i)\log (p(x_i))-p(x_i)\log (q(x_i))]
DKL(p∣∣q)=i−1∑n[p(xi)log(p(xi))−p(xi)log(q(xi))]
D
K
L
(
p
∣
∣
q
)
=
∑
i
−
1
n
−
p
(
x
i
)
log
(
q
(
x
i
)
)
−
H
(
X
)
D_{KL}(p||q)=\sum_{i-1}^{n}-p(x_i)\log (q(x_i))-H(X)
DKL(p∣∣q)=i−1∑n−p(xi)log(q(xi))−H(X)
加入需要拟合的对象的分布是固定的(比如针对某一特定的数据集),那么
H
(
X
)
H(X)
H(X)就应该是一个定值,所以优化时可以忽略这一项的影响,仅仅优化前一项,而交叉熵即为去掉原始事件信息熵的KL散度:
H
(
p
,
q
)
=
−
∑
i
−
1
n
p
(
x
i
)
log
(
q
(
x
i
)
)
H(p,q)=-\sum_{i-1}^{n}p(x_i)\log (q(x_i))
H(p,q)=−i−1∑np(xi)log(q(xi))
3、联合熵与条件熵
联合熵
联合熵表示多个随机变量联合分布的不确定性。
计算公式:
H
(
X
,
Y
)
=
−
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
log
p
(
x
,
y
)
H(X,Y)=-\sum_{x\in X} \sum_{y\in Y}p(x,y)\log p(x,y)
H(X,Y)=−x∈X∑y∈Y∑p(x,y)logp(x,y)
H
(
X
,
Y
)
≤
H
(
X
)
+
H
(
Y
)
H(X,Y) \leq H(X)+H(Y)
H(X,Y)≤H(X)+H(Y),即联合熵不一定等于两个随机变量的信息熵之和。理解:观察X会获得Y一定的信息。
条件熵
两个随机变量,当知道Y时,X的平均不确定性称为条件熵。
计算公式:
H
(
X
∣
Y
)
=
−
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
log
p
(
x
∣
y
)
H(X|Y)=-\sum_{x\in X} \sum_{y\in Y}p(x,y)\log p(x|y)
H(X∣Y)=−x∈X∑y∈Y∑p(x,y)logp(x∣y)
条件熵和联合熵满足链式法则
H
(
X
,
Y
)
=
H
(
Y
)
+
H
(
X
∣
Y
)
=
H
(
X
)
+
H
(
Y
∣
X
)
H(X,Y)=H(Y)+H(X|Y)=H(X)+H(Y|X)
H(X,Y)=H(Y)+H(X∣Y)=H(X)+H(Y∣X)
4、互信息
事物是普遍联系的,随机变量也存在相互关系,互信息可以用来刻画随机变量的相关程度。
- 单独观察X得到的信息量是 H ( X ) H(X) H(X)
- 已知Y后,X的信息量变为 H ( X ∣ Y ) H(X|Y) H(X∣Y)
- 了解Y后,X的信息量减少了 H ( X ) − H ( X ∣ Y ) H(X)-H(X|Y) H(X)−H(X∣Y)
定义:离散型随机变量X与Y之间的互信息
I
(
X
;
Y
)
I(X;Y)
I(X;Y)为
I
(
X
;
Y
)
=
H
(
X
)
−
H
(
X
∣
Y
)
=
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
log
p
(
x
,
y
)
p
(
x
)
p
(
y
)
I(X;Y)=H(X)-H(X|Y)=\sum_{x\in X} \sum_{y\in Y}p(x,y)\log {\frac {p(x,y)}{p(x)p(y)}}
I(X;Y)=H(X)−H(X∣Y)=x∈X∑y∈Y∑p(x,y)logp(x)p(y)p(x,y)
I
(
X
;
Y
)
=
H
(
X
)
+
H
(
Y
)
−
H
(
X
,
Y
)
I(X;Y)=H(X)+H(Y)-H(X,Y)
I(X;Y)=H(X)+H(Y)−H(X,Y)