【模型解读】从“局部连接”回到“全连接”的神经网络
09
這是深度學習模型解讀第9篇,本篇我們簡單介紹非局部神經網絡。
言有三
畢業于中國科學院,計算機視覺方向從業者,有三工作室等創始人
作者 | 言有三(微信號: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的模塊??梢钥吹?#xff0c;f(.)的操作就是每個通道上每個點的特征向量進行內積,空間信息保留了下來,輸出還是HxW大小。
另外上面的設計采用了殘差的方式,所以可以輕松地嵌入現有的任何網絡。
4
總結
一如既往,咱們沒有貼實踐效果。從理論猜想和作者的實驗結果都可以看出,對于視頻分類non-local比對應的local網絡效果會更好,這是必然的,視頻中的主體空間移動速度非???#xff0c;如果沒有大的感受野未必能很魯棒的捕捉一個動作到底是跳高還是跳水。
依據作者們的結論,在網絡淺層效果會更好,我想這也是可以理解的,畢竟隨著網絡深度增加,感受野增加了。
更多的實踐,放心,隨著咱們這個系列接近尾聲,實踐也快來了,不過你可能需要補一補以前的知識了。
參考文獻
【1】Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2018.
十月開始,我們有三AI學院開啟了“稷”劃和“濟”劃,幫助想入行以及想取得更多實戰經驗的同學。內容覆蓋從自動駕駛到美顏直播等領域的實戰項目,從圖像基礎到深度學習理論的系統知識,歡迎關注。
有三AI“【濟】劃”,從圖像基礎到深度學習
有三AI“十月【稷】劃”,從自動駕駛到模型優化
如果想加入我們,后臺留言吧
微信
Longlongtogo
公眾號內容
1 圖像基礎|2 深度學習|3 行業信息
模型解讀
【模型解讀】“全連接”的卷積網絡,有什么好?
【模型解讀】“不正經”的卷積神經網絡
【模型解讀】resnet中的殘差連接,你確定真的看懂了?
【模型解讀】pooling去哪兒了?
總結
以上是生活随笔為你收集整理的【模型解读】从“局部连接”回到“全连接”的神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【行业趋势】人工智能凭什么“教育”人
- 下一篇: 【数据】深度学习从“数据集”开始