深度学习分类问题中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(误识率),等错误率(EER Equal-Error Rate)是拒识率和误识率的一个平衡点,等错误率能够取到的值越低,表示算法的性能越好。

上图是ROC曲线的示意图,我从语音唤醒的场景来解释。从上图看出FRR低/FAR高时,即拒识率低、误识率高时,智能音箱很容易被唤醒,即很好用。FRR高/FAR低时,即拒识率高、误识率低时,智能音箱不容易被唤醒,即不太方便用,但是很难误唤醒,安全性很高。真正使用时要找到一个FAR和FRR的平衡点(EER),也就是不那么难唤醒,方便使用,同时也不会有高的误唤醒,保证安全。
深度学习分类问题中accuracy等评价指标的理解的更多相关文章
- 【腾讯Bugly干货分享】深度学习在OCR中的应用
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5809bb47cc5e52161640c5c8 Dev Club 是一个交流移动 ...
- 【AI in 美团】深度学习在OCR中的应用
AI(人工智能)技术已经广泛应用于美团的众多业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最优秀的算法工程师正致力于将AI技术应用于搜索.推荐.广告.风控.智能调度 ...
- 深度学习训练过程中的学习率衰减策略及pytorch实现
学习率是深度学习中的一个重要超参数,选择合适的学习率能够帮助模型更好地收敛. 本文主要介绍深度学习训练过程中的6种学习率衰减策略以及相应的Pytorch实现. 1. StepLR 按固定的训练epoc ...
- Attention机制在深度学习推荐算法中的应用(转载)
AFM:Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Ne ...
- 【深度学习】CNN 中 1x1 卷积核的作用
[深度学习]CNN 中 1x1 卷积核的作用 最近研究 GoogLeNet 和 VGG 神经网络结构的时候,都看见了它们在某些层有采取 1x1 作为卷积核,起初的时候,对这个做法很是迷惑,这是因为之前 ...
- 深度学习在 CTR 中应用
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:高航 一. Wide&&Deep 模型 首先给出Wide && Deep [1] 网络结构: 本质上 ...
- 从零开始学会GAN 0:第一部分 介绍生成式深度学习(连载中)
本书的前四章旨在介绍开始构建生成式深度学习模型所需的核心技术.在第1章中,我们将首先对生成式建模领域进行广泛的研究,并从概率的角度考虑我们试图解决的问题类型.然后,我们将探讨我们的基本概率生成模型的第 ...
- 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv
搞明白了卷积网络中所谓deconv到底是个什么东西后,不写下来怕又忘记,根据参考资料,加上我自己的理解,记录在这篇博客里. 先来规范表达 为了方便理解,本文出现的举例情况都是2D矩阵卷积,卷积输入和核 ...
- 转载:深度学习在NLP中的应用
之前研究的CRF算法,在中文分词,词性标注,语义分析中应用非常广泛.但是分词技术只是NLP的一个基础部分,在人机对话,机器翻译中,深度学习将大显身手.这篇文章,将展示深度学习的强大之处,区别于之前用符 ...
随机推荐
- 【记录一个问题】golang中copy []byte类型的slice无效,为什么?
有这样一段代码: src := []byte{xxxxx} dst := make([]byte, 0, len(src)) copy(dst, src) //这一行居然没生效! // dst = a ...
- HBase之MinorCompact全程解析
转自:https://blog.csdn.net/u014297175/article/details/50456147 Compact作用 当MemStore超过阀值的时候,就要flush到HDFS ...
- cocos2dx 入口函数分析
以下是main函数最开始的两段,也是cocos2d一开始执行的地方: AppDelegate app; return Application::getInstance()->run(); 接下来 ...
- 分页方法需要参数(当前页数,总数据量,拿到query的值)
class Pagination: def __init__(self, page_num, all_count ,params=None,per_num=10,max_show=11): " ...
- HTTPS 原理详解 (转)
HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷 ...
- request和session获取参数的区别
说简单点 request对象和session对象的最大区别是生命周期. request request范围较小一些,只是一个请求. request对象的生命周期是针对一个客户端(说确切点就是一个浏览器 ...
- iOS App 架构文章推荐
iOS应用开发架构 iOS应用架构谈系列 阿里技术沙龙 2.2.1. Hybrid App 2.2.2. taobao 客户端架构 2.2.3. alipay 客户端架构 iOS APP 架构漫谈 ...
- 怎么实时同步java虚拟机与操作系统时区 及JVM启动后再更改操作系统时区或时间也能保持其同步? new date() 时差8个小时的解决方案
第一种(亲测可以) 在代码当中的Application启动类当中加入代码 @PostConstruct void started() { //时区设置:中国上海 //time.zone: " ...
- python——虚拟环境管理大合集
个人常用:pipenv 安装 pip3 install pipenv 创建虚拟环境 # 默认安装在~/.local/virtualenv下 mkdir project cd project pipen ...
- 论文解读(IDEC)《Improved Deep Embedded Clustering with Local Structure Preservation》
Paper Information Title:<Improved Deep Embedded Clustering with Local Structure Preservation>A ...