1. 程式人生 > >"CapProNet: Deep Feature Learning via Orthogonal Projections onto Capsule Subspaces"閱讀筆記

"CapProNet: Deep Feature Learning via Orthogonal Projections onto Capsule Subspaces"閱讀筆記

"CapProNet: Deep Feature Learning via Orthogonal Projections onto Capsule Subspaces" 閱讀筆記


原文連結: https://arxiv.org/abs/1805.07621v2
這篇論文利用了之前hinton大佬提出的capsule替換神經元的( 一個capsule可以簡單的理解為一個向量 )概念,提出了一種利用capsule subspace來進行分類的網路結構,稱為CapProNet。
接下來博主幫大家一點一點解析這篇論文的思想。

capsule簡介

capsule是hinton大佬從大腦結構受到啟發而提出的一種可以替換深度學習網路神經元的向量,目的是解決CNN的一些固有問題,比如CNN提取的特徵都是經過多次池化,可能會丟失較多的空間資訊等。
想要大致瞭解capsule以及capsulenet的原始架構可以看下圖:
在這裡插入圖片描述
想要深入瞭解可以閱讀原文:“Dynamic Routing Between Capsules”
其實,本文和上述的capsule之間的連線結構沒有很大關係,而是借用了capsule的概念用來作為CNN的分類器,即將每個類別使用一個capsule subspace來表達,CNN學習到的特徵向量會被正交投影到所有的subspace中,樣本會被分類為投影之後向量的長度(模長)最大的那個類別。這樣比起原來通過全連線層後進行Softmax分類,可以更充分的利用特徵向量的資訊。

capsule subspace

這裡的capsule subspace指由一組capsule張成的線性空間,即假設 W l W_l 是多個capsule組成的矩陣,則capsule subspace S

l = s p a n ( W l ) S_l=span(W_l)

正交投影

假設原特徵向量為x,通過一個投影矩陣P ,可以投影到子空間 S l S_l 中,且P滿足 P T = P P 2 = P P^T=P,P^2=P ,則P為正交投影。
關於P的求解簡單推導推薦看部落格https://www.cnblogs.com/mfrbuaa/p/5319365.html ,裡面寫了低維的情況,高維其實類似。也就是說投影的結果是有閉式解的,假設投影后為 v l v_l ,則:
在這裡插入圖片描述
這裡的 W l + W^+_l 表示廣義逆矩陣,當W的列向量相互獨立時, W l + W^+_l 為:
在這裡插入圖片描述
由於我們只關心 v l v_l 的長度,因此可以得到公式:
在這裡插入圖片描述

網路損失函式

最終樣本屬於每個類別的概率可以用Softmax來得到,因此網路採用Softmax交叉熵損失
在這裡插入圖片描述

有了上述的演算法,網路可以End to End的訓練了。其中計算量比較大的地方在矩陣求逆,但是文中也依據一些快速求逆方法提出了一些近似演算法用來加速這一過程,所有實用應該還是沒有問題的。

實驗結果

下表是在CIFAR10,CIFAR100,SVHN下的一個對比實驗,在這些資料集上都能有一定的提高:
在這裡插入圖片描述
下表是在ImageNet驗證集上的實驗,同樣也能提高網路的表現,這說明這一演算法在分類任務上應該有一定的普適性。
在這裡插入圖片描述

視覺化實驗

在這裡插入圖片描述
這個視覺化實驗是在CIFAR10上使用2D子空間,並且將一些樣本投影到各個不同類別的子空間後畫出的圖。
圖中一個座標軸表示一個類別,紅點為屬於這個類別的樣本,綠點為不屬於這個類別的樣本。
從圖中可以看到,經過訓練後的CapProNet可以有效的使得某類樣本投影到該類子空間後獲得更大的模值。