看完昨天的內容後,我們緊接著來看池化,池化可以看抓取器是否抓到了特徵,之前的例子裡使用的MaxPool最大池化層,在移動方式上與昨天卷積使用了相同的策略-滑動窗格,不同的是他直接挑出塊裡的最大值輸出,因此此層不需要訓練,另外還有平均池化層可以選擇。(2, 2)的pool_size
池化在這裡被用來降採樣使用,觀察之前的參數pool_size為2X2,而池化層也有strides參數,他被預設跟pool_size一樣,所以在模型summary裡,可以看到輸出的圖片邊長皆為一半,而大小是四分之一,這對我們減少權重數量很有幫助,圖片即使縮小我們還是能得到其中的資訊,提取特徵並減少計算量,是池化層的主要工作。
最後額外提到全局平均池化層一下,回頭看看之前的程式,在CNN最後面使用了Flatten層將所有抓取器的權重攤平,與10個二元分類器連接,在較大型的網路中,全連接層往往是在總權重數量占比很多的地方,全局平均池化層僅僅算出整張圖像素的平均,因此沒有權重,不用訓練,有幾個抓取器就輸出幾個值,先前的例子裡最後一層的權重數量為(5X5X64+1)X10=16010,換成全局平均池化層的使用數量為(1X64+1)X10=650。