1 Lenet
7層:卷積+下采樣+卷積+下采樣+全連接+全連接+全連接
可以很好的進行數字識別
第一次運用卷積神經網路
參考:(39條訊息) 詳解深度學習之經典網路架構(一):LeNet_chenyuping333的博客-CSDN博客_lenet網路結構詳解
https://blog.csdn.net/chenyuping333/article/details/82177677
1 Alexnet
5層卷積+3層全連接


參考:
(39條訊息) 影像識別-AlexNet網路結構詳解_演算法之美-CSDN博客_alexnet網路結構詳解
https://blog.csdn.net/weixin_44222014/article/details/106250687
3 VGG16
13個卷積層+3個全連接層


4 GoogleNet模塊化的開端

(1) 最終的架構包含了這些疊在一起的初始模塊的多個,甚至在GoogleNet中,訓練也略有不同,因為大多數最頂層都有自己的輸出層,這種細微差別有助于模型更快地收斂,因為對于層本身有聯合訓練和并行訓練,
(2) 在 GoogLeNet 上開始出現了分支,而不是一條線連到底,這是最直觀的差異,也被稱作 Inception module,如下圖所示,從圖中可以看到, 每個 module 中采用了不同 size 的 kernel,然后在將特征圖疊加(用的是通道維度的結合,不是相加),實際上起到了一個影像金字塔的作用,即 所謂的 multiple resolution,
(3) 有很多 1x1 的卷積核,這里的1x1的卷積操作與之前講到是不一樣的,這里利用它來改變 output 的 channel, 具體說這里是減少 channel 數,從而達到減少計算的目的,
(4) 用 Global Ave Pool 取代 FC,下圖可以看到,對于 FC ,超引數的個數為 7x7x1024x1024=51.3M,但是換成 Ave Pool之后,超引數變為0,所以這里可以起到防止過擬合的作用,另外作者發現采用 Ave Pool 之后,top-1的精度提高了大概0.6%,但是需要注意的是,在 GoogLeNet 中并沒有完全取代 FC,
(5) 采用了輔助分類器,整個模型有三個 output(之前的網路都只有一個 output),這里的多個 output 僅僅在訓練的時候用,也就是說測驗或者部署的時候僅僅用最后一個輸出,在訓練的時候,將三個輸出的loss進行加權平均,weight=0.3, 通過這種方式可以緩解梯度消失,同時作者也表示有正則化的作用,其實這個思想有點類似于傳統機器學習中的投票機制,最終的結果由多個決策器共同投票決定,這個在傳統機器學習中往往能提升大概2%的精度,
[1] (39條訊息) 深度學習中的經典基礎網路結構(backbone)總結_生命在于折騰!-CSDN博客_backbone網路
https://blog.csdn.net/kuweicai/article/details/102789420?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_v2~rank_aggregation-4-102789420.pc_agg_rank_aggregation&utm_term=%E7%BB%8F%E5%85%B8%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A8%A1%E5%9E%8B%E7%BB%93%E6%9E%84%E6%80%BB%E7%BB%93&spm=1000.2123.3001.4430
5 Resnet

(1) 我們之前提 ResNet 將深度學習推到了新的高度,因為它首次將錯誤率降到比人類還低的水平,網路深度甚至達到1202層,所以它具有里程碑式的意義,文章中作者提出了多種不同深度的結構,其中50,101和152層的網路后來用的比較多,
(2) ResNet 的核心思想是采用了 identity shortcut connection,前面我們提到,已經得出了結論,加深網路深度有助于提高模型精度,那什么不直接干到幾千幾萬層?這里的原因很多,拋開計算資源和資料集的原因,還有一個很重要的原因是梯度消失,在最開始,比如在 LeNet 那個年代,也就幾層網路,當網路更深的時候便會出現精度不升反降的現象,后來我們知道是因為梯度下降導致學習率下降甚至停滯,而到了 VGG 和 GoogLeNet 的年代,我們有了 ReLU,有了更好的初始化方法,有了 BN,但是如下面第一幅圖所示,當深度達到50多層時,問題又出現了了,所以激活函式或者初始化方法僅僅是緩解了梯度消失,讓網路的深度從幾層推移到了二十多層,而如何讓網路更深,正是 ResNet 被提出的原因,GoogLeNet 中我們提到采用輔助分類器的方式來解決梯度消失的問題,而 ResNet 是另一種思路,雖然這個思路并非由凱明首創,但是確實取得了很好的效果,
(3) 下圖對比了 VGG-19 和 34層的 ResNet,可以看到 ResNet 的 kernel channel 比 VGG-19 少很多,另一個就是 ResNet 中已經沒有 FC 了, 而是用的 Ave Pool,這點在 GoogLeNet 中已經提到過,下面的 VGG-19 的 FLOPs 是 19.6 biliion, 而下面的 34 層的 ResNet 僅僅只有3.6 billion,即使是152層的 ResNet152 也才 11.6 billion,另外還可以發現在 ResNet 中只有開頭和結尾的位置有 pooling 層,中間是沒有的,這是因為 ResNet 中間采用了 stride 為2的卷積操作,取代了 pooling 層的作用
(4)另外上圖中需要注意的是,shortcut 有虛線和實線之分,實際上虛線的地方是因為用了 stride 為2的conv,因此虛線連接的 input 和 output 的 size 是不一樣大的,因此沒法直接進行 element wise addition,所以虛線表示并非是直接相連,而是通過了一個 conv 去完成了 resize 的操作,是相加的兩個輸入有相同的 size,
還一點是,之前在 VGG 和 GoogLeNet 中都采用3x3的conv,但是我們看到在 ResNet 中又用回了7x7的 conv,上圖中 VGG-19用的4個 3x3, 而 ResNet 用的一個 7x7, 我覺得主要還是因為 ResNet 的 channel 數比較小,因此大的 kernel size 也不會使計算量變的很大(和 VGG-19 的4個 conv 比,計算量更小),而且可以獲得較大的感受野,
(5)兩個特征圖用的是相加,GoogleNet用的是拼接
[1] (39條訊息) 深度學習中的經典基礎網路結構(backbone)總結_生命在于折騰!-CSDN博客_backbone網路
https://blog.csdn.net/kuweicai/article/details/102789420?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_v2~rank_aggregation-4-102789420.pc_agg_rank_aggregation&utm_term=%E7%BB%8F%E5%85%B8%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%A8%A1%E5%9E%8B%E7%BB%93%E6%9E%84%E6%80%BB%E7%BB%93&spm=1000.2123.3001.4430
6 輕量化網路實作

7 Squeezenet
通過改變卷積核大小,來降低引數量,實際上計算量沒有改變


SqueezeNet 的主要思想如下:
(1)多用 1x1 的卷積核,而少用 3x3 的卷積核,因為 1x1 的好處是可以在保持 feature map size 的同時減少 channel,
(2)在用 3x3 卷積的時候盡量減少 channel 的數量,從而減少引數量,
(3)延后用 pooling,因為 pooling 會減小 feature map size,延后用 pooling, 這樣可以使 size 到后面才減小,而前面的層可以保持一個較大的 size,從而起到提高精度的作用,
8 Mobilenet(深度可分離卷積)
用了兩步,進下了卷積方面的優化
第一步33進行分組卷積,不改變通道數,引數量331輸入channel
第二步11 進行卷積,改變通道數引數量11輸入channel輸出channel
傳統的引數量 33輸入channel*輸出channel
(1)MobileNet 是通過優化卷積操作來達到輕量化的目的的,具體來說,文中通過 Deepwise Conv(其實是Deepwise Conv + Pointwise Conv)代替原始的卷積操作實作,從而達到減少計算的目的(通常所使用的是 3×3 的卷積核,計算量會下降到原來的九分之一到八分之一),如下圖所示,
(2)這一變換來達到減少引數量和計算量的目的,



9 ShuffleNet(分組卷積)
ShuffleNet 是 Xiangyu Zhang(曠視)等人于2017年在 ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices 中提出來的,ShuffleNet 的核心思想是對卷積進行分組,從而減少計算量,但是由于分組相當于將卷積操作局限在某些固定的輸入上,為了解決這個問題采用 shuffle 操作將輸入打亂,從而解決這個問題,
12 注意力機制模型Residual Attention Network
注意力就是為正常的CNN前饋程序加一層權重(可以是對應每層CNN),但是沒想到本文還融入了殘差設計,并解釋了為什么只添加mask在深層之后會導致性能下降,
[1] [論文筆記] Residual Attention Network - 知乎
https://zhuanlan.zhihu.com/p/128977244
二 目標識別
1 Faster-RCNN

2 YOLOV4
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/337594.html
標籤:AI
上一篇:推薦演算法-協同過濾代碼問題匯總
