| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Addressing Failure Prediction by Learning Model Confidence -> 正文阅读 |
|
[人工智能]Addressing Failure Prediction by Learning Model Confidence |
这是一篇关于置信度的文章。https://arxiv.org/abs/1910.04851 ????????作者对模型置信度提出了一个新的目标指标。即TCP(true class probability),比起传统的MCP(maximum class probability)更加的合适。MCP即分类器输出最大后验概率作为最终的类别输出。因为在测试时候,真是的类别是未知的,所以我们提出在训练时后学习TCP指标,引入了一个特别的学习框架。 1:引言 ? ? ? ? 本文主要解决深度神经网络错误误测的问题,模型通过加入置信度的方法,可以决定是否坚持最终的预测。 ? ? ? ? 在分类问题上,广泛使用的标准就是MCP,通过softmax层输出。但是他仍然有概念上的缺点。sofmax已知是非校准的,对对抗攻击比较敏感,也不足以监测那些out-of-distribution的例子。 回答1:因为softmax的类别输出的置信度过高,因为神经网络对他们的预测过于自信。所以softmax输出的概率不等于模型的置信度。 回答2: ? ?????????在本文要解决的第二个问题,对置信度结果进行排位,对于错误的预测,MCP的排位是不准确的。因为其对于正确的和错误的划分会重叠。模型对于正确的和错误的划分置信度都比较高。 ?如下图的a,而b,错误的置信度转移到左边,比较低。 ?2:错误的预测通过学习模型置信度 ? ? ? ? 对于数据集D,里面有N个样本, ?输入x,网络对每一个类别分配一个概率,w是模型参数,模型的输出类别可以计算为: 即第k个类别输出的概率最大值, 即为模型的预测类别。 在训练过程中,我们通过减小预测分布和真实分布之间KL散度,在分类任务中通过更新参数,来最小化交叉熵损失。 ?3:置信度指标用于错误的预测 模型的置信度越高,模型对于他的预测就越确定。因此一个合适的置信度标准应该是错误的分类赋予一个低的置信度,正确的分类赋予一个高的置信度。 注:x:输入 y*真实类别 yhat预测类别 对于输入x,MCP:模型误分类的话,真实类别就会赋予一个很低的值。反映给模型让他知道自己误分类了。 ?因此我们提出TCP: ?理论保证: 当Y=真实类别的概率大于1/2,我们就推出预测的概率等于真实的概率。模型预测正确。 当Y=真实类别的概率小于1/K,我们就推出预测的概率不等于真实的概率。模型预测错误。 证明:k是标签的数量,x是一个sample,y*是对应的标签。模型正确分类的概率大于1/2。 其中(2)是1减去所有其他分类的结果,就是正确分类的结果。所以y=任何一个概率的值都小于正确概率的值。 公式(4)是错误分类的概率,如果正确的分类概率小于1/k,那么其余的其他种类的概率大于(k-1)/k。 ????????看最后一句话:至少存在一个k,Y=k的概率大于Y=y*的概率(k不等于y*)会导致预测结果不等于真实结果。即模型分类错误。也就是说如果有一个类别大于真实类别的概率,那么就是误分类。 在[1/k,1/2]范围内,我们没有理论保证正确和错误的预测不会重叠。但是当我们使用深度神经网络,我们发现之间的重叠区域是非常小的。可能的原因是深度神经网络的输出预测过于自信。 我们也提出了归一化的TCP,正确的预测将会赋值为1。错误的会在[0,1]之间。 ?4:通过深度神经网络学习TCP 我们提出在训练时候学习TCP,我们引入置信度神经网络,取名confidNet,带有参数o,输出置信度预测c(x,o),在训练时候我们寻找o,类似于c*(x,y*)。 ?红色框框通过交叉熵损失学习参数w,他的分类层将会固定。 5:置信度网络设计 开始时候,模型提取复杂的特征输入到分类层,confidnet将提取的特征输送到一系列的dense layer最终由一个sigmoid激活函数,输出C_hat属于[0,1]。 损失函数:使用l2损失训练confidNet,最终我们使用了一个rank loss。 ?6:学习策略 训练confidnet开始时候固定整个m,冻结参数w,通过损失函数学习o,下一步fine-tune模型的encoder,因为模型m是固定的,我们解耦特征encoder用来分类,和置信度预测。我们在训练的最后一个阶段会舍弃dropout layer。并且减少学习率。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:47:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |