最近看論文,看到了全局平均池化,之間見過這東西,但是沒有仔細(xì)了解,今天學(xué)習(xí)一下,并記錄下來,方便以后查閱。
概念概述
出處:Lin M, Chen Q, Yan S. Network in network[J]. arXiv preprint arXiv:1312.4400, 2013.
定義:將特征圖所有像素值相加求平局,得到一個(gè)數(shù)值,即用該數(shù)值表示對應(yīng)特征圖。
目的:替代全連接層
效果:減少參數(shù)數(shù)量,減少計(jì)算量,減少過擬合
思路:如下圖所示。假設(shè)最終分成10類,則最后卷積層應(yīng)該包含10個(gè)濾波器(即輸出10個(gè)特征圖),然后按照全局池化平均定義,分別對每個(gè)特征圖,累加所有像素值并求平均,最后得到10個(gè)數(shù)值,將這10個(gè)數(shù)值輸入到softmax層中,得到10個(gè)概率值,即這張圖片屬于每個(gè)類別的概率值。
在原文這樣描述全局平均值池化:
作用:如果要預(yù)測K個(gè)類別,在卷積特征抽取部分的最后一層卷積層,就會(huì)生成K個(gè)特征圖,然后通過全局平均池化就可以得到 K個(gè)1×1的特征圖,將這些1×1的特征圖輸入到softmax layer之后,每一個(gè)輸出結(jié)果代表著這K個(gè)類別的概率(或置信度 confidence),起到取代全連接層的效果。
優(yōu)點(diǎn):
- 和全連接層相比,使用全局平均池化技術(shù),對于建立特征圖和類別之間的關(guān)系,是一種更樸素的卷積結(jié)構(gòu)選擇。
- 全局平均池化層不需要參數(shù),避免在該層產(chǎn)生過擬合。
- 全局平均池化對空間信息進(jìn)行求和,對輸入的空間變化的魯棒性更強(qiáng)。
torch實(shí)現(xiàn)
import torch
a = torch.rand([4,3,4,4])
a.size()
輸出:
torch.Size([4, 3, 4, 4])
b = torch.nn.functional.adaptive_avg_pool2d(a, (1,1)) # 自適應(yīng)池化,指定池化輸出尺寸為 1 * 1
b.size()
輸出:
torch.Size([4, 3, 1, 1])
參考資料
Global Average Pooling Layers for Object Localization
Comparison of the fully connected layer and global average pooling layer.
全局平均池化(Global Average Pooling)文章來源:http://www.zghlxwxcb.cn/news/detail-793777.html
pytorch 學(xué)習(xí) | 全局平均池化 global average pooling 實(shí)現(xiàn) 和作用優(yōu)點(diǎn)解析文章來源地址http://www.zghlxwxcb.cn/news/detail-793777.html
到了這里,關(guān)于全局平均池化(Global Average Pooling)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!