近年來,深度學習的發展勢頭迅猛,要跟上深度學習的進步速度變得越來越困難了。幾乎每一天都有關于深度學習的創新,而大部分的深度學習創新都隱藏在那些發表于ArXiv和Spinger等研究論文中。
簡潔起見,本文中只介紹了計算機視覺領域內比較成功的深度學習架構。
目錄
什么是深度學習“高級架構”?
不同類型的計算機視覺任務
各種深度學習架構
何為深度學習“高級架構”?
與一個簡單的機器學習算法相比,深度學習算法包含了更加多樣的模型。其中的原因是在建立一個完整的模型時,神經網絡具有很大的靈活性。
有時,我們還可以把神經網絡比作樂高積木,可以用它搭建任何簡單或者復雜的小建筑。
我們其實可以將“高級架構”簡單地定義為一個有著成功模型記錄的深度學習架構,這樣的“高級架構”主要出現在類似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.這是對一個特定任務進行基準測試非常有效的網絡架構。
102.同時,網上有大量免費的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的最終架構:
9
SegNet
SegNet是一個用于解決圖像分割的深度學習架構。它包含了一系列處理層(編碼器)以及一組用于像素分類的對應的解碼器。下圖總結了SegNet的操作過程:
SegNet的一個關鍵特征是:在分割圖像中保留了高頻率的細節,因為編碼網絡的聚積索引與解碼網絡的聚積索引是相互連接的。簡言之,信息的傳遞是直接的,而不是通過間接的卷積實現的。SegNet是處理圖像分割問題時的最佳模型。
10
GAN (Generative Adversarial Network)
GAN是一個完全不同的神經網絡架構,其中的神經網絡被用于生成一個全新的不存在的圖像,這個圖像看似在訓練數據集中出現過,但實際上并沒有。下圖是GAN的分解示意圖。
-
計算機視覺
+關注
關注
8文章
1700瀏覽量
46127 -
深度學習
+關注
關注
73文章
5515瀏覽量
121551
原文標題:數據科學家必須知道的 10 個深度學習架構
文章出處:【微信號:melux_net,微信公眾號:人工智能大趨勢】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論