大道至简----多示例学习与注意力机制的巧妙结合
大道至简----多示例学习与注意力机制的巧妙结合
谈谈《Attention-based deep multiple instance learning》 ICML 2018
分享一篇十分简约且对我至关重要的一篇优秀的会议论文《Attention-based deep multiple instance learning》。首先分别谈谈我对多示例学习和注意力机制的理解,再聊一下这篇文章的精彩之处。
01 多示例学习
谈到多示例学习就一定要向南京大学周志华老师致敬,周老师是多示例学习领域的领航员。在此引用周老师对多示例学习的描述[1]:
“在多示例学习中,训练样本是由多个示例组成的包,包是有概念标记的,但示例本身却没有概念标记。如果一个包中至少包含一个正例,则该包是一个正包,否则即为反包。学习的目的是预测新包的类别。”
我们以直观方式表述了多示例的概念(Fig. 1),图中内容非常直观就不做描述了。
Fig. 1. Illustration of a MIL Problem (引用自[2])
多示例学习中的关键是找到示例与包之间的逻辑关系,因为示例本身是无标签的而其所属的包是有标签的,所以这是一种弱监督学习框架下的特殊范式。公式(1-3)是应用较多的三种方式,看起来非常的简单但却是近年的主要方法。公式(1)所应用的逻辑在多示例领域被称为示例平均池化,即首先对示例得分(概率空间)进行判别,而后取所有示例得分平均值作为包的结果。公式(2)所展示的方式称为最大池化,即选择Key Instance,也就是找出得分最高的关键示例来代表其包的结果。而第三种所要讨论的,就是基于注意力机制的方式。
f(xij∣j=1…nil−1)=1ni∑jni(Hl(xijl−1)),(1)f(xij∣j=1…nil−1)=maxj(Hl(xijl−1)),(2)f(xij∣j=1…nil−2)=Hl(Wl−1(xijl−2)).(3)f(x_{ij|j = 1 \ldots {n_i}}^{l - 1}) = \frac{1}{{{n_i}}}\sum\limits_j^{{n_i}} {({H^l}(x_{ij}^{l - 1}))} , \ \ \ \ \ (1) \\ f(x_{ij|j = 1 \ldots {n_i}}^{l - 1}) = \mathop {max}\limits_j ({H^l}(x_{ij}^{l - 1})), \ \ \ \ \ \ \ \ \ (2)\\ f(x_{ij|j = 1 \ldots {n_i}}^{l - 2}) = {H^l}({W^{l - 1}}(x_{ij}^{l - 2})). \ \ \ \ \ \ \ \ (3) f(xij∣j=1…nil−1)=ni1j∑ni(Hl(xijl−1)), (1)f(xij∣j=1…nil−1)=jmax(Hl(xijl−1)), (2)f(xij∣j=1…nil−2)=Hl(Wl−1(xijl−2)). (3)
02 注意力机制
注意力机制(Attention Mechanism)是解决信息超载问题的主要手段的一种资源分配方案,将计算资源分配给更重要的任务。通俗且不是很严谨的说,就是一种被赋予了直观意义的权重,它决定着哪一部分信息更加重要。与上文结合来说,公式(1)和公式(2)可以认为是多示例问题中的一种硬性注意力。
公式(1)中每个示例的注意力权重可以认为是1/n。公式(2)中Key Instance权重为1.0,而其余示例的注意力权重均为0。
03 示例注意力
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c3EoTFTu-1582505460794)(C:\Users\chizi\AppData\Roaming\Typora\typora-user-images\image-20200223210234838.png)]
Fig. 2. The Framework of MI-Net (引用自[3])
Fig. 2 是经典的多示例网络,没错就是如此简单和经典。他与我们所熟悉的全连接网络区别在于,网络末端增加了符合多示例假设的模块:Instance Score Layer和MIL Pooling Layer。上述经典的网络结构中所使用的Pooling方法正是上文提到的最大池化。
那么《Attention-based deep multiple instance learning》文章所采用的注意力机制是如何实现的呢?我们首先定义包H,h_i表示H中的示例。那么对包H的加权和就如公式(7)所示。动态的权重a则借鉴了加性注意力模型思想进行构建(公式8),其中W和V为网络参数。
另外,该文章作者提到:tanh激活函数在表达非线性复杂关系是效果不好。因为tanh值域在[-1,+1]之间,在一定程度上限制了示例之间关系的表达。所以作者进一步引入了门控思想构建了Gated Attention。从公式(9)中也不难看出,实际上就是多了一步激活函数为Sigmoid的加权,并以element-wise形式结合。其实这一部分作者并没有给出充分的理论依据,我想此处大多数的idea来源于经验。如果讲的理论些,我更愿意理解为是对两种激活函数不同特性的集成。而且从该论文实验中也看得出,Gated的方案也并不是永远优于第一个版本的。
该文章所设计的实验是我最喜欢的。对于相对小众的多示例领域,作者利用MNIST数据集构建了MNIST-Bag进行可视化实验,详细设置不赘述了,感兴趣可以直接读读原文。总之,作者利用可视化实验讨论了某个学术界小有争议的话题:注意力机制是否具备可解释性。而在本文方法中,答案是肯定的。注意力机制确实发现了包中的目标示例(关键示例,实验中设置为数字9)。对于其余实验效果同样出众,在此不赘述了。
Fig.3.
04 总结
总的来说这篇文章的思想很简单,方法也不复杂。尤其是对百家争鸣的今天,方法越来越复杂越来越化庞大,用简单的方法做复杂的事才是最棒的。本文所用到的注意力策略也是非常的基础,但对于多示例学习领域来说是个新的发展方向。尤其是对注意力机制非常感兴趣的我来说,这篇文章对我影响很大。
最近和2个兄弟一起做了公众号“程序员与机器学习”,坚持原创,分享知识分享热爱,欢迎来交流。
参考文献
- 多示例学习,周志华.
- Introduction to Multiple Instance Learning, Marc-André Carbonneau
志华. - Introduction to Multiple Instance Learning, Marc-André Carbonneau
- Revisiting multiple instance neural networks, Pattern Recognition,2018
大道至简----多示例学习与注意力机制的巧妙结合相关推荐
- 学习总结——注意力机制(transformer、DETR)
学习总结--注意力机制 初探注意力 通道注意力 空间注意力 CV中基本注意力机制 NLP中的注意力机制 自注意力机制 DETR 参考文献 初探注意力 我们知道图片可以通过提取特征进行分类.目标检测等后 ...
- 《神经网络与深度学习》-注意力机制与外部记忆
注意力机制与外部记忆 1. 认知神经学中的注意力 2. 注意力机制 2.1 注意力机制的变体 2.1.1 硬性注意力 2.1.2 键值对注意力 2.1.3 多头注意力 2.1.4 结构化注意力 2.1 ...
- 深度学习笔记------注意力机制
目录 1.什么是注意力机制 1.1 Encoder-Decoder框架(编码-解码框架) 1.2 注意力的基础模型 2 空间注意力模型 2.1 什么是空间注意力模型 2.2 典型的空间注意力模型 3 ...
- [深度学习学习笔记]注意力机制-Attentional mechanism
注意力机制最早在自然语言处理和机器翻译对齐文本中提出并使用,并取得了不错的效果.在计算机视觉领域,也有一些学者探索了在视觉和卷积神经网络中使用注意力机制来提升网络性能的方法.注意力机制的基本原理很 ...
- 【深度学习】注意力机制
注意力机制 之前接触到的seq2seq模型当中,解码器只依赖编码器最后一个时间步的隐藏状态作为解码器自身的初始隐藏状态.这个隐藏状态融合了所有输入序列的信息. 注意力机制的提出与一个心理学问题相关,假 ...
- 深度学习【注意力机制(Attention)原理和实现】
文章目录 一 Attention的原理和实现 1. Attention的介绍 2. Attenion的实现机制 2.1 Attention的实现过程 2.2 不同Attention的介绍 2.2.1 ...
- 深度学习:注意力机制与外部记忆
前言 神经网络中可以存储的信息量称为网络容量(Network Capacity). 一般来讲,其存储容量和神经元的数量以及网络的复杂度成正比. 如果要存储越多的信息,神经元数量就要越多或者网络要越复杂 ...
- Transformer:注意力机制(attention)和自注意力机制(self-attention)的学习总结
目录 前言 1. 注意力机制 1.1非自主提示和自主提示 1.2 查询,键和值 1.3 注意力机制的公式 1.3.1 平均汇聚 1.3.2 非参数的注意力汇聚(Nadaraya-Watson核回归) ...
- 深度学习中的注意力机制(三)
作者 | 蘑菇先生 来源 | NewBeeNLP原创出品 深度学习Attenion小综述系列: 深度学习中的注意力机制(一) 深度学习中的注意力机制(二) 目前深度学习中热点之一就是注意力机制(Att ...
最新文章
- Vue安装配置以及入门案例
- [GO] go使用etcd和watch方法进行实时的配置变更
- 极狐(GitLab)宣布获数亿元A轮融资,将加速推动中国开源DevOps生态
- php 获取网页内容 四种方法
- hive之分区表详解
- mysql linux安装百度经验_MySQL 安装(Windows Linux)
- 计算机基础与python安装
- 关于OpenFOAM的一些学习资料
- MATLAB与系统仿真书梅中磊,MatlabSimulink系统建模与仿真.pdf
- Mybatis框架|Mybatis下载步骤
- ExtJS之EditorGridPanel
- 超全面超详细的Linux学习入门系列教程
- 大数据服务器环境准备(三台服务)
- 关于DevExpress Winform GridControl GridView 主从表(Master-Detail)导出Excel问题
- Java 读取文件 MD5 sha1 sha256 sha224 sha384 sha512
- 让dede系统 正文标题以拼音显示的方法
- 图像处理+机器学习相关资源整合
- aws高可用mysql实现_Amazon RDS 的高可用性(多可用区) - Amazon Relational Database Service...
- Python3的函数的详解
- 2014年放假安排:除夕非法定假日