寫給人類的機器學(xué)習(xí) 四、神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)

四、神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)

原文:Machine Learning for Humans, Part 4: Neural Networks & Deep Learning

作者:Vishal Maini

譯者:飛龍

協(xié)議:CC BY-NC-SA 4.0

深度神經(jīng)網(wǎng)絡(luò)的工作地點、原因和方式。從大腦中獲取靈感。卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。真實世界中的應(yīng)用。

使用深度學(xué)習(xí),我們?nèi)匀皇橇?xí)得一個函數(shù)f,將輸入X映射為輸出Y,并使測試數(shù)據(jù)上的損失最小,就像我們之前那樣?;貞浺幌?,在 2.1 節(jié)監(jiān)督學(xué)習(xí)中,我們的初始“問題陳述”:

Y = f(X) + ?

訓(xùn)練:機器從帶標(biāo)簽的訓(xùn)練數(shù)據(jù)習(xí)得f

測試:機器從不帶標(biāo)簽的測試數(shù)據(jù)預(yù)測Y

真實世界很亂,所以有時f很復(fù)雜。在自然語言問題中,較大的詞匯數(shù)量意味著大量特征。視覺問題設(shè)計大量的像素相關(guān)的視覺信息。玩游戲需要基于復(fù)雜場景做決策,也帶有許多可能的未知。當(dāng)我們處理的數(shù)據(jù)不是很復(fù)雜時,我們目前涉及的學(xué)習(xí)機制做的很好。但是,它們?nèi)绾瓮茝V到像這樣的場景,還不清楚。

深度學(xué)習(xí)非常善于習(xí)得f,特別是在數(shù)據(jù)很復(fù)雜的場景中。實際上,人工神經(jīng)網(wǎng)絡(luò)也被成為通用函數(shù)近似器,因為它們能夠?qū)W習(xí)任何函數(shù),無論多么扭曲,都只需要一個隱藏層。

讓我們看看圖像分類的問題。我們選取一張圖片作為輸入,并輸出一個分類(例如狗、貓、車)。

通過圖解,深度神經(jīng)網(wǎng)絡(luò)的圖像分類解決方式,類似于這樣:

圖片來自 Jeff Clune 在 YouTube 上的一小時深度學(xué)習(xí)概覽

但是說真的,這是個巨大的數(shù)學(xué)方程,有數(shù)百萬個項和大量參數(shù)。假設(shè)輸入X是灰度圖像,由w*h的像素亮度矩陣表示。輸出Y是每個分類的概率的向量。也就是說,我們輸出“每個分類是正確標(biāo)簽”的概率。如果這個神經(jīng)網(wǎng)絡(luò)能用的話,最高的概率就是正確的分類。然后,中間的層僅僅計算大量的矩陣相同,通過在每個隱藏層之后,使用非線性變換(激活函數(shù)),對激活值x的權(quán)重求和,來讓神經(jīng)網(wǎng)絡(luò)習(xí)得非線性函數(shù)。

難以置信的是,你可以使用梯度下降,以 2.1 節(jié)中我們對線性回歸所做的相同方式,使損失最小。所以使用大量樣本和大量梯度下降,模型可以習(xí)得如何正確分類動物圖片。這個,簡單來說,就是“深度學(xué)習(xí)”。

深度學(xué)習(xí)做得好的地方,以及一些歷史

人工神經(jīng)網(wǎng)絡(luò)實際上有很長時間了。它們的應(yīng)用可追溯到控制論(cybernetics,1940s1960s),連接機制(connectionism,1980s1990s),之后變成了流行的深度學(xué)習(xí)。大約在 2006 年,神經(jīng)網(wǎng)絡(luò)開始變得“更深”(Goodfellow 等,2016)。但是最近我們才開始觸及它們的全部潛能。

就像 Andrej Karpathy(特斯拉的 AI 總監(jiān),它被認為是深度學(xué)習(xí)的 Shaman)描述的那樣,有四個“將 AI 帶回來”的不同因素:

  • 計算(最明顯的一個:摩爾定律,GPU,ASIC)
  • 數(shù)據(jù)(以不錯的形式,并不在互聯(lián)網(wǎng)上某處,也就是 ImageNet)
  • 算法(研究和理念,也就是 backprop, CNN, LSTM),以及
  • 基礎(chǔ)設(shè)施(你下面的軟件,Linux, TCP/IP, Git, ROS, PR2, AWS, AMT, TensorFlow, 以及其它)(Karpathy, 2016)。

在過去的十年當(dāng)中,深度學(xué)習(xí)的全部潛能,最紅被(1)和(2)的進步解鎖,它反過來產(chǎn)生了(3)和(4)的突破。并且這個循環(huán)仍在繼續(xù),成倍的人們不斷參與到深度學(xué)習(xí)研究的前線中,沿著這條路(想想你現(xiàn)在做的事情)。

由 NVIDIA 演示,它是一家核彈 GPU 領(lǐng)導(dǎo)廠商。GPU 最開始為游戲構(gòu)建,但是最終很好地順應(yīng)了深度學(xué)習(xí)所需的并行計算。

在這一章的剩余部分中,我們提供一些來自生物和統(tǒng)計的被寂靜,來解釋神經(jīng)網(wǎng)絡(luò)里面發(fā)生額了什么,之后討論深度學(xué)習(xí)的一些神奇應(yīng)用。最后,我們鏈接到一些資源,所以你可以自行應(yīng)用深度學(xué)習(xí),甚至穿著睡衣坐在沙發(fā)上,拿著筆記本,在特定種類的問題上快速實現(xiàn)超越人類級別的表現(xiàn)。

從大腦中(或者只是統(tǒng)計?)獲取靈感:神經(jīng)網(wǎng)絡(luò)中發(fā)生了什么

神經(jīng)元、特征學(xué)習(xí)和抽象層次

當(dāng)你閱讀這些詞匯的時候,你并沒有檢查每個詞的每個字,或者組成字的每個像素,來獲得單詞的含義。你從細節(jié)中將東西抽象、組裝成高階的概念:詞、短語、句子、段落。

Yuor abiilty to exaimne hgiher-lveel fteaures is waht aollws yuo to unedrtsand waht is hpapening in tihs snetecne wthiout too mcuh troulbe (or myabe yuo sned too mnay dnruk txets).

(你檢測高階特征的能力,讓你理解句子中發(fā)生的東西,而不會太麻煩(或者可能你發(fā)送了大量的亂序文本)。

視覺上發(fā)生的事情相同,這并不僅僅在人類,也在動物的視覺系統(tǒng)中。

大腦由神經(jīng)元組成,它們在足夠“激活”之后,通過向其他神經(jīng)元發(fā)送電信號來“觸發(fā)”。這些神經(jīng)元都是可塑的,根據(jù)有多少來自神經(jīng)元的信號添加到當(dāng)前神經(jīng)元的激活水平上(大概來說,將神經(jīng)元彼此連接的權(quán)重最后會被訓(xùn)練,使神經(jīng)連接更加有用,就像線性回歸中的參數(shù)可以被訓(xùn)練,來改進輸入到輸出的映射)。

生物和人工神經(jīng)網(wǎng)絡(luò)的端到端的演示,來自斯坦福 CS231n。這個比喻不是很嚴謹,生物神經(jīng)元可以做人工神經(jīng)元不能做的事,反之亦然。但是理解生物中的靈感十分有用。更多細節(jié)請見生物和人工神經(jīng)元的維基百科的描述。

我們的生物網(wǎng)絡(luò)以層次方式排列,以便特定神經(jīng)元最終檢測我們周圍的世界的,不是極其特定的特征,而是更加抽象的特征,也就是,更低階的特征的規(guī)律或者分組。例如,人類視覺系統(tǒng)中的紡錘狀臉部區(qū)域可特別用于人臉識別。

持續(xù)學(xué)習(xí)抽象特征的演示,來自 NVIDIA。

人工神經(jīng)網(wǎng)絡(luò)如何選取原始像素輸入,開發(fā)中介“神經(jīng)元”來檢測高階特征(也就是鼻子的存在),以及組合它們的輸出來創(chuàng)建最終輸出。來自《神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)》(Nielsen, 2017)。

生物神經(jīng)網(wǎng)絡(luò)表現(xiàn)出的層次結(jié)構(gòu)最早于 1950s 發(fā)現(xiàn),當(dāng)研究員 David Hubel 和 Torsten Wiesel 研究貓的視覺皮層中的神經(jīng)元的時候。在給貓大量刺激之后,它們不能觀察到神經(jīng)活動:暗點、亮點、揮手、甚至是雜志上的女性照片。但是在它們的失望中,它們從投影儀中移除了對角線處的照片,它們注意到了一些神經(jīng)活動。結(jié)果是,位于某個特定角度的,對角線上的邊能夠?qū)е绿囟ǖ纳窠?jīng)元被激活。

這樣就逐漸有意義了,因為自然環(huán)境通常是嘈雜和隨機的(想想草原和荒野)。所以當(dāng)野外的貓感知到一條“邊”的時候,也就是一條不同于背景的線,這可能表明,一個物體或者生物進入了視野范圍。當(dāng)邊緣的神經(jīng)元的特定組合被激活時,這些活動會集體產(chǎn)生更加抽象的活動,以此類推,直到最終的抽象是個有用的概念,比如“鳥”或者“狼”。

深度神經(jīng)網(wǎng)絡(luò)背后的概念就是,使用人工神經(jīng)網(wǎng)絡(luò)的層次來模擬類似的結(jié)構(gòu)。

為什么線性模型不能用

為了提煉斯坦福的優(yōu)秀的深度學(xué)習(xí)課程,CS231n:卷積神經(jīng)網(wǎng)絡(luò)和視覺識別,想象我們打算訓(xùn)練一個神經(jīng)網(wǎng)絡(luò),使用下列標(biāo)簽的正確的那個來分類圖像:["plane", "car", "bird", "cat", "deer", "dog", "frog", "horse", "ship", "truck"]

一種方式可能是,使用訓(xùn)練樣本為每個分類構(gòu)造一個“模板”,或者平均圖像,之后使用最近鄰算法,在測試期間來度量每個未分類圖像的像素值,到每個模板的距離??偟膩碚f是這樣。這個方法不涉及任何抽象層次。這是個線性模型,將每個圖像類型的所有不同的方向組合為一個平均的影子。

例如,它可以選取所有的車,無論它們面向左邊、右邊、中間,也無論它們的顏色,只是將它們平均。模板最終看起來非常模糊。

來自斯坦福 CS231n 第二篇講義的樣本。

要注意,上面的馬的模板出現(xiàn)了兩個頭。這對我們并沒什么幫助:我們想要能夠分別檢測頭朝右邊或者頭朝左邊的馬,并且如果這些特征的任何一個被檢測到了,我們就說我們看到了一匹馬。深度神經(jīng)網(wǎng)絡(luò)提供給我們這種靈活性,我們會在下一節(jié)中看到。

深度神經(jīng)網(wǎng)絡(luò)使用抽象層來解決圖像分類問題。

為了重復(fù)我們在這一節(jié)之前解釋的東西:輸入層接受圖像的原始像素亮度。最終的層級會是類概率的輸出向量(也就是圖像是貓、車子、馬,以及其他的概率)。

但是我們不習(xí)得一個簡單的,和輸入輸出相關(guān)的線性模型。我們構(gòu)造網(wǎng)絡(luò)中間的隱藏層,它們會漸進學(xué)習(xí)抽象特征,這讓我們不會丟失復(fù)雜數(shù)據(jù)中的所有細微差異。

來源:Analytics Vidhya

就像我們描述的動物大腦檢測抽象特征,隱藏層中的人工神經(jīng)元會學(xué)著檢測抽象概念,無論哪個概念,只要它對于捕捉最多信息,以及使網(wǎng)絡(luò)輸出的準確度中的損失最小非常實用(這是個發(fā)生在網(wǎng)絡(luò)中的,無監(jiān)督學(xué)習(xí)的實例)。

這損失了模型的可解釋性,因為當(dāng)你添加更多隱藏層時,神經(jīng)元開始表示越來越多的抽象和無法理解的特征。在這個層面上,你可能聽說,深度學(xué)習(xí)也被稱作“黑箱優(yōu)化”,其中你基本上只是隨機嘗試一些東西,然后觀察出現(xiàn)了什么,而無需真正理解里面發(fā)生了什么。

線性回歸是可解釋的,因為你決定了模型中包含哪個特征。深度神經(jīng)網(wǎng)絡(luò)難以解釋,因為習(xí)得的特征在任何地方都不能用自然語言解釋。它完全在機器的想象中。

一些值得注意的擴展和深層概念

  • 深度學(xué)習(xí)軟件包。你很少需要從零開始實現(xiàn)神經(jīng)網(wǎng)絡(luò)的所有部分,因為現(xiàn)有的庫和工具使深度學(xué)習(xí)更加易于實現(xiàn)。有許多這類東西:TensorFlow, Caffe, Torch, Keras, 以及其它。

  • 卷積神經(jīng)網(wǎng)絡(luò)(CNN)。CNN 特地為接受圖像輸入而設(shè)計,并且對于計算機視覺任務(wù)非常高效。它們也有助于深度增強/強化學(xué)習(xí)。CNN 的靈感特別來源于動物的視覺皮層的工作方式,并且它們是深度學(xué)習(xí)課程的熱點。我們已經(jīng)在文章中引用它了,就是斯坦福 CS231n。

  • 循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。RNN 擁有內(nèi)建記憶的概念,并且非常適合語言問題。它們在強化學(xué)習(xí)中也很重要,因為它們讓智能體能夠跟蹤東西在哪里,以及之前發(fā)生了什么,甚至在那些東西不能一次性看到的時候。Christopher Olah 編寫了一個非常棒的,在語言問題的語境中的, RNN 和 LSTM 的參考文獻。

  • 深度增強/強化學(xué)習(xí)。這是深度學(xué)習(xí)研究中的最刺激的領(lǐng)域之一,處在近期研究的核心位置,例如 OpenAI 擊敗了 Dota2 職業(yè)玩家,以及 DeepMind 的 AlphaGo 在圍棋競技中勝過人類。我們在第五章會深度,但是本質(zhì)上的目標(biāo)是將這篇文章中的所有技術(shù),應(yīng)用于一個問題,教會智能體使回報最大。這可以用于與任何可以游戲化的環(huán)境,從真實的游戲,例如反恐精英或者吃豆人,到無人駕駛的汽車,或者股票交易,最終到真實生活和真實世界。

深度學(xué)習(xí)應(yīng)用

深度學(xué)習(xí)正在重構(gòu)世界的幾乎每個領(lǐng)域。這里是深度學(xué)習(xí)可以做的無法置信的事情的示例:

  • Fackbook 訓(xùn)練了一個神經(jīng)網(wǎng)絡(luò),由短時記憶加持,來智能地回答《指環(huán)王》情節(jié)中的問題。

    來自 FAIR(Facebook AI 實驗室)的研究,將加持了分離的短時記憶的深度神經(jīng)網(wǎng)絡(luò),應(yīng)用于回答 LOTR 情節(jié)的問題。這是史詩級的定義。

  • 無人駕駛的汽車依賴深度學(xué)習(xí),用于解決視覺任務(wù),例如理解路面標(biāo)志,檢測道路和識別障礙。

    來源:Business Insider

  • 深度學(xué)習(xí)可以用于有趣的東西,例如藝術(shù)生成。一個叫做 Neural Style(神經(jīng)風(fēng)格)的工具可以模擬藝術(shù)家的風(fēng)格,并且用它來重新組合另一幅圖片,令人難以置信。

    梵高的《星夜》的風(fēng)格應(yīng)用于斯坦福校園的圖像上,通過 Justin Johnson 的 neural style 實現(xiàn):https://github.com/jcjohnson/neural-style

其它值得注意的示例包括:

  • 預(yù)測藥物發(fā)現(xiàn)中的分子的生物活性。

  • 用于照片和視頻標(biāo)注的人臉識別。

  • 增強谷歌搜索的結(jié)果。

  • 自然語言理解和生成,也就是谷歌翻譯

  • 火星探索者機器人“好奇號”,基于視覺檢測,自動選取值得檢查的土壤目標(biāo)。

...以及很多,非常多,太多了。

現(xiàn)在開始去做吧!

對于神經(jīng)網(wǎng)絡(luò)如何實際建立,我們這里沒有涉及太多細節(jié)。因為你通過自己實現(xiàn),更易于理解細節(jié)。這里是一些非常棒的實踐資源,用于起步。

  • 使用谷歌的 Neural Network Playground 玩轉(zhuǎn)神經(jīng)網(wǎng)絡(luò)的架構(gòu),來看看不同的配置如何影響網(wǎng)絡(luò)的性能。

  • 使用這篇谷歌的教程快速準備好并起步:TensorFlow 和深度學(xué)習(xí)。以超過 99% 的準確度分類手寫數(shù)字,你不需要是 PhD,只需要在三個小時內(nèi),熟悉 TensorFlow 以及學(xué)習(xí)深度學(xué)習(xí)概念。

  • 之后,瀏覽斯坦福 CS231n 的至少前幾篇講義,以及第一個作業(yè),從零開始構(gòu)建雙層的神經(jīng)網(wǎng)絡(luò),來實際強化這篇文章中涉及的概念。

更多資源

深度學(xué)習(xí)是個非常廣闊的領(lǐng)域。因此,我們也編譯了一些最佳資源,我們在這個話題中遇到過它們,以便你打算深入了解。

下一章:到了玩游戲的時候了!

最后是第五章:強化/增強學(xué)習(xí)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • The platform profits about by charging a 3 precentage pe...
    水筆仔o12530閱讀 216評論 0 0
  • 法國隊在左,德國隊在右,中間隔著一個意大利裁判的距離——本屆歐洲杯復(fù)仇大戲終于到了該了結(jié)的時候。 手球!點球!德國...
    諸葛不亮008閱讀 314評論 0 0
  • 我?guī)缀跻呀?jīng)忘了你從哪里來,我們是怎么認識的。 那天我們看完電影,走過商店,到科技館看了最新的戰(zhàn)隊成果,你笑著,我抱...
    游之龍閱讀 293評論 0 0
  • 特戰(zhàn)一連 五班 正式組建 魏建昕:兩位班長之一,剛到宿舍我看資料他的年齡最大,問他能當(dāng)班長嗎,回答我能,在宿舍整理...
    阿政_閱讀 421評論 1 0
  • 今天是特技培訓(xùn)的第二天,最大的突破是后空翻和旋風(fēng)踢。不過,我感受最多的是這位外聘老教練的教學(xué)風(fēng)格!有境界! 他嘴里...
    龍航007閱讀 463評論 0 0

友情鏈接更多精彩內(nèi)容