談談《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,也就是找出得分最高的關鍵示例來代表其包的結果。而第三種所要討論的,就是基於注意力機制的方式。
02 注意力機制
注意力機制(Attention Mechanism)是解決信息超載問題的主要手段的一種資源分配方案,將計算資源分配給更重要的任務。通俗且不是很嚴謹的說,就是一種被賦予了直觀意義的權重,它決定着哪一部分信息更加重要。與上文結合來說,公式(1)和公式(2)可以認為是多示例問題中的一種硬性注意力。
公式(1)中每個示例的注意力權重可以認為是1/n。公式(2)中Key Instance權重為1.0,而其余示例的注意力權重均為0。
03 示例注意力

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
-
