tensorflow实现交叉熵

交叉熵

本节内容转自经典损失函数:交叉熵(附tensorflow)
交叉熵是一个信息论中的概念,它原来是用来估算平均编码长度的。给定两个概率分布p和q,通过q来表示p的交叉熵为:在这里插入图片描述
交叉熵刻画的是两个概率分布之间的距离,或可以说它刻画的是通过概率分布q来表达概率分布p的困难程度,p代表正确答案,q代表的是预测值,交叉熵越小,两个概率的分布约接近。

那么,在神经网络中怎样把前向传播得到的结果也变成概率分布呢?Softmax回归就是一个非常有用的方法。(所以面试官会经常问你,为什么交叉熵经常要个softmax一起使用?

假设原始的神经网络的输出为在这里插入图片描述,那么经过Softmax回归处理之后的输出为:

在这里插入图片描述

这样就把神经网络的输出也变成了一个概率分布,从而可以通过交叉熵来计算预测的概率分布和真实答案的概率分布之间的距离了。

二分类的交叉熵

交叉熵公式:y^logy
其中y^为真实样本分类;y为预测样本分类,二者维度为[sample_size, 1]
因为y要么0要么1,所以二分类的交叉熵也可以写成logy

多分类交叉熵

交叉熵公式:y^logy
符号含义同上,二者维度为[sample_size, num_tags]

tensorflow实现交叉熵

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

可以借助tensorflow.losses.softmax_cross_entropy

# 主要softmax_cross_entropy中包含softmax操作,因此预测的数据不需要先softmax
cross_entropy = tf.losses.softmax_cross_entropy(y_, y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值