深度学习分类问题中accuracy等评价指标的理解
在处理深度学习分类问题时,会⽤到⼀些评价指标,如accuracy(准确率)等。刚开始接触时会感觉有点多有点绕,不太好理解。本⽂写出我的理解,同时以语⾳唤醒(唤醒词识别)来举例,希望能加深理解这些指标。
1,TP / FP / TN / FN
下表表⽰为⼀个⼆分类的混淆矩阵(多分类同理,把不属于当前类的都认为是负例),表中的四个参数均⽤两个字母表⽰,第⼀个字母表⽰判断结果正确与否(正确⽤T(True),错误⽤F(False),第⼆个字母表⽰判定结果(正例⽤P(Positive),负例⽤N(Negative))。四个参数的具体意思如下:
TP (True Positive):表⽰实际为正例,判定也为正例的次数,即表⽰判定为正例且判定正确的次数。FP (False Positive): 表⽰实际为负例,却判定为正例的次数,即表⽰判定为正例但判断错误的次数。TN (True Negative):表⽰实际为负例,判定也为负例的次数,即表⽰判定为负例且判定正确的次数。FN (False Negative): 表⽰实际为正例,却判定为负例的次数,即表⽰判定为负例但判断错误的次数。
为了帮助理解,我以智能⾳箱中的语⾳唤醒(假设唤醒词为“芝⿇开门”)来举例。这⾥正例就是唤醒词“芝⿇开门”,负例就是除了“芝⿇开门”之外的其他词,即⾮唤醒词,如“阿⾥巴巴”。设定评估时说唤醒词和⾮唤醒词各100次,TP就表⽰说了“芝⿇开门”且被识别的次数(假设98次),FN就表⽰说了“芝⿇开门”却没被识别(判定成负例)的次数(假设2次),FP就表⽰说了⾮唤醒词却被识别(判定成正例)的次数(假设1次),TN就表⽰说了⾮唤醒词且没被识别的次数(假设99次)。
2,accuracy / precision / recall
accuracy是准确率,表⽰判定正确的次数与所有判定次数的⽐例。判定正确的次数是(TP+TN),所有判定的次数是(TP + TN + FP +FN),所以
在语⾳唤醒例⼦中,TP = 98,TN = 99,FP = 1, FN = 2, 所以accuracy = (98 + 99) / (98 + 99 + 1 + 2) = 98.5%,即准确率为 98.5%。
precision是精确率,表⽰正确判定为正例的次数与所有判定为正例的次数的⽐例。正确判定为正例的次数是TP,所有判定为正例的次数是(TP + FP),所以
在语⾳唤醒例⼦中,TP = 98, FP = 1, 所以precision = 98 / (98 + 1) = 99%,即精确率为 99%。
recall是召回率,表⽰正确判定为正例的次数与所有实际为正例的次数的⽐例。正确判定为正例的次数是TP,所有实际为正例的次数是(TP +FN),所以
在语⾳唤醒例⼦中,TP = 98, FN = 2, 所以recall = 98 / (98 + 2) = 98%,即召回率为 98%。在语⾳唤醒场景下,召回率也叫唤醒率,表⽰说了多少次唤醒词被唤醒次数的⽐例。
1, FAR / FRR
FAR (False Acceptance Rate)是错误接受率,也叫误识率,表⽰错误判定为正例的次数与所有实际为负例的次数的⽐例。错误判定为正例的次数是FP,所有实际为负例的次数是(FP + TN),所以
在语⾳唤醒例⼦中,FP = 1, TN = 99, 所以FAR = 1 / (99 + 1) = 1%,即错误接受率为 1%。在语⾳唤醒场景下,错误接受率也叫误唤醒率,表⽰说了多少次⾮唤醒词却被唤醒次数的⽐例。
FRR (False Rejection Rate)是错误拒绝率,也叫拒识率,表⽰错误判定为负例的次数与所有实际为正例的次数的⽐例。错误判定为负例的次数是FN,所有实际为正例的次数是(TP + FN),所以
在语⾳唤醒例⼦中,FN = 2, TP = 98, 所以FRR = 2/ (2 + 98) = 2%,即错误拒绝率为 2%。在语⾳唤醒场景下,错误拒绝率也叫不唤醒率,表⽰说了多少次唤醒词却没被唤醒次数的⽐例。
2, ROC曲线 / EER
ROC(receiver operating characteristic curve)曲线是“受试者⼯作特征”曲线,是⼀种已经被⼴泛接受的系统评价指标,它反映了识别算法在不同阈值上,FRR(拒识率)和FAR(误识率)的平衡关系。ROC曲线中横坐标是FRR(拒识率),纵坐标是FAR(误识率),等错误率(EEREqual-Error Rate)是拒识率和误识率的⼀个平衡点,等错误率能够取到的值越低,表⽰算法的性能越好。
上图是ROC曲线的⽰意图,我从语⾳唤醒的场景来解释。从上图看出FRR低/FAR⾼时,即拒识率低、误识率⾼时,智能⾳箱很容易被唤醒,即很好⽤。FRR⾼/FAR低时,即拒识率⾼、误识率低时,智能⾳箱不容易被唤醒,即不太⽅便⽤,但是很难误唤醒,安全性很⾼。真
正使⽤时要找到⼀个FAR和FRR的平衡点(EER),也就是不那么难唤醒,⽅便使⽤,同时也不会有⾼的误唤醒,保证安全。