损失函数用于描述模型预测值与真实值的差距大小,一般有两种比较常见的算法——均值平方差(MSE)和交叉熵。
1、均值平方差(MSE):指参数估计值与参数真实值之差平方的期望值。
在神经网络计算时,预测值要与真实值控制在同样的数据分布内,假设将预测值经过Sigmoid激活函数得到取值范围在0~1之间,那么真实值也归一化到0~1之间。
2、交叉熵:预测输入样本属于某一类的概率。
其中y代表真实值分类(0或1),a代表预测值,交叉熵值越小,预测结果越准。
3、损失函数的选取
损失函数的选取取决于输入标签数据的类型,如果输入的是实数、无界的值,损失函数使用平方差;如果输入标签是位矢量(分类标签),使用交叉熵会更合适。
4、Tensorflow常见的loss函数
- 均值平方差
# logits代表标签值,outputs代表预测值 MSE = tf.reduce_mean(tf.pow(tf.sub(logits,outputs),2.0)) MSE = tf.reduce_mean(tf.square(logits-outputs))
- 交叉熵:Sigmoid交叉熵、softmax交叉熵、Sparse交叉熵、加权Sigmoid交叉熵