成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CNN中的maxpool到底是什么原理?

移動(dòng)開發(fā) 開發(fā)
maxpool以及其他各種池化到底都是什么意思?本文幫你理解。本文整理自知乎問(wèn)題“請(qǐng)問(wèn) CNN 中的 maxpool 到底是什么原理,為什么要取最大值,取最大值的原理是什么?謝謝?!钡南耏jango和小白菜的回答。

首先細(xì)講一下 Max pooling。

Max pooling

在卷積后還會(huì)有一個(gè) pooling 的操作,盡管有其他的比如 average pooling 等,這里只提 max pooling。

max pooling 的操作如下圖所示:整個(gè)圖片被不重疊的分割成若干個(gè)同樣大小的小塊(pooling size)。每個(gè)小塊內(nèi)只取最大的數(shù)字,再舍棄其他節(jié)點(diǎn)后,保持原有的平面結(jié)構(gòu)得出 output。

圖片來(lái)源:cs231n

max pooling 在不同的 depth 上是分開執(zhí)行的,且不需要參數(shù)控制。 那么問(wèn)題就 max pooling 有什么作用?部分信息被舍棄后難道沒(méi)有影響嗎?

圖片來(lái)源:cs231n

Max pooling 的主要功能是 downsampling,卻不會(huì)損壞識(shí)別結(jié)果。 這意味著卷積后的 Feature Map 中有對(duì)于識(shí)別物體不必要的冗余信息。 那么我們就反過(guò)來(lái)思考,這些 “冗余” 信息是如何產(chǎn)生的。

直覺上,我們?yōu)榱颂綔y(cè)到某個(gè)特定形狀的存在,用一個(gè) filter 對(duì)整個(gè)圖片進(jìn)行逐步掃描。但只有出現(xiàn)了該特定形狀的區(qū)域所卷積獲得的輸出才是真正有用的,用該 filter 卷積其他區(qū)域得出的數(shù)值就可能對(duì)該形狀是否存在的判定影響較小。 比如下圖中,我們還是考慮探測(cè) “橫折” 這個(gè)形狀。 卷積后得到 3x3 的 Feature Map 中,真正有用的就是數(shù)字為 3 的那個(gè)節(jié)點(diǎn),其余數(shù)值對(duì)于這個(gè)任務(wù)而言都是無(wú)關(guān)的。 所以用 3x3 的 Max pooling 后,并沒(méi)有對(duì) “橫折” 的探測(cè)產(chǎn)生影響。 試想在這里例子中如果不使用 Max pooling,而讓網(wǎng)絡(luò)自己去學(xué)習(xí)。 網(wǎng)絡(luò)也會(huì)去學(xué)習(xí)與 Max pooling 近似效果的權(quán)重。因?yàn)槭墙菩Ч黾恿烁嗟?parameters 的代價(jià),卻還不如直接進(jìn)行 Max pooling。

CNN中的maxpool到底是什么原理?

Max pooling 還有類似 “選擇句” 的功能。假如有兩個(gè)節(jié)點(diǎn),其中第一個(gè)節(jié)點(diǎn)會(huì)在某些輸入情況下最大,那么網(wǎng)絡(luò)就只在這個(gè)節(jié)點(diǎn)上流通信息;而另一些輸入又會(huì)讓第二個(gè)節(jié)點(diǎn)的值最大,那么網(wǎng)絡(luò)就轉(zhuǎn)而走這個(gè)節(jié)點(diǎn)的分支。

但是 Max pooling 也有不好的地方。因?yàn)椴⒎撬械淖ト《枷裆蠄D這樣的極端例子。有些周邊信息對(duì)某個(gè)概念是否存在的判定也有影響。 并且 Max pooling 是對(duì)所有的 Feature Maps 進(jìn)行等價(jià)的操作。就好比用相同網(wǎng)孔的漁網(wǎng)打魚,一定會(huì)有漏網(wǎng)之魚。

 

下面對(duì)其他的 pooling 方法做一個(gè)簡(jiǎn)單的整理(前一段時(shí)間整理的個(gè)人覺得比較不錯(cuò)且流行的 pooling 方法)。

SUM pooling

基于 SUM pooling 的中層特征表示方法,指的是針對(duì)中間層的任意一個(gè) channel(比如 VGGNet16, pool5 有 512 個(gè) channel),將該 channel 的 feature map 的所有像素值求和,這樣每一個(gè) channel 得到一個(gè)實(shí)數(shù)值,N 個(gè) channel 最終會(huì)得到一個(gè)長(zhǎng)度為 N 的向量,該向量即為 SUM pooling 的結(jié)果。

AVE pooling

AVE pooling 就是 average pooling,本質(zhì)上它跟 SUM pooling 是一樣的,只不過(guò)是將像素值求和后還除以了 feature map 的尺寸。作者以為,AVE pooling 可以帶來(lái)一定意義上的平滑,可以減小圖像尺寸變化的干擾。設(shè)想一張 224224 的圖像,將其 resize 到 448448 后,分別采用 SUM pooling 和 AVE pooling 對(duì)這兩張圖像提取特征,我們猜測(cè)的結(jié)果是,SUM pooling 計(jì)算出來(lái)的余弦相似度相比于 AVE pooling 算出來(lái)的應(yīng)該更小,也就是 AVE pooling 應(yīng)該稍微優(yōu)于 SUM pooling 一些。

MAX pooling

MAX pooling 指的是對(duì)于每一個(gè) channel(假設(shè)有 N 個(gè) channel),將該 channel 的 feature map 的像素值選取其中最大值作為該 channel 的代表,從而得到一個(gè) N 維向量表示。筆者在 flask-keras-cnn-image-retrieval中采用的正是 MAX pooling 的方式。 

圖片來(lái)源:Day 2 Lecture 6 Content-based Image Retrieval

上面所總結(jié)的 SUM pooling、AVE pooling 以及 MAX pooling,這三種 pooling 方式,在筆者做過(guò)的實(shí)驗(yàn)中,MAX pooling 要稍微優(yōu)于 SUM pooling、AVE pooling。不過(guò)這三種方式的 pooling 對(duì)于 object retrieval 的提升仍然有限。

MOP pooling

MOP Pooling 源自 Multi-scale Orderless Pooling of Deep Convolutional Activation Features這篇文章,一作是 Yunchao Gong,此前在搞哈希的時(shí)候,讀過(guò)他的一些論文,其中比較都代表性的論文是 ITQ,筆者還專門寫過(guò)一篇筆記論文閱讀:Iterative Quantization 迭代量化。MOP pooling 的基本思想是多尺度與 VLAD(VLAD 原理可以參考筆者之前寫的博文圖像檢索:BoF、VLAD、FV 三劍客),其具體的 pooling 步驟如下:

來(lái)源:Multi-scale Orderless Pooling of Deep Convolutional Activation Features

Overview of multi-scale orderless pooling for CNN activations (MOP-CNN). Our proposed feature is a concatenation of the feature vectors from three levels: (a)Level 1, corresponding to the 4096-dimensional CNN activation for the entire 256256image; (b) Level 2, formed by extracting activations from 128128 patches and VLADpooling them with a codebook of 100 centers; (c) Level 3, formed in the same way aslevel 2 but with 64*64 patches.

具體地,在 L=1 的尺度下,也就是全圖,直接 resize 到 256*256 的大小,然后送進(jìn)網(wǎng)絡(luò),得到第七層全連接層 4096 維的特征;在 L=2 時(shí),使用 128*128(步長(zhǎng)為 32) 的窗口進(jìn)行滑窗,由于網(wǎng)絡(luò)的圖像輸入最小尺寸是 256*256,所以作者將其上采樣到 256256,這樣可以得到很多的局部特征,然后對(duì)其進(jìn)行 VLAD 編碼,其中聚類中心設(shè)置為 100,4096 維的特征降到了 500 維,這樣便得到了 50000 維的特征,然后將這 50000 維的特征再降維得到 4096 維的特征;L=3 的處理過(guò)程與 L=2 的處理過(guò)程一樣,只不過(guò)窗口的大小編程了 64*64 的大小。

作者通過(guò)實(shí)驗(yàn)論證了 MOP pooling 這種方式得到的特征一定的不變性?;谶@種 MOP pooling 筆者并沒(méi)有做過(guò)具體的實(shí)驗(yàn),所以實(shí)驗(yàn)效果只能參考論文本身了。

CROW pooling

對(duì)于 Object Retrieval,在使用 CNN 提取特征的時(shí)候,我們所希望的是在有物體的區(qū)域進(jìn)行特征提取,就像提取局部特征比如 SIFT 特征構(gòu) BoW、VLAD、FV 向量的時(shí)候,可以采用 MSER、Saliency 等手段將 SIFT 特征限制在有物體的區(qū)域。同樣基于這樣一種思路,在采用 CNN 做 Object Retrieval 的時(shí)候,我們有兩種方式來(lái)更細(xì)化 Object Retrieval 的特征:一種是先做物體檢測(cè)然后在檢測(cè)到的物體區(qū)域里面提取 CNN 特征;另一種方式是我們通過(guò)某種權(quán)重自適應(yīng)的方式,加大有物體區(qū)域的權(quán)重,而減小非物體區(qū)域的權(quán)重。CROW pooling ( Cross-dimensional Weighting for Aggregated Deep Convolutional Features ) 即是采用的后一種方法,通過(guò)構(gòu)建 Spatial 權(quán)重和 Channel 權(quán)重,CROW pooling 能夠在一定程度上加大感興趣區(qū)域的權(quán)重,降低非物體區(qū)域的權(quán)重。其具體的特征表示構(gòu)建過(guò)程如下圖所示:

CNN中的maxpool到底是什么原理?

其核心的過(guò)程是 Spatial Weight 和 Channel Weight 兩個(gè)權(quán)重。Spatial Weight 具體在計(jì)算的時(shí)候,是直接對(duì)每個(gè) channel 的 feature map 求和相加,這個(gè) Spatial Weight 其實(shí)可以理解為 saliency map。我們知道,通過(guò)卷積濾波,響應(yīng)強(qiáng)的地方一般都是物體的邊緣等,因而將多個(gè)通道相加求和后,那些非零且響應(yīng)大的區(qū)域,也一般都是物體所在的區(qū)域,因而我們可以將它作為 feature map 的權(quán)重。Channel Weight 借用了 IDF 權(quán)重的思想,即對(duì)于一些高頻的單詞,比如 “the”,這類詞出現(xiàn)的頻率非常大,但是它對(duì)于信息的表達(dá)其實(shí)是沒(méi)多大用處的,也就是它包含的信息量太少了,因此在 BoW 模型中,這類停用詞需要降低它們的權(quán)重。借用到 Channel Weight 的計(jì)算過(guò)程中,我們可以想象這樣一種情況,比如某一個(gè) channel,其 feature map 每個(gè)像素值都是非零的,且都比較大,從視覺上看上去,白色區(qū)域占據(jù)了整個(gè) feature map,我們可以想到,這個(gè) channel 的 feature map 是不利于我們?nèi)ザㄎ晃矬w的區(qū)域的,因此我們需要降低這個(gè) channel 的權(quán)重,而對(duì)于白色區(qū)域占 feature map 面積很小的 channel,我們認(rèn)為它對(duì)于定位物體包含有很大的信息,因此應(yīng)該加大這種 channel 的權(quán)重。而這一現(xiàn)象跟 IDF 的思想特別吻合,所以作者采用了 IDF 這一權(quán)重定義了 Channel Weight。

總體來(lái)說(shuō),這個(gè) Spatial Weight 和 Channel Weight 的設(shè)計(jì)還是非常巧妙的,不過(guò)這樣一種 pooling 的方式只能在一定程度上契合感興趣區(qū)域,我們可以看一下 Spatial Weight*Channel Weight 的熱力圖:

從上面可以看到,權(quán)重大的部分主要在塔尖部分,這一部分可以認(rèn)為是 discriminate 區(qū)域,當(dāng)然我們還可以看到,在圖像的其他區(qū)域,還有一些比較大的權(quán)重分布,這些區(qū)域是我們不想要的。當(dāng)然,從筆者可視化了一些其他的圖片來(lái)看,這種 crow pooling 方式并不總是成功的,也存在著一些圖片,其權(quán)重大的區(qū)域并不是圖像中物體的主體。不過(guò),從千萬(wàn)級(jí)圖庫(kù)上跑出來(lái)的結(jié)果來(lái)看,crow pooling 這種方式還是可以取得不錯(cuò)的效果。

RMAC pooling

RMAC pooling 的池化方式源自于 Particular object retrieval with integral max-pooling of CNN activations,三作是 Hervé Jégou(和 Matthijs Douze 是好基友)。在這篇文章中,作者提出來(lái)了一種 RMAC pooling 的池化方式,其主要的思想還是跟上面講過(guò)的 MOP pooling 類似,采用的是一種變窗口的方式進(jìn)行滑窗,只不過(guò)在滑窗的時(shí)候,不是在圖像上進(jìn)行滑窗,而是在 feature map 上進(jìn)行的 (極大的加快了特征提取速度),此外在合并 local 特征的時(shí)候,MOP pooling 采用的是 VLAD 的方式進(jìn)行合并的,而 RMAC pooling 則處理得更簡(jiǎn)單 (簡(jiǎn)單并不代表效果不好),直接將 local 特征相加得到最終的 global 特征。其具體的滑窗方式如下圖所示:

圖片來(lái)源:Day 2 Lecture 6 Content-based Image Retrieval

圖中示意的是三種窗口大小,圖中‘x’代表的是窗口的中心,對(duì)于每一個(gè)窗口的 feature map,論文中采用的是 MAX pooling 的方式,在 L=3 時(shí),也就是采用圖中所示的三種窗口大小,我們可以得到 20 個(gè) local 特征,此外,我們對(duì)整個(gè) fature map 做一次 MAX pooling 會(huì)得到一個(gè) global 特征,這樣對(duì)于一幅圖像,我們可以得到 21 個(gè) local 特征 (如果把得到的 global 特征也視為 local 的話),這 21 個(gè) local 特征直接相加求和,即得到最終全局的 global 特征。論文中作者對(duì)比了滑動(dòng)窗口數(shù)量對(duì) mAP 的影響,從 L=1 到 L=3,mAP 是逐步提升的,但是在 L=4 時(shí),mAP 不再提升了。實(shí)際上 RMAC pooling 中設(shè)計(jì)的窗口的作用是定位物體位置的 (CROW pooling 通過(guò)權(quán)重圖定位物體位置)。如上圖所示,在窗口與窗口之間,都是一定的 overlap,而最終在構(gòu)成 global 特征的時(shí)候,是采用求和相加的方式,因此可以看到,那些重疊的區(qū)域我們可以認(rèn)為是給予了較大的權(quán)重。

上面說(shuō)到的 20 個(gè) local 特征和 1 個(gè) global 特征,采用的是直接合并相加的方式,當(dāng)然我們還可以把這 20 個(gè) local 特征相加后再跟剩下的那一個(gè) global 特征串接起來(lái)。實(shí)際實(shí)驗(yàn)的時(shí)候,發(fā)現(xiàn)串接起來(lái)的方式比前一種方式有 2%-3% 的提升。在規(guī)模 100 萬(wàn)的圖庫(kù)上測(cè)試,RMAC pooling 能夠取得不錯(cuò)的效果,跟 Crow pooling 相比,兩者差別不大。

上面總結(jié)了 6 中不同的 pooling 方式,當(dāng)然還有很多的 pooling 方式?jīng)]涵蓋不到,在實(shí)際應(yīng)用的時(shí)候,筆者比較推薦采用 RMAC pooling 和 CROW pooling 的方式,主要是這兩種 pooling 方式效果比較好,計(jì)算復(fù)雜度也比較低。

本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請(qǐng)至雷鋒網(wǎng)官網(wǎng)申請(qǐng)授權(quán)。

責(zé)任編輯:張子龍 來(lái)源: 雷鋒網(wǎng)
相關(guān)推薦

2023-10-11 08:29:54

volatileJava原子性

2009-06-09 22:11:44

JavaScriptObject

2023-03-29 08:24:46

Rune類型開源項(xiàng)目

2020-03-05 10:28:19

MySQLMRR磁盤讀

2022-10-08 00:00:00

Spring數(shù)據(jù)庫(kù)項(xiàng)目

2020-10-14 06:22:14

UWB技術(shù)感知

2020-09-27 06:53:57

MavenCDNwrapper

2020-09-22 08:22:28

快充

2010-11-01 01:25:36

Windows NT

2011-04-27 09:30:48

企業(yè)架構(gòu)

2021-09-01 23:29:37

Golang語(yǔ)言gRPC

2021-01-21 21:24:34

DevOps開發(fā)工具

2021-02-05 10:03:31

區(qū)塊鏈技術(shù)智能

2023-07-12 15:32:49

人工智能AI

2021-07-07 05:07:15

JDKIterator迭代器

2024-02-04 00:01:00

云原生技術(shù)容器

2013-06-09 09:47:31

.NetPDBPDB文件

2021-09-03 09:12:09

Linux中斷軟件

2019-10-30 10:13:15

區(qū)塊鏈技術(shù)支付寶

2010-04-22 14:14:29

Live-USB
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品一区二区视频 | 国产精品视频观看 | 日韩欧美三区 | 久久久国产精品一区 | 91久久国产 | 国产日产欧产精品精品推荐蛮挑 | 亚洲一区二区av | 欧美在线综合 | 亚洲视频免费 | 精品三级在线观看 | 久久久久国产一区二区三区四区 | 欧美综合一区二区 | www.日韩 | 午夜影院| 四虎影视1304t | 亚洲精品大全 | 中文字幕高清 | 亚洲精品视频在线看 | 真人女人一级毛片免费播放 | 亚洲精品在线免费观看视频 | 亚洲日本一区二区三区四区 | 中文在线视频观看 | 国产sm主人调教女m视频 | 欧美日韩中文在线 | 亚洲福利精品 | 嫩草研究影院 | 91五月婷蜜桃综合 | 亚洲va欧美va天堂v国产综合 | 中文字幕精品一区久久久久 | 美女天天操 | 一区欧美| 日韩国产在线观看 | 国产剧情一区二区三区 | 91精品国产91久久综合桃花 | 国精产品一区一区三区免费完 | 成人久久18免费网站图片 | h视频在线免费看 | 午夜影院网站 | 99精品国产一区二区三区 | 亚洲黄色在线免费观看 | 成人二区三区 |