参考:https://my.oschina.net/u/876354/blog/1940819
https://zhuanlan.zhihu.com/p/33560183
https://www.jianshu.com/p/cf235861311b
1、典型场景(回归、分类)下的损失函数
总结,对于回归问题经常会使用MSE均方误差(L2取平均)计算损失,对于分类问题经常会使用Sigmoid交叉熵损失函数。
2、典型损失函数的使用方式
2.1 L2正则损失函数(回归场景)
# L2损失
loss_l2_vals=tf.square(y_pred - y_target)
loss_l2_out=sess.run(loss_l2_vals)
# 均方误差
loss_mse_vals= tf.reduce.mean(tf.square(y_pred - y_target))
loss_mse_out = sess.run(loss_mse_vals)
2.2 tf.nn.sigmoid_cross_entropy_with_logits(分类场景)
- 计算方式:对输入的logits先通过sigmoid函数计算,再计算它们的交叉熵,但是它对交叉熵的计算方式进行了优化,使得的结果不至于溢出。
- 适用:每个类别相互独立但互不排斥的情况:例如一幅图可以同时包含一条狗和一只大象。
- output不是一个数,而是一个batch中每个样本的loss,所以一般配合tf.reduce_mean(loss)使用。