cs231n訓練營學習筆記(9)卷積和池化

2021-10-01 17:41:51 字數 2331 閱讀 9267

卷積具有部分連線和權重共享的特徵,共享的權重就是卷積核,因為它劃過所有影象分別和影象切片相乘,相當於很多的卷積核共同組成權重。

從函式角度解讀卷積神經網路工作原理

每個卷積核(感受野receptive field)對應輸出乙個啟用對映(activation map),每層convnet由多個卷積核輸出的啟用對映組成,

與前面線性分類器不同,前面的權重的每行對應該類的模板,輸出是分數,相當於是一種特徵吧。

卷積網路的權重,也就是卷積核對應的是濾波器,每層convnet也就是啟用對映裡面包含的是提取到的特徵。

線性分類器是用模板點積得到距離,卷積是用濾波器得到距離以外的其它更複雜的特徵。

於是,訓練卷積網路,就是更新卷積核的值

卷積時候padding是為了獲得和輸入一樣尺寸的輸出

通常,卷積核是3*3,5*5,7*7的,對應的padding為1,2,3,可以通過公式計算證明

如果不padding,隨著深度增加,activation maps尺寸減小,這樣會不斷地丟失邊角的資訊,這樣不太好

也有1*1的卷積核改變深度

stride步長,當選用大的步長時,輸出的是降取樣的結果,解析度降低。相當於是池化處理,但是某些時候比池化好一些,大概因為可以改變深度。

選擇是構造一種平衡,引數數量、模型尺寸、還有過擬合之間的平衡。

池化用來減小輸入啟用的尺寸,使他們更小更容易控制,從而在最後有更少的引數,因為最後還是要接到fc上

池化還可以有效控制過擬合

因為不對深度處理,所以輸入池化和輸出的深度是相同的

一般不在池化時候padding

池化也是降取樣,設定stride避免重疊效果更好

有發現認為,在訓練乙個良好的生成模型時,棄用pool層也是很重要的。比如變化自編碼器(vaes:variational autoencoders)和生成性對抗網路(gans:generative adversarial networks)。

在向前傳播經過匯聚層的時候,通常會把池中最大元素的索引記錄下來(有時這個也叫作道岔(switches)),這樣在反向傳播的時候梯度的路由就很高效。

為什麼最大值池化要好於均值池化,做檢測分類任務時候,在一定區域內選擇啟用值更大的值更直觀

特徵圖與參數量的計算方法

卷積的計算方式

fisher yu和vladlen koltun的**給卷積層引入了乙個新的叫擴張(dilation)的超引數

讓filter中元素之間有間隙也是可以的,這就叫做擴張

在某些設定中,擴張卷積與正常卷積結合起來非常有用,因為在很少的層數內更快地匯集輸入的大尺度特徵

目標檢測和影象分割中感受野很重要,比如目標檢測一般情況下要在最後一層特徵圖上做**,那麼特徵圖上的乙個點能過對映到原圖的多少畫素,決定了網路能檢測到的尺寸上限,而保證感受野就要靠下取樣,下取樣的結果就是小目標不容易被檢測到;

針對上面的問題,多層特徵圖拉取分支能改善這個問題,因為小目標在越靠前的特徵圖上越容易體現,但是前面的特徵圖語義資訊不夠,比如在ssd中就存在這個問題;

擴張卷積的目的就是為了在不犧牲特徵圖尺寸的情況下增加感受野

雖然說它使感受野變大了,但是擴張的間隙權重引數都是0,那用0感受不是和沒感受一樣嗎

推測是相當於沒有犧牲感受野的同時做了下取樣

既然是這樣,那還是做了下取樣,小目標還是不容易被檢測到啊?

但是卷積的輸入會出現問題,由於卷積核是有間隔的,這意味著不是所有的輸入都參與計算

上圖是同樣的間隙擴張卷積三次,對應輸入上的感受野中被計算的部分

解決方法將連續排布的擴張卷積的dilation rate設定為「鋸齒狀」,比如分別是[1,2,3],

這樣就沒有遺漏了,這個感受野是目標檢測的尺寸上限,不是說只檢測這個尺寸大小的東西,既然能被計算到,那應該可以檢測到小目標

另一篇部落格理解為什麼要將全連線層轉化為卷積層

幾個小濾波器卷積層的組合比乙個大濾波器卷積層好

因為,多個小卷積層與非線性的啟用層交替的結構,比單一大卷積層的結構更能提取出深層的更好的特徵?為什麼?

使用小濾波器的卷積層組合,而不是用乙個帶有大的濾波器的卷積層。前者使用的引數更少。

cs231n訓練營學習筆記(6)

跑 softmax 最開始,寫softmax loss 用迴圈求loss和gradient softmax分類器使用交叉熵loss,公式為 程式設計實現時候稍微利用了廣播,10個分數一起算的 for i in range num train scores x i dot w scores max s...

CS231n 學習筆記(五)

注意 在計算機上計算梯度的乙個簡單方法是有限差分法 迭代計算所有w維度,一直重複下去直到計算完dw。這種方法是數值梯度法,過程非常慢。實際上,我們會使用另一種分析梯度法,提前計算出梯度的表示式 除錯策略 使用數值梯度作為單元測試來確保解析梯度是正確的 梯度下降演算法 注意 隨機梯度下降 之前我們定義...

cs231n筆記總結

cs231n的課程以及作業都完成的差不多了,後續的課程更多的涉及到卷積神經網路的各個子方向了,比如語義分割 目標檢測 定位 視覺化 遷移學習 模型壓縮等等。assignment3有涉及到這些中的一部分,但需要深入了解的話還是得看 了。所以在看 前把之前已學的知識,筆記和作業 一起做個整理。部落格裡主...