交叉熵
神经网络的输出,也就是前向传播的输出可以通过Softmax回归变成概率分布,之后就可以使用交叉熵函数计算损失。
交叉熵一般会和Softmax一起使用,在tf中对这两个函数做了封装,就是tf.nn.softmax_cross_entropy_with_logits 函数,可以直接计算神经网络的交叉熵损失。
cross_entropy=tf.nn.softmax_cross_entropy_with_logits(y,y_)
其中y是网络的输出,y_是期望的输出。
针对分类任务中,正确答案往往只有一个的情况,tf提供了更加高效的tf.nn.sparse_softmax_cross_entropy_with_logits函数来求交叉熵损失。
均方误差
均方误差的含义是求一个batch中n个样本的n个输出与期望输出的差的平方的平均值。
tf中实现均方误差的函数为:
mse=tf.reduce_mean(tf.square(y_-y))
loss=tf.reduce_sum(tf.select(tf.greater(v1,v2),loss1,loss2))