7

最全模型效果评估报告上线,百度飞桨企业版EasyDL助力模型效果快速优化

 3 years ago
source link: https://baidudanao.blog.csdn.net/article/details/115068893
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

最全模型效果评估报告上线,百度飞桨企业版EasyDL助力模型效果快速优化

百度大脑 2021-03-22 11:27:48 4601

近些年深度学习持续发展,在视觉、自然语言处理、语音等各个技术方向都诞生了创新智能应用,例如智能识别医疗图像中的病灶,辅助医生做病情诊断;智能判别生产线上有质量问题的产品,减轻人工质检压力;对政务、金融等流程中的证件票据进行信息识别,加速审批并实现流程电子化;识别用户输入的语句,与知识库中相应的问答进行匹配,实现智能客服问答等。随着智能应用的爆发式发展,如何构建高精度的AI模型成为每个企业都在持续探索的命题。

构建深度学习模型的过程中,当遇到模型效果不能满足要求,需要进一步定位问题和调优效果,由于深度学习模型又是一个“黑盒”,开发者并不知道当它做出一个错误预测的准确原因,因此很难采取有针对性的效果优化策略。这个时候就非常让人头疼了。

其实,碰到模型效果不佳时不用慌,虽然模型“黑盒”,但是通过一些技术积累和功能设计,可以从多个角度去了解它到底怎么“想”,为模型优化特别是在数据上如何优化提供思路和指导。

在企业AI开发中,快速对模型效果进行评估、定位模型问题,高效完成模型效果优化是AI应用落地中的重要环节。针对这一诉求,百度EasyDL零门槛AI开发平台在原有完善详实的模型评估报告基础上,进一步新增上线了混淆矩阵和CNN热力图功能,即使大家对深度学习了解不多,也可以快速依据可视化评估结果制定更为精准的优化方案。下面将为大家逐一介绍模型指标、错误示例(BadCase)、混淆矩阵、CNN热力图等各个功能。

EasyDL模型评估提供多项指标,多角度展现模型效果信息

EasyDL基于飞桨开源深度学习平台,面向企业AI应用开发者提供零门槛AI开发平台,实现零算法基础定制高精度AI模型。EasyDL提供一站式的智能标注、模型训练、服务部署等全流程功能,内置丰富的预训练模型,支持公有云、设备端、私有服务器、软硬一体方案等灵活的部署方式。

目前,EasyDL已有超过80万企业用户,在工业制造、安全生产、零售快消、智能硬件、文化教育、政府政务、交通物流、互联网等领域广泛落地。

在EasyDL完成模型开发后可以获得平台提供的各项详细的模型评估指标,以图像分类模型为例,除了整体的准确率之外,还可以看精确率、召回率、F1-score、TOP5准确率等。

除了模型整体的指标之外,还可以看每一项类别的F1-score值,从而帮助开发者发现具体哪一类别的识别效果较差。针对这些较差的类别,开发者可以有针对性地去看那些被预测错误的样本,也就是常说的BadCase。开发者可以检查这些类别是否样本量过少,需要补充数据;是否有脏数据存在,影响了模型学习。

在物体检测上也类似,整体指标上可以观测mAP、最佳阈值下检测的精确率、召回率等。因为检测模型会输出很多的检测框,而有相当一部分检测框的概率比较低,一般会设置一个阈值来过滤掉那些低概率的检测框。通过设置不同的阈值,模型便会有不同的精确率、召回率和F1-score。在模型预测时,通常取F1-score最高的阈值当做最佳阈值,这样能够较好地平衡精确率和召回率,尽量减少漏检、错检等问题。

与分类任务类似,在物体检测模型的评估中也可以查看各个类别的精度,来判断哪些类别的检测效果欠佳。找到这些问题比较大的类别之后,同样也可以查看BadCase。检测问题里的BadCase详细区分了“误识别”和“漏识别”这两种情况,从而方便开发者看检测出错的各类情况。开发者可以检查对应类别的标注框是否过少,是否有框标注错误需要修正。

新增混淆矩阵与热力图两大功能,高效展示模型效果问题

除了上面这些经典常用的方法外,为了更有针对性地比较易混淆的类别,EasyDL近期重磅上线了混淆矩阵的功能。在混淆矩阵中,开发者可以方便地看到具体哪两种类别之间容易产生混淆,例如,类别A较多地被识别成了类别B。根据这些信息,开发者可以发现是不是训练数据存在问题,例如相似类别的图片有标注错误;或是这些相似类别的图片太少,导致模型没有学习充分。开发者可以依据混淆矩阵提供的信息,对模型数据进行补充与调整。

看到这里,你会发现,EasyDL在评估模型效果时,通常是从数据的角度去发现现有模型的问题,通过优化数据来优化模型效果的。为什么会选择这样的策略呢?在深度学习领域有一句话很流行,“Garbage in , garbage out.”意思就是说如果开发者给了深度学习模型一堆标注质量差的“垃圾”数据,就会得到一个精度很低的“垃圾”模型,这句话时刻提醒开发者,数据质量与模型效果直接相关。因此,从数据角度进行模型效果的问题定位、并配合相应数据的调整,往往是最直接高效的。对于EasyDL的企业应用级开发者而言,从数据角度解决问题,不要求用户进行高深的算法研究,可以零代码快速提升模型精度。

除了上面这些方法外,还有一些更专业的透视模型手段,被业界称之为模型可解释性方法。飞桨开源了业界主流的可解释性方法在GitHub上,这里面既包括基于输入特征的方法(如Intergrated Gradients, SmoothGrad, LIME等),也包括基于中间特征的方法(如GradCAM,ScoreCAM等)。大家可以点击链接查阅:https://github.com/PaddlePaddle/InterpretDL 。

在这些方法中,针对CNN网络有一个观察网络中激活情况的技术,可以更深入地了解模型的行为。这也是EasyDL模型评估热力图功能的技术基础。

以CAM算法为例,在CNN网络的最后一个特征图(Feature Map)上,哪些位置被激活是非常重要的信息,它直接影响后续网络中分类器的判断。但是这些特征图除了长宽两个维度外,还有一个通道的维度,开发者如何才能把不同通道的特征图叠加到一起呢?CAM提供一种加权的方法,即根据最后一个全连接层中的权重来加权。如上图示例,如果开发者想观察“狗”这个类别的激活情况,那么就把全连接层中各个通道到狗这个类别的权重W1, W2, …, Wn找出来,然后用这些权重对各通道特征图进行加权求和,就会得到一个两维的激活状态图。从这个状态图中,开发者可以看到原图里狗出现的位置被激活了,而其他区域(如人)则数值很小,没有对预测起作用。通过这样的“透视”,开发者可以更深入地了解模型内部的运作情况,一定程度地理解模型为什么得到了某个预测结果。根据这些信息,开发者可以选择通过补充、优化数据来引导模型学习地更好,也可以选择通过调整模型结构来优化模型的表现。

有些方法不仅适用于CNN的视觉模型,也适用于自然语言处理模型和传统机器学习模型。EasyDL也会不断集成相关能力。比如NLP的情感分类任务中,我们想知道为什么文本模型对一句话预测为正面或负面的评论。利用积分梯度(Integrated Gradients)的方法,在文本模型中把全零的嵌入向量作为基线,得到当前嵌入向量的积分梯度。从而反应不同输入词对预测结果的影响,可视化结果如下图:

使用EasyDL进行模型开发,在模型的评估中不仅可以参考各项详细指标来进行模型效果判断,还可以参考全新上线的混淆矩阵和热力图,以可视化、更精准的方式来定位模型效果不佳的原因,从而采取有针对性的效果提升策略。

近期,为帮助开发者从数据处理、模型训练、服务部署这三步来迅速掌握模型定制开发技能,百度EasyDL携手CSDN打造《AI开发精讲:高精度视觉模型定制与部署实战》系列课程,多位资深研发与产品经理深入探讨开发难点与解决方案,三节课重点全掌握!

扫描海报二维码立即报名,获取直播提醒:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK