深度學習的應用介紹
深度學習已經在圖像、語音、自然語言處理等各個不同的領域展現出了優異的性能。本文將帶著大家看看深度學習在機器視覺領域的應用現狀及其他方面的應用。
目錄
物體檢測
物體檢測是從圖像中確定物體的位置,并進行分類的問題,如下圖所示要從圖像中確定物體的種類和物體的位置。
不難發現,物體檢測比物體識別(以整個圖像為對象進行識別)更難,因為物體檢測需要對圖像中的每種類別進行識別并判斷其位置。
人們提出了多個基于CNN的方法,其中一個較為有名的方法是R-CNN,下圖顯示了R-CNN的處理流。圖中,“2.Extract region proposals”(候選區域的提?。┖汀?.Compute CNN features”(CNN特征的計算)的處理部分。這里,首先以某種方法找出形似物體的區域,然后對提取的區域應用CNN進行分類。R-CNN中會將圖像變形為正方形,或者在分類時使用SVM(支持向量機)。
在R-CNN的前半部分的處理---候選區域的提?。òl現形似物體的處理)中,可以使用機器視覺領域積累的各種各樣的方法。R-CNN論文中使用了一種被稱為Selective Search的方法,最近還提出了一種基于CNN來進行候選區域提取的Fster R-CNN的方法,它用一個CNN來完成所有處理,使得高速處理成為可能。
圖像分割
圖像分割是指在像素水平上對圖像進行分類。如下圖所示,使用像素為單位對各個對象分別著色的監督數據進行學習,然后,在推理時,對輸入圖像的所有像素進行分類。
如果選擇神經網絡進行圖像分割,最簡單的方法是以所有像素為對象,對每個像素執行推理處理(比如準備一個對某個矩形區域中心的像素進行分類的網絡,以所有像素為對象執行推理處理。大家想一想,圖像是不是由像素數據構成的嘛)。
有人提出了一個名為“FCN(fully convolutional network)”的方法,該方法通過一次forward處理,對所有像素進行分類(如下圖所示),FCN將全連接層替換成發揮相同作用的卷積層。在物體識別中使用的網絡的全連接層中,中間數據的空間容量被作為排成一列的節點進行處理,而只由卷積層構成的網絡中,空間容量可以保持原樣直到最后的輸出。
FCN的特征在于最后導入了擴大空間大小的處理?;谶@個處理,變小了的中間數據可以一下子擴大到和輸入圖像一樣的大小。FCN最后進行的擴大處理是基于雙線性插值法的擴大(通過逆卷積運算來實現的)。
圖像標題的生成
有一項融合了計算機視覺和自然語言的研究,能對一副照片進行標題文字生成,如下圖所示,第一張照片生成了“A person riding a motorcycle on a dirt road”,翻譯過來指“在骯臟的道路上騎摩托車的一個人”,太神奇了,就連骯臟的道路也被正確理解了。
一個基于深度學習生成圖像標題的代表性方法是NIC(Neural Image Caption)的模型。如下圖所示,NIC由深層的CNN和處理自然語言的RNN(Recurrent Neural Network)構成。RNN是具有循環連接的網絡,經常被用于自然語言、時間序列數據等連續性的數據上。
NIC基于CNN從圖像中提取特征,并將這個特征傳給RNN。RNN以CNN提取出的特征為初始值,循環地生成文本?;贜IC,可以生成驚人的高精度的圖像標題。我們將組合圖像和自然語言等多種信息進行的處理稱為多模態處理。
RNN的R表示Recurrent(循環的)。這個循環指的是神經網絡的循環的網絡結構。根據這個循環結構,神經網絡會受到之前生成的信息的影響(記憶能力),這是RNN的特征,比如,生成“我”這個詞后,下一個生成的詞受到“我”這個詞的影響。如果生成了“是”,那么下一個要生成的詞受“我是”這個詞的影響。因此,對于自然語言、時間序列數據等連續性的數據,RNN以記憶過去的信息的方式運行。
圖像風格變換
有一項研究是使用深度學習來“繪制”帶有藝術氣息的畫。如下圖所示,輸入兩個圖像后,會生成一個新的圖像。兩個輸入圖像中,一個稱為“內容圖像”,另一個稱為“風格圖像”。
如果指定將梵高的繪畫風格應用于內容圖像,深度學習就會按照指示繪制出新的畫作。此項研究出自論文“A Neural Algorithm of Artistic Style”,一經發表就受到全世界的廣泛關注。
該方法是在學習過程中使網絡的中間數據近似內容圖像的中間數據。這樣一來,就可以使輸入圖像近似內容圖像的形狀。。此外,為了從風格圖像中吸收風格,導入了風格矩陣的概念。通過在學習過程中減小風格矩陣的偏差,就可以使輸入圖像接近梵高的風格。
圖像的生成
圖像風格變換需要輸入兩個圖像,而圖像的生成不需要任何圖像(當然,事先需要用大量的圖像進行學習,“畫”新圖時不需要任何圖像)。比如,基于深度學習,可以實現從零生成“臥室”的圖像。下圖展示的圖像是基于DCGAN(deep convolutional generative adversarial network)方法生成的臥室圖像的例子。DCGAN屬于無監督學習
圖中的圖像都是基于DCGAN生成的圖像,這些圖像是誰都沒有見過的。DCGAN會將圖像的生成過程模擬化。使用大量圖像(比如,印有臥室的大量照片)訓練這個模型,學習結束后,使用這個模型,就可以生成新的圖像。
DCGAN中使用了深度學習,其技術要點是使用了生成者(generator)和識別者(discriminator)這兩個神經網絡。生成者生成近似真品的圖片,識別者判斷它是不是真圖像。像這樣,通過讓兩者以競爭的方式學習,生成者會學習到更加精妙的圖像作假技術,識別者則會成長為能以更高精度辨別真假的鑒定師。兩者互相切磋、共同成長,這是GAN的有趣之處。在這樣的切磋中成長起來的生成者最終會掌握畫出足以以假亂真的圖像的能力。
自動駕駛
自動駕駛技術中,正確識別周圍環境的技術尤為重要。這是因為要正確識別時刻變化的環境、自由來往的車輛和行人是非常困難的。
在識別周圍環境的技術中心,深度學習的力量備受期待。比如,基于CNN的神經網絡SegNet,可以像下圖那樣高精度地識別行駛環境。
該圖對輸入圖像進行了分割(像素水平的判別)。觀察結果可知,在某種程度上正確地識別了道路、建筑物、人行道、樹木、車輛等。可見,今后若能基于深度學習使這種技術進一步實現高精度化、高速化的話,自動駕駛的實用化可能也就沒那么遙遠。
強化學習(Deep Q-Network)
就像人類通過摸索試驗來學習一樣,讓計算機也在摸索試驗過程中自主學習,這稱為強化學習。這和有“教師”在指導的“監督學習”有所不同。
強化學習的基本框架是,代理根據環境選擇行動,然后通過這個行動改變環境。根據環境的變化,代理獲得某種報酬。強化學習的目的是決定代理的行動方針,以獲得更好的報酬。如下圖所示。
在使用了深度學習的強化學習方法匯總,有一個叫作Deep Q-Network(DQN)的方法。該方法基于被稱為Q學習的強化學習算法。在Q學習中,為了確定最合適的行動,需要確定一個被稱為最優行動價值函數的函數。DQN使用了深度學習(CNN)。
在DQN的研究中,有讓電子游戲自動學習,并實現了超過人類水平的操作的例子。如下圖所示,DQN使用CNN把游戲圖像的幀作為輸入,最終輸出游戲手柄的各個動作的“價值”。
在DQN中,輸入數據只有電子游戲的圖像,實際上,DQN可以用相同的結構學習《吃豆人》、Atari等游戲,甚至取得了超過人類的成績。
人工智能AlphaGo擊敗圍棋冠軍的新聞受到了廣泛關注。這個AlphaGo技術的內部也用了深度學習和強化學習。AlphaGo學習了3000萬個專業棋手的棋譜,并且不停地重復自己和自己的決戰,積累了大量的學習經驗。AlphaGo和DQN都是Google的Deep Mind公司進行的研究。