NNDL 作业1:第二章课后题


习题 2-1 分析为什么平方损失函数不适用于分类问题 , 交叉熵损失函数不适用于回归问题.

损失函数的定义
损失函数是一个非负实数,用来量化模型预测和真实标签之间的差异。我们一般会用损失函数来进行参数的优化,当构建了不连续离散导数为0的函数时,这对模型不能很好地评估。

平方损失函数
平方损失函数经常用在预测标签y ,y为实数值的任务中,定义为:

MSE = \frac{1}{2n}\sum_{i=1}^{n}(y-y{}')^{2}

分类问题中的标签,是没有连续的概念的。每个标签之间的距离也是没有实际意义的,所以预测值和标签两个向量之间的平方差这个值不能反应分类这个问题的优化程度。所以分类问题我们一般采取交叉熵损失函数(Cross-Entropy Loss Function)来进行评估。

交叉熵损失函数

交叉熵损失函数定义为:

Loss = -\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))

交叉熵损失函数只和分类正确的预测结果有关。而平方损失函数还和错误的分类有关,该损失函数除了让正确分类尽量变大,还会让错误分类都变得更加平均,但实际中后面的这个调整使没必要的。但是对于回归问题这样的考虑就显得重要了,因而回归问题上使用交叉熵损失函数并不适合。

 

习题 2-12 对于一个三分类问题 , 数据集的真实标签和模型的预测标签如下 :

真实标签112223333
预测标签122233312

分别计算模型的精确率召回率F1值以及它们的宏平均微平均.  


混淆矩阵:

    预测成正例   预测成反例  加和含义统计量
正例TP FN  TP + FN 表示实际数据集中正样本的数量 召回率 TPR=TP/(TP+FN)
反例  FP  TN FP + TN 表示实际数据集中负样本的数量FPR = FP/(FP+TN)
加和含义TP + FP 表示预测的正类样本数FN + TN 表示预测的负类样本数 TP + FN + FP + TN 表示样本总数    
统计量 精确率= TP/(TP+FP)   正确率= (TP+TN)/(TP+TN+FP+FN)

     
           
设精确率为P,召回率为R,F1值为F1.

以类别1为正例,其他为负例,可得:

TP = 1,TN = 6, FP =1, FN =1,

P_{1} = \frac{TP}{TP+FP} = \frac{1}{1+1} = \frac{1}{2}

R_{1} = \frac{TP}{TP+FN} = \frac{1}{1+1} = \frac{1}{2}

F1_{1} = \frac{(1 + \beta ^{2}) \times P \times R}{ \beta ^{2} \times P + R} = \frac{2 * \frac{1}{2} * \frac{1}{2}}{1 * \frac{1}{2} + \frac{1}{2}} = \frac{1}{2}

以类别2为正例,其他为负例,可得:

TP = 2, TN = 4, FP = 2, FN = 1,

P_{2} = \frac{TP}{TP+FP} = \frac{2}{2+2} = \frac{1}{2}

R_{2} = \frac{TP}{TP+FN} = \frac{2}{2+1} = \frac{2}{3}

F1_{2} = \frac{(1 + \beta ^{2}) \times P \times R}{ \beta ^{2} \times P + R} = \frac{2 * \frac{1}{2} * \frac{2}{3}}{1 * \frac{1}{2} + \frac{2}{3}} = \frac{4}{7}

以类别3为正例,其他为负例,可得:

TP = 2, TN = 4, FP = 1, FN = 2,

P_{2} = \frac{TP}{TP+FP} = \frac{2}{2+1} = \frac{2}{3}

P_{3} = \frac{TP}{TP+FN} = \frac{2}{2+2} = \frac{1}{2}

F1_{3} = \frac{(1 + \beta ^{2}) \times P \times R}{ \beta ^{2} \times P + R} = \frac{2 * \frac{2}{3} * \frac{1}{2}}{1 * \frac{2}{3} + \frac{1}{2}} = \frac{4}{7}

宏平均:

P_{macro} = \frac{1}{n}\sum_{i=1}^{n}P_{i} = \frac{1}{3} * (\frac{1}{2} + \frac{1}{2} + \frac{2}{3}) = \frac{5}{9}

R_{macro} = \frac{1}{n}\sum_{i=1}^{n}R_{i} = \frac{1}{3} * (\frac{1}{2} + \frac{2}{3} + \frac{1}{2}) = \frac{5}{9}

F1_{macro} = \frac{2 * P_{macro} * R_{macro}}{P_{macro} + R_{macro} } = \frac{2 * \frac{5}{9} * \frac{5}{9}}{\frac{5}{9} + \frac{5}{9}} = \frac{5}{9}

微平均:

P_{micro} = \frac{\sum_{i=1}^{n}TP_{i}}{\sum_{i=1}^{n}TP_{i}+\sum_{i=1}^{n}FP_{i}} = \frac{1+2+2}{(1+2+2)+(1+2+1)} = \frac{5}{9}

R_{micro} = \frac{\sum_{i=1}^{n}TP_{i}}{\sum_{i=1}^{n}TP_{i}+\sum_{i=1}^{n}FN_{i}} = \frac{1+2+2}{(1+2+2)+(1+1+2)} = \frac{5}{9}

F1_{macro} = \frac{2 * P_{macro} * R_{macro}}{P_{macro} + R_{macro} } = \frac{5}{9}

总结:

本文主要学习了为什么平方损失函数不适用于分类问题 , 交叉熵损失函数不适用于回归问题以及精确率、召回率、F1值以及它们的宏平均和微平均的计算。巩固了之前学习的内容,并且学习到了如何使用在CSDN中插入公式。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值