系統(tǒng)學(xué)習(xí)深度學(xué)習(xí)(十二)--池化x

        發(fā)布時間:2020-09-13 來源: 民主生活會 點擊:

         系統(tǒng)學(xué)習(xí)深度學(xué)習(xí)(十二)-- 池化 轉(zhuǎn)自:http://blog.csdn.net/danieljianfeng/article/details/42433475

         在卷積神經(jīng)網(wǎng)絡(luò)中,我們經(jīng)常會碰到池化操作,而池化層往往在卷積層后面,通過池化來降低卷積層輸出的特征向量,同時改善結(jié)果(不易出現(xiàn)過擬合)。

         為什么可以通過降低維度呢? 因為圖像具有一種“靜態(tài)性”的屬性,這也就意味著在一個圖像區(qū)域有用的特征極有可能在另一個區(qū)域同樣適用。因此,為了描述大的圖像,一個很自然的想法就是對不同位置的特征進行聚合統(tǒng)計,例如,人們可以計算圖像一個區(qū)域上的某個特定特征的平均值 (或最大值)來代表這個區(qū)域的特征。[1]

         1.

         一般池化(General Pooling )

         池化作用于圖像中不重合的區(qū)域(這與卷積操作不同),過程如下圖。

          我們定義池化窗口的大小為 sizeX,即下圖中紅色正方形的邊長,定義兩個相鄰池化窗口的水平位移/豎直位移為 stride。一般池化由于每一池化窗口都是不重復(fù)的,所以 sizeX=stride。

         最常見的池化操作為平均池化 mean pooling 和最大池化 max pooling:

         平均池化:計算圖像區(qū)域的平均值作為該區(qū)域池化后的值。

         最大池化:選圖像區(qū)域的最大值作為該區(qū)域池化后的值。

         隨機池化:只需對 feature map 中的元素按照其概率值大小隨機選擇,即元素值大的被選中的概率也大 隨機池化理解,轉(zhuǎn)自:http://blog.csdn.net/maxiemei/article/details/17355047

         補充(轉(zhuǎn)自:http://blog.yinfupai.com/2400.html)

         在提取信息的時候,在池化的時候,如果取區(qū)域均值(mean-pooling),往往能保留整體數(shù)據(jù)的特征,能凸出背景的信息,而如果取區(qū)域最大值(max-pooling),則能更好保留紋理上的特征,但這些應(yīng)該都不如小波變換那樣,可以保留更多的細節(jié)特征,整體上也應(yīng)該更加細微。

          在 ICLR2013 上,Zeiler 提出了 stochastic pooling,元素值大的被選中的概率也大,但不是像 max-pooling 那樣總是取最大值,這種方法的優(yōu)勢是,一方面最大化保證了 Max 值的取值,一方面又部分確保不會所有元素都被 max 值給忽悠住,造成過度失真。

          這種方式想來還是有缺陷的,因為這種隨機行挑選盡管有概率傾向,但它是人為疊加上的,無法總是保證一定隨機的概率選擇中能夠選擇到更好的結(jié)果,所以也會出現(xiàn)更糟糕的結(jié)果的時候,不過加入概率算法好處是,它為產(chǎn)生更好的結(jié)果產(chǎn)生了可能,所以總的來說,還是有可能得到更好的結(jié)果的。

         假設(shè)目標總是容易被命中的,而有那么個正態(tài)分布與目標的分布是近似重合的,如何保證這種分布比較能吻合目標?平均值與最大值都會產(chǎn)生偏移,因為畢竟太暴力了,而概率算法加入無疑是比較理想的,能減少這種偏移的可能,如果運氣足夠好,收斂會非常好,那么還有可能得到更加貼近的結(jié)果,于是這個又扯到了運氣上來了。

          只是,術(shù)數(shù)里的收斂為何能那么準確,這個從數(shù)學(xué)角度實在是難解,究竟是什么沒有考慮到?目前有一種隱隱地思路,需要探索以術(shù)數(shù)的模型套上去,只是還是沒有找到橋梁在哪里,第一是要找出,信息是如何演算并折疊在卦中的,第二是要找出如何還能夠把信息進行還原。

          在嘗試計算了近十萬個圖形與隨機起卦之間的聯(lián)系后,發(fā)現(xiàn)要建立這個聯(lián)系,是極難完成的任務(wù),制作自動編碼器運算到一定程度收斂越來越慢,隨便估計也是要花上個幾個月的(還不一定最后算得出來),想來還是思路有問題。

         2. 重疊池化(OverlappingPooling )[2] 重疊池化正如其名字所說的,相鄰池化窗口之間會有重疊區(qū)域,此時 sizeX>stride。

         論文中[2]中,作者使用了重疊池化,其他的設(shè)置都不變的情況下, top-1 和 top-5 的錯誤率分別減少了 0.4% 和 0.3%。

          3. 空金字塔池化(Spatial Pyramid Pooling )[3]

         空間金字塔池化可以把任何尺度的圖像的卷積特征轉(zhuǎn)化成相同維度,這不僅可以讓CNN 處理任意尺度的圖像,還能避免 cropping 和 warping 操作,導(dǎo)致一些信息的丟失,具有非常重要的意義。

          一般的 CNN 都需要輸入圖像的大小是固定的,這是因為全連接層的輸入需要固定輸入維度,但在卷積操作是沒有對圖像尺度有限制,所有作者提出了空間金字塔池化,先讓圖像進行卷積操作,然后轉(zhuǎn)化成維度相同的特征輸入到全連接層,這個可以把 CNN 擴展到任意大小的圖像。

         空間金字塔池化的思想來自于 Spatial Pyramid Model,它一個 pooling 變成了多個scale 的 pooling。用不同大小池化窗口作用于卷積特征,我們可以得到1X1,2X2,4X4 的池化結(jié)果,由于 conv5 中共有 256 個過濾器,所以得到 1 個 256維的特征,4 個 256 個特征,以及 16 個 256 維的特征,然后把這 21 個 256 維特征鏈接起來輸入全連接層,通過這種方式把不同大小的圖像轉(zhuǎn)化成相同維度的特征。

          對于不同的圖像要得到相同大小的 pooling 結(jié)果,就需要根據(jù)圖像的大小動態(tài)的計算池化窗口的大小和步長。假設(shè) conv5 輸出的大小為 a*a,需要得到 n*n 大小的池化結(jié)果,可以讓窗口大小 sizeX 為 ,步長為

         。下圖以

         conv5 輸出的大小為 13*13 為例。

         疑問:如果 conv5 輸出的大小為 14*14,[pool1*1]的 sizeX=stride=14,[pool2*2]的 sizeX=stride=7,這些都沒有問題,但是,[pool4*4]的 sizeX=5,stride=4,最后一列和最后一行特征沒有被池化操作計算在內(nèi)。

          SPP 其實就是一種多個 scale 的 的 pooling ,可以獲取圖像中的多尺度信息;在 CNN入 中加入 SPP 后,可以讓 CNN 處理任意大小的輸入,這讓模型變得更加的 flexible。

         。

          4.

         Reference [1]

         UFLDL_Tutorial

         [2]

         Krizhevsky, I. Sutskever, andG. Hinton, “Imagenet classification with deep convolutional neural networks,”in NIPS,2012. [3]

         Kaiming

         He, Xiangyu Zhang, Shaoqing Ren, Jian Su,Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition,LSVRC-2014 contest

        相關(guān)熱詞搜索:學(xué)習(xí) 深度 系統(tǒng)

        版權(quán)所有 蒲公英文摘 www.zuancaijixie.com
        91啦在线播放,特级一级全黄毛片免费,国产中文一区,亚洲国产一成人久久精品