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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

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

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

https://antkillerfarm.github.io/

花式池化

池化和卷積一樣,都是信號采樣的一種方式。

普通池化

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

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

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

根據(jù)相關理論,特征提取的誤差主要來自兩個方面:

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

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

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

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

池化的反向傳播

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

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

比如,AlphaGo采用CNN識別棋局,但對棋局來說,下采樣顯然是沒有什么物理意義的,因此,AlphaGo的CNN是沒有Pooling的

全局平均池化

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

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

1.對每個通道的feature map進行flatten操作得到一維的tensor。

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

上圖展示了FC與Conv、Softmax等層聯(lián)動時的運算操作。

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

1.計算每個通道的feature map的均值。

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

UnPooling

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

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

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

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

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

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

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

參考:

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

caffe反卷積

K-max Pooling

參考

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

Stochastic Pooling簡單理解

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

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

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

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

Batch Normalization

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

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

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

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

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

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

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)是待學習的參數(shù)。

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

B={x1,,m}表示batch,則BN的計算過程如下:

Step 1.計算mini-batch mean。

μB1mi=1mxi

Step 2.計算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)

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

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

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

BN的誤差反向算法相對復雜,這里不再贅述。

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

Instance Normalization

Instance Normalization主要用于CV領域。

論文:

《Instance Normalization: The Missing Ingredient for Fast Stylization》

首先我們列出對圖片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實際上就是對一張圖片的一個通道內(nèi)的值進行歸一化,因此又叫做對比度歸一化(contrast normalization)。

參考:

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

論文中文版

總結(jié)

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

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