首先我們舉乙個簡單的例子。
我們假設乙個1✖1的卷積核,裡面的數字為2。輸入一張6✖6✖1的,然後對它做卷積,其過濾器大小為(卷積核)1✖1✖1。結果顯而易見,即相當於把這個乘以數字2。用1✖1的過濾器進行卷積似乎用處不大。只是對輸入矩陣乘以某個數字。
但這僅僅是對於6✖6✖1的通道來說,1✖1卷積效果不佳。如果是一張6✖6✖32的,那麼使用1✖1過濾器進行卷積效果更好。具體來說1✖1卷積實現的功能是,遍歷這36個單元格,計算圖中32個數字和過濾器中32個數字的元素乘積,然後應用relu非線性函式。
這個1✖1✖32過濾器中的32個數字可以這樣理解,乙個神經元的輸入是32個數字,乘以相同高度和寬度上某個切片上的32個數字,這32個數字具有不同通道,乘以32個權重然後應用relu非線性函式,輸出相應的結果。一般來說,如果過濾器不止乙個,就好像有多個輸入單元,其輸入內容為乙個切片上的所有數字,那麼輸出結果就是6✖6✖過濾器數量。所以1✖1卷積可以從根本上理解為,這32個單元都應用了乙個全連線神經網路,全連線層的作用是輸入32個數字和過濾器數量,以便在輸入層上實施乙個非平凡計算,這種方法通常稱為1*1卷積。
舉個例子,相信對大家有所幫助。假設這是乙個28✖28✖129的輸入層。
你可以使用池化層壓縮它的高度和寬度,但是如果通道數量過大,該如何把它壓縮為28✖28✖32維度的層呢?你可以用32個大小為1✖1的過濾器。嚴格來講,每個過濾器的大小都是1✖1✖192維,因為過濾器中通道的數量必須與輸入層中通道數量相同。因此使用1✖1✖32卷積可以輸出28✖28✖32。這就是壓縮通道數的方法,然而對於池化層我們只是壓縮了這些層的高度和寬度。
接下來我們來看看在某些網路中1✖1卷積是如何壓縮通道數量並減少計算的,當然如果你願意,也可以通過1✖1卷積增加通道數量,後面你會發現這對構建inception網路很有幫助。
全連線層的作用 全連線層實現
將圖1 堆疊可以得到含有多個隱藏層的全連線層,如圖2所示。因為當前層的輸入要與前一層的輸出相匹配 所以,要保證當前層的神經元個數與前一層的輸出結點數相同。即,圖二中隱藏層1有256個神經元,隱藏層2有128個神經元,則隱藏層1中每個神經元的輸出節點數為12。下面,以圖2為例,用不同的方式實現全連線層...
全連線層的作用
全連線層到底什麼用?我來談三點。注1 有關卷積操作 實現 全連線層,有必要多囉嗦幾句。以vgg 16為例,對224x224x3的輸入,最後一層卷積可得輸出為7x7x512,如後層是一層含4096個神經元的fc,則可用卷積核為7x7x512x4096的全域性卷積來實現這一全連線運算過程,其中該卷積核引...
全連線層的作用
全連線層的作用主要就是實現分類 全連線層中一層的乙個神經元就可以看成乙個多項式,我們用許多神經元去擬合資料分布但是只用一層fully connected layer 有時候沒法解決非線性問題,而如果有兩層或以上fully connected layer就可以很好地解決非線性問題了。在卷積神經網路的最...