2.5 网络中的网络及1x1卷积-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
| 2.4 殘差網(wǎng)絡(luò)為什么有用? | 回到目錄 | 2.6 谷歌 Inception 網(wǎng)絡(luò)簡介 |
網(wǎng)絡(luò)中的卷積及1x1卷積 (Network in Network and 1x1 Convolutions)
在架構(gòu)內(nèi)容設(shè)計方面,其中一個比較有幫助的想法是使用1×1卷積。也許你會好奇,1×1的卷積能做什么呢?不就是乘以數(shù)字么?聽上去挺好笑的,結(jié)果并非如此,我們來具體看看。
過濾器為1×1,這里是數(shù)字2,輸入一張6×6×1的圖片,然后對它做卷積,起過濾器大小為1×1×1,結(jié)果相當于把這個圖片乘以數(shù)字2,所以前三個單元格分別是2、4、6等等。用1×1的過濾器進行卷積,似乎用處不大,只是對輸入矩陣乘以某個數(shù)字。但這僅僅是對于6×6×1的一個通道圖片來說,1×1卷積效果不佳。
如果是一張6×6×32的圖片,那么使用1×1過濾器進行卷積效果更好。具體來說,1×1卷積所實現(xiàn)的功能是遍歷這36個單元格,計算左圖中32個數(shù)字和過濾器中32個數(shù)字的元素積之和,然后應(yīng)用ReLU非線性函數(shù)。
我們以其中一個單元為例,它是這個輸入層上的某個切片,用這36個數(shù)字乘以這個輸入層上1×1切片,得到一個實數(shù),像這樣把它畫在輸出中。
這個1×1×32過濾器中的32個數(shù)字可以這樣理解,一個神經(jīng)元的輸入是32個數(shù)字(輸入圖片中左下角位置32個通道中的數(shù)字),即相同高度和寬度上某一切片上的32個數(shù)字,這32個數(shù)字具有不同通道,乘以32個權(quán)重(將過濾器中的32個數(shù)理解為權(quán)重),然后應(yīng)用ReLU非線性函數(shù),在這里輸出相應(yīng)的結(jié)果。
一般來說,如果過濾器不止一個,而是多個,就好像有多個輸入單元,其輸入內(nèi)容為一個切片上所有數(shù)字,輸出結(jié)果是6×6過濾器數(shù)量。
所以1×1卷積可以從根本上理解為對這32個不同的位置都應(yīng)用一個全連接層,全連接層的作用是輸入32個數(shù)字(過濾器數(shù)量標記為 nc[l+1]n_c^{[l+1]}nc[l+1]? ,在這36個單元上重復(fù)此過程),輸出結(jié)果是6×6×#filters(過濾器數(shù)量),以便在輸入層上實施一個非平凡(non-trivial)計算。
這種方法通常稱為1×1卷積,有時也被稱為Network in Network,在林敏、陳強和楊學(xué)成的論文中有詳細描述。雖然論文中關(guān)于架構(gòu)的詳細內(nèi)容并沒有得到廣泛應(yīng)用,但是1×1卷積或Network in Network這種理念卻很有影響力,很多神經(jīng)網(wǎng)絡(luò)架構(gòu)都受到它的影響,包括下節(jié)課要講的Inception網(wǎng)絡(luò)。
舉個1×1卷積的例子,相信對大家有所幫助,這是它的一個應(yīng)用。
假設(shè)這是一個28×28×192的輸入層,你可以使用池化層壓縮它的高度和寬度,這個過程我們很清楚。但如果通道數(shù)量很大,該如何把它壓縮為28×28×32維度的層呢?你可以用32個大小為1×1的過濾器,嚴格來講每個過濾器大小都是1×1×192維,因為過濾器中通道數(shù)量必須與輸入層中通道的數(shù)量保持一致。但是你使用了32個過濾器,輸出層為28×28×32,這就是壓縮通道數(shù)( ncn_cnc? )的方法,對于池化層我只是壓縮了這些層的高度和寬度。
在之后我們看到在某些網(wǎng)絡(luò)中1×1卷積是如何壓縮通道數(shù)量并減少計算的。當然如果你想保持通道數(shù)192不變,這也是可行的,1×1卷積只是添加了非線性函數(shù),當然也可以讓網(wǎng)絡(luò)學(xué)習更復(fù)雜的函數(shù),比如,我們再添加一層,其輸入為28×28×192,輸出為28×28×192。
1×1卷積層就是這樣實現(xiàn)了一些重要功能的(doing something pretty non-trivial),它給神經(jīng)網(wǎng)絡(luò)添加了一個非線性函數(shù),從而減少或保持輸入層中的通道數(shù)量不變,當然如果你愿意,也可以增加通道數(shù)量。后面你會發(fā)現(xiàn)這對構(gòu)建Inception網(wǎng)絡(luò)很有幫助,我們放在下節(jié)課講。
這節(jié)課我們演示了如何根據(jù)自己的意愿通過1×1卷積的簡單操作來壓縮或保持輸入層中的通道數(shù)量,甚至是增加通道數(shù)量。下節(jié)課,我們再講講1×1卷積是如何幫助我們構(gòu)建Inception網(wǎng)絡(luò)的,下節(jié)課見。
課程板書
| 2.4 殘差網(wǎng)絡(luò)為什么有用? | 回到目錄 | 2.6 谷歌 Inception 網(wǎng)絡(luò)簡介 |
總結(jié)
以上是生活随笔為你收集整理的2.5 网络中的网络及1x1卷积-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.4 残差网络为什么有用-深度学习第四
- 下一篇: 2.6 谷歌 Inception 网络简