引入
使用神经网络的多示例端到端优化是一个很重要的问题:如何在不损失过多实例级别信息的同时设计一个序列不变 (permutation-invariant)池化函数。
受胶囊网络 (capsule networks)中动态路由 (dynamic routing)的启发,本文提出了一个新颖的针对MIL的动态池化函数:针对关键实例的自适应,以及对包中实例的上下文信息 (contextual information )进行建模。
具体的,动态池迭代的更新实例对所属包的贡献程度,其具备序列不变的性质,以及可以解释实例到包的关系。html
【1】http://proceedings.mlr.press/v95/yan18a/yan18a.pdfweb
1 多示例神经网络的动态池化
主要内容:
1)多示例学习基本概念;
2)DP-MINN;
3)相关讨论。网络
1.1 多示例学习
部分符号表以下:svg
符号 | 含义 |
---|---|
X = { x 1 , x 2 , ⋯ , x K } X = \{ x_1, x_2, \cdots, x_K \} X={ x1,x2,⋯,xK} | 包 |
x i x_i xi | 包中第 i i i个 d d d维特征向量 |
K K K | 包大小 |
Y ∈ { 0 , 1 } Y \in \{ 0, 1 \} Y∈{ 0,1} | 标签空间 |
符号点评:
1) x i x_i xi是一个向量,推荐使用 x i \boldsymbol{x}_i xi;
2) K K K表示包的大小,是一个常量,而 K K K经常使用来表示矩阵等。函数
1.1.1 问题说明
实例到包的依赖关系随着多示例 (MI)假设的变化而变化,与已有的工做不一样,本文不固定使用某一MI假设,而将重点放在模型的构建上。学习
1.1.2 序列不变性
MI中,包中的实例是一组特征的集合,其没有特定的顺序。所以,MI数据的一个重要特色是输入序列的不变性 (permutation invariance)基于对称函数基本定理 [ 1 , 2 ] \color{red}^{[1, 2]} [1,2],任意序列不变对称函数 M M M能够分解维以下:
M ( X ) = ρ ( ∑ x ∈ X ϕ ( x ) ) . (1) M (X) = \rho (\sum_{x \in X} \phi (x)). \tag{1} M(X)=ρ(x∈X∑ϕ(x)).(1)其中 ρ \rho ρ和 ϕ \phi ϕ表明适当的转换 (一号坑:怎么转换?)。优化
点评:
1)公式中使用的".",应该把公式看做是一个句子。ui
注:
【1】Manzil Zaheer, Satwik Kottur, Siamak Ravanbakhsh, Barnabas Poczos, Ruslan R Salakhutdinov, and Alexander J Smola. Deep sets. In Advances in Neural Information Processing Systems, pages 3394–3404, 2017.
【2】Charles R Qi, Hao Su, Kaichun Mo, and Leonidas J Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation. Proc. Computer Vision and Pattern Recognition (CVPR), IEEE, 1(2):4, 2017.lua
1.1.3 MIL与神经网络
已有的MI-Net [ 1 ] \color{red}^{[1]} [1]和AttentionNet [ 2 ] \color{red}^{[2]} [2]分为三步:
1)经过实例转换,习得实例嵌入;
2)经过一个序列不变MIL池生成包嵌入;
3)基于包嵌入分类包。
第二步是关键,上面两篇文章中的大佬已经定义了几个池化函数 (这里没讲,由于很快“窝们”就要提出本身的了)。spa
1.2 动态池化
已有的MIL动态池化方法,很难,对包中实例的上下文信息建模,由于其迟缓函数是前向传递,且实例之间的权重是单独计算的。
受胶囊网络启发,本文提出了称为动态池化 (dynamic pooling)的协议池化 (pooling-by-agreement)策略。
为了方面讲故事,首先定义实例转换函数 f ( ⋅ ) f (\cdot) f(⋅)、实例嵌入函数 f ( X ) = { f ( x 1 ) , f ( x 2 ) , ⋯ , f ( x K ) } f (X) = \{ f (x_1), f_(x_2), \cdots, f (x_K) \} f(X)={
f(x1),f(x2),⋯,f(xK)}。
本文的动态池化函数能够表示以下的权重累加池化:
σ ( X ) = ∑ i = 1 K c i f ( x i ) , (2) \tag{2} \sigma (X) = \sum_{i = 1}^K c_i f (x_i), σ(X)=i=1∑Kcif(xi),(2)其中实例权重 c i c_i ci是一个描述实例 x i x_i xi与相应包嵌入的分布的标量 (二号坑: f ( ⋅ ) f (\cdot) f(⋅)是啥? c i c_i ci怎么来?)。
基于这些权重,本文使用公式 (2)汇聚实例嵌入维包的嵌入,并使用一个非线性 “squashing”函数,使得短向量缩短到几乎零长度,长向量缩短到低于 1 1 1:
s ( X ) = ∥ σ ( X ) ∥ 2 1 + ∥ σ ( X ) ∥ 2 σ ( X ) ∥ σ ( X ) ∥ . (3) \tag{3} s (X) = \frac{
{\| \sigma (X) \|}^2}{1 + {\| \sigma (X) \|}^2} \frac{\sigma (X)}{\| \sigma (X) \|}. s(X)=1+∥σ(X)∥2∥σ(X)∥2∥σ(X)∥σ(X).(3) 与已有MIL池化函数不一样,本文中实例权重 c i c_i ci为动态计算所得。为了描述这一过程,本文定义了一个临时实例权重 b i b_i bi。而后, c i c_i ci经过一个简单的softmax函数计算 (二号坑的 c i c_i ci解决):
c i = exp ( b i ) ∑ j exp ( b j ) . (4) \tag{4} c_i = \frac{\exp (b_i)}{\sum_j \exp (b_j)}. ci=∑jexp(bj)exp(bi).(4) 为了简化,上标 t t t表示迭代次数:
1)初始化, t = 1 t = 1 t=1, b i 1 = 0 b_i^1 = 0 bi1=0表示包中实例对包嵌入等贡献;
【1】Xinggang Wang, Yongluan Yan, Peng Tang, Xiang Bai, and Wenyu Liu. Revisiting multiple instance neural networks. Pattern Recognition, 74:15–24, 2018.
【2】Maximilian Ilse, Jakub M Tomczak, and Max Welling. Attention-based deep multiple instance learning. arXiv preprint arXiv:1802.04712, 2018.
本文同步分享在 博客“因吉”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。