引入
論文地址:https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm14.pdf
論文應用:處理大規模MIL問題。
論文出發點:將包映射爲Fisher vector表示。
1 miFV
算法名miFV:multi-instance learning based on the Fisher Vector representation
1.1 Fisher Vector (FV)
FV (Fisher Vector) 是計算機視覺中,將一組從圖像中提取到的patch編碼爲高維向量,併合併爲一個圖像級別的signature。
令S = { s t , t = 1 , … , T } S = \{ \boldsymbol{s}_t, t = 1, \dots, T \} S = { s t , t = 1 , … , T } 爲具有T T T 個觀測值s t ∈ S \boldsymbol{s}_t \in \mathcal{S} s t ∈ S 的樣本;
令p p p 是一個用λ \lambda λ 建模,並生成S \mathcal{S} S 中元素的概率密度函數,則
樣本S S S 可以用一個梯度向量描述:
G λ S = ▽ λ log p ( S ∣ λ ) . (1)
G^S_{\lambda} = \bigtriangledown_{\lambda} \log p (S | \lambda).
\tag{1}
G λ S = ▽ λ log p ( S ∣ λ ) . ( 1 ) 需要注意的是G λ S G^S_{\lambda} G λ S 的維度僅僅取決於p p p 的數量,而與樣本大小T T T 無關,即,將不定長度的集合S S S 轉換爲固定長度的G λ S G^S_{\lambda} G λ S 。這一性質將很好地適應於miFV的映射函數M f \mathcal{M}_f M f 。
Fisher Kernel (FK) 最初用於度量兩個樣本S 1 S_1 S 1 和S 2 S_2 S 2 的相似性:
K F K ( S 1 , S 2 ) = G λ S 1 ′ F λ − 1 G λ S 2 , (2)
\mathcal{K}_{FK} (S_1, S_2) = {G^{S_1}_{\lambda}}' F_{\lambda}^{-1} G^{S_2}_{\lambda},
\tag{2}
K F K ( S 1 , S 2 ) = G λ S 1 ′ F λ − 1 G λ S 2 , ( 2 ) 其中F λ F_{\lambda} F λ 是Fisher信息矩陣p p p (下面公式裏用到的是s \mathcal{s} s ,而非S S S ,不知道是否是表述有錯 ):
F λ = E s ∼ p [ ▽ λ log p ( s ∣ λ ) [ ▽ λ log p ( s ∣ λ ) ′ ] . (3)
F_{\lambda} = E_{\mathcal{s} \sim p} [\bigtriangledown_{\lambda} \log p (\mathcal{s} | \lambda) [\bigtriangledown_{\lambda} \log p (\mathcal{s} | \lambda)'].
\tag{3}
F λ = E s ∼ p [ ▽ λ log p ( s ∣ λ ) [ ▽ λ log p ( s ∣ λ ) ′ ] . ( 3 )
由於F λ F_{\lambda} F λ 是對稱且正定 的,則其可近似爲F λ − 1 = L λ ′ L λ F_{\lambda}^{-1} = L_{\lambda}'L_{\lambda} F λ − 1 = L λ ′ L λ ,且 式 (2)將被重寫爲:
K F K ( S 1 , S 2 ) = f λ S 1 ′ f λ S 2 , (4)
\mathcal{K}_{FK} (S_1, S_2) = \boldsymbol{f}_{\lambda}^{{S_1}'} \boldsymbol{f}_{\lambda}^{{S_2}},
\tag{4}
K F K ( S 1 , S 2 ) = f λ S 1 ′ f λ S 2 , ( 4 ) 其中
f λ S = L λ G λ S = L λ ▽ λ log p ( S ∣ λ ) . (5)
\boldsymbol{f}_{\lambda}^{{S}} = L_{\lambda} G_{\lambda}^S = L_{\lambda} \bigtriangledown_{\lambda} \log p (S | \lambda).
\tag{5}
f λ S = L λ G λ S = L λ ▽ λ log p ( S ∣ λ ) . ( 5 )
式 (5)所示的標準化後的梯度向量便是Fisher Vector (FV) 。就結果而言,非線性核與K F K \mathcal{K}_{FK} K F K 一起使用將等同於線性核與FV 一起使用。
問題1:L λ L_{\lambda} L λ 怎麼求?
問題2:▽ λ log p ( S ∣ λ \bigtriangledown_{\lambda} \log p (S | \lambda ▽ λ log p ( S ∣ λ 怎麼求?
1.2 使用FV重新表示包
將一個包看作是一個樣本S S S 。在傳統的機器學習假設中,包中實例爲獨立同分布,因此S \mathcal{S} S 中的s t \boldsymbol{s}_t s t 可以獨立的由p p p 生成。這裏的p p p 選擇爲高斯混合模型 (GMM) ,並使用最大似然估計 (MLE)進行評估。具體過程如算法1。
算法1:miFV算法
輸入:
訓練集{ ( X 1 , y 1 ) , … , ( X i , y i ) , … , ( X N B , y N N B ) } \{ (X_1, y_1), \dots, (X_i, y_i), \dots, (X_{N_B}, y_{N_{N_B}}) \} { ( X 1 , y 1 ) , … , ( X i , y i ) , … , ( X N B , y N N B ) }
訓練:
使用MLE評估GMM p的參數λ = { w k , μ k , ∑ k } \lambda = \{ w_k, \mathbf{\mu}_k, \bold{\sum}_k \} λ = { w k , μ k , ∑ k }
for i = 1 i = 1 i = 1 to N B N_B N B do
將包X i X_i X i 映射爲一個FV:f λ X i ← M f ( X i , p ) \boldsymbol{f}_{\lambda}^{X_i} \leftarrow \mathcal{M}_f (X_i, p) f λ X i ← M f ( X i , p )
[ f λ X i ] j ← s i g n [\boldsymbol{f}_{\lambda}^{X_i}]_j \leftarrow \rm sign [ f λ X i ] j ← s i g n ( [ f λ X i ] j ) ∣ [ f λ X i ] j ∣ ([\boldsymbol{f}_{\lambda}^{X_i}]_j) \sqrt{|[\boldsymbol{f}_{\lambda}^{X_i}]_j |} ( [ f λ X i ] j ) ∣ [ f λ X i ] j ∣
f λ X i ← f λ X i / ∥ f λ X i ∥ 2 \boldsymbol{f}_{\lambda}^{X_i} \leftarrow \boldsymbol{f}_{\lambda}^{X_i} / \| \boldsymbol{f}_{\lambda}^{X_i} \|_2 f λ X i ← f λ X i / ∥ f λ X i ∥ 2
end for
使用新的訓練集{ ( f λ X i , y 1 ) , … , ( f λ X N B , y N B ) } \{ (\boldsymbol{f}_{\lambda}^{X_i}, y_1), \dots, (\boldsymbol{f}_{\lambda}^{X_{N_B}}, y_{N_B}) \} { ( f λ X i , y 1 ) , … , ( f λ X N B , y N B ) } 訓練分類器F \mathcal{F} F
測試:
使用同樣的方法對測試包進行映射
使用分類器F \mathcal{F} F 進行預測
上述步驟中,最關鍵的步驟爲4和6,即如何習得參數p p p 和進行映射。
1.2.1 參數p p p 的學習
令λ = { w k , μ k , ∑ k , k = 1 , … , K } \lambda = \{ w_k, \mathbf{\mu}_k, \sum_k, k = 1, \dots, K \} λ = { w k , μ k , ∑ k , k = 1 , … , K } 表示GMM參數的K K K 個部分,其中w k w_k w k 表示高斯模型的混合權重 (mixture weight),μ k \bold{\mu}_k μ k 表示均值向量 (mean vector), ∑ k \sum_k ∑ k 表示k t h k^{th} k t h (第k個)高斯模型的協方差矩陣 。
給定一個包X i = { x i 1 , … , x i j , … , x i , n i } X_i = \{ \mathbf{x}_{i1}, \dots, \mathbf{x}_{ij}, \dots, \mathbf{x}_{i, n_i} \} X i = { x i 1 , … , x i j , … , x i , n i } ,令L ( X i ∣ λ ) = log p ( X i ∣ λ ) \mathcal{L} (X_i | \lambda) = \log p (X_i | \lambda) L ( X i ∣ λ ) = log p ( X i ∣ λ ) 。由於獨立假設和GMM模型,上述公式可以重寫爲:
L ( X i ∣ λ ) = ∑ j = 1 n i log p ( x i j ∣ λ ) = ∑ j = 1 n i log ∑ k = 1 K w k p k ( x i j ∣ λ ) , (6)
\mathcal{L} (X_i | \lambda) = \sum_{j = 1}^{n_i} \log p (\mathbf{x}_{ij} | \lambda) = \sum_{j = 1}^{n_i} \log \sum_{k = 1}^K w_k p_k (\mathbf{x}_{ij} | \lambda),
\tag{6}
L ( X i ∣ λ ) = j = 1 ∑ n i log p ( x i j ∣ λ ) = j = 1 ∑ n i log k = 1 ∑ K w k p k ( x i j ∣ λ ) , ( 6 ) 其中p k p_k p k 表示k t h k^{th} k t h 高斯模型:
p k ( x i j ∣ λ ) = exp { − 1 2 ( x i j − μ k ) ′ ∑ k − 1 ( x i j − μ k ) } ( 2 π ) D / 2 ∣ ∑ k ∣ 1 / 2 . (7)
p_k (\mathbf{x}_{ij} | \lambda) = \frac{\exp \{ - \frac{1}{2} (\mathbf{x}_{ij} - \mu_k)' \sum_k^{-1} (\mathbf{x}_{ij} - \mu_k) \}}{ (2 \pi)^{D / 2} | \sum_k | ^{1 / 2}}.
\tag{7}
p k ( x i j ∣ λ ) = ( 2 π ) D / 2 ∣ ∑ k ∣ 1 / 2 exp { − 2 1 ( x i j − μ k ) ′ ∑ k − 1 ( x i j − μ k ) } . ( 7 )
爲了確保p k ( x i j ∣ λ ) p_k (\mathbf{x}_{ij} | \lambda) p k ( x i j ∣ λ ) 是一個合法的分佈,混合權重必須滿足:
∀ k : w k ≥ 0 , ∑ k = 1 K w k = 1. (8)
\forall_k: w_k \geq 0, \sum_{k = 1}^{K} w_k = 1.
\tag{8}
∀ k : w k ≥ 0 , k = 1 ∑ K w k = 1 . ( 8 )
問題3:第k k k 個高斯模型的協方差矩陣怎麼求?D D D 代表什麼?
問題4:D D D 代表什麼?
1.2.2 映射函數M f \mathcal{M}_f M f
實例x i j \mathbf{x}_{ij} x i j 關於 (w.r.t.)GMM模型參數λ = { w k , μ k , ∑ k } \lambda = \{ w_k, \mathbf{\mu}_k, \sum_k \} λ = { w k , μ k , ∑ k } 的梯度表示如下 (問題2的解決 ):
▽ w k log p ( x i j ∣ λ ) = γ j ( k ) − w k , (9)
\bigtriangledown_{w_k} \log p (\mathbf{x}_{ij} | \lambda) = \gamma_j (k) - w_k,
\tag{9}
▽ w k log p ( x i j ∣ λ ) = γ j ( k ) − w k , ( 9 )
▽ μ k log p ( x i j ∣ λ ) = γ j ( k ) ( x i j − μ k σ k 2 ) , (10)
\bigtriangledown_{\bold{\mu}_k} \log p (\mathbf{x}_{ij} | \lambda)
= \gamma_j (k) \bigg (\frac{\mathbf{x}_{ij} - \mathbf{\mu}_k}{\sigma_k^2}\bigg ),
\tag{10}
▽ μ k log p ( x i j ∣ λ ) = γ j ( k ) ( σ k 2 x i j − μ k ) , ( 1 0 )
▽ σ k log p ( x i j ∣ λ ) = γ j ( k ) [ ( x i j − μ k ) 2 σ k 2 − 1 σ k ] , (11)
\bigtriangledown_{\mathbf{\sigma}_k} \log p (\mathbf{x}_{ij} | \lambda) = \gamma_j (k) \bigg[ \frac{(\mathbf{x}_{ij} - \mu_k)^2}{\sigma_k^2} - \frac{1}{\sigma_k} \bigg ],
\tag{11}
▽ σ k log p ( x i j ∣ λ ) = γ j ( k ) [ σ k 2 ( x i j − μ k ) 2 − σ k 1 ] , ( 1 1 ) 其中σ k \sigma_k σ k 是方差向量,γ i ( k ) \gamma_i (k) γ i ( k ) 是x i j \mathbf{x}_{ij} x i j 屬於第k k k 類高斯模型的概率:
γ i ( k ) = p ( k ∣ x i j , λ ) = w k p k ( x i j ∣ λ ) ∑ t = 1 K w t p t ( x i j ∣ λ ) . (12)
\gamma_i (k) = p (k | \mathbf{x}_{ij}, \lambda) = \frac{w_k p_k (\mathbf{x}_{ij} | \lambda)}{\sum_{t = 1}^{K} w_t p_t (\mathbf{x}_{ij} | \lambda)}.
\tag{12}
γ i ( k ) = p ( k ∣ x i j , λ ) = ∑ t = 1 K w t p t ( x i j ∣ λ ) w k p k ( x i j ∣ λ ) . ( 1 2 )
獲取梯度之後,餘下的步驟便是計算L λ L_{\lambda} L λ (問題1的解決 )。因此梯度的標準化如下:
f w k X i = 1 w k ∑ j = 1 n i ( γ j ( k ) − w k ) , (13)
f_{w_k}^{X_i} = \frac{1}{\sqrt{w_k}} \sum_{j = 1}^{n_i} (\gamma_j (k) - w_k),
\tag{13}
f w k X i = w k 1 j = 1 ∑ n i ( γ j ( k ) − w k ) , ( 1 3 )
f μ k X i = 1 w k ∑ j = 1 n i γ j ( k ) ( x i j − μ k σ k ) , (14)
\boldsymbol{f}_{\mu_k}^{X_i} = \frac{1}{\sqrt{w_k}} \sum_{j = 1}^{n_i} \gamma_j (k) \bigg (\frac{\mathbf{x}_{ij} - \mathbf{\mu}_k}{\sigma_k}\bigg ),
\tag{14}
f μ k X i = w k 1 j = 1 ∑ n i γ j ( k ) ( σ k x i j − μ k ) , ( 1 4 )
f σ k X i = 1 w k ∑ j = 1 n i γ j ( k ) [ ( x i j − μ k ) 2 σ k 2 − 1 σ k ] , (15)
\boldsymbol{f}_{\sigma_k}^{X_i} = \frac{1}{\sqrt{w_k}} \sum_{j = 1}^{n_i} \gamma_j (k) \bigg[ \frac{(\mathbf{x}_{ij} - \mu_k)^2}{\sigma_k^2} - \frac{1}{\sigma_k} \bigg ],
\tag{15}
f σ k X i = w k 1 j = 1 ∑ n i γ j ( k ) [ σ k 2 ( x i j − μ k ) 2 − σ k 1 ] , ( 1 5 ) 上式中,(13)是一個標量,(14)、(15)則是d d d 維向量 (X i X_i X i 的維度是d d d )。
因此,X i X_i X i 可以由級聯的f w k X i f_{w_k}^{X_i} f w k X i 、f μ k X i \boldsymbol{f}_{\mu_k}^{X_i} f μ k X i 、f σ k X i \boldsymbol{f}_{\sigma_k}^{X_i} f σ k X i 表示,經過算法1中7、8步🙅,最終表示爲一個( 2 d + 1 ) K (2d + 1)K ( 2 d + 1 ) K 維的標準化的FV,即f λ X i \boldsymbol{f}_{\lambda}^{X_i} f λ X i 。
更加明白了一個道理,不看源代碼,真的好多坑坑窪窪啊/(ㄒoㄒ)/~~
2 實驗
使用到的數據集及相關特徵如下: