Cross Entropy

定义

为了训练模型,我们需要定义一个 loss function 来描述模型对问题的分类精度,Loss 越小,代表模型的分类结果与真实值偏差越小,也就是说模型越精确。

对于多分类问题,通常使用 cross-entropy 做为 loss function。 Cross-entropy 最早出自信息论(Information Theory)中的信息熵,然后被用到很多地方。

Cross-entropy 的定义如下:

其中 y 是预测的概率分布, y’是真实的概率分布。

实现

API

名称 作用
tf.reduce_mean 返回集合中各个元素的平均值
tf.reduce_sum 返回集合中各个元素的和
tf.log 对数函数

注意

tf.reduce_* 系列函数中的参数 reduction_indices 用来控制对哪些下标进行求和,例如 reduce_sum 中使用 reduction_indices = [1] 表示将集合中各个向量的第一个元素加起来

示例


cross_entropy = tf.reduce_mean( -tf.reduce_sum( y_ * tf.log(y), reduction_indices = [1] ))