关于前端:视觉Transformer中的输入可视化方法

29次阅读

共计 4446 个字符,预计需要花费 12 分钟才能阅读完成。

导读:视觉 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 说

百度官网技术公众号上线啦!

技术干货 · 行业资讯 · 线上沙龙 · 行业大会

招聘信息 · 内推信息 · 技术书籍 · 百度周边

正文完
 0