大家好啊,我是董董燦!
在很多與計算機(jī)視覺相關(guān)的神經(jīng)網(wǎng)絡(luò)中,我們往往都會看到池化這一算法,它一般跟在卷積層后面。
神經(jīng)網(wǎng)絡(luò)中用到最多的池化方式無外乎是最大池化和平均池化。兩者運(yùn)算接近,區(qū)別在于是在kernel范圍內(nèi)取最大值還是取平均值來作為池化的輸出。
那池化的本質(zhì)是什么呢?為什么在神經(jīng)網(wǎng)絡(luò)中,尤其是CNN網(wǎng)絡(luò)中,會需要用到池化算法呢?
1、池化的本質(zhì)
先回顧下池化運(yùn)算。
下圖展示的是一個最大池化的計算過程。它利用一個2x2的核(kernel)來圈定一次池化的計算范圍,每次選定輸入圖片中2x2范圍內(nèi)的最大值數(shù)值作為輸出。
這一過程非常簡單,它計算的每一步,就是從選定的范圍內(nèi),計算出一個數(shù)字來,這一過程也叫做特征的聚合(aggregation)。
我們知道,卷積的輸出是特征圖,特征圖的一個通道代表一個特征。
而針對特征圖的池化操作在每個通道上是獨立進(jìn)行的,池化前后特征圖變化的僅僅是長寬方向的尺寸。
那怎么理解特征聚合呢?
舉個例子。
最大池化的每次計算,都是選取kernel范圍內(nèi)的最大值作為這個范圍內(nèi)最顯著的特征代表。
一張圖片中,像素值最大的地方,往往是圖像突變最大的地方,比如圖像的輪廓和邊緣,因此最大池化,可以有效的提取圖像的輪廓邊緣信息。
也就是說,通過最大池化,輸出了一個比原始圖像在長寬方向尺寸更小的圖片,但這個更小的圖片卻聚合了原始圖像中最顯著的輪廓和邊緣特征。
達(dá)到了特征聚合的目的,這也是池化算法的本質(zhì)。
圍繞著這個本質(zhì),可以引申出幾個池化算法的優(yōu)勢。
2、池化的優(yōu)勢
減少計算量
輸出的圖片在長寬方向上尺寸變小了,從而帶來了計算量的減少,這一點是顯而易見的。
減少過擬合的風(fēng)險
計算量的減少,帶來的另一個顯著影響就是池化層后面的神經(jīng)網(wǎng)絡(luò)需要處理的特征圖尺寸變小了,從而使得模型的參數(shù)量需求減少。
參數(shù)越少,過擬合的風(fēng)險越低,這一點在訓(xùn)練過程中尤為重要。
提高模型對圖片平移、縮放和旋轉(zhuǎn)等變換的魯棒性
之前看到這句話的時候,有點似懂非懂。后來查了一些資料,發(fā)現(xiàn)這句話說的其實是池化算法對于原始圖片的變換具有輕微的容忍度。
也就是說,有了池化算法,模型可以容忍輸入的圖像有輕微的旋轉(zhuǎn)、平移或者縮放,可以在不改變?nèi)魏文P退惴ɑ蚪Y(jié)構(gòu)的情況下,希望推理出正確的結(jié)果。
舉個例子。
下面的圖片示意了最大池化對于圖片輕微旋轉(zhuǎn)的容忍度。
如果輸入圖片有輕微的旋轉(zhuǎn),經(jīng)過最大池化,只要圖片旋轉(zhuǎn)的角度不是很厲害,依舊可以在對應(yīng)位置獲取到目標(biāo)區(qū)域中的最大值12。
而對于圖片的平移和縮放變換,池化算法同樣有著類似的輕微容忍度。
注意這里一直在說是輕微的容忍度。如果一張圖片旋轉(zhuǎn)、平移過多,那么經(jīng)過池化輸出的結(jié)果肯定是不一樣的,這時模型推理的結(jié)果可能也就不一樣了。
正是因為這幾個優(yōu)勢,使得池化操作經(jīng)常會出現(xiàn)在CNN網(wǎng)絡(luò)中。文章來源:http://www.zghlxwxcb.cn/news/detail-606074.html
好了,關(guān)于池化就寫到這,不知看完之后,你對池化這一算法是否有了更深的認(rèn)識了呢?文章來源地址http://www.zghlxwxcb.cn/news/detail-606074.html
到了這里,關(guān)于5分鐘搞懂池化的本質(zhì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!