在DL中,交叉熵损失函数是用作分类问题的,使用它作为Loss Function时,在模型的输出层总会接一个softmax函数。交叉熵是信息论中的一个重要概念,主要时用来度量两个概率分布函数之间的差异性,理解交叉熵之前,需要先了解下面几个概念。
信息量
信息量用来消除随机不确定性的东西,也就是说衡量信息量的大小就是看该消息消除不确定性的程度。例如:
根据上面两条,可以总结为:信息量的大小与信息发生的概率成反比。即,概率越大,信息量越小;概率越小,信息量越大。 设 某一事件发生的概率为P(x),其信息量表示为:
I ( x ) = − l o g ( P ( x ) ) I(x) = - log(P(x)) I(x)=−log(P(x))
其中I(x)表示信息量。
注:用log函数的目的,以2为底时可以简单理解为用多少个bits可以表示这个变量。 用负号是因为0≤p(x)≤1,而信息量是≥0的。
信息熵
信息熵用来表示所有信息量的期望。期望是试验中每次可能结果的概率乘以其信息量的总和。所以信息量的熵可以表示为:
H ( x ) = − ∑ i = 1 n P ( x i ) l o g ( P ( x i ) ) ( X = x 1 , x 2 , . . . , x n ) H(x) = - \sum_{i=1}^nP(x_i) log(P(x_i)) (X = x_1,x_2,...,x_n) H(x)=−i=1∑nP(xi)log(P(xi))(X=x1,x2,...,xn)
相对熵(KL散度)
如果对于同一个随机变量X有两个单独的概率分布P(x) 和Q(x),则我们可以使用KL散度来衡量这两个概率分布之间的差异。
D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p||q) = \sum_{i=1}^np(x_i) log(\frac {p(x_i)} {q(x_i)}) DKL(p∣∣q)=i=1∑np(xi)log(q(xi)p(xi))
在ML中,常用P(x)来表示样本的真实分布,Q(x)来表示模型所预测的分布,比如在一个三分类的任务中, x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3分别代表猫、狗、马,例如一张马的图片实际真实分布P(X) = [1, 0, 0],预测分布Q(X) = [0.7,0.2,0.1],计算KL散度:
D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) = p ( x 1 ) l o g ( p ( x 1 ) q ( x 1 ) + p ( x 2 ) l o g ( p ( x 2 ) q ( x 2 ) + p ( x 3 ) l o g ( p ( x 3 ) q ( x 3 ) = 1 ∗ l o g ( 1 0.7 ) = 0.36 D_{KL}(p||q) = \sum_{i=1}^np(x_i) log(\frac {p(x_i)} {q(x_i)}) = p(x_1)log(\frac {p(x_1)} {q(x_1)} + p(x_2)log(\frac {p(x_2)} {q(x_2)} + p(x_3)log(\frac {p(x_3)} {q(x_3)} = 1 * log(\frac 1 {0.7}) = 0.36 DKL(p∣∣q)=i=1∑np(xi)log(q(xi)p(xi))=p(x1)log(q(x1)p(x1)+p(x2)log(q(x2)p(x2)+p(x3)log(q(x3)p(x3)=1∗log(0.71)=0.36
KL散度越小,表示P(x) 和Q(x)的分布越接近,通过反复训练Q(x)可以使得Q(x)的分布逼近P(x)。
交叉熵
交叉熵 = 信息熵+KL散度
H ( p , q ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) + D K L ( p ∣ ∣ q ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) + ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(p,q) = - \sum_{i=1}^np(x_i) log(p(x_i)) + D_{KL}(p||q) = - \sum_{i=1}^np(x_i) log(p(x_i)) + \sum_{i=1}^np(x_i) log(\frac {p(x_i)} {q(x_i)}) = - \sum_{i=1}^np(x_i) log(q(x_i)) H(p,q)=−i=1∑np(xi)log(p(xi))+DKL(p∣∣q)=−i=1∑np(xi)log(p(xi))+i=1∑np(xi)log(q(xi)p(xi))=−i=1∑np(xi)log(q(xi))
注:在分类问题中常常用交叉熵作为loss function,而在线性回归问题中,常常用MSE作为loss function。
- 交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布于预测概率分布之间的差异。交叉熵的值越小,概率预测效果就越好。
- 交叉熵在分类问题常常与softmax一起使用,softmax将输出结果进行处理使得预测值和为1,然后再通过交叉熵来计算损失。
在信息论中,两个随机变量的互信息或转移信息是变量间相互依赖性的亮度。用I(X;Y)表示。
互信息度量两个随机变量共享的信息——已知随机变量X,对随机变量Y的不确定性减少的程度(已知随机变量Y,对随机变量X的不确定性减少的程度)。听着比较抽象,举着栗子。
随机变量X表示一个均衡的骰子投掷出的点数,Y表示X的奇偶性事件。当X为偶数时,Y=0;当X为奇数时,Y=1.
如果我们知道X=1,则Y=1.(失去Y=0这一信息的可能性,Y的不确定信息减少)
如果我们知道Y=1,则X=1 or X=3 or X=5。(失去X=2,4,6这一信息的可能性,X的不确定信息减少)
下图为互信息的韦恩图:
I ( X ; Y ) = H ( x ) − H ( X ∣ Y ) = H ( Y ) − H ( Y ∣ X ) = H ( x ) + H ( Y ) − H ( X , Y ) I(X;Y) = H(x) - H(X|Y) = H(Y) - H(Y|X) = H(x) + H(Y) - H(X, Y) I(X;Y)=H(x)−H(X∣Y)=H(Y)−H(Y∣X)=H(x)+H(Y)−H(X,Y)
其中I(X;Y)表示知道随机变量X,对随机变量Y的不确定性减少的程度,也可表示为随机变量X的不确定性-知道Y的情况下随机变量X的不确定性。H(X),H(Y)表示边缘熵,H(X|Y)和H(Y|X)是条件熵,而H(X,Y)是X和Y的联合熵。
互信息的定义:
I ( X ; Y ) = ∑ y ∈ Y ∑ x ∈ X p ( x , y ) l o g ( p ( x , y ) p ( x ) p ( y ) ) I(X;Y) = \sum_{y∈Y}\sum_{x∈X}p(x, y)log(\frac {p(x,y)} {p(x)p(y)}) I(X;Y)=y∈Y∑x∈X∑p(x,y)log(p(x)p(y)p(x,y))
上述定义是在离散随机变量下,其中p(x,y)是X和Y的联合概率分布函数,而p(x)和p(y)分别是X和Y的边缘概率分布函数。若在连续随机变量的情形下,则把求和换成二重定积分即可.
注:
推导I(X;Y) = H(Y) - H(Y|X)
I ( X ; Y ) = ∑ y ∈ Y ∑ x ∈ X p ( x , y ) l o g ( p ( x , y ) p ( x ) p ( y ) ) = ∑ y ∈ Y ∑ x ∈ X p ( x , y ) l o g ( p ( x , y ) p ( x ) ) − ∑ y ∈ Y ∑ x ∈ X p ( x , y ) l o g p ( y ) = ∑ y ∈ Y ∑ x ∈ X p ( x ) p ( y ∣ x ) l o g p ( y ∣ x ) − ∑ y ∈ Y ∑ x ∈ X p ( x , y ) l o g p ( y ) = ∑ x p ( x ) ( ∑ y p ( y ∣ x ) l o g p ( y ∣ x ) ) − ∑ y l o g p ( y ) ( ∑ x p ( x , y ) ) = − ∑ x p ( x ) H ( Y ∣ X = x ) − ∑ y p ( y ) l o g p ( y ) = − H ( Y ∣ X ) + H ( Y ) = H ( Y ) − H ( Y ∣ X ) I(X;Y) = \sum_{y∈Y}\sum_{x∈X}p(x, y)log(\frac {p(x,y)} {p(x)p(y)}) \\ = \sum_{y∈Y}\sum_{x∈X}p(x, y)log(\frac {p(x,y)} {p(x)}) - \sum_{y∈Y}\sum_{x∈X}p(x, y)logp(y) \\ = \sum_{y∈Y}\sum_{x∈X}p(x)p(y|x)logp(y|x) - \sum_{y∈Y}\sum_{x∈X}p(x, y)logp(y) \\ = \sum_xp(x)(\sum_yp(y|x)logp(y|x)) - \sum_ylogp(y)(\sum_xp(x, y)) \\ = -\sum_xp(x)H(Y|X=x) - \sum_yp(y)logp(y) \\ = -H(Y|X) + H(Y) = H(Y) - H(Y|X) I(X;Y)=y∈Y∑x∈X∑p(x,y)log(p(x)p(y)p(x,y))=y∈Y∑x∈X∑p(x,y)log(p(x)p(x,y))−y∈Y∑x∈X∑p(x,y)logp(y)=y∈Y∑x∈X∑p(x)p(y∣x)logp(y∣x)−y∈Y∑x∈X∑p(x,y)logp(y)=x∑p(x)(y∑p(y∣x)logp(y∣x))−y∑logp(y)(x∑p(x,y))=−x∑p(x)H(Y∣X=x)−y∑p(y)logp(y)=−H(Y∣X)+H(Y)=H(Y)−H(Y∣X)
互信息也可表示为两个随机变量的边缘分布X和Y的乘积p(x) * p(y) 相对于随机变量的联合熵p(x, y)的相对熵:
I ( X ; Y ) = D K L ( p ( x , y ) ∣ ∣ p ( x ) p ( y ) ) I(X;Y) = D_{KL}(p(x, y)||p(x)p(y)) I(X;Y)=DKL(p(x,y)∣∣p(x)p(y))
I ( X ; Y ) = ∑ y p ( y ) ∑ x p ( x ∣ y ) l o g ( p ( x ∣ y ) p ( x ) ) = ∑ y p ( y ) D K L ( p ( x ∣ y ) ∣ ∣ p ( x ) ) = E Y D K L ( p ( x ∣ y ) ∣ ∣ p ( x ) ) I(X;Y) = \sum_yp(y)\sum_xp(x|y)log(\frac {p(x|y)} {p(x)}) \\ = \sum_yp(y)D_{KL}(p(x|y)||p(x)) \\ = E_Y{D_{KL}(p(x|y)||p(x))} I(X;Y)=y∑p(y)x∑p(x∣y)log(p(x)p(x∣y))=y∑p(y)DKL(p(x∣y)∣∣p(x))=EYDKL(p(x∣y)∣∣p(x))
注意到,这里相对熵涉及到仅对随机变量X积分,表达式 D K L ( p ( x ∣ y ) ∣ ∣ p ( x ) ) D_{KL}(p(x|y)||p(x)) DKL(p(x∣y)∣∣p(x)),现在已Y 为变量。
互信息也可以理解为相对熵X的单变量分布p(x)相对于给定Y时X的条件分布p(x|y):分布p(x|y)和p(x)之间的平均差异越大,信息增益越大。
IB理论在深度学习中的应用:IB把DL阶段分为两部分,第一部分是尽可能增加feature和输出特征Y的互信息,第二部分是尽可能压缩输入特征X和中间feature的互信息,使得中间feature包含X最有用的信息。
可以将IB理解为一个损失函数,IB理论吧神经网络理解为一个Encoder和一个Decoder,Encoder将输入X编码成Z,解码器把Z解码成输出Y,而IB理论的目标则是:
R I B ( θ ) = I ( Z , Y ; θ ) − β I ( Z , X ; θ ) R_{IB}(θ) = I(Z,Y;θ) - βI(Z,X;θ) RIB(θ)=I(Z,Y;θ)−βI(Z,X;θ)
其中
其中:
信息瓶颈理论实际上是信源压缩的率失真理论的一种扩展。
率失真理论 | 信息瓶颈理论 | |
---|---|---|
问题描述 | 在信源X的期望失真小于D的约束下,尽量降低X的码率 | 尽量保留X关于Y的相关信息前提下,降低X的码率 |
优化目标 | F [ p ( x , x ^ ) ] = I ( X ; X ^ ) + β < d ( x , x ^ ) > p ( x , x ^ ) F[p(x,\hat x)] = I(X;\hat X) + β |
L [ p ( x ^ / x ) ] = I ( X ^ ; X ) − β I ( X ^ ; Y ) L[p(\hat x/x)] = I(\hat X;X) - βI(\hat X;Y) L[p(x^/x)]=I(X^;X)−βI(X^;Y) |
距离度量 | < d ( x , x ^ ) > p ( x , x ^ ) = ∑ x ∈ X ∑ x ^ ∈ X ^ p ( x , x ^ ) d ( x , x ^ ) |
d ( x , x ^ ) = D K L ( p ( y / x ) / p ( y / x ^ ) ) d(x, \hat x) = D_{KL}(p(y/x)/p(y/ \hat x)) d(x,x^)=DKL(p(y/x)/p(y/x^)) |
迭代算法 | Blahut-Arimoto算法 | 扩展Blahut-Arimoto算法 |
可以看出,率失真理论和信息瓶颈理论都是考虑在一定失真前提下,尽量降低对信源编码的码率( X ^ \hat X X^和X的相互信息),β越小所对应的压缩率越高。区别在于:
信息瓶颈理论解释了以下的DL问题:
交叉熵损失函数原理详解
互信息(Mutual Information)
互信息
Information Bottleneck信息瓶颈理论
信息瓶颈理论-笔记