深度學習的應用介紹

深度學習已經在圖像、語音、自然語言處理等各個不同的領域展現出了優異的性能。本文將帶着大家看看深度學習在機器視覺領域的應用現狀及其他方面的應用。

目錄

物體檢測

圖像分割

圖像標題的生成

圖像風格變換

圖像的生成

自動駕駛

強化學習(Deep Q-Network)


物體檢測

物體檢測是從圖像中確定物體的位置,並進行分類的問題,如下圖所示要從圖像中確定物體的種類和物體的位置。

物體檢測的例子

不難發現,物體檢測比物體識別(以整個圖像爲對象進行識別)更難,因爲物體檢測需要對圖像中的每種類別進行識別並判斷其位置。

人們提出了多個基於CNN的方法,其中一個較爲有名的方法是R-CNN,下圖顯示了R-CNN的處理流。圖中,“2.Extract region proposals”(候選區域的提取)和“3.Compute CNN features”(CNN特徵的計算)的處理部分。這裏,首先以某種方法找出形似物體的區域,然後對提取的區域應用CNN進行分類。R-CNN中會將圖像變形爲正方形,或者在分類時使用SVM(支持向量機)。

 R-CNN的處理流

在R-CNN的前半部分的處理---候選區域的提取(發現形似物體的處理)中,可以使用機器視覺領域積累的各種各樣的方法。R-CNN論文中使用了一種被稱爲Selective Search的方法,最近還提出了一種基於CNN來進行候選區域提取的Fster R-CNN的方法,它用一個CNN來完成所有處理,使得高速處理成爲可能。

圖像分割

 圖像分割是指在像素水平上對圖像進行分類。如下圖所示,使用像素爲單位對各個對象分別着色的監督數據進行學習,然後,在推理時,對輸入圖像的所有像素進行分類。

圖像分割的例子:左邊是輸入圖像,右邊是監督用的帶標籤圖像

如果選擇神經網絡進行圖像分割,最簡單的方法是以所有像素爲對象,對每個像素執行推理處理(比如準備一個對某個矩形區域中心的像素進行分類的網絡,以所有像素爲對象執行推理處理。大家想一想,圖像是不是由像素數據構成的嘛)。

有人提出了一個名爲“FCN(fully convolutional network)”的方法,該方法通過一次forward處理,對所有像素進行分類(如下圖所示),FCN將全連接層替換成發揮相同作用的卷積層。在物體識別中使用的網絡的全連接層中,中間數據的空間容量被作爲排成一列的節點進行處理,而只由卷積層構成的網絡中,空間容量可以保持原樣直到最後的輸出。

FCN的概略圖

FCN的特徵在於最後導入了擴大空間大小的處理。基於這個處理,變小了的中間數據可以一下子擴大到和輸入圖像一樣的大小。FCN最後進行的擴大處理是基於雙線性插值法的擴大(通過逆卷積運算來實現的)。

圖像標題的生成

有一項融合了計算機視覺和自然語言的研究,能對一副照片進行標題文字生成,如下圖所示,第一張照片生成了“A person riding a motorcycle on a dirt road”,翻譯過來指“在骯髒的道路上騎摩托車的一個人”,太神奇了,就連骯髒的道路也被正確理解了。

基於深度學習的圖像標題生成的例子

一個基於深度學習生成圖像標題的代表性方法是NIC(Neural Image Caption)的模型。如下圖所示,NIC由深層的CNN和處理自然語言的RNN(Recurrent Neural Network)構成。RNN是具有循環連接的網絡,經常被用於自然語言、時間序列數據等連續性的數據上。

NIC的整體結構

NIC基於CNN從圖像中提取特徵,並將這個特徵傳給RNN。RNN以CNN提取出的特徵爲初始值,循環地生成文本。基於NIC,可以生成驚人的高精度的圖像標題。我們將組合圖像和自然語言等多種信息進行的處理稱爲多模態處理

RNN的R表示Recurrent(循環的)。這個循環指的是神經網絡的循環的網絡結構。根據這個循環結構,神經網絡會受到之前生成的信息的影響(記憶能力),這是RNN的特徵,比如,生成“我”這個詞後,下一個生成的詞受到“我”這個詞的影響。如果生成了“是”,那麼下一個要生成的詞受“我是”這個詞的影響。因此,對於自然語言、時間序列數據等連續性的數據,RNN以記憶過去的信息的方式運行。

圖像風格變換

有一項研究是使用深度學習來“繪製”帶有藝術氣息的畫。如下圖所示,輸入兩個圖像後,會生成一個新的圖像。兩個輸入圖像中,一個稱爲“內容圖像”,另一個稱爲“風格圖像”。

圖像風格變換的例子:左上角是風格圖像,右邊是內容圖像,左下角度是新生成的圖像

如果指定將梵高的繪畫風格應用於內容圖像,深度學習就會按照指示繪製出新的畫作。此項研究出自論文“A Neural Algorithm of Artistic Style”,一經發表就受到全世界的廣泛關注。

該方法是在學習過程中使網絡的中間數據近似內容圖像的中間數據。這樣一來,就可以使輸入圖像近似內容圖像的形狀。。此外,爲了從風格圖像中吸收風格,導入了風格矩陣的概念。通過在學習過程中減小風格矩陣的偏差,就可以使輸入圖像接近梵高的風格。

圖像的生成

圖像風格變換需要輸入兩個圖像,而圖像的生成不需要任何圖像(當然,事先需要用大量的圖像進行學習,“畫”新圖時不需要任何圖像)。比如,基於深度學習,可以實現從零生成“臥室”的圖像。下圖展示的圖像是基於DCGAN(deep convolutional generative adversarial network)方法生成的臥室圖像的例子。DCGAN屬於無監督學習

基於DCGAN生成的新的臥室圖像

圖中的圖像都是基於DCGAN生成的圖像,這些圖像是誰都沒有見過的。DCGAN會將圖像的生成過程模擬化。使用大量圖像(比如,印有臥室的大量照片)訓練這個模型,學習結束後,使用這個模型,就可以生成新的圖像。

DCGAN中使用了深度學習,其技術要點是使用了生成者(generator)和識別者(discriminator)這兩個神經網絡。生成者生成近似真品的圖片,識別者判斷它是不是真圖像。像這樣,通過讓兩者以競爭的方式學習,生成者會學習到更加精妙的圖像作假技術,識別者則會成長爲能以更高精度辨別真假的鑑定師。兩者互相切磋、共同成長,這是GAN的有趣之處。在這樣的切磋中成長起來的生成者最終會掌握畫出足以以假亂真的圖像的能力。

自動駕駛

自動駕駛技術中,正確識別周圍環境的技術尤爲重要。這是因爲要正確識別時刻變化的環境、自由來往的車輛和行人是非常困難的。

在識別周圍環境的技術中心,深度學習的力量備受期待。比如,基於CNN的神經網絡SegNet,可以像下圖那樣高精度地識別行駛環境。

基於深度學習的圖像分割的例子

該圖對輸入圖像進行了分割(像素水平的判別)。觀察結果可知,在某種程度上正確地識別了道路、建築物、人行道、樹木、車輛等。可見,今後若能基於深度學習使這種技術進一步實現高精度化、高速化的話,自動駕駛的實用化可能也就沒那麼遙遠。

強化學習(Deep Q-Network)

就像人類通過摸索試驗來學習一樣,讓計算機也在摸索試驗過程中自主學習,這稱爲強化學習。這和有“教師”在指導的“監督學習”有所不同。

強化學習的基本框架是,代理根據環境選擇行動,然後通過這個行動改變環境。根據環境的變化,代理獲得某種報酬。強化學習的目的是決定代理的行動方針,以獲得更好的報酬。如下圖所示。

強化學習的基本框架

在使用了深度學習的強化學習方法彙總,有一個叫作Deep Q-Network(DQN)的方法。該方法基於被稱爲Q學習的強化學習算法。在Q學習中,爲了確定最合適的行動,需要確定一個被稱爲最優行動價值函數的函數。DQN使用了深度學習(CNN)。

在DQN的研究中,有讓電子遊戲自動學習,並實現了超過人類水平的操作的例子。如下圖所示,DQN使用CNN把遊戲圖像的幀作爲輸入,最終輸出遊戲手柄的各個動作的“價值”。

基於Deep Q-Network 學習電子遊戲的操作

在DQN中,輸入數據只有電子遊戲的圖像,實際上,DQN可以用相同的結構學習《吃豆人》、Atari等遊戲,甚至取得了超過人類的成績。

人工智能AlphaGo擊敗圍棋冠軍的新聞受到了廣泛關注。這個AlphaGo技術的內部也用了深度學習和強化學習。AlphaGo學習了3000萬個專業棋手的棋譜,並且不停地重複自己和自己的決戰,積累了大量的學習經驗。AlphaGo和DQN都是Google的Deep Mind公司進行的研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章