Python深度學習pytorch神經網絡匯聚層理解

我們的機器學習任務通常會跟全局圖像的問題有關(例如,“圖像是否包含一隻貓呢?”),所以我們最後一層的神經元應該對整個輸入的全局敏感。通過逐漸聚合信息,生成越來越粗糙的映射,最終實現學習全局表示的目標,同時將卷積圖層的所有有時保留在中間層。

此外,當檢測較底層的特征時(例如之前討論的邊緣),我們通常希望這些特征保持某種程度上的平移不變性。例如,如果我們拍攝黑白之間輪廓清晰的圖像X,並將整個圖像向右移動一個像素,即Z[i, j] = X[i, j+1],則新圖像Z的輸出可能大不相同。而在現實中,隨著拍攝角度的移動,任何物體幾乎不可能發生在同一像素上。即使用三腳架拍攝一個靜止的物體,由於快門的移動而引起的相機振動,可能會使所有物體左右移動一個像素(除瞭高端相機配備瞭特殊功能來解決這個問題)。

本節將介紹池化(pooling)層,它具有雙重目的:降低卷積層對位置的敏感性,同時降低對空間降采樣表示的敏感性。

最大匯聚層和平均匯聚層

與卷積層類似,匯聚層運算符由一個固定形狀的窗口組成,該窗口根據其步幅大小在輸入的所有區域上滑動,為固定形狀窗口(有時稱為池化窗口)遍歷的每個位置計算一個輸出。然而,不同域卷積層的輸入與卷積核之間的互相關計算,匯聚層不包含參數。相反,池運算符是確定性的,我們通常計算池化窗口中所有元素的最大值或平均值。這些操作分別稱為最大匯聚層(maximum pooling)和平均匯聚層(average pooling)。

在這兩種情況下,與互相關運算符一樣,池化窗口從輸入張量的左上角開始,從左到右、從上到下的在輸入張量內移動。

在這裡插入圖片描述

填充和步幅

和先前一樣,我們可以通過填充和步幅以獲得所需的輸出形狀。

多個通道

在處理多通道輸入數據時,匯聚層在每個輸入通道上單獨運算,而不是像卷積層一樣在通道上對輸入進行匯總。這意味著匯聚層的輸出通道數與輸入通道數相同。

以上就是Python深度學習pytorch神經網絡匯聚層理解的詳細內容,更多關於pytorch神經網絡的資料請關註WalkonNet其它相關文章!

推薦閱讀: