首页 > 机器人资讯 > 人工智能黑盒揭秘:深度神经网络可视化技术

人工智能黑盒揭秘:深度神经网络可视化技术

日期:2019-01-06   人气:  来源:互联网
简介:深度学习模型表述的难点与意义 深度神经网络(DeepNeuralNetwork,DNN)作为当前人工智能应用的首选模型,在图像识别,语音识别,自然语言处理,计算生物,金融大数据等领域成效显著。但深度神经网络又被称为黑盒模型,多层隐藏结构,数据/特征矢量化,海……

深度学习模型表述的难点与意义

深度神经网络(DeepNeuralNetwork,DNN)作为当前人工智能应用的首选模型,在图像识别,语音识别,自然语言处理,计算生物,金融大数据等领域成效显著。但深度神经网络又被称为黑盒模型,多层隐藏结构,数据/特征矢量化,海量决策关键元等因素让模型使用者犯难:模型决策的依据是什么?应该相信模型么?特别是对于金融,医药,生物等关键型任务,深度学习模型的弱解释性成为人工智能项目落地的最大障碍。

云脑科技自主研发的Deepro深度学习平台利用可视化技术,集成了最前沿的各类深度神经网络可视化组件,分析与显化内部隐藏结构与模型输出的关系,解决黑盒难题。

深度神经网络的可视化

作为理解人工智能系统的主要技术,模型可视化是一个由来已久而且宽泛的话题。模型可视化与数据可视化属于不同的范畴,数据可视化通过降维,主成分分析等技术来分析数据的结构,模型可视化针对的是对机器学习模型本身的理解。深度神经网络又是最为复杂的机器学习模型,其可解释性与可视化性更加具有挑战性。网络模型为什么起作用,它是否足够好,图像识别是如何抽象出猫这个概念的?本段分析了几种典型深度神经网络可视化技术,详尽展示了前沿的可视化原理以及解释性效果。

云脑Deepro采用的CNN可视化

作为最有效的神经网络之一,CNN(ConvolutionalNeuralNetwork,卷积神经网络)解决了大量复杂的机器学习实际问题。CNN被广泛应用于图像识别,语音识别,语义识别等系统。最近的研究表明CNN在包含自动驾驶在内的自动复杂智能系统中也大展身手。CNN结构通常由一个或多个卷积层和顶端的全连通层组成,同时也包括关联权重和池化层(poolinglayer)。这一结构使得卷积神经网络能够利用输入数据的二维结构。相比较其他深度、前馈神经网络,CNN需要的参数更少,能够更好的利用GPU作大规模并行处理,使之成为一种颇具吸引力的深度学习结构。

举个CNN的栗子

CNN带来了高精度的预测模型,但是同时也留下重要的问题,在复杂的多层非线性网络结构中,究竟是什么让训练好的CNN模型给出近乎完美的预测答案?从CNN被大规模研究使用以来,学者们持续不断的探索可以理解和解释CNN的方法,其中可视化技术被证明是解释CNN内部结构最有效的方法之一。CNN可视化技术包括,独立单元激活的可视化,图案和区域生成法,维度缩减空间表示法等。

独立单元激活的可视化

理解CNN内部网络的操作需要追踪多层网络中每一层的特征状态,而中间层的状态可以通过一种叫做DeconvNet(DeconvolutionalNetwork,去卷积网络)的技术反向映射回输入层的图像像素空间。DeconvNet可以理解成另一个CNN,利用同样的网络结构,包括卷积元,池化等,但相对于CNN是反向的。DeconvNet主要作用是把CNN从像素学会的特征给还原成像素。一个多层CNN网络中每一层都会对应一个DeconvNet,这样做的好处是得到的DeconvNet也是连续的,可以从任意一个输出层或者中间层反推到输入层的对应像素。

CNN与DeconvNet

设定好DeconvNet后,如果对CNN网络的某一个激活元感兴趣,只需保留该单元而把其它单元设为0值后提交给DeconvNet。DeconvNet进行反池化,非线性化,去卷积化等操作,每一层DeconvNet重复此操作后直至到达最初的像素空间。

CNN隐藏层的可视化

该图展示了CNN在ImageNet训练后得到的模型中每一层CNN中最强的激活特征单元(灰度图片),以及该激活单元通过DeconvNet后生成的像素图(彩色图片)。通过DeconvNet可以非常清楚的理解每一层CNN的作用。

通过DeconvNet分析得出,CNN第一层训练学习的是以边为单位的基本元,第二层学习了角,圆等其他图像元,KUKA机器人电路板维修,之后的第三层则开始学习复杂图案,而且会把相似的图案归类到一起。限于篇幅的原因后面更深的CNN层图片就不放出了,通过DeconvNet可以分析出CNN第四层开始出现物体的特征,比如狗的脸部,鸟的腿部等,第五层开始出现整个物体,以及物体的不同姿势和形态。

DeconvNet清楚的证明了CNN高效的学习能力:通过学习图像中物体从小至大的特征而归纳出物体的整体特征。由此得出结论CNN网络中海量的内部隐藏特征元并不是随机或者不可解释的。该结论极大的增加了使用者对于CNN模型的理解,从而进一步信任模型的结果。DeconvNet技术除了可以观察解释CNN内部结构外,还可以用来排除模型建立和调试时遇到的问题,以及通过分析内部结果来得到更好的模型。研究表明CNN模型一大优势就是预测精确度与内部隐藏层的局部结构有很强的关联。

图案和区域生成法

除了从CNN内部结构着手的DeconvNet,图案和区域生成法也是有效的模型可视化手段。通过进行数值优化技术来生成图案,CNN预测的结果可以被更好的可视化并带有解释性。以常见的图像分类问题来举例,CNN在大量图像数据集上训练得出一个分类器模型:给定的一张图像会被标注为一个或多个类别,比如一张猫的照片会标记为猫或某种猫。对于一个特定的标注类,图案生成法通过数值优化生成可以表述为CNN分类分数的图像,也就是把CNN理解分类的过程给画了出来,如下图所示。

CNN所理解的:洗衣机,键盘,狐狸,鹅,鸵鸟,轿车

从生成的图像中可以看出CNN对于图像分类的判断与人对图像的判断有一定的相似之处,物体的部分特征可以表述出来。但是CNN又学会了自有和特有的判定条件,而有一些条件从人类的角度上来看可能是显而易见的错误,比如上图中鹅有多于两条腿等。通过图像生成可视化可以帮助理解CNN模型,从而进行更好的排错和优化。

图像生成法的另一类应用是图像的区域识别。区域识别是图像识别应用中广泛需求的技术,在安防人脸识别,自动驾驶环境识别等应用中是识别准确的关键步骤。图像生成法先建立CNN分类与图像空间的映射关系,通过反向梯度传导来更新映射关系中的权重,最终得到一个完整的类显著映射集。给定一个CNN指定分类和原始输入图像,该映射集可以生成特征图案。

映射集生成灰度图案,白色部分是CNN标注的显著区域

利用单次反向梯度传导就可以快速得到上图中的映射集,从而可以显示出CNN判断分类的特征和区域。比如通过生成法可以理解CNN学习的过程同时包含从图像中找到小狗的位置,并加以判断这是一只小狗。用生成法产生的映射集可以进一步结合GraphCut颜色分割技术来进行图像区域识别和物体分割。通过生成法产生的映射集划定了图像的大体边界,加上颜色分割技术的细节修正可以快速高效的识别物体区域。

原图(左)映射生成图(中1中2)产生分割图(右)

生成法利用CNN分类模型实现了区域识别。原图中的物体不仅被标识为正确类别,同时也标注出物体的区域和边界。整个过程又可以通过映射集可视化。

云脑Deepro采用的RNN可视化

#p#分页标题#e#

RNN(RecurrentNeuralNetwork,循环神经网络)可以和CNN并称为当前两大最热门的深度神经网络。RNN可以描述动态时间行为,因为和前馈神经网络(feedforwardneuralnetwork)接受较特定结构的输入不同,RNN将状态在自身网络中循环传递,因此可以接受更广泛的时间序列结构输入。RNN与其衍生的LSTM,GRU网络被广泛应用于时序数据问题中,包括语言模型,手写识别,语音识别,机器翻译,视频识别等。

RNN结构由来已久,Werbos在1988年就提出用RNN学习时序任务。RNN的循环元展开是深度神经网络中最深的网络结构,过深的网络结构容易导致权重梯度成指数级爆炸或消失,从而使模型失去学习的能力。因此RNN发展出很多强化变种,其中最成功的要数LSTM(LongShortTermMemory,长短期记忆)和GRU(GatedRecurrentUnit)。LSTM和GRU引入Gate机制来控制记忆/遗忘时间序列中的信息,从而使模型更加有效的学习更长(深)的时序数据。

和很多深度学习结构一样,RNN可以提供一个有效的预测模型,但是复杂的结构让使用者望而却步。时序数据有没有规律,时间关键点在哪里,哪些信息被记忆了,哪些被遗忘了,等等有诸多问题隐藏在黑箱之中。要想更好的理解RNN,可视化技术是必不可少的,但是相比于CNN结构,RNN可视化难度更大,网络中间层的控制和相互依赖性更高。这里列出一种基于LSTM的可视化技术,解释元与激活门统计法。

LSTM解释元与激活门统计

从原理分析,LSTM可以记录较长时间的时序信息,以及持续追踪当前时间的数据。但是在真实数据的模型上这种解释元理论很难被直接证明。研究通过字母级别语言模型建立的任务,进行对RNN,LSTM,GRU定性分析,加以对Gate激活的统计和比较,可以可视化出LSTM中的长期有效记忆,给出了一个合理的解释。

LSTM可视化标记文本和代码结构

举例来说,LSTM中某个单位元专注学习了文本输入的行数,数值从行始开始递减至行尾为0,然后开始新的一行。另一个元记录并保证了成对出现的引号,括号等标点符号。

LSTM文本标记可以用来理解RNN的内部结构,也可以用来做模型分析以更好的优化模型。

LSTM错误分类分析

同样是字母级别语言模型实例,在上图中预测的错误原因得到分析,错误的模型结果可以通过标记可视化分解为多类原因。N-gram占据18%的错误,意味着模型记录的字母序列过短;生僻字占据9%,意味着需要增加训练覆盖率;空格,换行等标点占据了37%的错误,意味着LSTM需要更长的时序输入,或者需要加入断章断句等层次模型。可视化技术极大提高了模型的解释性,为提升模型效果提供了最直接的方案。

人工智能模型可视化实例

医疗影像诊断网络

近年来深度神经网络在生物与医疗影像领域的应用有着爆发式的增长。图像识别,图像分割极大的利用了大数据技术协助医生作出诊断。作为更进一步的发展,自动诊断系统也崭露头角,连连创造惊喜。GOOGLE的糖尿病视网膜病变诊断系统得出的算法准确度已经高于美国委员会认证的眼科医生的检查结果。IBM的沃森肿瘤诊断机器人已经入住海内外多家肿瘤治疗医院,成为医疗AI商业化的标杆。

医疗诊断本质上是一个标准的深度学习分类问题,然而普通的深度神经网络生成的模型隐藏了关键判断依据,缺乏解释性,无法被医疗系统和大众接受。只有具有可视化可解释性的模型才是医疗AI可用的模型。这里介绍一种综合网络结构MDNet,可以读取医疗影像,生成诊断报告,同时可以根据症状描述获取对应的影像,并利用网络注意力机制提供诊断的依据。实例采用BCIDR膀胱癌诊断报告数据集。

MDNet:影像通过CNN生成特征后接入AAS模块,最后通过LSTM生成诊断报告

为了更好的模型效果和更容易的解释性,模型整合CNN,AAS与LSTM几大模块。图像输入部分利用最新的ResNet网络作深层连接,并且利用ensemble-connection来连接ResNet的各个残差部分便于模型表述。在图像处理层与语言模型层之间的是AAS模块,基于注意力机制原理来增加训练的有效性。最终的诊断报告通过LSTM语言模型生成,其中有LSTM专注于挖掘训练数据中有区别的病症描述,而其他LSTM共享该LSTM的结果。这样做的好处是每一份数据的学习都可以增加诊断知识库,从给最终生成报告提供帮助。

MDNet诊断结果以及分析

如上图所示,对于给定的CT照片,MDNet可以给出膀胱癌的诊断报告。左图表示诊断报告不仅给出了诊断结论,对于结论中每一个关键词也可以划出原图中对应区域作为判断依据。右图标示了不同级别的癌症判断,并且通过热力图展示了判断对应的区域。MDNet可以有效的协助医疗机构进行大量诊断排查工作,极大的加强肿瘤防治效果。

结语

李开复在题为《人工智能的黄金时代》的万字演讲中提到,深度学习有四点挑战,分别是平台化、数据、计算及可解释性。人工智能的黄金时代已经到来,深度学习已经在图像,语音,大数据,自动驾驶等诸多领域占绝对优势。相较而言,模型可解释性的研究还处于起步阶段。云脑科技的小伙伴们潜心学习与研发更高效易用的AI平台,算法与可视化技术,助力深度学习应用的推广与落地,致力于推动整个人工智能产业的发展进程。

问答环节

问题:1、高维可视化一般是降维,还有其他处理的手段吗?2、降维的手段一般有PCA、t-SNA、自定义投影,这三种方式可视化后应重点关注哪些拓扑不变量。3、对Google的embeddingproject有什么看法?

答:这3个问题一并回答了,所谓的可视化技术分为数据可视化与模型可视化两个范畴,提问涉及的主要是数据可视化方面。通过降维,主成分分析等手段分析数据本身的结构,并且可视化到低纬空间,这也是非常有意义的数据分析方法。一些非监督学习也可以帮助数据可视化分析。今天分享的主题是深度学习模型的可视化,是针对一类深度神经网络,工业机器人维修,分析其模型的组成部分,与数据的结构分布并没有关系。模型的可视化可以帮助确认模型的准确性,协助理解与优化模型。

问题:最近正好在看lstm的东西,但一直没弄明白,lstm的输入到底是什么样子?对于mlp,每次输入的向量就好比Excel中的一行数据,但是lstm呢

答:lstm或者rnn针对的是时序数据,常见的比如天气变化,股票价格,随着时间变动。如果变成向量输入mlp就失去数据内部有关时间的前后关系信息。lstm比较常用在自然语言处理,翻译等方向,人类的语言自然是需要考虑上下文的,一整句话语序不同意思可能就不同了,而rnn和lstm都可以保持输入数据的时间序列,从而真正的学出时序相关的规律。

问题:有个问题:请问云脑公司的这些深度学习可视化技术是以服务的形式付费开放给用户嘛,那么有开源一些好玩的东西吗,谢谢老师

#p#分页标题#e#

答:云脑科技提供Deepro深度学习平台,主要应用在企业级大数据人工智能服务。我们的服务现在主要是以定制为主,主要包括金融,通信,能源与人力资源等行业。现在平台包含的可视化技术还没有直接针对个人用户的开放,如果企业用户有兴趣欢迎随时垂询。

问题:国内目前将AI用于医学图像识别诊断的现状如何

答:医疗图像识别是AI非常活跃的方向,相比较人脸识别,物品识别等应用,医疗图像识别属于高精度高风险应用,需要更加完善的技术支持,库卡机器人驱动器维修,现在主要是与医疗机构配合诊断。今天分享的可视化与解释性在医疗方向的应用与需求是走在最前沿的。一个可以分析结果的AI系统才可以算是完整的医疗AI系统。

问题:CNN可视化是基于mattzeiler的那篇论文嘛?rnn可视化初看下来不是很明白有没有比较推荐的实施脚本github连接,谢谢

答:CNN的DeconvNet介绍是基于Matt的论文,AlexNet在2012年ImageNet夺冠改变整个世界对于深度学习的看法,Matt的分析等于是用实验证明了CNN的有效性,是分析CNN结构最主要的方法之一。RNN的可视化可以参考AndrejKarpathy的VISUALIZINGANDUNDERSTANDINGRECURRENTNETWORKS

问题:图像迁移风格是深度学习可视化的一种应用吗?比如类似prisma.云脑有没有相关研究分享?

答:这个问题很有趣。图像迁移采用的VAE等技术可以理解为把网络已经学会的图像风格应用到新的图像上。有一点像是CNN可视化中的图案生成法。如果把图像迁移到一张空白的新图像上,可以看作是某种程度上的可视化。

问题:CNN的可视化似乎都集中在几年前,近几年几乎看不到CNN可视化的文章了,同时CNN的层数越来越多、结构也越来越复杂,我想知道CNN可视化未来的发展方向是什么?最近没有什么CNN可视化的文章,是因为可视化太难做了,还是因为找不到什么可以做的了?

答:CNN确实是各种ANN里可视化研究开始比较早的,近期的CNN可视化比较偏向于垂直领域的CNN应用可视化。确实ResNet的出现使得神经网络达到百层,千层的深度,利用layerbylayer的可视化分析可行性就很差了。我们的AI算法小组保持追踪更高效的可视化方法研究,有兴趣的话可以加好友一起学习

讲师介绍

樊向军:清华大学学士,日本东京大学与美国华盛顿州立大学双硕士。第33届亚洲、国际物理奥赛双料金牌得主。在美国硅谷高通等公司有着多年超高性能计算仿真软件设计开发经验,获得高通QualstarDiamond杰出贡献奖。目前作为云脑科技算法团队的主要成员,进行金融、通信、能源等大数据领域的核心人工智能算法研发与系统设计工作。

参考文档

Zeiler,MatthewDandFergus,Rob.VisualizingandUnderstandingConvolutionalNetworks.

Karpathy,A.,Johnson,J.,andFei-Fei,L.VisualizingandUnderstandingRecurrentNetworks.

ZizhaoZhang,YuanpuXie,FuyongXing,MasonMcGoughandLinYang.MDNet:ASemanticallyandVisuallyInterpretableMedicalImageDiagnosisNetwork.

免责声明:本网部分文章和信息来源于互联网,本网转载出于传递更多信息和学习之目的。如转载稿涉及版权等问题,请立即联系网站所有人,我们会予以更改或删除相关文章,保证您的权利。