信息熵、KL散度、交叉熵、softmax函数学习小记

1.信息熵

简介:
描述一组样本的不确定程度。

公式:
H ( x ) = − ∑ i = 1 n P ( x i ) l o g P ( x i ) H(x)=-\sum_{i=1}^{n} P(x_{i})log P(x_{i}) H(x)=i=1nP(xi)logP(xi)

例如一组样本:

样本1 国庆假期选择出游的概率 样本2 国庆假期选择出游的概率
张三 0.2 Jack Zhang 0.6
李四 0.2 Eric Li 0.1
王五 0.2 Vicky Wang 0.1
赵六 0.2 Nicholas Zhao 0.1
钱七 0.2 Tsien 0.1

求信息熵:

样本1 样本2
= - (0.2log(0.2) + 0.2log(0.2) + 0.2*log(0.2)) … = - (0.6log(0.6) + 0.1log(0.1) + 0.1*log(0.1)) …
= - ((0.2 * -0.699) + (0.2 * -0.699) + (0.2 * -0.699)) … = - ((0.6 * -0.2218) + (0.1 * -1) + (0.1 * -1)) …
= 0.699 = 0.53308

结论:

样本1中的学生选择国庆假期出游的不确定性比较大。

2.交叉熵

简介:
度量预测样本与真实样本之间的差距。NN中最常见的名词之一,但除了会用,还可以再多了解一下。

公式:
H ( P , Q ) = − ∑ i = 1 n P ( x i ) l o g Q ( x i ) H(P,Q)=-\sum_{i=1}^{n} P(x_{i})log Q(x_{i}) H(P,Q)=i=1nP(xi)logQ(xi)

(注:交叉熵有多种变形公式)

例如一组样本:

预测分类 预测标签( Q ) 真实标签( P )
张三国庆去甘肃 0.7 1
张三国庆去青海 0.1 0
张三国庆去宁夏 0.2 0

求交叉熵:

H(P,Q) = -(1Log(0.7) + 0log(0.1) + 0*log(0.2)) = 0.1549

结论:

预测结果越准确,交叉熵越小。

3.KL散度

简介:
描述2个概率分布间的差异或者距离。也是学习GAN时需要了解的重要概念。

公式:
D K , L ( P ∣ ∣ Q ) = − ∑ i = 1 n P ( x i ) l o g ( P ( x i ) Q ( x i ) ) D_{K,L}(P||Q)=-\sum_{i=1}^{n} P(x_{i})log (\frac{P(x_{i})}{Q(x_{i})}) DK,L(P∣∣Q)=i=1nP(xi)log(Q(xi)P(xi))

特性:

1.非对称性:
D K , L ( P ∣ ∣ Q ) ≠ D K , L ( Q ∣ ∣ P ) D_{K,L}(P||Q) ≠ D_{K,L}(Q||P) DK,L(P∣∣Q)=DK,L(Q∣∣P)

2.非负性:
D K , L ( P ∣ ∣ Q ) > = 0 D_{K,L}(P||Q) > = 0 DK,L(P∣∣Q)>=0

3.通过公式变形可知:
KL散度 = 交叉熵-信息熵

我们知道Log(1)=0,分类问题结果往往是one hot形式的,那么上面公式就变成了:
KL散度 = 交叉熵 - 0

所以有时候直接求交叉熵就行了。

4.交叉熵二分类公式

简介:
又名BCE、BinaryCrossEntropy。
二分类即是或者不是两种结果,同时也会得到返回是或者不是的概率,概率值带入该公式求得损失,同时也是GAN运用中用来求得损失函数的公式。

公式:
H ( P , Q ) = − ∑ i = 1 n P ( x i ) l o g Q ( x i ) H(P,Q)=-\sum_{i=1}^{n} P(x_{i})log Q(x_{i}) H(P,Q)=i=1nP(xi)logQ(xi)

= − ( P ( x 1 ) l o g Q ( x 1 ) + P ( x 2 ) l o g Q ( x 2 ) ) = -(P(x1)log Q(x1) + P(x2) log Q(x2)) =(P(x1)logQ(x1)+P(x2)logQ(x2))
= − ( P l o g Q + ( 1 − P ) l o g ( 1 − Q ) ) = -(P log Q + (1-P) log(1-Q)) =(PlogQ+(1P)log(1Q))

(注:为什么xi可以替换成x1和x2,是因为二分类只有2个分类)

导数(这是chatgpt给的):
(Q - P) / (Q * (1 - Q))

4.Softmax

简介:
将数字结果转换为概率,所以对于非分类问题的神经网络,要去掉Softmax操作。

公式:
S i = e z i ∑ i = 1 n e z i S_{i} = \frac{e^{zi}}{\sum_{i=1}^{n} e^{zi}} Si=i=1neziezi

这个比较常见,推导就不做了。

你可能感兴趣的:(机器学习,学习,人工智能,机器学习,神经网络)