array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 论文阅读笔记《Few-shot Classification via Adaptive Attention》 - 爱码网

小样本学习&元学习经典论文整理||持续更新

核心思想

  本文提出一种基于注意力机制的小样本学习算法。作者认为基于参数优化的元学习算法优化过程过于复杂,而基于度量学习的小样本学习算法,虽然更加简单有效,但缺少对于新任务的适应能力。本文利用注意力机制根据支持集图像的特征图和查询集图像的特征图,得到对应的注意力图(Attention Maps),将注意力图与查询集图像的特征图做逐元素相乘,得到了优化后的特征图,再利用其进行分类。整个网络包含三个部分:特征提取网络,自适应注意力模块,分类器,网络结构如下图所示
论文阅读笔记《Few-shot Classification via Adaptive Attention》
  首先,支持集图像和查询集图像分别经过特征提取器F(;θF)F(;\theta_F),得到对应的特征图fsf_sfqf_q。然后,将fsf_sfqf_q输入到自适应注意力模块A(;θA)A(;\theta_A)中,用于计算注意力图,自适应注意力模块的结构如下图所示
论文阅读笔记《Few-shot Classification via Adaptive Attention》
  如图所示,自适应注意力模块主要由元权重生成器AR(;θR)A_R(;\theta_R)和空间注意力生成器AS(;θS)A_S(;\theta_S)构成,支持集图像的特征图经过元权重生成器得到对应的权重向量ws=AR(fs;θR)w_s=A_R(f_s;\theta_R),然后将wsw_s与查询集图像的特征图fqf_q做逐通道相乘,得到类别相关的特征图fqysf_q^{y_s}
论文阅读笔记《Few-shot Classification via Adaptive Attention》
这里其实是采用了通道注意力机制,作者认为支持集图像特征图的每个通道都表示不同的特征,但这些特征有些是重要的,有些是无关的。因此利用元权重生成器,将每个通道的特征图都转化为一个权重值,再与查询集图像特征图逐通道相乘,得到加权后的查询集图像特征图,这一特征图包含着每个类别支持集特征图的信息,因此称为类别相关的特征图fqysf_q^{y_s}
  得到的类别相关特征图fqysf_q^{y_s}接下来要输入到空间注意力模块ASA_S中,该模块的作用是得到查询集特征图中与支持集相关的重要空间区域,输出对应的注意力图MqysM_q^{y_s}
论文阅读笔记《Few-shot Classification via Adaptive Attention》
在注意力图MqysM_q^{y_s}中,与支持集类别ysy_s相关的区域其特征值要更大,反映到可视化的图像中就是那个部分的区域会更加明亮,而其他无关区域的色彩会更加暗沉,这本质上是一种空间注意力机制。将得到的注意力图MqysM_q^{y_s}与查询集特征图fqf_q做逐元素相乘计算,就得到了优化后的特征图fqMsf^{M_s}_q
论文阅读笔记《Few-shot Classification via Adaptive Attention》
  最后,将优化后的特征图fqMsf^{M_s}_q输入到分类器CC中,分别得到每个支持集类别ysy_s对应的分类得分sysqs_{y_s}^q
论文阅读笔记《Few-shot Classification via Adaptive Attention》
整个过程可以表示为
论文阅读笔记《Few-shot Classification via Adaptive Attention》
其中A(fs,fq)A(f_s,f_q)表示自适应注意力模块
论文阅读笔记《Few-shot Classification via Adaptive Attention》
即使在最后利用ReLU函数将输出值统一为正值,这个过程还是不对称的(指查询集特征图和支持集特征图不能交换位置),因此作者又改进为对称形式
论文阅读笔记《Few-shot Classification via Adaptive Attention》
d(fs,fq)d(f_s,f_q)表示最终的分类得分。

实现过程

网络结构

  特征提取网络采用4-conv或ResNet网络,元权重生成器采用SPP+3个全连接层结构,空间注意力生成器采用两个全连接层+全局平均池化层结构,分类器采用SPP+3个全连接层结构。

损失函数

  损失函数包含两个部分:注意力损失LAttL_{Att}和分类损失LCEL_{CE}
论文阅读笔记《Few-shot Classification via Adaptive Attention》
其中注意力损失为
论文阅读笔记《Few-shot Classification via Adaptive Attention》
ajqa_j^q是将自适应注意力模块输出的注意力图MqyiM_q^{y_i}经过全局平均池化得到的
论文阅读笔记《Few-shot Classification via Adaptive Attention》
分类损失为
论文阅读笔记《Few-shot Classification via Adaptive Attention》
sjqs^q_j表示分类得分,是对类别yiy_i对应的KK个支持集图像得到的分类预测得分求平均值得到的
论文阅读笔记《Few-shot Classification via Adaptive Attention》

创新点

  • 引入了通道注意力机制和空间注意力机制对特征图进行优化,从而改善小样本分类效果
  • 设计了元权重生成器和空间注意力生成器结构,并将分类预测得分改为对称形式

算法评价

  本文利用注意力机制对特征图进行了优化,使其具备根据任务(查询集图像)进行自适应调整的能力。根据最后的可视化实验结果来看,得到的注意力图的确在对应的类别,对应的区域上有更明显的反应,这从一个侧面证实了注意力机制的作用。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。论文阅读笔记《Few-shot Classification via Adaptive Attention》

相关文章: