卷积神经网络的深入理解

阅读: 评论:0

卷积神经网络的深入理解

卷积神经网络的深入理解

卷积神经网络的深入理解-评测指标篇

  • 绪论
  • 什么是评测指标?
  • 分类任务评测指标
    • 1、准确率/召回率/精确度/F1-score
    • (1)二分类
    • (2)多分类
        • Macro-average方法
        • Weighted-average方法
        • Micro-average方法
    • 2、Precision/Recall(P-R)曲线
    • 3、ROC曲线
    • 那么该选择PR曲线还是ROC曲线呢?
    • 4、AUC面积
  • 回归任务评测指标
    • 1、IOU(Intersection-over-Union)交并比
    • 2、AP(Average Precision)含计算实例


    2023.1.10:补充多分类的准确率/召回率/精确度/
                        F1-score的计算

    (变化的部分会以红色字体标出)

绪论

这一篇主要是介绍一下模型的评测指标,与上几篇文章一样都会持续更新。

什么是评测指标?

评测指标是用来定量衡量模型的性能的,是作为各种方法比较的一个标准。
评测指标可以分为分类任务的评测指标和回归任务的评测指标
下面会详细介绍两种任务的评测指标。

分类任务评测指标

1、准确率/召回率/精确度/F1-score

(1)二分类

在这之前我们要了解几个概念:

*正例(预测)反例(预测)
正例(真实情况)TP(真正例(true positive)预测为正,真实情况为正时)FN(假反例(false negative)预测为反,真实情况为正时)
反例(真实情况)FP(假正例(false positive)预测为正,真实情况为反时)TN(真反例(true negative)预测为反,真实情况为反)

准确率(Accuracy)(绝不能冤枉一个好人):
A c c u r a c y = ( T P + T N ) ( T P + F P + T N + F N ) = 预测正确的样本数 总的样本数 Accuracy=frac{(TP+TN)}{(TP+FP+TN+FN)}=frac{预测正确的样本数}{总的样本数} Accuracy=(TP+FP+TN+FN)(TP+TN)​=总的样本数预测正确的样本数​
精确度(Precision)(注意这里正反是相对的):
P r e c i s i o n = T P T P + F P = 预测正确的正样本数 预测为正的样本数 Precision=frac{TP}{TP+FP}=frac{预测正确的正样本数}{预测为正的样本数} Precision=TP+FPTP​=预测为正的样本数预测正确的正样本数​

P r e c i s i o n = T N F N + T N = 预测正确的负样本数 预测为负的样本数 Precision=frac{TN}{FN+TN}=frac{预测正确的负样本数}{预测为负的样本数} Precision=FN+TNTN​=预测为负的样本数预测正确的负样本数​
本质上是一样的,只不过一般选择正样本(也就是你关注的样本)计算精确度。
召回率(Recall)(与精确度一样,只选择正样本计算召回率)(宁错杀一千也不能放过一个):
R e c a l l = T P T P + F N = 预测正确的正样本数 真实标签为正的样本数 Recall=frac{TP}{TP+FN}=frac{预测正确的正样本数}{真实标签为正的样本数} Recall=TP+FNTP​=真实标签为正的样本数预测正确的正样本数​
即正样本有多少被召回。
F1-score(综合Precision和Recall的评估):
F 1 s c o r e = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l F1 score=frac{2*Precision*Recall}{Precision+Recall} F1score=Precision+Recall2∗Precision∗Recall​

(2)多分类

参考自:多分类模型Accuracy, Precision, Recall和F1-score的超级无敌深入探讨
如下混淆矩阵:

*🐱(预测)🐕(预测)🐏(预测)
🐱(真实)402010
🐕(真实)358540
🐏(真实)01020

准确率(Accuracy)
A c c u r a c y = 预测正确的样本数 总的样本数 = 40 + 85 + 20 75 + 115 + 70 = 29 52 Accuracy=frac{预测正确的样本数}{总的样本数}=frac{40+85+20}{75+115+70}=frac{29}{52} Accuracy=总的样本数预测正确的样本数​=75+115+7040+85+20​=5229​
特殊情况(类别数量差异过大)准确率难以评估模型的好坏,比如:
🐱,🐕,🐏的数量分别为91,7,2,若模型将输入的图片都预测为🐱,则准确率为91%,这显然不能准确评估模型的性能好坏。

🐱,🐕,🐏的精确度Precision召回率Recall如下:
P r e c i s i o n 🐱 = 预测🐱正确的样本数 预测为🐱的样本个数 = 40 40 + 35 = 8 15 Precision🐱=frac{预测🐱正确的样本数}{预测为🐱的样本个数}=frac{40}{40+35}=frac{8}{15} Precision🐱=预测为🐱的样本个数预测🐱正确的样本数​=40+3540​=158​
P r e c i s i o n 🐕 = 预测🐕正确的样本数 预测为🐕的样本个数 = 85 85 + 30 = 17 23 Precision🐕=frac{预测🐕正确的样本数}{预测为🐕的样本个数}=frac{85}{85+30}=frac{17}{23} Precision🐕=预测为🐕的样本个数预测🐕正确的样本数​=85+3085​=2317​
P r e c i s i o n 🐏 = 预测🐏正确的样本数 预测为🐏的样本个数 = 20 20 + 50 = 2 7 Precision🐏=frac{预测🐏正确的样本数}{预测为🐏的样本个数}=frac{20}{20+50}=frac{2}{7} Precision🐏=预测为🐏的样本个数预测🐏正确的样本数​=20+5020​=72​
R e c a l l 🐱 = 预测🐱正确的样本数 真实的🐱的样本个数 = 40 40 + 30 = 4 7 Recall🐱=frac{预测🐱正确的样本数}{真实的🐱的样本个数}=frac{40}{40+30}=frac{4}{7} Recall🐱=真实的🐱的样本个数预测🐱正确的样本数​=40+3040​=74​
R e c a l l 🐕 = 预测🐕正确的样本数 真实的🐕的样本个数 = 85 85 + 75 = 17 32 Recall🐕=frac{预测🐕正确的样本数}{真实的🐕的样本个数}=frac{85}{85+75}=frac{17}{32} Recall🐕=真实的🐕的样本个数预测🐕正确的样本数​=85+7585​=3217​
R e c a l l 🐏 = 预测🐏正确的样本数 真实的🐏的样本个数 = 20 20 + 10 = 2 3 Recall🐏=frac{预测🐏正确的样本数}{真实的🐏的样本个数}=frac{20}{20+10}=frac{2}{3} Recall🐏=真实的🐏的样本个数预测🐏正确的样本数​=20+1020​=32​
如果想评估整个模型的准确程度,必须考虑🐱,🐕,🐏三个类别的综合预测性能。那么,到底要怎么综合这三个类别的Precision呢?有如下几种解决方案:

Macro-average方法

将不同类别的评估指标(Precision/ Recall/ F1-score)加起来求平均,其值显然受稀有类别的影响。
M a c r o − P r e c i s i o n = P r e c i s i o n 🐱 + P r e c i s i o n 🐕 + P r e c i s i o n 🐏 3 = 0.5194 Macro-Precision=frac{Precision🐱+Precision🐕+Precision🐏}{3}=0.5194 Macro−Precision=3Precision🐱+Precision🐕+Precision🐏​=0.5194
M a c r o − R e c a l l = R e c a l l 🐱 + R e c a l l 🐕 + R e c a l l 🐏 3 = 0.5898 Macro-Recall=frac{Recall🐱+Recall🐕+Recall🐏}{3}=0.5898 Macro−Recall=3Recall🐱+Recall🐕+Recall🐏​=0.5898

Weighted-average方法

该方法给不同类别不同权重(权重根据该类别的真实分布比例确定)考虑到了类别不平衡的情况。
W 🐱: W 🐕: W 🐏 = 7 26 : 16 26 : 3 26 W🐱:W🐕:W🐏=frac{7}{26}:frac{16}{26}:frac{3}{26} W🐱:W🐕:W🐏=267​:2616​:263​
W e i g h t e d − P r e c i s i o n = W 🐱 ∗ P 🐱 + W 🐕 ∗ P 🐕 + W 🐏 ∗ P 🐏 = 0.6314 Weighted-Precision=W🐱*P🐱+W🐕*P🐕+W🐏*P🐏=0.6314 Weighted−Precision=W🐱∗P🐱+W🐕∗P🐕+W🐏∗P🐏=0.6314
W e i g h t e d − R e c a l l = W 🐱 ∗ R 🐱 + W 🐕 ∗ R 🐕 + W 🐏 ∗ R 🐏 = 0.5577 Weighted-Recall=W🐱*R🐱+W🐕*R🐕+W🐏*R🐏=0.5577 Weighted−Recall=W🐱∗R🐱+W🐕∗R🐕+W🐏∗R🐏=0.5577

Micro-average方法

和上面那个计算准确率的方法一样
M i c r o − P r e c i s i o n = 预测正确的样本数 预测的总样本数 = 40 + 85 + 20 75 + 115 + 70 = 29 52 = 0.5577 Micro-Precision=frac{预测正确的样本数}{预测的总样本数}=frac{40+85+20}{75+115+70}=frac{29}{52}=0.5577 Micro−Precision=预测的总样本数预测正确的样本数​=75+115+7040+85+20​=5229​=0.5577
M i c r o − R e c a l l = 预测正确的样本数 真实的总样本数 = 40 + 85 + 20 70 + 160 + 30 = 29 52 = 0.5577 Micro-Recall=frac{预测正确的样本数}{真实的总样本数}=frac{40+85+20}{70+160+30}=frac{29}{52}=0.5577 Micro−Recall=真实的总样本数预测正确的样本数​=70+160+3040+85+20​=5229​=0.5577
可见Micro-Precision等于Micro-Recall等于Accuracy
F 1 s c o r e = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l = 0.5577 F1 score=frac{2*Precision*Recall}{Precision+Recall}=0.5577 F1score=Precision+Recall2∗Precision∗Recall​=0.5577
最后得到:
M i c r o − P r e c i s i o n = M i c r o − R e c a l l = A c c u r a c y = F 1 s c o r e Micro-Precision=Micro-Recall=Accuracy=F1 score Micro−Precision=Micro−Recall=Accuracy=F1score

2、Precision/Recall(P-R)曲线

Precision/Recall曲线也叫做P-R曲线,Precision与Recall是一对矛盾的变量,考虑到类别不平衡的情况。

从图中可以看出(上图中查全率即为召回率,查准率即为精确度):
1、召回率增加,精度下降;

下面以我的角度解释一下为什么查全率与查准率的关系成反比。
通俗一点就是
重查全率(recall): 宁可错杀一千,不可漏过一个。
重查准率(precision): 宁可漏过坏人,不可错杀无辜的好人。

首先我们假设正例样本数(T)和反例样本数(F)是确定的。
即:
T P + F N = T ( 实际正样本的总个数 ) TP+FN=T(实际正样本的总个数) TP+FN=T(实际正样本的总个数)
F P + T N = F ( 实际负样本的总个数 ) FP+TN=F(实际负样本的总个数) FP+TN=F(实际负样本的总个数)
假设我们要提高查全率
R = T P ( T P + F N ) = T P T R=frac{TP}{(TP+FN)}=frac{TP}{T} R=(TP+FN)TP​=TTP​
T T T的数量是不变的,要提高查全率我们就要提高 T P TP TP即预测为正的个数,而
P = T P ( T P + F P ) P=frac{TP}{(TP+FP)} P=(TP+FP)TP​
T P TP TP的提高,必然会增加预测正例 T P + F P TP+FP TP+FP,此过程中会引入新增的FP,
且分母 ( T P + F P ) (TP+FP) (TP+FP)的增幅会大于分子 T P TP TP的增幅。

2、曲线与坐标值面积越大,性能越好(能更大的提升精确度和召回率);但是有时面积不好计较,那么就选择 y = x y=x y=x与P-R曲线的交点也叫作平衡点(BEP)比较BEP,越大的学习器越优。
3、对正负样本不均衡问题较敏感。

3、ROC曲线

ROC曲线的横坐标是false positive rate(FPR):
F P R = F P ( F P + T N ) = 将反例预测为正例的样本数 标签为反的样本数 FPR=frac{FP}{(FP+TN)}=frac{将反例预测为正例的样本数}{标签为反的样本数} FPR=(FP+TN)FP​=标签为反的样本数将反例预测为正例的样本数​
纵坐标为true positive rate(TPR)
T P R = T P ( T P + F N ) = 将正例预测为正例的样本数 标签为正的样本数 TPR=frac{TP}{(TP+FN)}=frac{将正例预测为正例的样本数}{标签为正的样本数} TPR=(TP+FN)TP​=标签为正的样本数将正例预测为正例的样本数​
下图来自阿里公开课

ROC曲线对正负样本不均衡问题不敏感。

那么该选择PR曲线还是ROC曲线呢?

这里引用了这篇博客P-R曲线及与ROC曲线区别
1、在很多实际问题中,正负样本数量往往很不均衡。比如,计算广告领域经常涉及转化率模型,正样本的数量往往是负样本数量的1/1000,甚至1/10000。若选择不同的测试集,P-R曲线的变化就会非常大,而ROC曲线则能够更加稳定地反映模型本身的好坏。所以,ROC曲线的适用场景更多,被广泛用于排序、推荐、广告等领域。
2、但需要注意的是,选择P-R曲线还是ROC曲线是因实际问题而异的,如果研究者希望更多地看到模型在特定数据集上的表现,P-R曲线则能够更直观地反映其性能。
3、ROC兼顾了正负样本。当正负样本比例失调时,比如正样本1个,负样本100个,则ROC曲线变化不大,此时用PR曲线更加能反映出分类器性能的好坏。

4、AUC面积


AUC面积其实就是ROC曲线的下半部分面积,与P-R图类似,通过比较AUC面积来比较学习器的优劣,面积大的更优。

回归任务评测指标

1、IOU(Intersection-over-Union)交并比

IOU多用于检测、分割任务中
I O U = A ∩ B A ∪ B IOU=frac{Acap B}{Acup B} IOU=A∪BA∩B​

2、AP(Average Precision)含计算实例

如图所示20个样本的id,预测概率,以及标签。

idScoreLabelidScoreLabel
10.230110.030
20.761120.090
30.010130.650
40.911140.070
50.130150.120
60.450160.241
70.121170.10
80.030180.230
90.381190.460
100.110200.081

对上述标签进行概率排序

idScoreLabelidScoreLabel
40.91170.121
20.761150.120
130.650100.110
190.460170.10
60.450120.090
90.381200.081
160.241140.070
10.23080.030
180.230110.030
50.13030.010

正样本的id为:
2、4、7、9、16、20一共六个
top-N就是取前N个,注意是将这N个都预测为正
比如top-5就是取前5个(上面表格中加粗的部分)
P r e c i s i o n = T P T P + F P = 预测正确的正样本数 预测为正的样本数 = 2 5 Precision=frac{TP}{TP+FP}=frac{预测正确的正样本数}{预测为正的样本数}=frac{2}{5} Precision=TP+FPTP​=预测为正的样本数预测正确的正样本数​=52​
R e c a l l = T P T P + F N = 预测正确的正样本数 真实标签为正的样本数 = 2 6 Recall=frac{TP}{TP+FN}=frac{预测正确的正样本数}{真实标签为正的样本数}=frac{2}{6} Recall=TP+FNTP​=真实标签为正的样本数预测正确的正样本数​=62​
(1)下面是top-1到top-20的表格:

top-NPrecision(注意这里是精确度)recall
11/11/6
22/22/6
32/32/6
42/42/6
52/52/6
63/63/6
74/74/6
84/84/6
94/94/6
104/104/6
115/115/6
125/125/6
135/135/6
145/145/6
155/155/6
166 /166/6
176/176/6
186/186/6
196/196/6
206/206/6

上面表格中大字号黑体的精确度是相同召回率的最大值。

(2)设置阈值统计recall大于等于每个阈值时最大的精确度
这里取11个阈值[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]
阈值为0时,recall全部大于0,从中取出最大精确度:
P = m a x { 1 1 , 2 2 , 3 6 , 4 7 , 5 11 , 6 16 } = 1 P=maxleft { frac{1}{1},frac{2}{2},frac{3}{6},frac{4}{7},frac{5}{11},frac{6}{16}right }=1 P=max{11​,22​,63​,74​,115​,166​}=1
阈值为0.1时,recall全部大于等于0.1,从中选出最大精确度:
P = m a x { 1 1 , 2 2 , 3 6 , 4 7 , 5 11 , 6 16 } = 1 P=maxleft { frac{1}{1},frac{2}{2},frac{3}{6},frac{4}{7},frac{5}{11},frac{6}{16}right }=1 P=max{11​,22​,63​,74​,115​,166​}=1
阈值为0.2时,recall大于等于0.2的值有 2 6 frac{2}{6} 62​, 3 6 frac{3}{6} 63​, 4 6 frac{4}{6} 64​, 5 6 frac{5}{6} 65​, 6 6 frac{6}{6} 66​,
P = m a x { 2 2 , 3 6 , 4 7 , 5 11 , 6 16 } = 1 P=maxleft { frac{2}{2},frac{3}{6},frac{4}{7},frac{5}{11},frac{6}{16}right }=1 P=max{22​,63​,74​,115​,166​}=1
阈值为0.3时recall大于等于0.3的值有 2 6 frac{2}{6} 62​, 3 6 frac{3}{6} 63​, 4 6 frac{4}{6} 64​, 5 6 frac{5}{6} 65​, 6 6 frac{6}{6} 66​,
P = m a x { 2 2 , 3 6 , 4 7 , 5 11 , 6 16 } = 1 P=maxleft { frac{2}{2},frac{3}{6},frac{4}{7},frac{5}{11},frac{6}{16}right }=1 P=max{22​,63​,74​,115​,166​}=1
阈值为0.4时recall大于等于0.4的值有 3 6 frac{3}{6} 63​, 4 6 frac{4}{6} 64​, 5 6 frac{5}{6} 65​, 6 6 frac{6}{6} 66​,
P = m a x { 3 6 , 4 7 , 5 11 , 6 16 } = 4 7 P=maxleft { frac{3}{6},frac{4}{7},frac{5}{11},frac{6}{16}right }= frac{4}{7} P=max{63​,74​,115​,166​}=74​
阈值为0.5时recall大于等于0.5的值有 3 6 frac{3}{6} 63​, 4 6 frac{4}{6} 64​, 5 6 frac{5}{6} 65​, 6 6 frac{6}{6} 66​,
P = m a x { 3 6 , 4 7 , 5 11 , 6 16 } = 4 7 P=maxleft { frac{3}{6},frac{4}{7},frac{5}{11},frac{6}{16}right }= frac{4}{7} P=max{63​,74​,115​,166​}=74​
阈值为0.6时recall大于等于0.6的值有 3 6 frac{3}{6} 63​, 4 6 frac{4}{6} 64​, 5 6 frac{5}{6} 65​, 6 6 frac{6}{6} 66​,
P = m a x { 4 7 , 5 11 , 6 16 } = 4 7 P=maxleft { frac{4}{7},frac{5}{11},frac{6}{16}right }= frac{4}{7} P=max{74​,115​,166​}=74​
阈值为0.7时recall大于等于0.7的值有 5 6 frac{5}{6} 65​, 6 6 frac{6}{6} 66​,
P = m a x { 5 11 , 6 16 } = 5 11 P=maxleft { frac{5}{11},frac{6}{16}right }= frac{5}{11} P=max{115​,166​}=115​
阈值为0.8时recall大于等于0.8的值有 5 6 frac{5}{6} 65​, 6 6 frac{6}{6} 66​,
P = m a x { 5 11 , 6 16 } = 5 11 P=maxleft { frac{5}{11},frac{6}{16}right }= frac{5}{11} P=max{115​,166​}=115​
阈值为0.9时recall大于等于0.9的值有 6 6 frac{6}{6} 66​,
P = m a x { 6 16 } = 6 16 P=maxleft { frac{6}{16}right }= frac{6}{16} P=max{166​}=166​
阈值为1时recall大于等于1的值有 6 6 frac{6}{6} 66​,
P = m a x { 6 16 } = 6 16 P=maxleft { frac{6}{16}right }= frac{6}{16} P=max{166​}=166​
(3)计算AP值(AP值就是上述11个精确度的平均值):
A P = 1 + 1 + 1 + 1 + 4 7 + 4 7 + 4 7 + 5 11 + 5 11 + 6 16 + 6 16 11 AP=frac{1+1+1+1+frac{4}{7}+frac{4}{7}+frac{4}{7}+frac{5}{11}+frac{5}{11}+frac{6}{16}+frac{6}{16}}{11} AP=111+1+1+1+74​+74​+74​+115​+115​+166​+166​​
(4)mAP值就是各个类别的平均值。

本文发布于:2024-01-29 01:18:19,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170646230411678.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:卷积   神经网络
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23