NNDL 作业1:第二章课后题

发布于:2022-12-15 ⋅ 阅读:(519) ⋅ 点赞:(0)

目录

1、平方损失函数的定义

2、交叉熵损失函数的定义 

3、为什么平方损失函数不适用于分类问题

4、为什么交叉熵损失函数不适用于回归问题

5、交叉熵损失函数与softmax回归

 精准率(也叫精度或查准率):

召回率(也叫查全率):

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

宏平均(Macro Average):

宏查准率:

宏查全率:

宏F1:

微平均(是每一个样本的性能指标的算术平均值):

宏平均和微平均的区别

实验体会


 


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

首先,要理解这个就要明白什么是平方损失函数,什么是交叉熵损失函数。

1、平方损失函数的定义


平方损失函数较为容易理解,它直接测量机器学习模型的输出与实际结果之间的距离。这里可以定义机器学习模型的输出为y_{i},实际的结果为y_{i}{}',那么平方损失函数可以被定义为:                                 

                                                              MSE=\frac{1}{2*N}\sum_{i=1}^{N}\left ( y_{i}-y_{i}{}' \right )^{2}

2、交叉熵损失函数的定义 

首先,就要说一说交叉熵的概念,

交叉熵(Cross Entry)是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。其离散函数形式

                                                             H\left ( p,q \right )=- \sum_{x}^{}p\left ( x \right )log\left ( q\left ( x \right ) \right )

参数解释:p\left ( x \right ) 是真实分布的概率,q\left ( x \right )是模型通过数据计算出来的概率估计。
因而,对于该二分类模型其交叉熵损失函数可以定义为:

                                                            Loss=-\sum_{i=1}^{n}y_{i}logy_{i}{}'

                                                    其中: y_{i}为标签值, y_{i}{}'为预值测

熵就是在信息论的角度定义出来的

信息熵是在结果出来之前对可能产生的信息量的期望。相对熵表示两个概率分布的差异,即KL散度。当两个分布相同时,相对熵的值为0 00,其余情况下都大于0 00。

这是就又出现一个概念,相对熵(即KL散度)

 相对熵又称互熵,设p ( x ) p(x)p(x)和q ( x ) q(x)q(x)是取值的两个概率分布,相对熵用来表示两个概率分布的差异,当两个随机分布相同时,它们的相对熵为零,当两个随机分布的差别增大时,它们的相对熵也会增大。

                                                          D(p||q)=\sum_{i=1}^{n}p\left ( x \right )\frac{p\left ( x \right )}{q\left (x\right ) }

KL散度 = 交叉熵 - 信息熵

 在终于弄清了定义之后,

3、为什么平方损失函数不适用于分类问题

有个状况较梯度消失,当时第一下写手写数字识别是,当时还不太懂,就随便调到的库,正好softmax和平方损失调的一起,当时去问老师,为啥准确率下来了。

softmax函数写在了下边

当sigmoid函数和MSE一起使用时会出现梯度消失。原因如下:
(1)MSE对参数的偏导

\frac{\partial c}{\partial w}=\left ( a-y \right )\sigma\left ( z \right ) {}'x

\frac{\partial c}{\partial b}=\left ( a-y \right )\sigma \left ( z \right ){}'
(2)corss-entropy对参数的偏导

\frac{\partial c}{\partial w}=\frac{1}{n}\sum \left ( \sigma \left ( z \right )-y \right )

\frac{\partial c}{\partial b}=\frac{1}{n}\sum \left ( \sigma \left ( z \right ) -y\right )
由上述公式可以看出,在使用MSE时,w、b的梯度均与sigmoid函数对z的偏导有关系,而sigmoid函数的偏导在自变量非常大或者非常小时,偏导数的值接近于零,这将导致w、b的梯度将不会变化,也就是出现所谓的梯度消失现象。而使用cross-entropy时,w、b的梯度就不会出现上述的情况。所以MSE不适用于分类问题。

4、为什么交叉熵损失函数不适用于回归问题

从平方损失函数运用到多分类场景下,可知平方损失函数对每一个输出结果都十分看重,而交叉熵损失函数只对正确分类的结果看重。例如,对于一个多分类模型其模型结果输出为( a , b , c ) (a,b,c)(a,b,c),而实际真实结果为( 1 , 0 , 0 ) (1, 0, 0)(1,0,0)。则根据两种损失函数的定义其损失函数可以描述为:
                              Ls=\left ( a-1 \right )^{2}+\left ( b-0 \right )^{2}+\left ( c-0 \right )^{2}=\left ( a-1 \right )^{2}+b^{2}+c^{2}

                              Lc=-1*loga-0*logb-0*logc=-loga

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

并且从函数的角度出发

平方数损失函数假设最终结果都服从高斯分布,而高斯分布实际上是一个连续变量,并不是一个离散变量。如果假设结果变量服从均值u uu,方差为σ \sigmaσ,那么利用最大似然法就可以优化它的负对数似然,公式最终变为了:

                                          =max\sum_{i}^{N}\left [ -\frac{1}{2}log\left ( 2\pi \sigma ^{2} \right ) -\frac{\left ( t_{i}-y \right )}{2\sigma ^{2}}\right ]

出去与y 无关的项目,最后剩下的就是平方损失函数的形式。

5、交叉熵损失函数与softmax回归

 这里稍微说一下softmax,剩下的其实直接调库就行,nn库里边就有这些函数。

softmax回归相对于线性回归输出单元从一个变成了多个,适合用来解决分类问题。且引入了softmax运算使得输出更适合离散值的预测和训练。交叉熵损失函数对比平方损失函数其没有那么严格,其只关注对正确类别的预测概率

在分类问题中,softmax将输出的结果进行处理,使其多个分类的预测概率值和为1,输出类别的概率分布,再通过交叉熵来计算损失,所以两者经常一起使用。

 所以还是我之前说过的更重要的是去理解思想,现在这个都能调包,都是封装好的,但是你怎么调,怎么搭配,怎么样合理,原理是什么,这是要考虑的问题。

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

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

格式要求:使用公式编辑器,在博客上正确书写公式。

做这个题就不得不说一说混淆矩阵的概念了

首先先来一波上学期学的神书西瓜书上的混淆矩阵。

然后再来一波这学期的神书蒲公英书上的混淆矩阵。

 对此我要拜一拜周志华和邱锡鹏两位大神

好,对于两位大佬的膜拜完了,那我们就开始正式做了,首先,先按上边的四种类型来统计一下数据,也就是c有三种情况即1、2、3。

先统计出来的情况:(下边的1、2,代表的是序号)

TP\left ( y=1,y{}'=1 \right ):1                                                1个

FN\left ( y=2,y{}'\neq 2\right ):2                                               1个

FP\left ( y\neq 1,y{}'=1\right ):8                                                1个

TN(y\neq 1,y{}'\neq 1):3,4,5,6,7,9                                  6个

TP\left ( y=2,y{}'=2 \right ):3、4                                        2个

FN\left ( y=2,y{}'\neq 2\right ):5                                             1个

FP\left ( y\neq 2,y{}'=2\right ):2、9                                        2个

TN(y\neq 2,y{}'\neq 2):1、6、7、8                             4个

TP\left ( y=3,y{}'=3 \right ):6、7                                        2个

FN\left ( y=3,y{}'\neq 3\right ):8、9                                       2个

FP\left ( y\neq 3,y{}'=3\right ):5                                             1个

TN(y\neq 3,y{}'\neq 3):1、2、3、4                             4个

 精准率(也叫精度或查准率):

P_{c}=\frac{TP_{c}}{TP_{c}+FP_{c}}

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

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

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

召回率(也叫查全率):

R_{c}=\frac{TP_{c}}{TP_{c}+FN_{c}}

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

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

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

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

一般取值为\beta =1,称作F1的值

F_{c}=\frac{\left ( 1+\beta ^{2} \right )\times P_{c}\times R_{c}}{\beta ^{2}\times P_{c}+R_{c}}

F_{1}=\frac{\left ( 1+1 ^{2} \right )\times \frac{1}{2}\times \frac{1}{2}}{1 ^{2}\times \frac{1}{2}+\frac{1}{2}}=\frac{1}{2}

F_{2}=\frac{\left ( 1+1 ^{2} \right )\times \frac{1}{2}\times \frac{2}{3}}{1 ^{2}\times \frac{1}{2}+\frac{2}{3}}=\frac{4}{7}

F_{3}=\frac{\left ( 1+1 ^{2} \right )\times \frac{2}{3}\times \frac{1}{2}}{1 ^{2}\times \frac{2}{3}+\frac{1}{2}}=\frac{4}{7}

宏平均(Macro Average):

宏查准率:

P_{macro}=\frac{1}{C}\sum_{c=1}^{C}P_{c}

P_{macro}=\frac{1}{3}\left ( \frac{1}{2}+\frac{1}{2}+\frac{2}{3} \right )=\frac{5}{9}

宏查全率:

R_{macro}=\frac{1}{C}\sum_{c=1}^{C}R_{c}

R_{macro}=\frac{1}{3}\left ( \frac{1}{2}+\frac{2}{3}+\frac{1}{2} \right )=\frac{5}{9}

宏F1:

F1_{macro}=\frac{2\times P_{macro}\times R_{macro}}{P_{macro}\times R_{macro}}

F1_{macro}=\frac{2\times \frac{5}{9}\times \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}}

P_{micro}=\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}}

R_{micro}=\frac{1+2+2}{1+2+2+1+1+2}=\frac{5}{9}

F1_{mirco}=\frac{2\ast P_{mirco}\ast R_{mirco}}{P_{mirco}+R_{mirco}}

F1_{mirco}=\frac{2\ast\frac{5}{9}\ast \frac{5}{9}}{\frac{5}{9}+\frac{5}{9}}=\frac{5}{9}

宏平均和微平均的区别

宏平均的计算方法独立于不同类别,将每个类别的P、R、F值单独计算出来,然后将所有类别的度量值直接平均,因此它将各个类别平等对待。

微平均会结合不同类别的贡献大小来计算平均值。

所以在多分类问题中,如果存在数据不平衡问题,则使用微平均得到的效果更加可信。

实验体会

      本次作业感觉学到了好多,尤其是对于混淆矩阵,计算查全率,查准率等,以前以为懂了,但是做这个题的时候才发现,是模棱两可的懂了,发现只会2类的那种,当是3个种类的时候,发现概念上还是有点不太明白,又回去看书,又查了好多资料,才终于清晰了定义,终于明白了,尤其是算FN的时候,才明白可以认为,除了找的那一类,其他的算一类。

       并且明白了,在这个在csdn上规范的写公式,也就是Latex的语法,感觉这个还是比较重要的,以前写的公式都是横着的,很难看懂,感觉这个很重要,看着写出来的公式,感觉真的看着都舒服了,感觉这个公式太多了,写了好长时间,当然这是由于不熟练了。

        最后感谢老师,教会了我这么多东西,哈哈哈。

     

 

 

 

 

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到