卷積神經網路的乙個重要概念就是池化層,一般是在卷積層之後。池化層對輸入做降取樣,常用的池化做法是對每個濾波器的輸出求最大值,平均值,中位數等。
池化的特點之一就是它輸出乙個固定大小的矩陣,這對分類問題很有必要。例如,如果你用了100個濾波器,並對每個輸出使用最大池化,那麼無論濾波器的尺寸是多大,也無論輸入資料的維度如何變化,你都將得到乙個100維的輸出。這讓你可以應用不同長度的句子和不同大小的濾波器,但總是得到乙個相同維度的輸出結果,傳入下一層的分類器。
池化還能降低輸出結果的維度,(理想情況下)卻能保留顯著的特徵。你可以認為每個濾波器都是檢測一種特定的特徵,例如檢測句子是否包含諸如「not amazing」等否定意思。如果這個短語在句子中的某個位置出現,那麼對應位置的濾波器的輸出值將會非常大,而在其它位置的輸出值非常小。通過採用取最大值的方式,能將某個特徵是否出現在句子中的資訊保留下來,但是無法確定它究竟在句子的哪個位置出現。所以這個資訊出現的位置真的很重要嗎,這有點類似於一組n-grams模型的行為。儘管丟失了關於位置的全域性資訊(在句子中的大致位置),但是濾波器捕捉到的區域性資訊卻被保留下來了,比如「not amazing」和「amazing not」的意思就大相徑庭。
在影象識別領域,池化還能提供平移和旋轉不變性。若對某個區域做了池化,即使影象平移/旋轉幾個畫素,得到的輸出值也基本一樣,因為每次最大值運算得到的結果總是一樣的。
dilated convolution(擴張神經網路)的產生是為了解決全卷積網路在影象分割領域的問題,影象分割需要輸入和輸出在畫素的shape保持一致,但由於池化層的存在導致需要通過上取樣擴增size,但是上取樣並不能將丟失的資訊無損的找回所以存在不足。
dilated convolution想法就是既然池化的下取樣操作會帶來資訊損失,那麼就把池化層去掉。但是池化層去掉隨之帶來的是網路各層的感受野變小,這樣會降低整個模型的**精度。dilated convolution的主要貢獻就是如何在去掉池化下取樣操作的同時,而不降低網路的感受野。
最後個人覺得雖然dilated convolution可以增大感受野,不損失資訊,但是先前的池化層(pooling)還具有減小網路規模和引數的作用,較少特徵冗餘,防止過擬合的作用。
卷積層 池化層的理解 基礎知識
關於卷積層我們先來看什麼叫卷積操作 下圖較大網格表示一幅,有顏色填充的網格表示乙個卷積核,卷積核的大小為3 3。假設我們做步長為1的卷積操作,表示卷積核每次向右移動乙個畫素 當移動到邊界時回到最左端並向下移動乙個單位 卷積核每個單元內有權重,下圖的卷積核內有9個權重。在卷積核移動的過程中將上的畫素和...
池化層的作用
池化層夾在連續的卷積層中間,用於壓縮資料和引數的量。簡而言之,如果輸入是影象的話,那麼池化層的最主要作用就是壓縮影象。個人理解的同resize方法類似 雙線性插值法,鄰近法 只不過池化層用的是取最大值法。個人覺得主要是兩個作用 invariance 不變性 這種不變性包括translation 平移...
池化層作用
池化層主要有以下幾個作用 a 降維 b 實現非線性 c 可以擴大感知野 d 可以實現不變性 平移不變性,旋轉不變性,尺度不變性 個人覺得主要是兩個作用 1.invariance 不變性 這種不變性包括translation 平移 rotation 旋轉 scale 尺度 2.保留主要的特徵同時減少引...