數據科學家必須知道的 10 個深度學習架構

2021-01-11 雷鋒網

雷鋒網按:本文由圖普科技編譯自《10 Advanced Deep Learning Architectures Data Scientists Should Know!》,雷鋒網(公眾號:雷鋒網)獨家首發。

近年來,深度學習的發展勢頭迅猛,要跟上深度學習的進步速度變得越來越困難了。幾乎每一天都有關於深度學習的創新,而大部分的深度學習創新都隱藏在那些發表於ArXiv和Spinger等研究論文中。

本文介紹了部分近期深度學習的進展和創新,以及Keras庫中的執行代碼,本文還提供了原論文的連結。

簡潔起見,本文中只介紹了計算機視覺領域內比較成功的深度學習架構。

另外,文章基於已經掌握了神經網絡的知識,並且對Keras已經相當熟悉了的基礎。如果你對這些話題還不太了解,強烈建議先閱讀以下文章:

《Fundamentals of Deep Learning – Starting with Artificial Neural Network》

《Tutorial: Optimizing Neural Networks using Keras (with Image recognition case study)》

目錄

什麼是深度學習「高級架構」?

不同類型的計算機視覺任務

各種深度學習架構

何為深度學習「高級架構」?

與一個簡單的機器學習算法相比,深度學習算法包含了更加多樣的模型。其中的原因是在建立一個完整的模型時,神經網絡具有很大的靈活性。

有時,我們還可以把神經網絡比作樂高積木,可以用它搭建任何簡單或者複雜的小建築。

我們其實可以將「高級架構」簡單地定義為一個有著成功模型記錄的深度學習架構,這樣的「高級架構」主要出現在類似ImageNet的挑戰中,在這些挑戰中,你的任務是解決問題,比如用給定的數據完成圖像識別。簡單來說,ImageNet就是一項關於數據集的挑戰,而其中的數據集是從ILSVR(ImageNet大規模視覺識別)中獲得的。

就像下文即將提到的架構,其中的每個架構之間都有細微的差別,而正是這些差別使它們區別於普通的模型,讓它們在解決問題的時候發揮出普通模型不具備的優勢。這些架構同樣屬於「深度模型」的範疇,因此它們的性能也很可能優於其相對應的「淺層模型」。

 不同類型的「計算機視覺任務」

本文主要關注於「計算機視覺」,所以很自然地會涉及到「計算機視覺」的任務。顧名思義,「計算機視覺任務」就是建立一個能夠複製完成人類視覺任務的計算機模型。這實質上意味著,我們視力所見和感知的內容是一個能夠在人造系統中被理解和完成的程序。

計算機視覺任務的主要類型有:

物體識別/分類:在物體識別中,你會得到一張原始圖像,而你的任務就是判斷出這張圖像屬於哪一類別。

分類及定位:如果圖像中只有一個對象,那麼你的任務就是找到該對象的位置。這個問題應該更加具體地表述為「定位問題」。

物體檢測:在物體檢測中,你的任務是識別出物體處於圖像中的什麼位置。這些對象可能屬於同一類別,也可能屬於不同類別。

圖像分割:圖像分割是一項稍微複雜的任務,其目的是將圖像的各個像素映射到其對應的各個類別。

目前,我們已經了解了深度學習「高級架構」,並探究了各種類型的計算機視覺任務。那麼接下來,我們將列舉出最重要的深度學習架構,並且對這些架構進行簡單的介紹:

1. AlexNet

AlexNet是第一個深度學習架構,它是由深度學習先鋒之一——Geoffrey Hinton和他的同事們共同研究並引入的。AlexNet是一個看似簡單但功能非常強大的網絡架構,它為現在深度學習的突破性研究鋪平了道路。下圖是AlexNet架構:

從分解圖中我們可以看出,AlexNet其實就是一個簡單的架構,其中的卷積層和聚積層相互疊加,最頂部的是全連接層。早在二十世紀八十年代,AlexNet模型就已經被概念化描述了。AlexNet區別於其他模型的關鍵在於它的任務規模,以及它用於訓練的GPU規模。在八十年代,用於訓練神經網絡的是CPU。而AlexNet率先使用GPU,將訓練的速度提高了十倍左右。

雖然AlexNet現在有些過時了,但它仍然是運用神經網絡完成各種任務的起點。不管是完成計算機視覺任務,還是語音識別任務,都仍然需要AlexNet。

2. VGG Net

「VGG Net」是由牛津大學「視覺圖像研究組」的研究人員引入的。VGG網絡的最大特點是它的金字塔狀,靠近圖像的底部比較寬闊,而頂部的層相對窄且深。

如圖所示,VGG Net包含了連續的卷積層,卷積層後緊接著聚積層。聚積層負責讓各個層變得更窄。在這篇由組內研究人員共同完成的論文中,他們提出了各種類型的網絡,這些網絡架構的主要差異是深度不同。

VGG網絡的優勢在於:

1.這是對一個特定任務進行基準測試非常有效的網絡架構。

2.同時,網上有大量免費的VGG預訓練網絡,因此,VGG通常會被用於各種各樣的應用程式。

而另一方面,VGG主要的缺陷在於如果從頭開始訓練的話,其訓練速度會非常慢。即使是用一個相當不錯的GPU,它還是需要超過一周的時間才能正常運行。

3. GoogleNet

GoogleNet(又稱「InceptionNet」)是由谷歌的研究人員們設計的一個網絡架構。GoogleNet在2014年的 ImageNet大賽中獲得了冠軍,證明了它是一個功能強大的模型。

在這個網絡架構中,研究人員們不僅加深了網絡深度(GoogleNet包含22個層,而VGG網絡只有19個層),還研究出了一個叫做「Inception模塊」的新方法。

如上圖所示,這個架構與我們之前看到的有序性架構相比,發生了巨大的改變。在單個層中出現了各種各樣的「特徵提取器」。這間接地提高了網絡的性能,因為當處理任務時,網絡在自我訓練過程中的選擇非常廣泛。它既可以選擇卷積輸入,也可以選擇直接將輸入聚積起來。

最終的架構包含了許多一個個相互疊加的Inception模塊。大部分最上面的層都有它們自己的輸出層,所以GoogleNet的訓練與其他模型有細微的差別。但這些差別能夠幫助模型更快地完成卷積,因為這些層不僅有共同的訓練,還有各自獨立的訓練。

GoogleNet的優勢有:

1.GoogleNet的訓練速度比VGGNet要快。

2.與預訓練的VGG網絡相比,預訓練的GoogleNet所佔規模更小。一個VGG模型所佔空間可以超過500MB,而GoogleNet只佔96MB。

目前為止,GoogleNet還沒有直接的缺陷,但是文章中提出了一些有助於GoogleNet進一步完善的改變方案。其中有一個改變方案被稱作「XceptionNet」,在這個網絡中,「初始模塊」的散度限制被提高了。理論上來說,其散度現在可以是無限的了。

4. ResNet

ResNet是一個真正地定義了深度學習架構深度的網絡架構。「殘差網絡」,也就是我們所說的ResNet,包含了許多連續的「殘差模塊」,這些「殘差模塊」構成了ResNet架構的基礎。「殘差模塊」如下圖所示:

簡單來說,一個「殘差模塊」有兩個選擇——它可以選擇在輸入上執行一組函數,也可以選擇跳過這些步驟。

與GoogleNet類似,這些「殘差模塊」相互疊加,從而形成一個完整的網絡的。

由ResNet引入的一些新技術有:

1.使用標準的SGD,而不是花哨的「自適應學習」技術。這是通過一個能夠保持正常訓練的初始化函數來完成的。

2.改變輸入預處理的方式,先將輸入分批,然後再輸入至網絡。

ResNet的主要優勢在於,成千上萬的殘差層都能用於建立一個網絡,而且都能被用於訓練。這與平常的「時序網絡」稍有不同,「時序網絡」的性能會因為層數的增加而降低。

5. ResNeXt

據稱,ResNeXt是目前為止最先進的物體識別技術。ResNeXt建立於inception和ResNet的基礎之上,是一個全新的、改良的網絡架構。下圖總結了ResNeXt的一個殘差模塊:

6.RCNN(Region Based CNN)

RCNN據說是用於解決物體識別問題的深度學習架構中最具影響力的網絡架構。為了解決識別檢測問題,RCNN試圖框出圖像中的所有物體,然後再識別圖像中的物體具體是什麼。其操作流程如下:

RCNN的結構如下圖:

7. YOLO (You Only Look Once)

YOLO是目前為止最先進的實時圖像識別系統,它是以深度學習為基礎的。正如我們在下圖中所看到的,它首先將圖像分成一個個小方格;然後將識別算法一一運行於這些格子,判斷每個格子分別屬於什麼物體類別,之後把同一類別的方格合併起來,形成一個個最準確的物體框。

這些操作都是各自獨立完成的,因此能夠實現實時運行。一秒內最多能夠處理40張圖像。

雖然與其對應的RCNN相比,YOLO的性能降低了,但是它的實時處理功能在處理日常問題中仍有巨大的優勢。以下是YOLO網絡架構:

8. SqueezeNet

SqueezeNet架構是一個功能更加強大的網絡架構,它在類似移動平臺這樣的低寬帶場景中非常有用。這個網絡架構僅佔4.9MB的空間,而Inception則佔超過100MB空間。這樣顯著的變化來源於一個叫做「fire模塊」的結構。「fire模塊」如下圖所示:

下圖為squeezeNet的最終架構:

Original Paper link

 9. SegNet

SegNet是一個用於解決圖像分割的深度學習架構。它包含了一系列處理層(編碼器)以及一組用於像素分類的對應的解碼器。下圖總結了SegNet的操作過程:

 

 

SegNet的一個關鍵特徵是:在分割圖像中保留了高頻率的細節,因為編碼網絡的聚積索引與解碼網絡的聚積索引是相互連接的。簡言之,信息的傳遞是直接的,而不是通過間接的卷積實現的。SegNet是處理圖像分割問題時的最佳模型。

10. GAN (Generative Adversarial Network)

GAN是一個完全不同的神經網絡架構,其中的神經網絡被用於生成一個全新的不存在的圖像,這個圖像看似在訓練數據集中出現過,但實際上並沒有。下圖是GAN的分解示意圖。


雷鋒網特約稿件,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 關於深度學習你必須知道的幾個信息理論概念
    科學家們一直在努力解決這些問題。語義,域和數據形式只會增加問題的複雜性。數學家和工程師克勞德·香農提出了「熵」的概念,它永遠改變了我們的世界,這標誌著數字資訊時代的開始。下面將討論深度學習和數據科學中四種流行的,廣泛使用的和必須已知的資訊理論概念:熵也可以稱為信息熵或香農熵。熵是實驗中隨機性或不確定性的度量熵給出了實驗中不確定性的度量。
  • 告別2019:屬於深度學習的十年,那些我們必須知道的經典
    在這十年中,伴隨著計算能力和大數據方面的發展,深度學習已經攻克了許多曾經讓我們感到棘手的問題,尤其是計算機視覺和自然語言處理方面。此外,深度學習技術也越來越多地走進我們的生活,變得無處不在。這篇文章總結了過去十年中在深度學習領域具有影響力的論文,從 ReLU、AlexNet、GAN 到 Transformer、BERT 等。
  • 10 大深度學習架構:計算機視覺優秀從業者必備(附代碼實現)
    原標題:10 大深度學習架構:計算機視覺優秀從業者必備(附代碼實現) 選自Analytics Vidhya 作者:FAIZAN SHAIKH 的文章,總結了計算機視覺領域已經成效卓著的 10 個深度學習架構,並附上了每篇論文的地址連結和代碼實現。機器之心對該文進行了編譯,原文連結請見文末。 時刻跟上深度學習領域的最新進展變的越來越難,幾乎每一天都有創新或新應用。但是,大多數進展隱藏在大量發表的 ArXiv / Springer 研究論文中。
  • 英偉達Volta架構深度解讀:專為深度學習而生的Tensor Core到底是...
    在 2017 GPU 技術大會(GTC 2017)上,英偉達 CEO 黃仁勳正式發布了新一代處理器架構 Volta,以及使用新架構的第一款設備——適用於深度學習任務的加速卡 Tesla V100,英偉達將這塊顯卡稱為全球最先進的數據中心 GPU。
  • 架構師必須知道的架構設計原則
    原標題:架構師必須知道的架構設計原則 作者|楊波監控設計 在設計階段就必須考慮監控,而不是在實施完畢之後補充。例如在需求階段就要考慮關鍵指標監控項,這就是度量驅動開發 (Metrics Driven Development) 的理念。 5. 設計多活數據中心 不要被一個數據中心的解決方案把自己限制住。當然也要考慮成本和公司規模發展階段。
  • DeepTables:為結構化數據注入深度學習的洪荒之力
    近年來深度學習在CV、NLP等非結構化領域展現出超強的統治力,突破最高水平的算法層出不窮。深度學習在結構化和非結構化領域表現出來的巨大反差已成為熱門話題,自從以XGBoost、LightGBM為代表的高性能集成樹模型訓練框架的問世,深度學習在結構化領域就一直沒有超越配角的地位。到目前為止,Kaggle結構化數據競賽中,傳統機器學習算法依然是最主要的贏家。
  • 深度學習遇上物理學,更好地識別粒子和分析數據
    在該領域的研究人員正著手運用它來分析粒子物理數據。 支持者們希望利用深度學習節省實驗時間、金錢和人力,讓物理學家們做其它不太繁瑣的工作。另一些人希望能提高實驗的結果,相比以前使用的任何算法,這個算法能使他們更好地識別粒子和分析數據。儘管物理學家們不認為深度學習是萬能的,但一些人認為它可能在應對即將到來的數據處理危機中起到關鍵作用。
  • 人工智慧利用單眼強度圖像進行面部深度圖估計的對抗架構深度學習
    人工智慧利用單眼強度圖像進行面部深度圖估計的對抗架構深度學習 人工智慧利用單眼強度圖像進行面部深度圖估計的對抗架構深度學習 2018-06-05 11:36:53  來源:今日頭條
  • 超實用總結:AI實踐者需要用到的10個深度學習方法
    然而,為了獲得較好結果需要大量的時間和數據,這減緩了神經網絡發展的速度,也降低了當時人們的關注度。在二十一世紀初,計算能力呈指數級增長,業界認為計算技術的發展比「寒武紀爆炸」都來的迅猛。在計算能力爆炸式增長的十年中,作為神經網絡領域的一個重要角色,深度學習出現了,贏得了許多重要的機器學習競賽。2017年,深度學習的熱度仍然不減。今天,在機器學習的出現的地方都可以看到深度學習的身影。
  • 要理解深度學習,必須突破常規視角去理解優化
    我認為,深度學習算法也有一些重要的特性並不總是反映在目標值中。目前的深度網絡是非常過度參數化的,因此有多個最優值。它們被訓練到目標幾乎為零(即接近最優),如果由此發現的最優(或接近最優)模型在未見過/保留的數據上也表現良好(即泛化效果好),則認為該訓練是成功的。
  • 基於數據驅動的深度學習5G網絡解析
    近年來,研究者已經對此做了初步探索,主要呈現出兩種類型的深度學習網絡,一種基於數據驅動,另一種基於數據模型雙驅動。基於數據驅動的深度學習網絡將無線通信系統的多個功能塊看作一個未知的黑盒子,利用深度學習網絡取而代之,然後依賴大量訓練數據完成輸入到輸出的訓練。
  • 清華機器學習科學家李建:如何用深度學習來解析時空大數據?
    李建,清華大學交叉信息研究院助理教授、杉數科技科學家,美國馬裡蘭大學博士、國內機器學習領域最頂尖的前沿科學家之一,國際學術會議VLDB 2009和ESA 2010最佳論文獎獲得者,清華211基礎研究青年人才支持計劃以及教育部新世紀人才支持計劃青年學者,主要研究方向為算法設計與分析、機器學習與深度學習、隨機優化與組合優化等。
  • 深度學習和拓撲數據分析的六大驚人之舉
    將深度學習與拓撲數據分析結合在一起完全能夠達到此目的,並且還綽綽有餘。1、它能在幾分鐘內創建一張數據圖,其中每一個點都是一個數據項或一組類似的數據項。基於數據項的相關性和學習模式,系統將類似的數據項組合在一起。這將使數據有唯一的表示方式,並且會讓你更清晰地洞察數據。可視化圖中的節點由一個或多個數據點構成,而點與點之間的連結則代表數據項之間高相似性。
  • 每個數據科學家都應該知道的10種機器學習方法
    6 神經網絡與深度學習與被認為是線性模型的線性和邏輯回歸相比,神經網絡的目標是通過向模型添加參數層來捕獲數據中的非線性模式。在下圖中,簡單神經網絡有四個輸入,一個帶有五個參數的隱藏層和一個輸出層。實際上,神經網絡的結構足夠靈活,可以構建我們眾所周知的線性回歸和邏輯回歸。術語深度學習來自具有許多隱藏層的神經網絡(見下圖),並封裝了各種各樣的體系結構。
  • Nature Neurosci: 神經科學的深度學習框架是什麼?
    深度學習初期可能借鑑了神經科學的經驗,比如大腦視覺皮層結構的模擬,層級編碼等,但真正促使深度學習大放異彩的,卻是源於對神經科學的背離,比如目前沒有生物數據支撐的反向傳播算法,Relu函數等。雖然這些規則的加入使得深度神經網絡在各類任務上的表現得到了極大的提升,接近甚至是優於人腦的表現,但為什麼會有這樣的效果仍是一個黑箱。
  • 數據科學家必會10個統計分析方法
    著名求職網站Glassdoor根據龐大的就業數據和員工反饋信息,將數據科學家排名為美國最佳的25個工作之首。雖然名頭不小,但毫無疑問,數據科學家所做的具體工作是不斷發展變化的。隨著機器學習等技術越來越普及,像深度學習這樣的新興領域在研究人員、工程師以及聘用他們的公司中成為新寵,數據科學家們將繼續在創新浪潮和技術進步中嶄露頭角。
  • 微軟發布基於FPGA的深度學習平臺Brainwave
    打開APP 微軟發布基於FPGA的深度學習平臺Brainwave 發表於 2019-08-19 17:51:01 據微軟官方博客顯示
  • LeCun最新演講:深度學習大革命來了,可微分編程潛力巨大
    新智元報導 【新智元導讀】今天上午舉行的GMIC大會上,Facebook首席AI科學家Yann LeCun進行了主題演講。他介紹了當前AI的一些最新進展,FAIR在計算機視覺領域提出的一些最先進的架構。他提到,未來還會出現更多的有關深度學習的變革,比如說更複雜的架構,同時也會出現更多的新理論。
  • 30個深度學習庫:按Python和C++等10種語言分類
    4、Genism 是一個部署在 Python 程式語言中的深度學習工具包,用於通過高效的算法處理大型文本集。 5、Chainer 連接深度學習中的算法與實現,它強勁、靈活而敏銳,是一種用於深度學習的靈活的框架。
  • 入門| 獻給新手的深度學習綜述
    引言 「深度學習」(DL)一詞最初在 1986 被引入機器學習(ML),後來在 2000 年時被用於人工神經網絡(ANN)。深度學習方法由多個層組成,以學習具有多個抽象層次的數據特徵。DL 方法允許計算機通過相對簡單的概念來學習複雜的概念。