交叉熵损失函数

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

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

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

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

一、交叉熵

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

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

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

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

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

                                                 H(p,q)=-\sum_{x}p(x)\cdot log q(x)

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


二、Softmax

这就需要用到Softmax回归

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

Vici__softmax

 

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

假设原始的神经网络输出为y_{1},y_{2},\cdot \cdot \cdot y_{n},那么经过Softmax回归处理之后的输出为:

                                                softmax(y_{i})={y_{i}}'=\frac{e^{y_{i}}}{\sum_{j=1}^{n}e^{y_{j}}}


三、分类问题什么要用交叉熵损失函数?

首先我们要知道损失函数就是为了刻画模型预测值和真实值之间的差异

上文所述,交叉熵主要用于度量两个概率分布间的差异性信息刻画了两个概率分布之间的距离。

我们使用Softmax层,它将原始的输出层转化成了一个概率分布,正好可以用交叉熵损失函数。

 

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值