筆記:Deep fried convnets

這是ICCV15的一篇文章。文章用kernel approximation的fastfood方法,來對CNN中的全連接層進行替換,從而減少CNN中參數的個數,減少內存的消耗。調整後的網絡結構在文章中用下圖表示:
deep fried convnet
總體而言,Fastfood是通過一系列簡單矩陣的乘法來代替大而冪的矩陣與向量的乘積,從而減少時間和空間上的代價,這一點兩篇文章沒有區別。不同之處在於,在文章Fastfood-approximation kernel expansions In loglinear time中,簡單矩陣通過一些規則來一次性的生成,後面不會再進行調整。而文章中的fastfood層是自適應的,通過反向傳播對生成的矩陣進行調整,多了一個學習的過程。所以文章的算法主要分爲兩個主旨:
1)用fastfood層替換原來CNN中的全連接層;
2)通過反向傳播對fastfood層進行調整。
具體而言,可以從下面幾步對本文的算法進行理解:
1)fastfood:Hadamard和高斯對角陣結合後可以表現出與非稀疏的高斯隨機矩陣相似的性質,相比後者,hadamard矩陣以及高斯對角陣在存儲與計算的代價方面都更加小。基於這點,在對kernel進行估計的random kitchen sinks中,可以將高斯隨機矩陣Z用下面矩陣V表示,V是一系列簡單矩陣的乘積。相當於把一個複雜的random projection用多個簡單的projection進行了替換。這樣的效果是將計算從O(nd)減少爲O(nlogd)(具體分析請移步fastfood原文)。
feature map
V
具體而言,組成V的簡單矩陣中:
B:二進制尺度矩陣(binary scaling matrix),同時是一個對角陣,對角線是隨機的{1,-1}元素。
Π:隨機的序列矩陣。
H:walsh-hadamard矩陣,它的構造如下圖所示:
walsh-hadamard
G:高斯尺度矩陣(Guassian scaling matrix),它也是對角陣,它的每個對角線元素都是從高斯分度獨立隨機的。
S:隨機尺度矩陣。對於不同的kernel構造S對角線元素的方式也不同。一般意義下,大的對角線元素對應高複雜度的基函數(basis function),小的對角線元素對應簡單的基函數並且低的協方差。
然後就可以將V用於計算feature map:
feature map
2)全連接層:卷積網絡中的全連接層輸入是一個d維的向量,輸出是一個n維的向量,從第l層到第l+1層的信息傳播可以看成下面矩陣乘法:
這裏寫圖片描述
也就是對向量的一個映射。W通常是一個複雜的映射,對應的矩陣W也就是個稠密而且大規模的矩陣。之前就有文章討論過通過隨機權重來構造神經網絡,並且得到了許多進展。基於這種隨機的可行性,與1)中的情況類似,這個隨機映射也可以通過一系列簡單映射來代替,從而將複雜矩陣的乘法轉換爲多個簡單矩陣的乘法。
3)自適應(adaptive)的fastfood:通過fastfood方法用多個簡單矩陣之間的運算來替換全連接層的稠密大規模矩陣後,作者在充分利用監督信息反饋上進一步提出了自適應的fastfood層。它主要的想法是通過反向傳播來對那些簡單的矩陣進行一些調整,實驗也證明這種基於監督信息的矩陣調整對於模型的準確性有不小的幫助。在ILSVRC上調整後錯誤率最多可以降低4%,同時也會超過reference model的性能。與原始的(standard)fastfood不同在於:標準的fastfood中的簡單矩陣(指上面介紹的B,Π,H,G,S)通過規則生成後便不會改變,可以說完全是隨機生成;而adaptive fastfood中,三個對角矩陣S,G,B在初始化後會通過網絡的標準誤差的導數反向傳播過程(standard error derivative backpropagation)進行迭代調整。對於S,G,B三個矩陣的含義,文章這樣分析:
調節B:有效的實現了特徵相關性的自動判別;
調節S:學習到正確的kernel類型;
G:控制核的寬度以及它譜的不相關性。
同時作者也給出了計算反向傳播算法的有效實現過程,具體可以參考原文。
隨後文章從random projection以及 kernels對於本文的fastfood進行了說明。通過實驗對比了CNN、CNN+Fastfood(將全連接層用fastfood層替換),CNN+Adaptive Fastfood(將全連接層用adaptive fastfood替換)這幾種方案的效果,說明了adaptive fastfood方案不僅能比標準的CNN減少大量冗餘的網絡的參數,而且比標準fastfood能更好的利用監督信息從而提高網絡性能。最後,這個網絡只是替換了全連接層,它還是一個端對端的網絡。

個人筆記,敬請指教~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章