(一)圖像分類的發(fā)展歷程
ILSVRC是一項基于 ImageNet 數(shù)據(jù)庫的國際大規(guī)模視覺識別挑戰(zhàn)賽(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)
(1)1958年,Rosenblatt發(fā)明了感知機。用于對輸入的多維數(shù)據(jù)進行二分類且能夠使用梯度下降法自動更新權值。
缺點:只能處理線性分類問題。(2)1986年,Geoffrey Hinton發(fā)明了多層感知機(multi-layer perceptron,MLP)的反向傳播(back propagation,BP)算法,并使用 sigmoid 函數(shù)進行非線性映射,有效解決了非線性分類問題。被稱為" 深度學習之父 "。
缺點:存在梯度消失問題。
序號 | 年份 | 提出者 | 模型 | 網(wǎng)絡層數(shù) | 特點 | 用途 |
---|---|---|---|---|---|---|
1 | 1998 | LeCun | LeNet-5 | 8層 | 定義了CNN最基本架構:卷積層、池化層、全連接層。 | 解決手寫數(shù)字識別的視覺任務 |
2 | 2012 | Alex | AlexNet-8 | 8層 | 提出訓練深度網(wǎng)絡的重要方法:Dropout、ReLU、GPU(硬件支持)、數(shù)據(jù)增強等。 | ImageNet競賽:以超過第二名10.9%的絕對優(yōu)勢奪冠(83.6%) |
3 | 2014 | 牛津大學VGG(Visual Geometry Group) | VGGNet-16/19 | 16/19層 | 采用 1x1 和 3x3 的卷積核以及 2x2 的最大池化,使得層數(shù)變得更深。 | ImageNet競賽:定位任務的第一名、分類任務的第二名(92.7%) |
4 | 2014 | Google 團隊 | GoogleNet(Inception-v1234) | 22層 | (1)引入了Inception模塊;(2)采用全局平均池化替換所有的全連接層。![]() |
ImageNet競賽:分類任務的第一名(93.3%) |
5 | 2015 | 何愷明 | ResNet-152 | 152層 | 引入了ResNet殘差模塊,通過高速網(wǎng)絡的跨層連接讓神經(jīng)網(wǎng)絡變得非常深。![]() |
ISLVRC和COCO競賽:橫掃所有選手,獲得冠軍(96.43%)。CVPR2016最佳論文獎 |
6 | 2017 | Gao Huang | DenseNet-121/169/201/264 | 121/169/201/264層 | 引入了Dense Block模塊,即每層都會接受其前面所有層作為額外的輸入。![]() |
CVPR2017最佳論文獎 |
7 | 2017/2018/2019 | 谷歌 | MobileNet(V1/V2/V3) | 224層 | V1引入了深度可分離卷積。在準確率小幅度降低的代價下大幅度減少參數(shù)量。![]() |
輕量級、移動端網(wǎng)絡模型 |
(二)模型框架
(2.1)LeNet-5
論文地址:Gradient-Based Learning Applied to Document Recognition
模型結(jié)構:LeNet-5共8層網(wǎng)絡:1個輸入層、2個卷積層、2個池化層、3個全連接層。 實際只有五層:去掉1個輸入層和2個池化層。
- 卷積層:所有卷積層的kernel=5x5,stride=1。
- 池化層:采用平均池化kernel=2x2,stride=2。
(3)在每個卷積層 + 池化層的后面會跟一個Sigmod激活函數(shù),而現(xiàn)在多用ReLU。- 全連接層:C5/C6/OUTPUT的節(jié)點分別為120/84/10。對應的權重參數(shù)(與連接數(shù)相同)分別為:(5x5x16+1)x120 = 48120、(120 + 1)x84=10164、84x10=840。
- 備注1:LeNet卷積神經(jīng)網(wǎng)絡,共約有60,840個訓練參數(shù),340,908個連接。
- 備注2:LeNet 會隨著網(wǎng)絡的加深,寬度逐漸降低,通道逐漸增多。
CNN卷積神經(jīng)網(wǎng)絡 LeNet-5詳解
(2.2)AlexNet-8
論文地址:ImageNet Classification with Deep Convolutional Neural Networks
模型結(jié)構:5個卷積層 + 2個全連接層(隱藏) + 1層全連接層(輸出)
- 卷積層:
第一個卷積層(kernel=11x11、stride=4、Padding=0);
第二個卷積層(kernel=5x5、stride=1、Padding=2);
其余的卷積核(kernel=3x3、stride=1、Padding=1)。- 池化層:第一個, 第二個, 第五個卷積層的后面分別使用一個最大池化層(kernel=3x3,stride=2)。
- 全連接層:
全連接層1(隱藏):神經(jīng)元個數(shù)輸出為4096;
全連接層2(隱藏):神經(jīng)元個數(shù)輸出為4096;
全連接層3(輸出):神經(jīng)元個數(shù)輸出為1000(分類)。- 激活函數(shù):每個卷積層后面跟一個激活函數(shù)
ReLU
(替換Sigmod)。- 過擬合:使用
Dropout、圖像增強
來防止過擬合。
(2.3)VGGNet-16/19
論文地址:Very Deep Convolutional Networks for Large-Scale Image Recognition
(2.4)GoogleNet-22(Inception:V1-V2-V3-V4)
論文地址:Going deeper with convolutions
github鏈接
2.4.1、InceptionV1
GoogLeNet網(wǎng)絡的基礎模塊:Inception模塊。
在每個Inception模塊中,包含4條并行線路:
- (1)前3條線:分別使用1x1、3x3、5x5的卷積層,抽取不通空間尺度下的特征信息;
- (2)第二條和第三條線:先使用了1x1的卷積層,減少輸入通道數(shù),以降低模型復雜度。
- (3)最后一條線:使用3x3的最大池化層 + 1x1的卷積層來改變通道數(shù)。
備注:4條線都使用合適的填充Padding來保證輸入和輸出的高寬一致。
結(jié)構圖(橫向):
結(jié)構圖(縱向):
(2.5)ResNet-152
論文地址:Deep Residual Learning for Image Recognition
github鏈接
經(jīng)典語句:再差不會比原來差(恒等映射)。
- (1)圖像是比較復雜的數(shù)據(jù),只有足夠深的網(wǎng)絡層次才能提取充分信息。
- (2)激活函數(shù)的輸入來自于神經(jīng)網(wǎng)絡一層層計算的輸出結(jié)果。但是隨著網(wǎng)絡層的不斷加深,誤差并不會越來越小,容易出現(xiàn)梯度不穩(wěn)定(如:梯度爆炸、梯度消失)。
殘差塊的目的:通過一種高速通道的連接方式,讓輸出結(jié)果同時參考輸入結(jié)果x,解決梯度的不穩(wěn)定性。
殘差模塊:
模型架構:
(2.6)DenseNet-264
論文地址:Densely Connected Convolutional Networks
github鏈接(附有詳細教程)
Dense Block模塊:每層都會接受其前面所有層作為額外的輸入
DenseNet的密集連接方式需要特征圖大小保持一致。為了解決這個問題,DenseNet網(wǎng)絡模型使用 DenseBlock + Transition Layers 結(jié)構。
- Dense Block:包含很多層的模塊,每個層的特征圖大小相同,層與層之間采用密集連接方式:BN + ReLU + Conv(3x3) + Dropout(0.2) 。
- (1)與ResNet十分相似,主要區(qū)別在于feature map融合的方式不同。
- ResNet將前一個模塊的輸出,直接加到模塊的輸出上
- DenseNet將前一個模塊的輸出,直接在通道上進行疊加。
- (2)與ResNet不同,所有Dense Block中各個層卷積均采用 k 個卷積核,所有每個卷積層輸出的feature map的channel都為k。k在DenseNet稱為growth rate,這是一個超參數(shù)。一般情況下使用較小的 k(論文里k=32),就可以得到較佳的性能。
- 過渡層:連接兩個相鄰的DenseBlock,并進行1x1卷積和2x2 平均池化,降低特征圖大小。
即使k設的很小,但由于特征重用(通道疊加),后面層的輸入仍會非常大,故需要降低模型的復雜度?!菊撐膹同F(xiàn)】DenseNet
模型架構:
- 輸入分辨率為224x224,使用SGD訓練
- DenseNet:設置4個Dense block模塊,每個block的層數(shù)相同。在第一個block的前面,放置一個7x7卷積和3x3最大池化。在最后一個block后面接global平均池化,全連接,softmax。
- (1)每個block:使用3x3卷積,1x1卷積,zero-padding。
- (2)兩個block之間:使用1x1卷積、2x2平均池化作為過渡層(transition layers)。
優(yōu)缺點
- 優(yōu)點:(1)網(wǎng)絡結(jié)構參數(shù)看起來很多,但實際上參數(shù)更少,提高了訓練效率。(2)特征重用增強了特征在各個層之間的流動,因為每一層都與初始輸入層還有最后的由loss function得到的梯度直接相連。(3)進行反向傳播的時候,減輕了梯度彌散的問題,使模型不容易過擬合。(4)由于每層可以直達最后的誤差信號,誤差信號可以很容易地傳播到較早的層,所以較早的層可以從最終分類層實現(xiàn)隱式的deep supervision。
- 缺點:(1)由于需要進行多次Concatnate操作,數(shù)據(jù)需要被復制多次,顯存容易增加得很快,需要一定的顯存優(yōu)化技術。(2)DenseNet是一種特殊網(wǎng)絡,而ResNet相對一般化些,因此ResNet的應用范圍更廣泛。
(2.7)MobileNet(V1-V2-V3)
論文地址(V1):MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
論文地址(V2):MobileNetV2: Inverted Residuals and Linear Bottlenecks
論文地址(V3):Searching for MobileNetV3
MobileNet網(wǎng)絡專注于移動端或者嵌入式設備中的輕量級CNN,相比于傳統(tǒng)卷積神經(jīng)網(wǎng)絡,在準確率小幅度降低的前提下大大減少模型參數(shù)與運算量。
MobileNet可以在移動終端實現(xiàn)眾多的應用,包括目標檢測,目標分類,人臉屬性識別和人臉識別等。
2.7.1、MobileNetV1(深度可分離卷積)
模型架構:
- 除第一層是普通卷積層,其余都是深度可分離卷積層。
- 除最后的全連接層沒有ReLU層,其余每個網(wǎng)絡層后都有BN層和ReLU非線性激活層。
- 在全連接層前,使用全局池化將張量的尺寸變?yōu)?×1。在全連接層后,使用softmax層進行分類。
- 下采樣通過帶步長的卷積層來實現(xiàn)。
- 采用RMSprop優(yōu)化器。
- 不使用正則化和數(shù)據(jù)增廣。由于MobileNet為輕量級網(wǎng)絡,且小網(wǎng)絡通常不會過擬合。
MobileNetV1:提出使用深度可分離卷積替代普通卷積來減少模型參數(shù)。由兩部分組成:深度卷積(Depthwise convolution,DW)和點卷積(Pointwise Convolution,PW)
(1)深度卷積與傳統(tǒng)卷積的區(qū)別MobileNet網(wǎng)絡詳解
- 在傳統(tǒng)卷積中,每個卷積核的channel與輸入特征矩陣的channel相等(每個卷積核都會與輸入特征矩陣的每一個維度進行卷積運算),輸出特征矩陣channel等于卷積核的個數(shù)。
- 在DW卷積中,每個卷積核的channel都是等于1的(每個卷積核只負責輸入特征矩陣的一個channel,卷積核的個數(shù)=輸入特征矩陣的channel數(shù)=輸出特征矩陣的channel數(shù))
(2)深度可分離卷積=深度卷積+點卷積:PW卷積是大小為1×1的普通的卷積,主要用于改變輸出特征矩陣的channel。
(3)參數(shù)計算比較
(4)深度可分離卷積與傳統(tǒng)卷積的區(qū)別
MobileNetV2在MobileNetV1的基礎上,提出了2點創(chuàng)新:
(1)使用linear bottleneck捕獲manifold of interest
(2)逆殘差模塊;
MobileNetV3的3個特點:
(1)MobileNetV3的網(wǎng)絡結(jié)構是NAS搜索出來的;
(2)在bottleneck結(jié)構中引入了輕量級注意力模塊;
(3)使用swish激活函數(shù)而不是relu;
(三)應用領域
人工智能(Artificial Intelligence,AI)主要分為三個部分:機器學習ML、深度學習DL、強化學習RL。
(1)機器學習算法包括:邏輯回歸、支持向量機SVM、決策樹、隨機森林和神經(jīng)網(wǎng)絡等等。深度學習是神經(jīng)網(wǎng)絡中的一種。強化學習是機器學習中的一種。
(2)機器學習可分為三大類:有監(jiān)督學習(supervised learning)、無監(jiān)督學習(unsupervised learning)和強化學習。
(3)深度強化學習是深度學習和強化學習的結(jié)合。
11、有監(jiān)督學習四個典型應用:圖像分類、目標檢測、人臉識別、語音識別。
22、無監(jiān)督學習最常使用的場景:聚類和降維。常見的簡單的無監(jiān)督學習算法總結(jié)
- 聚類:k-均值聚類(k-means clustering)、層次聚類(Hierarchical Clustering)、基于密度聚類Mean Shift、基于密度聚類DBSCAN、高斯混合模型(GMM)與EM、基于圖論聚類。
- 降維:主成分分析(PCA)、獨立成分分析(ICA)、奇異值分解(SVD)、t-分布領域嵌入式算法(t-SNE)
33、強化學習分為兩大類:無模型(Model-Free)、有模型(Model-based)。
強化學習的算法分類
文章來源:http://www.zghlxwxcb.cn/news/detail-724706.html
參考文獻
1.ImageNet大規(guī)模視覺識別挑戰(zhàn)(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)
2.CNN卷積神經(jīng)網(wǎng)絡 LeNet-5詳解
3.卷積神經(jīng)網(wǎng)絡超詳細介紹
4.卷積神經(jīng)網(wǎng)絡模型
5.卷積神經(jīng)網(wǎng)絡經(jīng)典模型及其改進點學習匯總
6.卷積神經(jīng)網(wǎng)絡CNN(Convolutional Neural Network)文章來源地址http://www.zghlxwxcb.cn/news/detail-724706.html
到了這里,關于卷積神經(jīng)網(wǎng)絡CNN的經(jīng)典模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!