數(shù)據(jù)集
http://deeplearning.net/datasets/
https://www.visualdata.io/
https://github.com/awesomedata/awesome-public-datasets
卷積層
負(fù)責(zé)特征提取
原理
- RGB三個(gè)通道,或者叫做深度苛蒲。
- 3D濾波器/卷積核的深度與輸入特征一致,計(jì)算過程是兩個(gè)三維矩陣的點(diǎn)積加上一個(gè)偏置落君,每一個(gè)卷積核對(duì)應(yīng)一個(gè)輸出層。所以輸出有很多層(深度)这溅,每一層捕捉一種局部特征
- 卷積核需要自學(xué)習(xí)
-
感受野:在卷積神經(jīng)網(wǎng)絡(luò)CNN中,決定某一層輸出結(jié)果中一個(gè)元素所對(duì)應(yīng)的輸入層的區(qū)域大小瓤狐,被稱作感受野receptive field
image.png
非線性激活函數(shù)
ReLU:分段線性瞬铸,無飽和問題(是為了解決Sigmoid函數(shù)帶來的梯度消失問題)
激活函數(shù)在神經(jīng)網(wǎng)絡(luò)中的功能即通過對(duì)加權(quán)的輸入進(jìn)行非線性組合產(chǎn)生非線性決策邊界
池化層
特征融合,尺寸降維
池化層反向傳播
全連接層
負(fù)責(zé)推斷
相當(dāng)于K個(gè)全局卷積础锐,K是分類的數(shù)量嗓节。
有全連接層的結(jié)構(gòu)輸入圖像的尺寸必須是固定的,因?yàn)樽詈笠粋€(gè)卷積層的輸出到第一個(gè)全連接層的卷積核的大小是固定的郁稍。
理解全連接層好文
例如經(jīng)過卷積赦政,relu后得到3x3x5的輸出胜宇。
那它是怎么樣把3x3x5的輸出耀怜,轉(zhuǎn)換成1x4096的形式恢着?
從上圖我們可以看出,我們用一個(gè)3x3x5的filter 去卷積激活函數(shù)的輸出财破,得到的結(jié)果就是一個(gè)fully connected layer 的一個(gè)神經(jīng)元的輸出掰派,這個(gè)輸出就是一個(gè)值。因?yàn)槲覀冇?096個(gè)神經(jīng)元左痢。我們實(shí)際就是用一個(gè)3x3x5x4096的卷積層去卷積激活函數(shù)的輸出靡羡。
從上圖我們可以看出,貓?jiān)诓煌奈恢每⌒裕敵龅膄eature值相同略步,但是位置不同。
對(duì)于電腦來說定页,特征值相同趟薄,但是特征值位置不同,那分類結(jié)果也可能不一樣典徊。
這時(shí)全連接層filter的作用就相當(dāng)于喵在哪我不管杭煎,我只要喵,于是我讓filter去把這個(gè)喵找到卒落,實(shí)際就是把feature map 整合成一個(gè)值羡铲,這個(gè)值大,有喵儡毕,這個(gè)值小也切,那就可能沒喵和這個(gè)喵在哪關(guān)系不大了,魯棒性有大大增強(qiáng)腰湾。
因?yàn)榭臻g結(jié)構(gòu)特性被忽略了贾费,所以全連接層不適合用于在方位上找Pattern的任務(wù),比如segmentation檐盟。
歸一化層
Softmax 折算成概率
取log后褂萧,用于構(gòu)建loss
工程技巧
CNN中卷積操作十大改進(jìn)方向(Depth-wise/ Dilated/ Deformable/ Shuffle/ SENet etc)
圖像像素中心化(均值處理)
每個(gè)通道上每個(gè)像素的灰度值減去各自通道的均值
歸一化
./255
大小調(diào)整
resize
數(shù)據(jù)增強(qiáng)
每張圖片變成10張
dropout
隨機(jī)失活,用于防止過擬合葵萎。訓(xùn)練中隨機(jī)讓一些神經(jīng)元的輸出為0导犹,失活率一般設(shè)置為0.5。用于全連接層羡忘。
Weight Decay
權(quán)重衰減 L2正則 抑制每個(gè)權(quán)重的作用
基于已有模型方案
- fine-tune
- 設(shè)計(jì)損失函數(shù)
- 激活函數(shù)
- 圖像預(yù)處理
- 權(quán)值初始化
- BN
訓(xùn)練細(xì)節(jié)
- Batch size
- 數(shù)據(jù)平衡性(擴(kuò)充補(bǔ)償)
- 關(guān)注感受野
熱力圖
https://blog.csdn.net/Einstellung/article/details/82858974?utm_source=blogxgwz9
http://seaborn.pydata.org/generated/seaborn.heatmap.html
http://bokeh.pydata.org/en/0.10.0/docs/gallery/cat_heatmap_chart.html
AlexNet
CNN網(wǎng)絡(luò)架構(gòu)演進(jìn):從LeNet到DenseNet
AlexNet論文翻譯對(duì)照
5 卷積層+3全連接層 + ReLU + MaxPool + Dropout
LRN - Local Response Normalization
跨通道方向上的歸一化
n為領(lǐng)域值谎痢,N為通道數(shù)
Network-in-network (NiN) (bottleneck layer)
1x1的卷積層
特征降維
loss function 用的交叉熵 ,因?yàn)閟oftmax的輸出是概率分布
VGG
大卷積分解成多個(gè)小卷積卷雕,為了減少參數(shù)节猿,降低計(jì)算,增加網(wǎng)絡(luò)深度
7x7 -> 3個(gè)3x3
網(wǎng)絡(luò)改造的首選
19層的效果最好
GoogLeNet
增加寬度、深度滨嘱,減少參數(shù)峰鄙,降低計(jì)算
Google Inception Net論文細(xì)讀
Inception v1
Split-Merge
1x1 3x3 5x5 3x3池化
最后對(duì)四個(gè)成分運(yùn)算結(jié)果進(jìn)行通道上組合。
但是如果簡(jiǎn)單的將這些應(yīng)用到feature map上的話太雨,concat起來的feature map厚度將會(huì)很大吟榴,所以在googlenet中為了避免這一現(xiàn)象提出的inception具有如下結(jié)構(gòu)赞辩,在3x3前蛾派,5x5前,max pooling后分別加上了1x1的卷積核起到了降低feature map厚度的作用骨坑。
增加對(duì)多尺度的適應(yīng)锥咸,增加網(wǎng)絡(luò)寬度取消全連接
由全局平均池化代替
輸入7x7x1024
輸出 1x1x1024 (其實(shí)就是每個(gè)通道取平均值狭瞎,將N個(gè)feature map降維成1N大小的feature map,再用class個(gè)11卷積核將1N的feature map卷成1class的向量)-
輔助分類器
解決前幾層的梯度消失問題搏予,幫助收斂
測(cè)試階段不使用
Inception v1
其他:關(guān)于+1(S) +1(V)
V stands for a 'valid' convolution (output size = input size - filter size + 1), and S stands for a 'same' convolution (output size = input size). -> border_mode
Inception v2
-
Batch Normalization (BN批歸一化)
在每一層輸出的時(shí)候脚作,針對(duì)每一個(gè)通道上的特征圖,把這一批次所有的特征圖求平均值和方差缔刹,然后把所有像素上的值減去均值球涛,除以方差。這一步是算出來的校镐。
配對(duì)使用一個(gè)Scale和shift亿扁。這一步的參數(shù)是學(xué)出來的。
一般是用在Activation之前鸟廓。
解決Internal Covariate Shift問題
Internal Covariate Shift
白化:使每一層的輸出都規(guī)范化到N(0,1)
BN博文
視頻學(xué)習(xí)
-
5x5 變成兩個(gè)3x3
Inception v3
-
非對(duì)稱卷積 NxN分解成1xN 和 Nx1
V3核心組件 -
降尺寸前增加特征通道
320先變成640从祝,再降維 - 取消淺層的輔助分類器
實(shí)驗(yàn)證明 完全無用
工程成本很大,因?yàn)槊恳粚佑玫慕Y(jié)構(gòu)不一樣
Inception v4
-
引入殘差
v4
ResNet
直連 skip/shortcut connection
F(x)是殘差映射引谜,H(x)的梯度保證>1
推薦博文
- 步長(zhǎng)為2的卷積代替池化
Wide-ResNet
https://arxiv.org/pdf/1605.07146v4.pdf
ResNet in Stochastic Depth
https://arxiv.org/pdf/1603.09382.pdf
ResNeXt
-
提出第三個(gè)DNN維度cardinality
ResNeXt
SqueezeNet
https://arxiv.org/pdf/1602.07360.pdf
https://blog.csdn.net/csdnldp/article/details/78648543
Fire Module
ShuffleNet
https://arxiv.org/pdf/1707.01083.pdf
Group conv
論文解讀
DenseNet
推薦博文
https://arxiv.org/pdf/1608.06993.pdf
MobileNet
論文
Depthwise Convolution 牍陌,Pointwise Convolution
PolyNet
SENet
AmoebaNet
ShuffleNet
https://arxiv.org/pdf/1707.01083.pdf
GPIPE
CNN設(shè)計(jì)原則
感受野要大