搞定softmax和交叉熵
1. 信息量的度量-熵
信息量
信息的多少与接收者说到的信息时感到的惊讶程度相关,信息所表达的事件越不可能发生,越不可预测,信息量就越大
I=logaP(x)1
信息量的单位和上式中的a有关
- a=2,则信息量的单位为比特(bit)------最为常用
- a=e,则信息量的单位为奈特(nat)
- a=10,则信息量的单位为特莱(Hartley)
平均信息量
我们称平均信息量为熵,举个例子
H(X)=−Σ(pi)logp(xi)
一离散信源有0,1,2,3这4个符号组成概率分别如下
H(X)=−p0log2P(x0)−p1log2P(x1)−p2log2P(x2)−p3log2P(x3)
H(X)=−0.375log20.375−0.25log20.25−0.25log20.25−0.125log20.125=1.90564
2. 交叉熵
以手写体数字识别为例为来生动的演示交叉熵
H(p,q)=xΣp(x)log(q(x)1)
(image0)label=⎣⎡1000⎦⎤predicate=⎣⎡0.80.10.10⎦⎤(image2)label=⎣⎡0001⎦⎤predicate=⎣⎡0.70.10.10.1⎦⎤
H(p,q)=−1log20.8−1log10.1
3. softmax
Yi=Σi=1neziezi
请看以下例子,输入为Z,输出为Y,且Y各个概率之和为1
z=⎣⎡z1z2z3⎦⎤=⎣⎡31−3⎦⎤
i=1∑3ezi=e3+e1+e−3=22.8536
第一步实现所有数映射为非负数z′=⎣⎡e3e1e−3⎦⎤
i=1∑3ezi=e3+e1+e−3=22.8536
第二步实现所有数映射到0-1范围之内且和为1 Y=∑i=13eziz′=∑i=13ezi⎣⎡e3e1e−3⎦⎤=22.8536⎣⎡e3e1e−3⎦⎤=22.8536⎣⎡20.08552.718280.0497871⎦⎤≈⎣⎡0.880.120⎦⎤

softmax输出作为交叉熵的输入
联合本文的第2部分和第3部分,softmax层的输出概率向量可以作为交叉熵损失函数的输入,用在分类问题上。
Y=∑i=13eziz′=∑i=13ezi⎣⎡e3e1e−3⎦⎤=22.8536⎣⎡e3e1e−3⎦⎤=22.8536⎣⎡20.08552.718280.0497871⎦⎤≈⎣⎡0.880.120⎦⎤
label=⎣⎡100⎦⎤
H(x)=−log2(0.88)=0.184425