导读:视觉Transformer的输出可视化办法,正广泛应用于百度内容了解和内容风控相干业务中,帮忙钻研人员构建成果更好的模型。百度内容策略团队,基于Transformer的输出可视化办法剖析风控色情图像分类模型的误检数据,定向设计数据处理策略,在放弃色情图像召回不变的状况下误检相比base降落76.2%,极大的晋升了模型的准确性。
全文2760字,预计浏览工夫7分钟
一、可视化含意与意义
自2012年AlexNet呈现以来,卷积神经网络逐步成为图像分类、指标检测、语义宰割等常见视觉工作中成果最好的办法之一,引起了宽泛的关注和应用。起初钻研人员又将在NLP等序列工作中大火的Transformer引入视觉畛域,在多项工作中获得媲美甚至超过CNN的成果。然而不管CNN还是Transformer都是端到端的训练和推理,肯定水平上属于黑盒模型。钻研人员对模型外部的参数散布和特色变动接触较少,对于模型成果的剖析和掌控非常受限。
神经网络可视化的目标,在于将模型外部的参数或激活值转化成能间接传递信息的特色图或显著图,帮忙钻研人员直观精确的判断模型以后的拟合状态,或者在推理后果不正确时对可能呈现的问题进行定位和剖析。
此前,有钻研人员训练了一个图片分类器来辨别北极熊和森林棕熊,测试准确率100%。有好事者将北极熊照片p到森林环境后喂给分类器就被误判成棕熊了。原来这个图片分类器压根没学到北极熊和棕熊的特色,而是学到了依据周围环境来做判断。模型对于输出数据的可视化就能够用来解决这类问题,具体来说,给定一个图像分类模型和测试图像,心愿能失去模型将测试图像分成某个类别C的输出根据,即模型是凭借哪些像素或区域判断出测试图像属于类别C的。
本文次要以图像分类工作为例,探讨模型对于输出数据的可视化。
二、视觉工作中CNN与Transformer的输出可视化区别
神经网络中的数据次要包含前向流传时神经元的激活值(Activation)和反向流传时神经元或参数的梯度值(Gradient),简直所有可视化办法都是应用这两类数据来结构特色图或显著图。
2.1 CNN中的输出可视化
常见的图像分类CNN模型构造中,输出为具备肯定宽高的1或3通道图片,通过一系列卷积层和pooling层,再通过GAP和全连贯层,最终映射为各个类别的概率。网络中的特色图相比输出宽高放大、通道数减少,能够看做是“更矮、更瘦但更厚”的输出。依据卷积和池化的计算原理可知,特色图在宽高维度的特色和输出图像在宽高维度的特色是对应的,即特色图宽高维度左上角区域的值也对应输出图像宽高维度左上角区域的值。因而CNN中罕用特色图的激活值或梯度值来构建输出图像的可视化后果。
如Class Activation Map(CAM)办法中,将GAP前一层的特色图 上采样到输出分辨率 ,以全连贯层学习到的weights为权重,将 的各个通道特色图加权求和归一化作为显著图。
再如Gradient Class Activation Map(Grad-CAM)办法中,采纳输入对 中每个单张特色图的梯度均值代替全连贯层学习到的weights作为权重,再对所有特色图加权求和归一化失去显著图,能够解脱模型对全连贯层的依赖。
2.2 Transformer中的输出可视化
Transformer解决的是序列数据,Vision Transformer(ViT)将输出图像切成n个小patch,每一个patch通过embedding后失去固定长度的一维token。加上class token总计n+1个token别离编码成q、k、v后进行self-attention失去权重,对所有的v进行加权求和失去输入,在ViT中不再有相似CNN中“更矮、更瘦但更厚”的特色图作为base来构建针对输出的可视化显著图。
那么ViT中应该应用什么数据来构建输出显著图呢?
咱们留神到输出显著图代表的含意是:找出输出图像中那些对最终分类决策起到重要影响的像素区域。ViT的输入实质就是一系列value的加权和,权重的大小就代表了重要性。而权重是由不同token之间计算self-attention失去的,每个token又跟图像的每个patch一一对应,即某些patch的突出导致了最终的决策后果,这也正是输出可视化的含意所在。因而ViT的输出可视化要害就在于,哪个patch对应的token和class token做self-attention时失去了更大的权重,哪个patch对应的像素区域就对最终的分类后果起到更大影响。
三、Transformer输出可视化办法
3.1 常见Transformer输出可视化办法
目前Transformer的输出可视化研究成果不多,现有办法根本都是围绕self-attention模块构建。rollout[1]办法中应用模型前向流传的self-attention激活值构建输出显著图,然而构建后果是class-agnostic的,不能反映不同类别对于模型决策后果的影响。LRP[2]通过Deep Taylor Composition来建模神经元之间的相互影响,并联合反向流传的思路构建输出对输入logit的影响。Partial- LRP[3]思考了Transformer中multi-head的重要性不同,通过对weights范数的排序剔除对后果奉献较小head的影响,基于LRP构建输出显著图。然而这类办法依赖简单的LRP计算过程,且对小指标的可视化成果较差。
3.2 一种鲁棒的Transformer输出可视化办法
联合2.2节剖析和Grad-Cam思路,咱们提出一种鲁棒的Transformer输出可视化办法,应用self-attention的激活值和梯度值来构建输出的显著图。以ViT为例,假如模型有B个Transformer-Encoder Block,包含class token在内输出共n+1个token,每个Block b的self-attention局部蕴含h个heads,class token在Block b中与其余n个token的self-attention值 ,对应的梯度 由可视化指标类别对应的输入置1其余类别全副置0后反向流传失去。则Block b中class token对应的saliency map 为:
其中 为点乘,即saliency map 为Block b中各个head中self-attention模块激活值和梯度值点乘后果的均值。所有token/patch对应的输出显著图 为:
即每个token/patch对应的输出显著值为所有Block b的saliency map累乘。对 进行值平移使得最小值为0防止出现偶数个负值相乘反而变成正值的状况,对 加上 避免累乘时0值将其余Block的显著值吞没。失去每个patch对应的输出显著值后,再依照patch切分的程序将其拼成二维数据并上采样至输出尺寸,归一化后作为输出的可视化后果。下图为ImageNet训练的ViT模型可视化后果,其中奇数列为输出图像,偶数列为模型预测后果top1 class对应的输出可视化显著图。能够看到模型的判断根据精确的命中了相应的像素区域,表明模型的确学习到了精确的输出信息分类规范。
下图为ViT模型在雷同输出针对不同输入类别的可视化后果,其中奇数列为输出图像,偶数列为模型预测后果top2 class对应的输出可视化显著图,能够看到模型对于不同类别的可视化后果也非常精确,这对于分类模型的收敛成果是一个强有力的证实。
下图为ImageNet训练的ViT、Swin-Transformer和Volo模型应用本文办法在雷同输出下的可视化后果,能够看到不同架构的Transformer应用都可能比拟精确的失去输出可视化后果,证实了该办法良好的鲁棒性和泛化性。
3.3 业务利用案例
在内容风控工作中,咱们训练了一个基于volo的图像分类模型来辨认百度图片搜寻场景下的色情图像。因为百度图片搜寻场景的图片数据总量微小,简直笼罩了全网所有图像类别,模型在召回满足要求的状况下误检较高,很长一段时间难以持续优化。起初咱们在充沛测试的根底上通过本文办法对误检数据进行可视化剖析和统计,演绎出暗色短裤、手臂穿插、婚礼、搏斗、人群汇集等19种容易引起误检的物体和场景,定向补充了负样本对模型进行finetune。在放弃召回雷同的状况下误检相比base降落76.2%,极大的晋升了模型的准确性。
四、结语
本文介绍了一种鲁棒的视觉Transformer输出可视化办法,试验结果表明该办法对于多种不同Transformer架构的模型都有良好的可视化成果,目前这项技术宽泛的利用于百度内容了解和风控相干业务中,帮忙钻研人员构建成果更好的模型。本文办法次要思考了Transformer中的token对应q、k之间的self-attention值对于分类决策的影响,后续能够进一步钻研将token对应的v值也纳入可视化考量中,结构更加精确、鲁邦的视觉Transformer可视化办法。
参考:
[1] Samira Abnar and Willem Zuidema. Quantifying attention flow in transformers. arXiv preprint arXiv:2005.00928, 2020.
[2] Sebastian Bach, Alexander Binder, Gre goire Montavon, Frederick Klauschen, Klaus-Robert Mu ller, and Wojciech Samek. On pixel-wise explanations for non-linear classi- fier decisions by layer-wise relevance propagation.
[3] Elena Voita, David Talbot, Fedor Moiseev, Rico Sennrich, and Ivan Titov. Analyzing multi-head self-attention: Spe- cialized heads do the heavy lifting, the rest can be pruned. In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, pages 5797–5808, 2019.
举荐浏览:
深刻了解 WKWebView (渲染篇) —— DOM 树的构建
深刻了解 WKWebView(入门篇)—— WebKit 源码调试与剖析
GDP Streaming RPC 设计
百度APP视频播放中的解码优
百度爱番番实时CDP建设实际
当技术重构遇上DDD,如何实现业务、技术双赢?
---------- END ----------
百度 Geek 说
百度官网技术公众号上线啦!
技术干货 · 行业资讯 · 线上沙龙 · 行业大会
招聘信息 · 内推信息 · 技术书籍 · 百度周边