摘要:深度學習架構清單現(xiàn)在我們明白了什么是高級架構,并探討了計算機視覺的任務分類,現(xiàn)在讓我們列舉并描述一下最重要的深度學習架構吧。是較早的深度架構,它由深度學習先驅及其同僚共同引入。這種巨大的差距由一種名為的特殊結構引起。
時刻跟上深度學習領域的進展變的越來越難,幾乎每一天都有創(chuàng)新或新應用。但是,大多數(shù)進展隱藏在大量發(fā)表的 ArXiv / Springer 研究論文中。
為了時刻了解動態(tài),我們創(chuàng)建了一個閱讀小組,在 Analytics Vidhya 內(nèi)部分享學習成果。我想和大家分享的是一項關于研究社區(qū)開發(fā)出的高級架構的調查。
本文包括深度學習領域的進展、keras 庫中的代碼實現(xiàn)以及論文鏈接。為保證文章簡明,我只總結了計算機視覺領域的成功架構。
什么是高級架構?
相比于單一的傳統(tǒng)機器學習算法,深度學習算法由多樣化的模型組成;這是由于神經(jīng)網(wǎng)絡在構建一個完整的端到端的模型時所提供的靈活性。
神經(jīng)網(wǎng)絡有時可比作樂高塊,借助想象力你幾乎可以用它建構從簡單到復雜的任何結構。
我們可以把高級架構定義為一個具有良好記錄的成功模型;這主要見于挑戰(zhàn)賽中,比如 ImageNet,其中你的任務是借助給定的數(shù)據(jù)解決圖像識別等問題。
正如下文所描述的每一個架構,其中每一個都與常見的模型有細微不同,在解決問題時這成了一種優(yōu)勢。這些架構同樣屬于「深度」模型的范疇,因此有可能比淺層模型表現(xiàn)更好。
計算機視覺任務的類型
本文主要聚焦于計算機視覺,因此很自然地描述了計算機視覺任務的分類。顧名思義,計算機視覺即通過創(chuàng)建人工模型來模擬本由人類執(zhí)行的視覺任務。其本質是人類的感知與觀察是一個過程,它可在人工系統(tǒng)中被理解和實現(xiàn)。
計算機視覺任務的主要類型如下:
物體識別/分類:在物體識別中,給出一張原始圖像,你的任務是識別出該圖像屬于哪個類別。
分類+定位:如果圖像中只有一個物體,你的任務是找到該物體在圖像中的位置,一個更專業(yè)的稱謂是定位。
物體檢測:在物體檢測中,你的任務是找到圖像中多個物體的各自位置。這些物體可能屬于同一類別,或者各自不同。
圖像分割:圖像分割是一個稍微復雜的任務,其目標是將每一個像素映射到正確的分類。
深度學習架構清單
現(xiàn)在我們明白了什么是高級架構,并探討了計算機視覺的任務分類,現(xiàn)在讓我們列舉并描述一下最重要的深度學習架構吧。
1. AlexNet
AlexNet 是較早的深度架構,它由深度學習先驅 Geoffrey Hinton 及其同僚共同引入。AlexNet 是一個簡單卻功能強大的網(wǎng)絡架構,為深度學習的開創(chuàng)性研究鋪平了道路。下圖是論文作者提出架構的示圖。
如圖所示,分解后的 AlexNet 像是一個簡單的架構,卷積層和池化層層疊加,最上層是全連接層。這是一個非常簡單的架構,其早在 80 年代就已被概念化。但是該模型的突出特征是其執(zhí)行任務的規(guī)模與使用 GPU 進行訓練。20 世紀 80 年代,訓練神經(jīng)網(wǎng)絡使用的是 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
代碼實現(xiàn):https://gist.github.com/JBed/c2fb3ce8ed299f197eff
2. VGG Net
VGG 網(wǎng)絡由牛津可視化圖形組(Visual Graphics Group)開發(fā),因此其名稱為 VGG。該網(wǎng)絡的特點是金字塔形,與圖像最近的底層比較寬,而頂層很深。
如上圖所示,VGG 包含池化層之后的卷積層,池化層負責使層變窄。他們在論文中提出多個此類網(wǎng)絡,不同之處在于架構深度的變化。
VGG 的優(yōu)勢:
適合在特定任務上進行基準測試。
VGG 的預訓練網(wǎng)絡可在互聯(lián)網(wǎng)上免費獲取,因此被廣泛用于各種應用。
另一方面,它的主要缺陷在于如果從頭訓練,則過程緩慢。即使在性能很好的 GPU 上,也需要一周多的時間才能完成訓練。
論文:Very Deep Convolutional Networks for Large-Scale Image Recognition
鏈接:https://arxiv.org/abs/1409.1556
代碼實現(xiàn):https://github.com/fchollet/keras/blob/master/keras/applications/vgg16.py
3. GoogleNet
GoogleNet(或 Inception 網(wǎng)絡)是谷歌研究者設計的一種架構。GoogleNet 是 ImageNet 2014 的冠軍,是當時最強大的模型。
該架構中,隨著深度增加(它包含 22 層,而 VGG 只有 19 層),研究者還開發(fā)了一種叫作「Inception 模塊」的新型方法。
如上圖所示,它與我們之前看到的序列架構發(fā)生了很大改變。單個層中出現(xiàn)了多種「特征抽取器(feature extractor)」。這間接地改善了該網(wǎng)絡的性能,因為該網(wǎng)絡在訓練過程中有多個選項可以選擇,來解決該任務。它可以選擇與輸入進行卷積,也可以直接將其池化。
最終架構包括堆疊在一起的多個 inception 模塊。GoogleNet 的訓練過程也有稍許不同,即最上層有自己的輸出層。這一細微差別幫助模型更快地進行卷積,因為模型內(nèi)存在聯(lián)合訓練和層本身的并行訓練。
GoogleNet 的優(yōu)勢在于:
GoogleNet 訓練速度比 VGG 快。
預訓練 GoogleNet 的規(guī)模比 VGG 小。VGG 模型大于 500 MB,而 GoogleNet 的大小只有 96MB。
GoogleNet 本身沒有短期劣勢,但是該架構的進一步改變使模型性能更佳。其中一個變化是 Xception 網(wǎng)絡,它增加了 inception 模塊的發(fā)散極限(我們可以從上圖中看到 GoogleNet 中有 4 個 inception 模塊)。現(xiàn)在從理論上講,該架構是無限的(因此又叫極限 inception!)。
論文:Rethinking the Inception Architecture for Computer Vision
鏈接:https://arxiv.org/abs/1512.00567
代碼實現(xiàn):https://github.com/fchollet/keras/blob/master/keras/applications/inception_v3.py
4.ResNet
ResNet 是一個妖怪般的架構,讓我們看到了深度學習架構能夠有多深。殘差網(wǎng)絡(ResNet)包含多個后續(xù)殘差模塊,是建立 ResNet 架構的基礎。下圖是殘差模塊的表示圖:
簡言之,一個殘差模塊有兩個選擇:完成輸入端的一系列函數(shù),或者跳過此步驟。
類似于 GoogleNet,這些殘差模塊一個接一個地堆疊,組成了完整的端到端網(wǎng)絡。
ResNet 引入的新技術有:
使用標準的 SGD,而非適應性學習技術。它聯(lián)通一個合理的初始化函數(shù)(保持訓練的完整性)做到的這一點。
輸入預處理的變化,輸入首先被區(qū)分到圖像塊中,然后輸送到網(wǎng)絡中。
ResNet 主要的優(yōu)勢是數(shù)百,甚至數(shù)千的殘差層都能被用于創(chuàng)造一個新網(wǎng)絡,然后訓練。這不同于平常的序列網(wǎng)絡,增加層數(shù)量時表現(xiàn)會下降。
論文:Deep Residual Learning for Image Recognition
鏈接:https://arxiv.org/abs/1512.03385
代碼實現(xiàn):https://github.com/fchollet/keras/blob/master/keras/applications/resnet50.py
5. ResNeXt
ResNeXt 據(jù)說是解決目標識別問題的較先進技術。它建立在 inception 和 resnet 的概念上,并帶來改進的新架構。下圖是對 ResNeXt 模塊中的殘差模塊的總結。
圖 1. 左:ResNet 塊。右:基數(shù)=32 的 ResNeXt 塊,復雜度大致相同。層顯示為(# in channels, filter size, # out channels)。
論文:Aggregated Residual Transformations for Deep Neural Networks
鏈接:https://arxiv.org/pdf/1611.05431.pdf
代碼實現(xiàn):https://github.com/titu1994/Keras-ResNeXt
6. RCNN (基于區(qū)域的 CNN)
基于區(qū)域的 CNN 架構據(jù)說是所有深度學習架構中對目標檢測問題最有影響力的架構。為了解決檢測問題,RCNN 嘗試在圖像中所有物體上畫出邊界框,然后識別圖像中的物體。工作原理如下:
RCNN 結構如下:
論文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
鏈接:https://arxiv.org/abs/1506.01497
代碼實現(xiàn):https://github.com/yhenon/keras-frcnn
7. YOLO (You Only Look once)
YOLO 是當前深度學習領域解決圖像檢測問題較先進的實時系統(tǒng)。如下圖所示,YOLO 首先將圖像劃分為規(guī)定的邊界框,然后對所有邊界框并行運行識別算法,來確定物體所屬的類別。確定類別之后,yolo 繼續(xù)智能地合并這些邊界框,在物體周圍形成最優(yōu)邊界框。
這些步驟全部并行進行,因此 YOLO 能夠實現(xiàn)實時運行,并且每秒處理多達 40 張圖像。
盡管相比于 RCNN 它的表現(xiàn)有所降低,但在日常實時的問題中它還是有優(yōu)勢的。下圖是 YOLO 架構的示圖:
論文:You Only Look Once: Unified, Real-Time Object Detection
鏈接:https://pjreddie.com/media/files/papers/yolo.pdf
代碼實現(xiàn):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
代碼實現(xiàn):https://github.com/rcmalli/keras-squeezenet
9.SegNet?
SegNet 是一個用于解決圖像分割問題的深度學習架構。它包含處理層(編碼器)序列,之后是對應的解碼器序列,用于分類像素。下圖是 SegNet 解析圖:
SegNet 的一個主要特征是在編碼器網(wǎng)絡的池化指標與解碼器網(wǎng)絡的池化指標連接時,分割圖像保留高頻細節(jié)。簡言之,直接進行信息遷移,而非卷積它們。在處理圖像分割問題時,SgeNet 是較好的模型之一。
論文:SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
鏈接:https://arxiv.org/abs/1511.00561
代碼實現(xiàn):https://github.com/imlab-uiip/keras-segnet
10.GAN
GAN 是神經(jīng)網(wǎng)絡架構中完全不同的類別。GAN 中,一種神經(jīng)網(wǎng)絡用于生成全新的、訓練集中未曾有過的圖像,但卻足夠真實。例如,以下是 GAN 工作原理的解析圖。
論文:Generative Adversarial Networks
鏈接:https://arxiv.org/abs/1406.2661
代碼實現(xiàn):https://github.com/bstriner/keras-adversarial
原文地址:https://www.analyticsvidhya.com/blog/2017/08/10-advanced-deep-learning-architectures-data-scientists/
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報表系統(tǒng)等全方位知識
QQ群:81035754
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/4595.html
摘要:下圖總結了絕大多數(shù)上的開源深度學習框架項目,根據(jù)項目在的數(shù)量來評級,數(shù)據(jù)采集于年月初。然而,近期宣布將轉向作為其推薦深度學習框架因為它支持移動設備開發(fā)。該框架可以出色完成圖像識別,欺詐檢測和自然語言處理任務。 很多神經(jīng)網(wǎng)絡框架已開源多年,支持機器學習和人工智能的專有解決方案也有很多。多年以來,開發(fā)人員在Github上發(fā)布了一系列的可以支持圖像、手寫字、視頻、語音識別、自然語言處理、物體檢測的...
摘要:是你學習從入門到專家必備的學習路線和優(yōu)質學習資源。的數(shù)學基礎最主要是高等數(shù)學線性代數(shù)概率論與數(shù)理統(tǒng)計三門課程,這三門課程是本科必修的。其作為機器學習的入門和進階資料非常適合。書籍介紹深度學習通常又被稱為花書,深度學習領域最經(jīng)典的暢銷書。 showImg(https://segmentfault.com/img/remote/1460000019011569); 【導讀】本文由知名開源平...
摘要:而道器相融,在我看來,那煉丹就需要一個好的丹爐了,也就是一個優(yōu)秀的機器學習平臺。因此,一個機器學習平臺要取得成功,最好具備如下五個特點精辟的核心抽象一個機器學習平臺,必須有其靈魂,也就是它的核心抽象。 *本文首發(fā)于 AI前線 ,歡迎轉載,并請注明出處。 摘要 2017年6月,騰訊正式開源面向機器學習的第三代高性能計算平臺 Angel,在GitHub上備受關注;2017年10月19日,騰...
閱讀 3758·2021-08-11 11:16
閱讀 1629·2019-08-30 15:44
閱讀 1998·2019-08-29 18:45
閱讀 2277·2019-08-26 18:18
閱讀 1009·2019-08-26 13:37
閱讀 1576·2019-08-26 11:43
閱讀 2124·2019-08-26 11:34
閱讀 380·2019-08-26 10:59