全連接的神經網絡,更寬廣的視野

人工智能 算法 有三AI 2019-07-10

作者 | 言有三(微信號:Longlongtogo)

編輯 | 言有三

與全連接神經網絡相比,卷積神經網絡在每一層是局部的,採用了較小的卷積核,感受實際對應到原始圖像空間較大的區域,而且隨著網絡的加深,感受野增加。但是感受野畢竟不是全圖,在降採樣的過程中也會丟失信息。

那為什麼還要這麼做呢?首先這是計算量的限制,卷積核越大計算量越大,而且會存在非常多的冗餘。另外,這也是模仿人眼的分層視覺理論,即不斷加深抽象層級。

雖然網絡結構從全連接進化到局部連接後才有了現在的發展,但並不意味著擁有更大視野的全連接就沒有用了,至少Non-local networks又開始重新思考這個問題。

1 什麼是Non-Local Networks

這背後的核心思想是non-local,說到non-local又得提一下經典的non-local means濾波算法。

全連接的神經網絡,更寬廣的視野

假設輸入是f,輸出是g,一個經典的局部濾波算子如上,它是隻在一個鄰域內的加權平均,所以稱之為local濾波方法,實際上上面是雙邊濾波的公式。

全連接的神經網絡,更寬廣的視野

而non-local顧名思義,將這個鄰域擴展到全圖。如上圖p作為中心像素,q1,q2,q3對p的濾波都有貢獻,實際上圖像上任意一個點都有貢獻。

全連接的神經網絡,更寬廣的視野

借用論文中的公式如上,很簡單,關鍵就在這個f如何定義。傳統的最好的圖像降噪算法BM3D,就是non-local means方法,它通過計算不同圖像塊的相似性來獲得權重。

2 為什麼需要Non-local

在正式說如何實現時,先來總結一下為什麼我們需要這個non-local連接。

首先我們要看現在的CNN是怎麼做的,為了能夠捕捉到更大的感受野,現在的CNN是通過不斷加深網絡,逐步增加感受野的方案,RNN則是通過循環的方式處理序列輸入(如視頻幀序列或者圖片上一行一列等空間序列),從而融合非局部的信息,它們都有幾個缺點。

(1) 計算效率不高,這是肯定的,明明可以一步到位,卻去增加了網絡深度。

(2) 感知效率不高,雖然感受野可以通過深度增加,但這個增加是有限的,實際上感受野並沒有理論計算出來那麼大,很多的長程的信息依然獲取不到。

(3) 增加優化難度,我們知道隨著網絡的加深,網絡的優化會面對各種梯度問題。

而更大的感受野對於視頻圖像中的場景理解,跟蹤,語音識別等時序問題都是必要的。因此我們需要一個Non-Local連接,而non-local也有理由表現得更好,就好比Non-Local means方法比local filter方法去噪更強,dense crf比普通的crf更強一樣。

3 怎麼實現

首先要說明的是,non-local可以是隻在圖像空間上的non-local,也可以是不同時間幀上的non-local,甚至是兩者的融合,不過理解起來都是一樣的。

全連接的神經網絡,更寬廣的視野

上面展示的是一個視頻數據的block,首先我們要注意,non-local-block可以作為基礎的block嵌入到現有的模塊,因為它的輸入與輸出相等,都是T*H*W*1024。

其中1024是通道數,T就是時間幀數。⊗是矩陣乘法,⊕是逐像素相加。

我們看上面的圖,f的操作,對應的就是輸入T*H*W*512與512*THW矩陣相乘輸出THW*THW的模塊。可以看到,f(.)的操作就是每個通道上每個點的特徵向量進行內積,空間信息保留了下來,輸出還是HxW大小。

另外上面的設計採用了殘差的方式,所以可以輕鬆地嵌入現有的任何網絡。

4 總結

一如既往,咱們沒有貼實踐效果。從理論猜想和作者的實驗結果都可以看出,對於視頻分類non-local比對應的local網絡效果會更好,這是必然的,視頻中的主體空間移動速度非常快,如果沒有大的感受野未必能很魯棒的捕捉一個動作到底是跳高還是跳水。

全連接的神經網絡,更寬廣的視野

全連接的神經網絡,更寬廣的視野

依據作者們的結論,在網絡淺層效果會更好,我想這也是可以理解的,畢竟隨著網絡深度增加,感受野增加了。

更多請關注有三AI知識星球

全連接的神經網絡,更寬廣的視野

相關推薦

推薦中...