日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > pytorch >内容正文

pytorch

深度学习(十三)——花式池化, Batch Normalization

發(fā)布時(shí)間:2023/12/20 pytorch 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习(十三)——花式池化, Batch Normalization 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

https://antkillerfarm.github.io/

花式池化

池化和卷積一樣,都是信號(hào)采樣的一種方式。

普通池化

池化的一般步驟是:選擇區(qū)域P,令Y=f(P)。這里的f為池化函數(shù)。

上圖是Max Pooling的示意圖。除了max之外,常用的池化函數(shù)還有mean、min等。

ICLR2013上,Zeiler提出了另一種pooling手段stochastic pooling。只需對(duì)Pooling區(qū)域中的元素按照其概率值大小隨機(jī)選擇,即元素值大的被選中的概率也大。而不像max-pooling那樣,永遠(yuǎn)只取那個(gè)最大值元素。

根據(jù)相關(guān)理論,特征提取的誤差主要來(lái)自兩個(gè)方面:

(1)鄰域大小受限造成的估計(jì)值方差增大;

(2)卷積層參數(shù)誤差造成估計(jì)均值的偏移。

一般來(lái)說(shuō),mean-pooling能減小第一種誤差,更多的保留圖像的背景信息,max-pooling能減小第二種誤差,更多的保留紋理信息。

Stochastic-pooling則介于兩者之間,通過(guò)對(duì)像素點(diǎn)按照數(shù)值大小賦予概率,再按照概率進(jìn)行亞采樣,在平均意義上,與mean-pooling近似,在局部意義上,則服從max-pooling的準(zhǔn)則。

池化的反向傳播

池化的反向傳播比較簡(jiǎn)單。以上圖的Max Pooling為例,由于取的是最大值7,因此,誤差只要傳遞給7所在的神經(jīng)元即可。

這里再次強(qiáng)調(diào)一下,池化只是對(duì)信號(hào)的下采樣。對(duì)于圖像來(lái)說(shuō),這種下采樣保留了圖像的某些特征,因而是有意義的。但對(duì)于另外的任務(wù)則未必如此。

比如,AlphaGo采用CNN識(shí)別棋局,但對(duì)棋局來(lái)說(shuō),下采樣顯然是沒(méi)有什么物理意義的,因此,AlphaGo的CNN是沒(méi)有Pooling的

全局平均池化

Global Average Pooling是另一類池化操作,一般用于替換FullConnection層。

上圖是FC和GAP在CNN中的使用方法圖。從中可以看出Conv轉(zhuǎn)換成FC,實(shí)際上進(jìn)行了如下操作:

1.對(duì)每個(gè)通道的feature map進(jìn)行flatten操作得到一維的tensor。

2.將不同通道的tensor連接成一個(gè)大的一維tensor。

上圖展示了FC與Conv、Softmax等層聯(lián)動(dòng)時(shí)的運(yùn)算操作。

上圖是GAP與Conv、Softmax等層聯(lián)動(dòng)時(shí)的運(yùn)算操作。可以看出,GAP的實(shí)際操作如下:

1.計(jì)算每個(gè)通道的feature map的均值。

2.將不同通道的均值連接成一個(gè)一維tensor。

UnPooling

UnPooling是一種常見的上采樣操作。其過(guò)程如下圖所示:

1.在Pooling(一般是Max Pooling)時(shí),保存最大值的位置(Max Location)。

2.中間經(jīng)歷若干網(wǎng)絡(luò)層的運(yùn)算。

3.上采樣階段,利用第1步保存的Max Location,重建下一層的feature map。

從上面的描述可以看出,UnPooling不完全是Pooling的逆運(yùn)算:

1.Pooling之后的feature map,要經(jīng)過(guò)若干運(yùn)算,才會(huì)進(jìn)行UnPooling操作。

2.對(duì)于非Max Location的地方以零填充。然而這樣并不能完全還原信息。

參考:

http://blog.csdn.net/u012938704/article/details/52831532

caffe反卷積

K-max Pooling

參考

http://www.cnblogs.com/tornadomeet/p/3432093.html

Stochastic Pooling簡(jiǎn)單理解

http://mp.weixin.qq.com/s/XzOri12hwyOCdI1TgGQV3w

新型池化層sort_pool2d實(shí)現(xiàn)更快更好的收斂:表現(xiàn)優(yōu)于最大池化層

http://blog.csdn.net/liuchonge/article/details/67638232

CNN與句子分類之動(dòng)態(tài)池化方法DCNN–模型介紹篇

Batch Normalization

在《深度學(xué)習(xí)(二)》中,我們已經(jīng)簡(jiǎn)單的介紹了Batch Normalization的基本概念。這里主要講述一下它的實(shí)現(xiàn)細(xì)節(jié)。

我們知道在神經(jīng)網(wǎng)絡(luò)訓(xùn)練開始前,都要對(duì)輸入數(shù)據(jù)做一個(gè)歸一化處理,那么具體為什么需要?dú)w一化呢?歸一化后有什么好處呢?

原因在于神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程本質(zhì)就是為了學(xué)習(xí)數(shù)據(jù)分布,一旦訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)的分布不同,那么網(wǎng)絡(luò)的泛化能力也大大降低;另外一方面,一旦每批訓(xùn)練數(shù)據(jù)的分布各不相同(batch梯度下降),那么網(wǎng)絡(luò)就要在每次迭代都去學(xué)習(xí)適應(yīng)不同的分布,這樣將會(huì)大大降低網(wǎng)絡(luò)的訓(xùn)練速度,這也正是為什么我們需要對(duì)數(shù)據(jù)都要做一個(gè)歸一化預(yù)處理的原因。

對(duì)輸入數(shù)據(jù)歸一化,早就是一種基本操作了。然而這樣只對(duì)神經(jīng)網(wǎng)絡(luò)的輸入層有效。更好的辦法是對(duì)每一層都進(jìn)行歸一化。

然而簡(jiǎn)單的歸一化,會(huì)破壞神經(jīng)網(wǎng)絡(luò)的特征。(歸一化是線性操作,但神經(jīng)網(wǎng)絡(luò)本身是非線性的,不具備線性不變性。)因此,如何歸一化,實(shí)際上是個(gè)很有技巧的事情。

首先,我們回顧一下歸一化的一般做法:

x^(k)=x(k)?E[x(k)]Var[x(k)]???????

其中,x=(x(0),x(1),x(d))表示d維的輸入向量。

接著,定義歸一化變換函數(shù):

y(k)=γ(k)x^(k)+β(k)

這里的γ(k),β(k)是待學(xué)習(xí)的參數(shù)。

BN的主要思想是用同一batch的樣本分布來(lái)近似整體的樣本分布。顯然,batch size越大,這種近似也就越準(zhǔn)確。

B={x1,,m}表示batch,則BN的計(jì)算過(guò)程如下:

Step 1.計(jì)算mini-batch mean。

μB1mi=1mxi

Step 2.計(jì)算mini-batch variance。

σ2B1mi=1m(xi?μB)2

Step 3.normalize。

x^ixi?μBσ2B+??????

這里的?是為了數(shù)值的穩(wěn)定性而添加的常數(shù)。

Step 4.scale and shift。

yi=γx^i+βBNγ,β(xi)

在實(shí)際使用中,BN計(jì)算和卷積計(jì)算一樣,都被當(dāng)作神經(jīng)網(wǎng)絡(luò)的其中一層。即:

z=g(Wu+b)z=g(BN(Wu+b))=g(BN(Wu))

從另一個(gè)角度來(lái)看,BN的均值、方差操作,相當(dāng)于去除一階和二階信息,而只保留網(wǎng)絡(luò)的高階信息,即非線性部分。因此,上式最后一步中b被忽略,也就不難理解了。

BN的誤差反向算法相對(duì)復(fù)雜,這里不再贅述。

在inference階段,BN網(wǎng)絡(luò)忽略Step 1和Step 2,只計(jì)算后兩步。其中,β,γ由之前的訓(xùn)練得到。μ,σ原則上要求使用全體樣本的均值和方差,但樣本量過(guò)大的情況下,也可使用訓(xùn)練時(shí)的若干個(gè)mini batch的均值和方差的FIR濾波值。

Instance Normalization

Instance Normalization主要用于CV領(lǐng)域。

論文:

《Instance Normalization: The Missing Ingredient for Fast Stylization》

首先我們列出對(duì)圖片Batch Normalization的公式:

ytijk=xtijk?μiσ2i+??????,μi=1HWTt=1Tl=1Wm=1Hxtilm,σ2i=1HWTt=1Tl=1Wm=1H(xtilm?mμi)2

其中,T為圖片數(shù)量,i為通道,j、k為圖片的寬、高。

Instance Normalization的公式:

ytijk=xtijk?μtiσ2ti+??????,μti=1HWl=1Wm=1Hxtilm,σ2ti=1HWl=1Wm=1H(xtilm?mμti)2

從中可以看出Instance Normalization實(shí)際上就是對(duì)一張圖片的一個(gè)通道內(nèi)的值進(jìn)行歸一化,因此又叫做對(duì)比度歸一化(contrast normalization)。

參考:

http://www.jianshu.com/p/d77b6273b990

論文中文版

總結(jié)

以上是生活随笔為你收集整理的深度学习(十三)——花式池化, Batch Normalization的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。