10大深度學習架構:計算機視覺優秀從業者必備(附代碼實現)
選自Analytics Vidhya
作者:FAIZAN SHAIKH
機器之心編譯
參與:路雪、李亞洲、黃小天
近日,Faizan Shaikh 在 Analytics Vidhya 發表了一篇題為《10 Advanced Deep Learning Architectures Data Scientists Should Know!》的文章,總結了計算機視覺領域已經成效卓著的 10 個深度學習架構,並附上了每篇論文的地址鏈接和代碼實現。機器之心對該文進行了編譯,原文鏈接請見文末。
時刻跟上深度學習領域的最新進展變的越來越難,幾乎每一天都有創新或新應用。但是,大多數進展隱藏在大量發表的 ArXiv / Springer 研究論文中。
為了時刻了解最新動態,我們創建了一個閱讀小組,在 Analytics Vidhya 內部分享學習成果。我想和大家分享的是一項關於研究社區開發出的高級架構的調查。
本文包括深度學習領域的最新進展、keras 庫中的代碼實現以及論文鏈接。為保證文章簡明,我只總結了計算機視覺領域的成功架構。
什麼是高級架構?
相比於單一的傳統機器學習演算法,深度學習演算法由多樣化的模型組成;這是由於神經網路在構建一個完整的端到端的模型時所提供的靈活性。
神經網路有時可比作樂高塊,藉助想像力你幾乎可以用它建構從簡單到複雜的任何結構。
我們可以把高級架構定義為一個具有良好記錄的成功模型;這主要見於挑戰賽中,比如 ImageNet,其中你的任務是藉助給定的數據解決圖像識別等問題。
正如下文所描述的每一個架構,其中每一個都與常見的模型有細微不同,在解決問題時這成了一種優勢。這些架構同樣屬於「深度」模型的範疇,因此有可能比淺層模型表現更好。
計算機視覺任務的類型
本文主要聚焦於計算機視覺,因此很自然地描述了計算機視覺任務的分類。顧名思義,計算機視覺即通過創建人工模型來模擬本由人類執行的視覺任務。其本質是人類的感知與觀察是一個過程,它可在人工系統中被理解和實現。
計算機視覺任務的主要類型如下:
物體識別/分類:在物體識別中,給出一張原始圖像,你的任務是識別出該圖像屬於哪個類別。
分類+定位:如果圖像中只有一個物體,你的任務是找到該物體在圖像中的位置,一個更專業的稱謂是定位。
物體檢測:在物體檢測中,你的任務是找到圖像中多個物體的各自位置。這些物體可能屬於同一類別,或者各自不同。
圖像分割:圖像分割是一個稍微複雜的任務,其目標是將每一個像素映射到正確的分類。
深度學習架構清單
現在我們明白了什麼是高級架構,並探討了計算機視覺的任務分類,現在讓我們列舉並描述一下最重要的深度學習架構吧。
1. AlexNet
AlexNet 是首個深度架構,它由深度學習先驅 Geoffrey Hinton 及其同僚共同引入。AlexNet 是一個簡單卻功能強大的網路架構,為深度學習的開創性研究鋪平了道路。下圖是論文作者提出架構的示圖。
如圖所示,分解後的 AlexNet 像是一個簡單的架構,卷積層和池化層層疊加,最上層是全連接層。這是一個非常簡單的架構,其早在 80 年代就已被概念化。但是該模型的突出特徵是其執行任務的規模與使用 GPU 進行訓練。20 世紀 80 年代,訓練神經網路使用的是 CPU,而 AlexNet 藉助 GPU 將訓練提速了 10x。
論文:ImageNet Classification with Deep Convolutional Neural Networks
鏈接:https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
代碼實現:https://gist.github.com/JBed/c2fb3ce8ed299f197eff
2. VGG Net
VGG 網路由牛津可視化圖形組(Visual Graphics Group)開發,因此其名稱為 VGG。該網路的特點是金字塔形,與圖像最近的底層比較寬,而頂層很深。
如上圖所示,VGG 包含池化層之後的卷積層,池化層負責使層變窄。他們在論文中提出多個此類網路,不同之處在於架構深度的變化。
VGG 的優勢:
適合在特定任務上進行基準測試。
VGG 的預訓練網路可在互聯網上免費獲取,因此被廣泛用於各種應用。
另一方面,它的主要缺陷在於如果從頭訓練,則過程緩慢。即使在性能很好的 GPU 上,也需要一周多的時間才能完成訓練。
論文:Very Deep Convolutional Networks for Large-Scale Image Recognition
鏈接:https://arxiv.org/abs/1409.1556
代碼實現:https://github.com/fchollet/keras/blob/master/keras/applications/vgg16.py
3. GoogleNet
GoogleNet(或 Inception 網路)是谷歌研究者設計的一種架構。GoogleNet 是 ImageNet 2014 的冠軍,是當時最強大的模型。
該架構中,隨著深度增加(它包含 22 層,而 VGG 只有 19 層),研究者還開發了一種叫作「Inception 模塊」的新型方法。
如上圖所示,它與我們之前看到的序列架構發生了很大改變。單個層中出現了多種「特徵抽取器(feature extractor)」。這間接地改善了該網路的性能,因為該網路在訓練過程中有多個選項可以選擇,來解決該任務。它可以選擇與輸入進行卷積,也可以直接將其池化。
最終架構包括堆疊在一起的多個 inception 模塊。GoogleNet 的訓練過程也有稍許不同,即最上層有自己的輸出層。這一細微差別幫助模型更快地進行卷積,因為模型內存在聯合訓練和層本身的並行訓練。
GoogleNet 的優勢在於:
GoogleNet 訓練速度比 VGG 快。
預訓練 GoogleNet 的規模比 VGG 小。VGG 模型大於 500 MB,而 GoogleNet 的大小只有 96MB。
GoogleNet 本身沒有短期劣勢,但是該架構的進一步改變使模型性能更佳。其中一個變化是 Xception 網路,它增加了 inception 模塊的發散極限(我們可以從上圖中看到 GoogleNet 中有 4 個 inception 模塊)。現在從理論上講,該架構是無限的(因此又叫極限 inception!)。
論文:Rethinking the Inception Architecture for Computer Vision
鏈接:https://arxiv.org/abs/1512.00567
代碼實現:https://github.com/fchollet/keras/blob/master/keras/applications/inception_v3.py
4.ResNet
ResNet 是一個妖怪般的架構,讓我們看到了深度學習架構能夠有多深。殘差網路(ResNet)包含多個後續殘差模塊,是建立 ResNet 架構的基礎。下圖是殘差模塊的表示圖:
簡言之,一個殘差模塊有兩個選擇:完成輸入端的一系列函數,或者跳過此步驟。
類似於 GoogleNet,這些殘差模塊一個接一個地堆疊,組成了完整的端到端網路。
ResNet 引入的新技術有:
使用標準的 SGD,而非適應性學習技術。它聯通一個合理的初始化函數(保持訓練的完整性)做到的這一點。
輸入預處理的變化,輸入首先被區分到圖像塊中,然後輸送到網路中。
ResNet 主要的優勢是數百,甚至數千的殘差層都能被用於創造一個新網路,然後訓練。這不同於平常的序列網路,增加層數量時表現會下降。
論文:Deep Residual Learning for Image Recognition
鏈接:https://arxiv.org/abs/1512.03385
代碼實現:https://github.com/fchollet/keras/blob/master/keras/applications/resnet50.py
5. ResNeXt
ResNeXt 據說是解決目標識別問題的最先進技術。它建立在 inception 和 resnet 的概念上,並帶來改進的新架構。下圖是對 ResNeXt 模塊中的殘差模塊的總結。
圖 1. 左:ResNet 塊。右:基數=32 的 ResNeXt 塊,複雜度大致相同。層顯示為(# in channels, filter size, # out channels)。
論文:Aggregated Residual Transformations for Deep Neural Networks
鏈接:https://arxiv.org/pdf/1611.05431.pdf
代碼實現:https://github.com/titu1994/Keras-ResNeXt
6. RCNN (基於區域的 CNN)
基於區域的 CNN 架構據說是所有深度學習架構中對目標檢測問題最有影響力的架構。為了解決檢測問題,RCNN 嘗試在圖像中所有物體上畫出邊界框,然後識別圖像中的物體。工作原理如下:
RCNN 結構如下:
論文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
鏈接:https://arxiv.org/abs/1506.01497
代碼實現:https://github.com/yhenon/keras-frcnn
7. YOLO (You Only Look once)
YOLO 是當前深度學習領域解決圖像檢測問題最先進的實時系統。如下圖所示,YOLO 首先將圖像劃分為規定的邊界框,然後對所有邊界框並行運行識別演算法,來確定物體所屬的類別。確定類別之後,yolo 繼續智能地合併這些邊界框,在物體周圍形成最優邊界框。
這些步驟全部並行進行,因此 YOLO 能夠實現實時運行,並且每秒處理多達 40 張圖像。
儘管相比於 RCNN 它的表現有所降低,但在日常實時的問題中它還是有優勢的。下圖是 YOLO 架構的示圖:
論文:You Only Look Once: Unified, Real-Time Object Detection
鏈接:https://pjreddie.com/media/files/papers/yolo.pdf
代碼實現:https://github.com/allanzelener/YAD2K
8.SqueezeNet
SqueeNet 架構是在移動平台這樣的低寬頻場景中極其強大的一種架構。這種架構只佔用 4.9 MB 的空間,而 Inception 架構大小為 100MB。這種巨大的差距由一種名為 Fire Module 的特殊結構引起。下圖是 Fire Module 的表示圖:
SqueezeNet 的完整架構如下:
論文:SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE
鏈接:https://arxiv.org/abs/1602.07360
代碼實現:https://github.com/rcmalli/keras-squeezenet
9.SegNet
SegNet 是一個用於解決圖像分割問題的深度學習架構。它包含處理層(編碼器)序列,之後是對應的解碼器序列,用於分類像素。下圖是 SegNet 解析圖:
SegNet 的一個主要特徵是在編碼器網路的池化指標與解碼器網路的池化指標連接時,分割圖像保留高頻細節。簡言之,直接進行信息遷移,而非卷積它們。在處理圖像分割問題時,SgeNet 是最好的模型之一。
論文:SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
鏈接:https://arxiv.org/abs/1511.00561
代碼實現:https://github.com/imlab-uiip/keras-segnet
10.GAN
GAN 是神經網路架構中完全不同的類別。GAN 中,一種神經網路用於生成全新的、訓練集中未曾有過的圖像,但卻足夠真實。例如,以下是 GAN 工作原理的解析圖。
論文:Generative Adversarial Networks
鏈接:https://arxiv.org/abs/1406.2661
代碼實現:https://github.com/bstriner/keras-adversarial
原文地址:https://www.analyticsvidhya.com/blog/2017/08/10-advanced-deep-learning-architectures-data-scientists/
※陸奇:人工智慧技術商業化的最佳途徑就是構建人工智慧生態系統
※奕真生物收購 Curoverse,利用 AI 技術輔助基因
※10大深度學習架構:計算機視覺優秀從業者必備
※騰訊AI Lab劉威博士詳解CVPR 2017入選論文
TAG:機器之心 |
※銀行業浩劫:未來10年,AI將取代50%銀行從業者
※AI 從業者都會用到的 10 個深度學習方法
※1號學術——新聞從業者的數據化挑戰
※池建強:想用一款產品,服務1000萬IT從業者
※熱點丨提升從業者業務技能及服務素質:「音響講堂·2019黑膠系統培訓」正式開課
※美團點評白秀峰:4.0餐飲行業用大數據協助從業者突圍
※華碩專為影視從業者推出了支持杜比視界HDR的4K顯示器
※從數據計算到數據交換:10年數據從業者,看區塊鏈在雲計算、大數據行業的機遇
※全球比特幣ATM總量已超過3000台;馬雲調侃區塊鏈從業者更容易收到情書;預計BTC將在明年底觸及3.6萬美元/枚
※日本遊戲從業者調查報告:51.3%男性為工程師,女性更傾向藝術設計
※17種新業態、新現象的全面解讀,保持不斷學習的步伐才是文化產業從業者應有的姿態
※寧夏54名跆拳道從業者參加國家職業資格鑒定考試
※AI 從業者都應該知道的實驗數據集
※三個設計從業者的日常
※赴台個人游暫停 台業者估算將造成760億新台幣損失
※技術人創業者夏粉:用 AI 創造 AI
※數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
※業界首套標準化示範性課程體系發布!鳳凰計劃助力營銷從業者實現自我提升
※工業機器人系列叢書,滿足不同層次從業者的學習需求
※成為自由職業者的必備條件—10多年自由職業者的感悟!