深度學習卷積神經網路筆記
在使用全連線層時,存在著引數量過多,記憶體佔有量過大的問題,限制了神經網路朝著更深的層數發展,以此卷積神經網路得到了發展。充分利用了區域性相關和權值共享的思想,大大的減少了引數量,提高了訓練的準確率,在計算機視覺方面得到了應用。
convolutions(卷積)
卷積就是特徵提取器。
Vertical edge detection filter
[1 0 -1
1 0 -1
1 0 -1]
Horizontal edge detection filter
[1 1 1
0 0 0
-1 -1 -1]
Sobel filter
[1 0 -1
2 0-2
1 0 -1]
與訊號上所學習的卷積相類似,就是對應位置上做乘法做加法,在深度學習中,由於映象的影響不大,所以忽略了這個步驟。
隨著卷積的加深,圖片會越來越小,而channels會越來越多。
padding(填充)
若有一個n×n的矩陣,與一個f×f的矩陣卷積,結果得到(n-f+1)×(n-f+1)的矩陣,這樣會引發兩個問題一個是shrinking output,另一個是 throwing away a lot of information,所以為了解決,在影像的邊緣再填充一層畫素,可以用0來填充 ,若填充的層數為p,則最後得到(n-f+1+2p)×(n-f+1+2p)。
根據填充多少來區分 分為
Valid convolution(不填充)
Same convolution:pad so that output size is the same as the input size 計算得p=(f-1)/2 由此可以看出f通常為奇數的,很少看到一個偶數的濾波器。
Strided convolutions(卷積步長)
n×n的矩陣與f×f的相卷積,padding為p,stride為s,
輸出為 (n+2p-f)/s+1*(n+2p-f)/s+1 如果計算結果是非整數,則選擇向下取整。
當資訊密度比較大時,應較密集的佈置感受野視窗,所以步長應設定的小一些;當資訊密度比較小時,適當減少感受野視窗的數量,步長應設定的大一些。
pooling(池化)
池化就相當於訊號中所學習的取樣。
By pooling to reduce the size of their representation ,to speed up computation,as well as to make some of the features it detects a bit more robust
Type:max pooling 將一個4×4的矩陣上下左右對摺分為四份,然後池化後輸出一個2*2的矩陣,輸出的每一個元素都是其對應區域中的最大值,(若輸出的是平均值,則是average pooling,不太常用)
前面的公式n×n的矩陣與f×f的相卷積,padding為p,stride為s,輸出為 [(n+2p-f)/s+1]×[(n+2p-f)/s+1]也同樣適用於pooling
Pooling的超級引數有過濾器filter的大小f和步幅stride的值s。常用引數f取值為2,s的取值為2,相當於寬度和高度各縮減一半 。一般在pooling時,不會使用padding。
在pooling中,沒有引數需要學習。大部分情況下均指定為2。
對於這些超引數的設定,常規做法是 不是自己設定超引數,而是檢視文獻中別人採用了那些超級引數,選一個在別人任務中效果很好的架構。
batchnormalization(批標準化)
網路層數的加深會使得網路訓練變得十分不穩定,甚至出現網路長時間不更新甚至不收斂的情況。加入了BN層後,網路的超引數設定的更加自由,並且收斂速度快,效能更好。卷積層,BN層,Activation層,pooling層一度成為了網路的標配單元。
經典卷積網路
1)Alexnet有2012年提出,獲得了當年ImageNet的冠軍。網路結構如下。
2)VGG系列
VGG系列沒有太多的超引數 只需要專注於構建卷積層的簡單網路
Conv=3×3filter,s=1,same padding
Max—pooling=2×2 s=2 。目前VGG16與VGG19仍然使用廣泛
VGG16結構如下
3)GoogleNet
提出了1×1卷積核,可以不改變特徵圖的寬和高,僅對通道數進行改變,採用模組化的思想,通過大量堆疊Inception模組,形成了複雜的網路結構。
4)ResNet(殘差網路)
很深很深的深度網路是很難訓練的,因為存在著梯度消失和梯度爆炸的問題。
ResNets有殘差塊構建的 using ResNets may train more deeper neural networks
相關文章
- 深度學習筆記------卷積神經網路深度學習筆記卷積神經網路
- 卷積神經網路學習筆記——SENet卷積神經網路筆記SENet
- 深度學習入門筆記(十八):卷積神經網路(一)深度學習筆記卷積神經網路
- 深度學習三:卷積神經網路深度學習卷積神經網路
- Ng深度學習筆記——卷積神經網路基礎深度學習筆記卷積神經網路
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 卷積神經網路學習筆記——Siamese networks(孿生神經網路)卷積神經網路筆記
- 深度學習——LeNet卷積神經網路初探深度學習卷積神經網路
- 深度學習經典卷積神經網路之AlexNet深度學習卷積神經網路
- 深度學習革命的開端:卷積神經網路深度學習卷積神經網路
- 深度剖析卷積神經網路卷積神經網路
- 吳恩達深度學習筆記(deeplearning.ai)之卷積神經網路(CNN)(上)吳恩達深度學習筆記AI卷積神經網路CNN
- 深度學習-卷積神經網路-演算法比較深度學習卷積神經網路演算法
- [譯] 淺析深度學習神經網路的卷積層深度學習神經網路卷積
- 吳恩達《卷積神經網路》課程筆記(2)– 深度卷積模型:案例研究吳恩達卷積神經網路筆記模型
- 吳恩達《卷積神經網路》課程筆記(1)– 卷積神經網路基礎吳恩達卷積神經網路筆記
- 深度學習之卷積神經網路(Convolutional Neural Networks, CNN)(二)深度學習卷積神經網路CNN
- 《卷積神經網路的Python實現》筆記卷積神經網路Python筆記
- 卷積神經網路CNN-學習1卷積神經網路CNN
- 【卷積神經網路學習】(4)機器學習卷積神經網路機器學習
- 【深度學習原理第4篇】卷積神經網路詳解(CNN)深度學習卷積神經網路CNN
- 卷積神經網路卷積神經網路
- 8-深度學習之神經網路核心原理與演算法-卷積神經網路深度學習神經網路演算法卷積
- 卷積神經網路-AlexNet卷積神經網路
- 5.2.1 卷積神經網路卷積神經網路
- 卷積神經網路CNN卷積神經網路CNN
- 卷積神經網路概述卷積神經網路
- 解密卷積神經網路!解密卷積神經網路
- 卷積神經網路-1卷積神經網路
- 卷積神經網路-2卷積神經網路
- 卷積神經網路-3卷積神經網路
- 深度學習筆記8:利用Tensorflow搭建神經網路深度學習筆記神經網路
- 學習OpenCL與卷積神經網路 Day1卷積神經網路
- 深度學習基礎-基於Numpy的卷積神經網路(CNN)實現深度學習卷積神經網路CNN
- 卷積神經網路四種卷積型別卷積神經網路型別
- Python深度學習(在小型資料集上從頭開始訓練一個卷積神經網路)--學習筆記(十)Python深度學習卷積神經網路筆記
- FSNet:利用卷積核概要進行深度卷積神經網路的壓縮卷積神經網路
- 全卷積神經網路FCN卷積神經網路