近年来,深入学习持续发展,在视觉、自然语言处理、语音等各个技术方向上创新的智能应用,如智能识别医疗图像中的病灶,辅助医生诊断病情的优艾设计网_PS论坛智能识别生产线上存在质量问题的产品,减轻人工质量检查压力的政务、金融等流程中的证明书票据进行信息识识别,加快审查,识别流程电子化的用户输入的语言,匹配知识库中相应的问答,实现智能呼叫问答等随着智能应用的火爆发展,如何打造高精度的AI模式成为每个企业不断探索的命题。
在构建深度学习模型的过程中,遇到模型效果不能满足要求时,需要进一步定位问题和调整效果,深度学习模型又是黑盒,开发人员不知道错误预测的正确原因,因此很难采取目的效果优化战略。这个时候头疼得厉害。
事实上,当模型效果不佳时,不要惊慌。虽然模型是黑色盒子,但通过一些技术积累和功能设计,你可以从多个角度了解它是如何想的,并为模型优化提供思路和指导,尤其是如何优化数据。
在企业AI开发中,快速评估模型效果,定位模型问题,高效完成模型效果优化是AI应用落地的重要环节。针对这一诉求,百度桨企业版EasyDL零门槛AI开发平台在本来完善详细的模型评价报告书的基础上,进一步增加了混淆矩阵和CNN热力图功能,即使不太了解深度学习,也可以根据可视化评价结果制定更准确的优化方案。以下是模型指标、错误例子、混淆矩阵、CNN热力图等功能的逐一介绍。
EasyDL模型评价提供多个指标,从多角度展示模型效果信息
EasyDL基于开源深度学习平台,为企业AI应用开发人员提供零门槛AI开发平台EasyDL提供一站式智能标签、模式培训、服务部署等全流程功能,内置丰富的预培训模式,支持公有云、设备端、私人服务器、软硬一体化方案等灵活的部署方式。目前,EasyDL已经通过百度智慧云服务超过80万企业用户,在工业制造、安全生产、零售快消、智慧硬件、文化教育、政府政务、交通物流、互联网等领域广泛落地。
在EasyDL完成模型开发后可以获得平台提供的各项详细的模型评估指标,以图像分类模型为例,除了整体的准确率之外,还可以看精确率、召回率、F1-score、TOP5准确率等。
除了整个模型的指标外,还可以看到各个类别的F1-score值,有助于开发者发现具体哪个类别的识别效果差。对于这些不好的类别,开发人员可以看到预测错误的样品,也就是常说的BadCase。开发人员可以检查这些类别的样品量是否过少,是否存在需要补充数据的脏数据,影响了模型的学习。
在物体检测上也是类似的,整体指标上可以观测mAP、最佳门槛下检测的准确率、回调率等。因为检测模型会输出很多的检测框,而有相当一部分检测框的概率比较低,一般会设置一个阈值来过滤掉那些低概率的检测框。通过设定不同的阈值,模型有不同的精度、召回率和F1-score。在模型预测时,通常取F1-score最高的阈值当做最佳阈值,这样能够较好地平衡精确率和召回率,尽量减少漏检、错检等问题。
与分类任务类似,在物体检测模型的评估中也可以查看各个类别的精度,来判断哪些类别的检测效果欠佳。找到这些问题比较大的类别之后,同样也可以查看BadCase。检测问题里的BadCase详细区分了误识别和漏识别这两种情况,从而方便开发者看检测出错的各类情况。开发者可以检查对应类别的标注框是否过少,是否有框标注错误需要修正。
新添加混淆矩阵和热力图两个功能,高效展示模型效果问题
除了上述经典常用的方法外,为了更有针对性地混淆类别,EasyDL最近在线了重磅矩阵功能。在混淆矩阵中,开发者可以方便地看到具体哪两种类别之间容易产生混淆,例如,类别A较多地被识别成了类别B。根据这些信息,开发人员可以发现训练数据是否有问题。例如,类似类别的图像有错误,或者类似类别的图像太少,模型学习不充分。开发商可以根据混淆矩阵提供的信息补充和调整模型数据。
看到这里,EasyDL在评价模型效果时,通常从数据的角度发现现现有模型的问题,通过优化数据来优化模型效果。你为什么选择这样的战略?在深度学习领域流行一句话,Garbagein,Garbageout。也就是说,如果开发者给深度学习模型标记质量差的垃圾数据,就会得到精度低的垃圾模型,这句话总是提醒开发者,数据质量与模型效果直接相关。因此,从数据的角度定位模型效果的问题,配合相应的数据调整,往往是最直接、最有效的。对于EasyDL的企业应用级开发者而言,从数据角度解决问题,不要求用户进行高深的算法研究,可以零代码快速提升模型精度。
除了上面这些方法外,还有一些更专业的透视模型手段,被业界称之为模型可解释性方法。桨在GitHub上开源了业界主流的说明方法。其中包括基于输入特征的方法(例如GradCAM、SmoothGrad、LIME等),包括基于GradCAM、ScoreCAM等中间特征的方法。大家可以点击链接查阅:https://github.com/PaddlePaddle/InterpretDL 。
在这些方法中,CNN网络有观察网络激活情况的技术,可以更深入地了解模型的行为。这也是EasyDL模型评价热力图功能的技术基础。
以CAM算法为例,在CNN网络最后的特征图中,哪个位置被激活是非常重要的信息,直接影响后续网络中分类器的判断。但是,这些特征图除了长宽两个维度之外,还有一个通道维度,开发商如何才能将不同通道的特征图叠加在一起呢?CAM提供加权方法,即根据最后全连接层的权重加权。如上图所示,如果开发人员想观察狗这个类别的活跃状况,则将所有连接层的各个通道加权到狗这个类别的权重W1、W2、wn,然后用这些权重加权到各通道的特征图中,获得两维活跃状态图。从这张状态图中,开发人员可以看到原图中狗狗出现的位置被激活,而其他地区(如人)则数值小,不起预测作用。通过这样的透视,开发商可以更深入地了解模型内部的运行情况,从而在一定程度上了解模型为什么会得到一定的预测结果。根据这些信息,开发商可以通过补充和优化数据来更好地引导模型学习,也可以通过调整模型结构来优化模型表现。
有些方法不仅适用于CNN的视觉模型,还适用于自然语言处理模型和传统机器学习模型。EasyDL也不断整合相关能力。例如,在NLP的情感分类任务中,我们想知道为什么文本模型对一一句话是正面或负面的评论。利用积分梯度(Integrated Gradients)的方法,在文本模型中把全零的嵌入向量作为基线,得到当前嵌入向量的积分梯度。从而反应不同输入词对预测结果的影响,可视化结果如下图:
使用EasyDL进行模型开发,在模型的评估中不仅可以参考各项详细指标来进行模型效果判断,还可以参考全新上线的混淆矩阵和热力图,以可视化、更精准的方式来定位模型效果不佳的原因,从而采取有针对性的效果提升策略。
近期,为帮助开发者从数据处理、模型训练、服务部署这三步来迅速掌握模型定制开发技能,百度EasyDL携手CSDN打造《AI开发精讲:高精度视觉模型定制与部署实战》系列课程,多位资深研发与产品经理深入探讨开发难点与解决方案,三节课重点全掌握!
点击链接立即报名:https://edu.csdn.net/huiyiCourse/detail/1550
精彩评论