欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

交叉熵损失函数

程序员文章站 2022-07-04 22:59:37
...

监督学习的两大种类是分类问题回归问题

交叉熵损失函数主要应用于分类问题。

 先上实现代码,这个函数的功能就是计算labels和logits之间的交叉熵。

tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_)

一、交叉熵

首先一个问题,什么是交叉熵?

交叉熵(Cross Entropy)主要用于度量两个概率分布间的差异性信息

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

(概率分布刻画了不同事件发生的概率,而且所有事件的概率求和为 1 )

假设两个概率分布p、q,p为真实分布,q为非真实分布(或预测分布),通过q来表示p的交叉熵为:

                                                 交叉熵损失函数

交叉熵刻画的是两个概率分布之间的距离,但是神经网络的输出却不一定是一个概率分布。
那么如何将神经网络前向传播得到的结果也编程概率分布呢?


二、Softmax

这就需要用到Softmax回归

首先看一下加上Softmax回归的神经网络结构图:

交叉熵损失函数

 

从图中可以看出Softmax层其实是一层处理层,原始输出层通过Softmax层转化成一个概率分布,然后作为最终输出。

假设原始的神经网络输出为交叉熵损失函数,那么经过Softmax回归处理之后的输出为:

                                                交叉熵损失函数

 

对于交叉熵的定义可以看下这篇文章《完美解释交叉熵》 

参考书籍《TensorFlow实战Google深度学习框架》