一、损失函数
提起损失函数,大概最常用的就是交叉熵和均方误差了。
1.交叉熵损失函数:针对分类问题
假设某个样例的正确答案是(1,0,0),预测值是[0.5,0.4,0.1]
那么其交叉熵为H((1,0,0),(0.5,0.4,0.1))=-(1log0.5+0log0.4+0*log0.1)=0.3
所以,在代码实现时如下:假设label为y,预测值为y’,则交叉熵为
cross_entropy = -tf.reduce_mean(y * log(y’))
这里的乘法是对应元素相乘,reduce_mean函数时求平均值
另外,在得到预测值过程中,往往采用softmax,所以cross_entropy一般和softmax连用,有如下已经封装好的损失函数:
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(labels=y,logits=y’)
2.均方差(MSE):针对回归问题
mse = tf.reduce_mean(tf.square(y-y’))
3.除了以上两个现成的函数,我们还可以自定义函数,如分段函数: