深度学习(六)——CNN进化史
https://antkillerfarm.github.io/
CNN進化史
計算機視覺
6大關鍵技術:
圖像分類:根據圖像的主要內容進行分類。數據集:MNIST, CIFAR, ImageNet
物體定位:預測包含主要物體的圖像區域,以便識別區域中的物體。數據集:ImageNet
物體識別:定位并分類圖像中出現的所有物體。這一過程通常包括:劃出區域然后對其中的物體進行分類。數據集:PASCAL, COCO
語義分割:把圖像中的每一個像素分到其所屬物體類別,在樣例中如人類、綿羊和草地。數據集:PASCAL, COCO
實例分割:把圖像中的每一個像素分到其所屬物體實例。數據集:PASCAL, COCO
關鍵點檢測:檢測物體上一組預定義關鍵點的位置,例如人體上或者人臉上的關鍵點。數據集:COCO
CNN簡史
AlexNet
2012年,ILSVRC比賽冠軍的model——Alexnet(以第一作者Alex命名)的結構圖如下:
換個視角:
AlexNet的caffe模板:
https://github.com/BVLC/caffe/blob/master/models/bvlc_alexnet/deploy.prototxt
其中的LRN(Local Response Normalization)層也是當年的遺跡,被后來的實踐證明,對于最終效果和運算量沒有太大幫助,因此也就慢慢廢棄了。
雖然,LeNet-5是CNN的開山之作(它不是最早的CNN,但卻是奠定了現代CNN理論基礎的模型),但是畢竟年代久遠,和現代實用的CNN相比,結構實在過于原始。
AlexNet作為第一個現代意義上的CNN,它的意義主要包括:
1.Data Augmentation。包括水平翻轉、隨機裁剪、平移變換、顏色、光照變換等。
2.Dropout。
3.ReLU激活函數。
4.多GPU并行計算。
5.當然最應該感謝的是李飛飛團隊搞出來的標注數據集合ImageNet。
注:ILSVRC(Large Scale Visual Recognition Challenge)大賽,在2016年以前,一直是CV界的頂級賽事。但隨著技術的成熟,目前的科研重點已經從物體識別轉移到了物體理解領域。2017年將是該賽事的最后一屆。WebVision有望接替該賽事,成為下一個目標。
VGG
Visual Geometry Group是牛津大學的一個科研團隊。他們推出的一系列深度模型,被稱作VGG模型。
VGG的結構圖如下:
該系列包括A/A-LRN/B/C/D/E等6個不同的型號。其中的D/E,根據其神經網絡的層數,也被稱為VGG16/VGG19。
從原理角度,VGG相比AlexNet并沒有太多的改進。其最主要的意義就是實踐了“神經網絡越深越好”的理念。也是自那時起,神經網絡逐漸有了“深度學習”這個別名。
GoogleNet
GoogleNet的進化道路和VGG有所不同。VGG實際上就是“大力出奇跡”的暴力模型,其他地方不足稱道。
而GoogleNet不僅繼承了VGG“越深越好”的理念,對于網絡結構本身也作了大膽的創新。可以對比的是,AlexNet有60M個參數,而GoogleNet只有4M個參數。
因此,在ILSVRC 2014大賽中,GoogleNet獲得第一名,而VGG屈居第二。
上圖是GoogleNet的結構圖。從中可以看出,GoogleNet除了AlexNet的基本要素之外,還有被稱作Inception的結構。
上圖是Inception的結構圖。它的原理實際上就是將不同尺寸的卷積組合起來,以提供不同尺寸的特征。
原始的GoogleNet也被稱作Inception-v1。在后面的幾年,GoogleNet還提出了幾種改進的版本,最新的一個是Inception-v4(2016.8)。
論文:
《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》
Inception系列的改進方向基本都集中在構建不同的Inception模型上。
GoogleNet的另一個改進是減少了全連接層(Full Connection, FC),這是減少模型參數的一個重要改進。事實上,在稍后的實踐中,人們發現去掉VGG的第一個FC層,對于效果幾乎沒有任何影響。
SqueezeNet
GoogleNet之后,最有名的CNN模型當屬何愷明的Deep Residual Network。DRN在《深度學習(五)》中已有提及,這里不再贅述。
DRN之后,學界的研究重點,由如何提升精度,轉變為如何用更少的參數和計算量來達到同樣的精度。SqueezeNet就是其中的代表。
論文:
《SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size》
代碼:
https://github.com/DeepScale/SqueezeNet
Caffe版本
https://github.com/vonclites/squeezenet
TensorFlow版本
SqueezeNet最大的創新點在于使用Fire Module替換大尺寸的卷積層。
上圖是Fire Module的結構示意圖。它采用squeeze層+expand層兩個小卷積層,替換了AlexNet的大尺寸卷積層。其中,Nsqueeze<Nexpand,N表示每層的卷積個數。
這里需要特別指出的是:expand層采用了2種不同尺寸的卷積,這也是當前設計的一個趨勢。
這個趨勢在GoogleNet中已經有所體現,在ResNet中也間接隱含。
上圖是ResNet的展開圖,可見展開之后的ResNet,實際上等效于一個多尺寸交錯混編的復雜卷積網。其思路和GoogleNet實際上是一致的。
參見:
http://blog.csdn.net/xbinworld/article/details/50897870
最新SqueezeNet模型詳解,CNN模型參數降低50倍,壓縮461倍!
http://www.jianshu.com/p/8e269451795d
神經網絡瘦身:SqueezeNet
http://blog.csdn.net/shenxiaolu1984/article/details/51444525
超輕量級網絡SqueezeNet算法詳解
參考
http://mp.weixin.qq.com/s/ZKMi4gRfDRcTxzKlTQb-Mw
計算機視覺識別簡史:從AlexNet、ResNet到Mask RCNN
http://mp.weixin.qq.com/s/kbHzA3h-CfTRcnkViY37MQ
詳解CNN五大經典模型:Lenet,Alexnet,Googlenet,VGG,DRL
https://zhuanlan.zhihu.com/p/22094600
Deep Learning回顧之LeNet、AlexNet、GoogLeNet、VGG、ResNet
http://www.leiphone.com/news/201609/303vE8MIwFC7E3DB.html
Google最新開源Inception-ResNet-v2,借助殘差網絡進一步提升圖像分類水準
https://mp.weixin.qq.com/s/x3bSu9ecl3dldCbvS1rT1g
站在巨人的肩膀上,深度學習的9篇開山之作
http://mp.weixin.qq.com/s/2TUw_2d36uFAiJTkvaaqpA
解讀Keras在ImageNet中的應用:詳解5種主要的圖像識別模型
https://zhuanlan.zhihu.com/p/27642620
YJango的卷積神經網絡——介紹
https://www.zybuluo.com/coolwyj/note/202469
ImageNet Classification with Deep Convolutional Neural Networks
http://simtalk.cn/2016/09/20/AlexNet/
AlexNet簡介
http://simtalk.cn/2016/09/12/CNNs/
CNN簡介
http://www.cnblogs.com/Allen-rg/p/5833919.html
GoogLeNet學習心得
https://mp.weixin.qq.com/s/I94gGXXW_eE5hSHIBOsJFQ
無需數學背景,讀懂ResNet、Inception和Xception三大變革性架構
https://mp.weixin.qq.com/s/iN2LDAQ2ee-rQnlD3N1yaw
變形卷積核、可分離卷積?CNN中十大拍案叫絕的操作!
https://mp.weixin.qq.com/s/ToogpkDo-DpQaSoRoalnPg
沒看過這5個模型,不要說你玩過CNN!
GAN
概況
GAN是“生成對抗網絡”(Generative Adversarial Networks)的簡稱,由2014年還在蒙特利爾讀博士的Ian Goodfellow引入深度學習領域。
注:Ian J. Goodfellow,斯坦福大學本碩+蒙特利爾大學博士。導師是Yoshua Bengio。現為Google研究員。
個人主頁:
http://www.iangoodfellow.com/
論文:
《Generative Adversarial Nets》
教程:
http://www.iangoodfellow.com/slides/2016-12-04-NIPS.pdf
通俗解釋
對于GAN來說,最通俗的解釋就是“偽造者-鑒別者”的解釋,如藝術畫的偽造者和鑒別者。一開始偽造者和鑒別者的水平都不高,但是鑒別者還是比較容易鑒別出偽造者偽造出來的藝術畫。但隨著偽造者對偽造技術的學習后,其偽造的藝術畫會讓鑒別者識別錯誤;或者隨著鑒別者對鑒別技術的學習后,能夠很簡單的鑒別出偽造者偽造的藝術畫。這是一個雙方不斷學習技術,以達到最高的偽造和鑒別水平的過程。
從上面的解釋可以看出,GAN實際上一種零和游戲上的無監督算法。
總結
以上是生活随笔為你收集整理的深度学习(六)——CNN进化史的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(五)——DRN, Bi-dir
- 下一篇: 深度学习(七)—— GAN