习题 2-1

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

1.平方损失函数

平方损失函数(MSE)表达式
L = 1 2 m ∑ i = 1 m ( y − y ′ ) 2 L={1 \over 2m}\sum_{i=1}^m (y-y')^2 L=2m1i=1m(yy)2平方损失函数较为容易理解,它直接测量机器学习模型的输出与实际结果之间的距离。这里定义机器学习模型的输出为 y i y_{i} yi,实际的结果为 y i ′ y_{i}' yi

分析平方损失函数不适用于分类问题:使用平方损失函数处理分类问题时,由于分类问题的结果是离散值,分类正确的项之间以及分类错误的项之间误差都是一样的,不具有距离的意义,通过计算平方得到的误差大小实际上并不能很好地反映误差大小,且分类问题的函数不是凸函数,会陷入局部最小点,会对优化造成困难。

现在要分类 Y Y Y ={1 , 2 , 3 1,2,31,2,3},假设第一个样本属于1,而如果使用平方差损失函数的预测为2,那么误差为 1 2 \frac{1}{2} 21 ,如果结果预测为3,那么误差为2 。在分类问题中,预测为3和预测为2是等价的,代表的都是错误,并没距离的成分。所以平方误差不适合分类任务

2.交叉熵损失函数

交叉熵损失函数(CrossEntropyLoss)表达式:
L = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) L=-\sum_{i=1}^np(x_i)log(q(x_i)) L=i=1np(xi)log(q(xi))是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。其离散函数形式。

分析交叉熵损失函数不适用于回归问题:交叉熵损失函数之和分类正确的预测结果有关,但回归问题除了要让正确的分类尽量变大,还要让错误的分类变得平均。因此回归问题不适合使用 交叉熵损失函数。

:交叉熵经常搭配softmax使用,将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。

习题 2-12

对于一个三分类问题 , 数据集的真实标签和模型的预测标签如下 :
数据
分别计算模型的精确率、召回率、F1值以及它们的宏平均和微平均。
格式要求:使用公式编辑器,在博客上正确书写公式。
预测

1. 精确率(也叫精度或查准率)

P 1 = T P 1 T P 1 + F P 1 = 1 1 + 1 = 1 2 − P 2 = T P 2 T P 2 + F P 2 = 2 2 + 2 = 1 2 − P 3 = T P 3 T P 3 + F P 3 = 2 2 + 1 = 2 3 P1={{TP_1}\over{TP_1+FP_1}}={1 \over 1 + 1}={1\over2}\\-\\ P2={{TP_2}\over{TP_2+FP_2}}={2 \over 2 + 2}={1\over2}\\-\\ P3={{TP_3}\over{TP_3+FP_3}}={2 \over 2 + 1}={2\over3} P1=TP1+FP1TP1=1+11=21P2=TP2+FP2TP2=2+22=21P3=TP3+FP3TP3=2+12=32

2. 召回率(Recall)(也叫查全率)

R 1 = T P 1 T P 1 + F N 1 = 1 1 + 1 = 1 2 − R 2 = T P 2 T P 2 + F N 2 = 2 2 + 1 = 2 3 − R 3 = T P 3 T P 3 + F N 3 = 2 2 + 2 = 1 2 R1={{TP_1}\over{TP_1+FN_1}}={1 \over 1 + 1}={1\over2}\\-\\ R2={{TP_2}\over{TP_2+FN_2}}={2 \over 2 + 1}={2\over3}\\-\\ R3={{TP_3}\over{TP_3+FN_3}}={2 \over 2 + 2}={1\over2} R1=TP1+FN1TP1=1+11=21R2=TP2+FN2TP2=2+12=32R3=TP3+FN3TP3=2+22=21

3. F值(F Measure)(是一个综合指标,为精确率和召回率的调和平均)

F 1 = ( 1 + β ) ∗ P 1 ∗ R 1 β 2 ∗ P 1 + R 1 = 2 ∗ 1 2 ∗ 1 2 1 ∗ 1 2 + 1 2 = 1 2 − F 2 = ( 1 + β ) ∗ P 2 ∗ R 2 β 2 ∗ P 2 + R 2 = 2 ∗ 1 2 ∗ 2 3 1 ∗ 1 2 + 2 3 = 4 7 − F 3 = ( 1 + β ) ∗ P 3 ∗ R 3 β 2 ∗ P 3 + R 3 = 2 ∗ 2 3 ∗ 1 2 1 ∗ 2 3 + 1 2 = 4 7 F1={{(1+\beta)*P_1*R_1}\over{\beta^2*P_1+R_1}}={2*{1\over2}*{1 \over 2} \over 1*{1\over2}+{1 \over 2}}={1\over2}\\-\\ F2={{(1+\beta)*P_2*R_2}\over{\beta^2*P_2+R_2}}={2*{1\over2}*{2 \over 3} \over 1*{1\over2}+{2 \over 3}}={4\over7}\\-\\ F3={{(1+\beta)*P_3*R_3}\over{\beta^2*P_3+R_3}}={2*{2\over3}*{1 \over 2} \over 1*{2\over3}+{1 \over 2}}={4\over7} F1=β2P1+R1(1+β)P1R1=121+2122121=21F2=β2P2+R2(1+β)P2R2=121+3222132=74F3=β2P3+R3(1+β)P3R3=132+2123221=74

3. 宏平均(Macro-averging)是每一类的性能指标的算术平均值

1. 宏查准率

P m a c r o = 1 n ∑ i = 1 n P i = 1 3 ∗ ( 1 2 + 1 2 + 2 3 ) = 5 9 P_{macro}={1 \over n}\sum_{i=1}^nP_i={1 \over 3}*({1 \over 2} +{1 \over 2} +{2 \over 3} )={5\over 9} Pmacro=n1i=1nPi=31(21+21+32)=95

2. 宏查全率

R m a c r o = 1 n ∑ i = 1 n R i = 1 3 ∗ ( 1 2 + 2 3 + 1 2 ) = 5 9 R_{macro}={1 \over n}\sum_{i=1}^nR_i={1 \over 3}*({1 \over 2} +{2 \over 3} +{1 \over 2} )={5\over 9} Rmacro=n1i=1nRi=31(21+32+21)=95

3. F1

F 1 m a c r o = 2 ∗ P m a c r o ∗ R m a c r o P m a c r o + R m a c r o = 2 ∗ 5 9 ∗ 5 9 5 9 + 5 9 = 5 9 F1_{macro}={ 2*P_{macro}*R_{macro}\over P_{macro}+R_{macro}}={2 *{5 \over 9} *{5 \over 9} \over {5 \over 9}+{5 \over 9}}={5\over 9} F1macro=Pmacro+Rmacro2PmacroRmacro=95+9529595=95

4. 微平均(Micro-averging) 是每一个样本的性能指标的算术平均值.

P m a c r o = ∑ i = 1 n T P i ∑ i = 1 n T P i + ∑ i = 1 n F P i = 1 + 2 + 2 ( 1 + 2 + 2 ) + ( 1 + 2 + 1 ) = 5 9 − R m a c r o = ∑ i = 1 n T P i ∑ i = 1 n T P i + ∑ i = 1 n F N i = 1 + 2 + 2 ( 1 + 2 + 2 ) + ( 1 + 1 + 2 ) = 5 9 − F 1 m a c r o = 2 ∗ P m a c r o ∗ R m a c r o β 2 ∗ P m a c r o + R m a c r o = 2 ∗ 5 9 ∗ 5 9 5 9 + 5 9 = 5 9 P_{macro}={\sum_{i=1}^nTP_i \over \sum_{i=1}^nTP_i +\sum_{i=1}^nFP_i }={1+2+2\over(1+2+2)+(1+2+1)}={5\over9}\\-\\ R_{macro}={\sum_{i=1}^nTP_i \over \sum_{i=1}^nTP_i +\sum_{i=1}^nFN_i }={1+2+2\over(1+2+2)+(1+1+2)}={5\over9}\\-\\ F1_{macro}={ 2*P_{macro}*R_{macro}\over \beta^2*P_{macro}+R_{macro}}={2 *{5 \over 9} *{5 \over 9} \over {5 \over 9}+{5 \over 9}}={5\over 9} Pmacro=i=1nTPi+i=1nFPii=1nTPi=(1+2+2)+(1+2+1)1+2+2=95Rmacro=i=1nTPi+i=1nFNii=1nTPi=(1+2+2)+(1+1+2)1+2+2=95F1macro=β2Pmacro+Rmacro2PmacroRmacro=95+9529595=95


总结
通过该代码的练习,更加熟悉了数学公式的博客书写,也了解了精确率召回率F1值以及它们的宏平均微平均的计算,深刻理解了平方损失函数交叉熵损失函数的相关应用的区别。


求点赞
如有错误与建议,望告知!!!(将于下篇文章更正)
请多多关注我!!!谢谢!!!

更多推荐