经典损失函数—交叉熵

通过神经网络解决多分类问题最常用的方法是设置n个输出节点,其中n为类别的个数,对每一个样例,神经网络都会得到一个n维数组作为输出结果,每一个维度对应一个类别,那么如何判断一个输出向量和期望向量有多近呢?交叉熵(cross entropy)是常用的评判方法之一,交叉熵刻画了两个概率分布之间的距离。

交叉熵刻画的是两个概率分布之间的距离,但是神经网络的输出却不一定是一个概率分布,所以通常使用Softmax对神经网络得到的结果处理,Softmax的回归参数被去掉了,它只是一层额外的处理层,将神经网络的输出变成一个概率分布。

代码示例:

#tf.clip_by_value 可以将一个张量中的数值限制在一个范围 这里限制范围避免log0的出现
cross_entropy =-tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-10,1.0)))

因为交叉熵一般会与softmax一起使用,所以Tensorflow对两个功能进行了统一封装

#实现了softmax回归之后的交叉熵损失函数
cross_entropy=tf.nn.softmax_cross_entropy_with_logits(labels=y_,logits=y)
#在只有一个正确答案的分类问题中使用tf.nn.sparse_softmax_cross_entropy_with_logits()可以进一步加速计算过程



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值