一. 交叉熵,用于分类问题:
4分类问题,数据的批大小为2,所以此处标签可以用 2*4的矩阵表示,特别注意:输出层为softmax层。
y_:数据的正确标签,用one hot码表示
y1:第一批输入softmax层的激活值
y2:第二批输入softmax层的激活值
output1:第一批的最终输出结果
output2:~
cross_entropy1:使用y1的交叉熵
cross_entropy2:~
这里说明一下为什么使用softmax层作为输出层:
1. 使用softmax即假设每种分类之间是相互对立的,因此所有的输出值相加为1(即输出的所有概率之和为1),如果没有相互对立的假设,则不能使用softmax
(例如:当对一个人按肤色进行分类预测时,由于一个人只有可能是黄、白、黑三种之一,因此 p(白) + p(黄) + p(黑)=1,此时可以使用softmax作为输出层);
2. softmax可以令每一个元素属于(0,1)的范围内,从而避免log0发生。
import tensorflow as tf
y_ = tf.constant([1,0,0,0,0,0,0,1],dtype=tf.float32,shape=[2,4])
y1 = tf.constant([1,0,0,0,0,0,0,1],dtype=tf.float32,shape=[2,4])
y2 =