自從2012年AlexNet激起新一輪深度學習熱潮以來,深度神經網絡快速發展,衆多教授、博士迅速挖坑、填坑,把神經網絡的基礎結構研究的透透徹徹。最近整體看了幾十篇神經網絡基礎結構的文章,作爲備忘,簡單整理記錄如下:
名稱 | 推出時間 | 核心創新點 |
---|---|---|
AlexNet | 2012 | 深度學習開山之作,ReLU、DropOut、池化 |
VGG | 2014.9 | 小尺寸卷積核,全3*3卷積核 |
GoogLeNet (Inception V1) | 2014.9 | 分組卷積、模塊化、1*1卷積、全局平均池化替代全連接 |
Inception V2/V3 | 2015.2/12 | BN、卷積分解(n*n卷積分解爲1*n+N*1) |
ResNet | 2015.12 | 殘差 |
SqueezeNet | 2016.2 | 輕量化網絡,1*1卷積、分組卷積 |
DenseNet | 2016.8 | 各層全連通 |
Xception | 2016.10 | Depthwise卷積 |
MobileNet V1 | 2017.4 | 輕量化網絡,depthwise和pointwise(即1*1)卷積 |
ShuffleNet | 2017.7 | 輕量化網絡,多種技術的綜合優化,多通道卷積時的通道shuffle |
MobileNet V2 | 2018.1 | 輕量化網絡,逆向殘差模塊(ResNet裏通過1*1降維,這裏是升維)、線性bottleneck |
幾點說明:
1. 掛一漏萬,這些是個人認爲比較重要的基礎網絡結構;
2. 有些結構可能不是該網絡首創,但通常認爲是該網絡發揚光大;
3. Inception V2/V3在V3那篇文章(Rethinking the Inception Architecture for Computer Vision)裏有明確的定義,但是到V4那篇文章裏又有了新的說法,兩篇文章文章裏關於V2的說法好像是不一樣的,此處採納V3文章裏的說法。
從以上表格可以看出這麼幾個趨勢:
1. 重要的基礎網絡基本都在2016年以前發佈的,而2016年以後重點已經轉到輕量化網絡上了;
2. 對於保持網絡精度的同時降低網絡規模起到重要作用的技術包括:小尺寸卷積(現在的網絡基本統一到3*3卷積上了,通過多層級聯可以獲得大尺寸卷積的作用)、分組卷積(也就是group conv)、卷積分解(用1*n+n*1替代n*n卷積)、depthwise卷積、1*1卷積(或者叫bottleneck或pointwise卷積)、全局平均池化替代全連接;
3. 對於網絡加深和訓練快速收斂起作用的技術包括:BN和殘差。這兩個技術目前都得到了廣泛的應用;
4. 模塊化對於縮小設計空間,簡化複雜模型設計非常重要。
關於這些網絡的對比,有這麼一篇文章做了總體介紹:An Analysis of Deep Neural Network Models for Practical Applications, https://arxiv.org/abs/1605.07678 。下圖摘自這篇文章:
從這個圖裏可以看到:
1. 針對ImageNet分類數據集,top1準確率在75%~80%附近飽和,在現有網絡結構下,不管怎麼增加計算,也很難進一步快速提升;
2. 飽和點大概在Inception V3和ResNet50附近,之後需要計算量大幅提高才能獲得一點準確率的提升;
3. VGG實在是效率很低的網絡,參數量多、計算量大,而分類精度卻是一般;
4. Inception是效率挺高的網絡,但相對來說,需要比較精細的設計,因而可移植性差一些;而ResNet簡單很多,只是在普通卷積網絡的基礎上加上殘差連接,通用性非常強,因此這些年應用極廣。
以上,個人簡單想法,做個記錄。