当前位置: 首页 > Web前端 > HTML

VisualTransformer中的输入可视化方法

时间:2023-03-29 12:14:40 HTML

简介:VisualTransformer的输入可视化方法正在广泛应用于百度内容理解和内容风控相关业务,帮助研究人员构建更好的模型。百度内容策略团队基于Transformer的输入可视化方法,对风控色情图片分类模型的误检数据进行分析,定向设计数据处理策略。在保持色情图片召回率不变的情况下,误检较base降低了76.2%,大大提高了模型的准确率。全文2760字,预计阅读时间7分钟。1.视觉意义及意义自2012年AlexNet出现以来,卷积神经网络逐渐成为图像分类、目标检测、语义分割等常见视觉任务最有效的方法之一。受到了广泛的关注和使用。随后,研究人员将在NLP等序列任务中流行的Transformer引入视野,在多个任务中取得了媲美甚至超越CNN的效果。但是CNN和Transformer都是端到端的训练和推理,一定程度上属于黑盒模型。研究者对模型内部的参数分布和特征变化接触甚少,对模型效果的分析和控制非常有限。神经网络可视化的目的是将模型的内部参数或激活值转化为能直接传递信息的特征图或显着图,帮助研究者直观准确地判断模型当前的拟合状态,或修正推理结果不正确时的推理结果。定位分析可能存在的问题。此前,一些研究人员训练了一个图像分类器来区分北极熊和森林棕熊,测试准确率为100%。有人好心人给森林环境发了一张北极熊的照片,喂给分类器,却被误判为棕熊。原来这个图像分类器根本没有学习北极熊和棕熊的特征,而是学会了根据周围环境做出判断。模型输入数据的可视化可以用来解决这类问题。具体来说,给定一个图像分类模型和一张测试图像,希望模型将测试图像分类到某个类别C的输入依据,即模型的依据是什么?像素或区域决定了测试图像属于C类。本文主要以图像分类任务为例,讨论模型对于输入数据的可视化。2.CNN和Transformer输入可视化在视觉任务上的区别神经网络中的数据主要包括前向传播时神经元的激活值(Activation)和反向传播时神经元或参数的梯度值(Gradient)。几乎所有的可视化方法都使用这两类数据来构建特征图或显着图。2.1CNN中的输入可视化在常见的图像分类CNN模型结构中,输入是具有一定宽度和高度的1或3通道图像,经过一系列的卷积层和池化层,然后通过GAP和全连接层,它最终映射到每个类别的概率。网络中的featuremap相对于输入减少了宽度和高度,增加了通道数,可以看作是“更短、更细但更粗”的输入。根据卷积和池化的计算原理,特征图在宽高维度上的特征对应于输入图像在宽高维度上的特征,即特征左上角的值map中的宽高维度也对应输入图像的宽高维度左上区域的值。因此,CNN中常使用特征图的激活值或梯度值来构建输入图像的可视化结果。例如在ClassActivationMap(CAM)方法中,将GAP前一层的featuremap上采样到输入分辨率,将全连接层学习到的权重作为权重,将每个通道的特征图被归一化为重要图片。又如GradientClassActivationMap(Grad-CAM)方法,它使用输出对中每个单个特征图的平均梯度来代替全连接层学习到的权重作为权重,然后对所有特征进行加权归一化maps得到显着图可以摆脱模型对全连接层的依赖。2.2Transformer中的输入可视化Transformer处理序列数据,VisionTransformer(ViT)将输入图像切割成n个小patch,每个patch在embedding后得到一个固定长度的一维token。除了classtoken之外,一共n+1个token分别编码成q,k,v,然后self-attention得到权重,所有v加权求和得到输出。在ViT中,不再有类似“更短,更薄但更厚”的特征图作为基础来为输入构建视觉显着图。那么ViT中应该使用哪些数据来构建输入显着图呢?我们注意到输入显着图的意义是找出输入图像中对最终分类决策有重要影响的像素区域,ViT输出的本质是一系列值的加权和,并且权重的大小代表重要性,权重是通过计算不同token之间的self-attention得到的,每个token与图像的每个patch是一一对应的,即某些patch的突出度导致最终的决策结果,也正是输入可视化的意义所在。因此,ViT输入可视化的关键是在做self-attention时,哪个patch对应的token和classtoken获得更大的权重,哪个patch对应的像素区域对最终的分类结果影响更大。3.Transformer输入可视化方法3.1常见的Transformer输入可视化方法目前,关于Transformer输入可视化的研究成果并不多,现有的方法基本都是围绕self-attention模块构建的。rollout[1]方法中,利用模型前向传播的self-attention激活值构建输入显着图,但构建结果是class-agnostic,不能反映不同类别对决策的影响-模型的制作结果。LRP[2]使用DeepTaylorComposition对神经元之间的交互进行建模,并结合反向传播的思想构建输入对输出logit的影响。Partial-LRP[3]考虑了Transformer中multi-head的不同重要性,通过对权重的范数进行排序,消除对结果贡献较小的head的影响,构建了基于LRP的输入显着图。但这类方法依赖于复杂的LRP计算过程,对小目标的可视化效果较差。3.2一种鲁棒的Transformer输入可视化方法结合2.2节的分析和Grad-Cam思想,我们提出了一种鲁棒的Transformer输入可视化方法,利用self-attention激活值和梯度值构建输入的显着图.以ViT为例,假设模型有B个Transformer-EncoderBlocks,包括classtoken在内一共输入n+1个token,每个Blockb的self-attention部分包含h个heads。类token在Blockb和其他n个token的self-attention值和对应的梯度是在将视觉目标类别对应的输出设置为1,其他所有类别都设置为0后通过反向传播得到的。然后显着性Blockb中classtoken对应的map是:其中是点积,即显着性图是blockb中每个head中self-attention模块激活值和梯度值的点积结果的均值.所有token/patch对应的输入显着性图为:ε即每个token/patch对应的输入显着性值是所有Blockb的显着性图的累加。进行值平移,使最小值为0,防止偶数个负值相乘变成正值,加上ε,防止0值淹没其他的显着值在乘法期间阻塞。得到每个patch对应的输入显着性值后,按照patch分割顺序拼接成二维数据并上采样到输入大小,归一化为输入可视化结果。下图是ImageNet训练的ViT模型的可视化结果,其中奇数列为输入图像,偶数列为模型预测结果top1类对应的输入可视化显着图。可以看出,模型的判断依据准确命中了相应的像素区域,说明模型确实学习到了输入信息的准确分类标准。下图展示了ViT模型对于相同输入的不同输出类别的可视化结果。奇数列为输入图像,偶数列为模型预测结果top2类对应的输入可视化显着图。可以看出,模型针对不同类别的可视化结果也非常好。准确,这是分类模型收敛效果的有力体现。下图是ImageNet使用本文方法训练的ViT、Swin-Transformer和Volo模型在相同输入下的可视化结果。可以看出,使用不同架构的Transformer能够更准确的得到输入的可视化结果,证明了该方法是好的。粘性和泛化。3.3业务应用案例在内容风控任务中,我们训练了一个基于volo的图片分类模型,用于百度图片搜索场景中色情图片的识别。由于百度图片搜索场景的图片数据量巨大,几乎覆盖全网所有图片类别,模型在召回达到要求时误检率高,难以继续优化很长时间。随后,在充分测试的基础上,我们采用本文的方法对误检数据进行可视化分析统计,归纳出19种容易造成误检的物体和场景,如深色短裤、双臂交叉、婚礼、战斗和人群聚集。负样本微调模型。在保持相同recall的情况下,falsedetection比base降低了76.2%,大大提高了模型的准确率。4.结论本文介绍了一种鲁棒的可视化Transformer输入可视化方法。实验结果表明,该方法对不同Transformer架构的模型具有良好的可视化效果。目前该技术广泛应用于百度内容理解和风控。在相关业务中,它帮助研究人员建立更好的模型。本文方法主要考虑Transformer中token对应的q和k之间的self-attention值对分类决策的影响。可以进一步研究将token对应的v值纳入可视化考虑,构建更精准的Lupin视觉。变压器可视化方法。参考文献:[1]SamiraAbnar和WillemZuidema。量化变压器中的注意力流。arXiv预印本arXiv:2005.00928,2020。[2]SebastianBach、AlexanderBinder、Gre′goireMontavon、FrederickKlauschen、Klaus-RobertMüller和Samekci。通过逐层相关性传播对非线性分类器决策的逐像素解释。[3]ElenaVoita、DavidTalbot、FedorMoiseev、RicoSennrich和IvanTitov。分析多头自注意力:专门的头负责繁重的工作,其余的可以修剪。IntheProceedingsoftheAssociationforComputationalLinguistics,pages5797–5808,2019.推荐阅读:深入理解WKWebView(渲染篇)——DOM树构建深入理解WKWebView(简介)——WebKit源码调试分析GDPStreamingRPC设计百度APP视频播放解码优化百度Aifanfan实时CDP构建实践当技术重构遇上DDD,如何实现业务与技术的双赢?----------END----------百度极客说,百度官方技术公众号上线啦!技术干货·行业资讯·在线沙龙·行业大会招聘信息·介绍资料·技术书籍·百度外设