A-交叉熵的使用

交叉熵刻画了两个概率分布之间的距离

但是神经网络的输出却不是一个概率分布

softmax回归可以把前向传播返回的结果变成一个概率分布的问题

在tf中,softmax回归参数被去掉了,只是一个额外的输出处理层

也就是说原来的输出被当成了置信度

从交叉熵的公式来来看H(A,B)!=H(B,A)也就是说这个函数是不对称的。

H(A,B)表达的是概率分布B来表达概率分布A的困难程度

当交叉熵作为损失函数的时候,A表示的是正确答案,而B表示的则是预测的答案

也就是说交叉熵的值越小,两个概率的分布也就越接近

例题:有一个三分类的问题,某个样例的正确答案是(1,0,0),某个模型经过softmax回归之后的预测答案是(0.5,0.4,0.1)

   那么这个预测和正确答案之间的交叉熵是

   

   如果另外一个模型的预测是(0.8,0.1,0.1),那么交叉熵为

   

可以看到区别呢,tf实现代码如下

    cross_entropy = -tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-10,1.0)))

 clip_by_value(y,up,dowm) 可以将一个张量中的数值限制到一个范围,避免出现log0这样的错误

把y限制到(up,down)之间

原文地址:https://www.cnblogs.com/simon-idea/p/9626275.html