引入
使用神經網絡的多示例端到端優化是一個很重要的問題:如何在不損失過多實例級別信息的同時設計一個序列不變 (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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。