深度学习之多分类损失函数用法

1.均方差损失函数

       均方差(Mean Squared Error,MSE)是一种用于衡量预测值与实际值之间差异的损失函数。它广泛应用于回归问题,其中模型试图预测连续型目标变量。均方差损失函数计算方法如下:

        假设有n个样本,预测值为y_p,实际值为y_t​,那么均方差损失函数的计算公式为:

                                                            MSE=\frac{1}{n}\sum_{n}^{i=1}({y_p-y_t})^2

        简单来说,就是对每个样本的预测值与实际值之差进行平方,然后求这些平方差的平均值。这样做的目的是为了强调较大的误差,因为平方运算会使较大的误差变得更大,从而对模型的拟合效果产生更大的影响。

        均方差损失函数越小,表示模型的预测值与实际值之间的差异越小,模型的性能越好。在训练过程中,优化算法(如梯度下降)通过调整模型参数,试图使均方差损失函数最小化,从而提高模型的预测准确性。

categorical_crossentropy(交叉熵损失函数)

        分类模型中交叉熵比MSE更合适,MSE无差别关注全部类别上预测概率和真实概率的差。

        交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况。它刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。

        以下代码为交叉熵两种计算方法,loss_ce1为先进行概率计算再进行交叉熵计算,loss_ce2为概率计算与交叉熵计算放在一步完成。

# softmax与交叉熵损失函数的结合
import tensorflow as tf
import numpy as np

y_ = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 1, 0]])
y = np.array([[12, 3, 2], [3, 10, 1], [1, 2, 5], [4, 6.5, 1.2], [3, 6, 1]])
y_pro = tf.nn.softmax(y)
loss_ce1 = tf.losses.categorical_crossentropy(y_,y_pro)
loss_ce2 = tf.nn.softmax_cross_entropy_with_logits(y_, y)

print('分步计算的结果:\n', loss_ce1)
print('结合计算的结果:\n', loss_ce2)


输出结果

分步计算的结果:
 tf.Tensor(
[1.68795487e-04 1.03475622e-03 6.58839038e-02 2.58349207e+00
 5.49852354e-02], shape=(5,), dtype=float64)
结合计算的结果:
 tf.Tensor(
[1.68795487e-04 1.03475622e-03 6.58839038e-02 2.58349207e+00
 5.49852354e-02], shape=(5,), dtype=float64)

sparse_categorical_accuracy用法

        如果有四个类,该样本属于第三类,那么在 categorical_accuracy 中 y_true =(0,0, 1, 0) , 而在 sparse_categorical_accuracy中 y_true = 2 (0-based计数)。但是,y_pred是一样的,均为softmax输出的vector,比如 y_pred = (0.02, 0.05, 0.83, 0.1),于是

y_true = (0, 0, 1, 0)
y_pred = (0.02, 0.05, 0.83, 0.1)
acc = categorical_accuracy(y_true, y_pred)

y_true = 2
y_pred = (0.02, 0.05, 0.83, 0.1)
acc = sparse_categorical_accuracy(y_true, y_pred)


 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值