您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

深入了解關(guān)于深度學(xué)習(xí)的四種方式

大小:0.48 MB 人氣: 2017-09-29 需要積分:1

  

  一般說(shuō)來(lái),訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)的方式主要有四種:監(jiān)督、無(wú)監(jiān)督、半監(jiān)督和強(qiáng)化學(xué)習(xí)。在接下來(lái)的文章中,機(jī)器人圈將逐個(gè)解釋這些方法背后所蘊(yùn)含的理論知識(shí)。除此之外,機(jī)器人圈將分享文獻(xiàn)中經(jīng)常碰到的術(shù)語(yǔ),并提供與數(shù)學(xué)相關(guān)的更多資源。本文編譯自硅谷著名的風(fēng)險(xiǎn)投資機(jī)構(gòu)安德森?霍洛維茨基金,作者是Frank Chen。有關(guān)數(shù)學(xué)相關(guān)問(wèn)題,請(qǐng)參閱這個(gè)斯坦福大學(xué)的教程,其中包含監(jiān)督和無(wú)監(jiān)督學(xué)習(xí),內(nèi)含代碼示例。

  監(jiān)督學(xué)習(xí)

  監(jiān)督學(xué)習(xí)是使用已知正確答案的示例來(lái)訓(xùn)練網(wǎng)絡(luò)的。想象一下,我們可以訓(xùn)練一個(gè)網(wǎng)絡(luò),讓其從照片庫(kù)中(其中包含你父母的照片)識(shí)別出你父母的照片。以下就是我們?cè)谶@個(gè)假設(shè)場(chǎng)景中所要采取的步驟。

  步驟1:數(shù)據(jù)集的創(chuàng)建和分類(lèi)

  首先,我們要瀏覽你的照片(數(shù)據(jù)集),確定所有有你父母的照片,并對(duì)其進(jìn)行標(biāo)注,從而開(kāi)始此過(guò)程。然后我們將把整堆照片分成兩堆。我們將使用第一堆來(lái)訓(xùn)練網(wǎng)絡(luò)(訓(xùn)練數(shù)據(jù)),而通過(guò)第二堆來(lái)查看模型在選擇我們父母照片操作上的準(zhǔn)確程度(驗(yàn)證數(shù)據(jù))。

  等到數(shù)據(jù)集準(zhǔn)備就緒后,我們就會(huì)將照片提供給模型。在數(shù)學(xué)上,我們的目標(biāo)就是在深度網(wǎng)絡(luò)中找到一個(gè)函數(shù),這個(gè)函數(shù)的輸入是一張照片,而當(dāng)你的父母不在照片中時(shí),其輸出為0,否則輸出為1。

  此步驟通常稱(chēng)為分類(lèi)任務(wù)(categorization task)。在這種情況下,我們進(jìn)行的通常是一個(gè)結(jié)果為yes or no的訓(xùn)練,但事實(shí)是,監(jiān)督學(xué)習(xí)也可以用于輸出一組值,而不僅僅是0或1。例如,我們可以訓(xùn)練一個(gè)網(wǎng)絡(luò),用它來(lái)輸出一個(gè)人償還信用卡貸款的概率,那么在這種情況下,輸出值就是0到100之間的任意值。這些任務(wù)我們稱(chēng)之為回歸。

  步驟2:訓(xùn)練

  為了繼續(xù)該過(guò)程,模型可通過(guò)以下規(guī)則(激活函數(shù))對(duì)每張照片進(jìn)行預(yù)測(cè),從而決定是否點(diǎn)亮工作中的特定節(jié)點(diǎn)。這個(gè)模型每次從左到右在一個(gè)層上操作——現(xiàn)在我們將更復(fù)雜的網(wǎng)絡(luò)忽略掉。當(dāng)網(wǎng)絡(luò)為網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)計(jì)算好這一點(diǎn)后,我們將到達(dá)亮起(或未亮起)的最右邊的節(jié)點(diǎn)(輸出節(jié)點(diǎn))。

  既然我們已經(jīng)知道有你父母的照片是哪些圖片,那么我們就可以告訴模型它的預(yù)測(cè)是對(duì)還是錯(cuò)。然后我們會(huì)將這些信息反饋(feed back)給網(wǎng)絡(luò)。

  該算法使用的這種反饋,就是一個(gè)量化“真實(shí)答案與模型預(yù)測(cè)有多少偏差”的函數(shù)的結(jié)果。這個(gè)函數(shù)被稱(chēng)為成本函數(shù)(cost function),也稱(chēng)為目標(biāo)函數(shù)(objective function),效用函數(shù)(utility function)或適應(yīng)度函數(shù)(fitness function)。然后,該函數(shù)的結(jié)果用于修改一個(gè)稱(chēng)為反向傳播(backpropagation)過(guò)程中節(jié)點(diǎn)之間的連接強(qiáng)度和偏差,因?yàn)樾畔慕Y(jié)果節(jié)點(diǎn)“向后”傳播。

  我們會(huì)為每個(gè)圖片都重復(fù)一遍此操作,而在每種情況下,算法都在盡量最小化成本函數(shù)。

  其實(shí),我們有多種數(shù)學(xué)技術(shù)可以用來(lái)驗(yàn)證這個(gè)模型是正確還是錯(cuò)誤的,但我們常用的是一個(gè)非常常見(jiàn)的方法,我們稱(chēng)之為梯度下降(gradient descent)。Algobeans上有一個(gè) “門(mén)外漢”理論可以很好地解釋它是如何工作的。邁克爾?尼爾森(Michael Nielsen)用數(shù)學(xué)知識(shí)完善了這個(gè)方法,其中包括微積分和線性代數(shù)。

  步驟3:驗(yàn)證

  一旦我們處理了第一個(gè)堆棧中的所有照片,我們就應(yīng)該準(zhǔn)備去測(cè)試該模型。我們應(yīng)充分利用好第二堆照片,并使用它們來(lái)驗(yàn)證訓(xùn)練有素的模型是否可以準(zhǔn)確地挑選出含有你父母在內(nèi)的照片。

  我們通常會(huì)通過(guò)調(diào)整和模型相關(guān)的各種事物(超參數(shù))來(lái)重復(fù)步驟2和3,諸如里面有多少個(gè)節(jié)點(diǎn),有多少層,哪些數(shù)學(xué)函數(shù)用于決定節(jié)點(diǎn)是否亮起,如何在反向傳播階段積極有效地訓(xùn)練權(quán)值,等等。而你可以通過(guò)瀏覽Quora上的相關(guān)介紹來(lái)理解這一點(diǎn),它會(huì)給你一個(gè)很好的解釋。

  步驟4:使用

  最后,一旦你有了一個(gè)準(zhǔn)確的模型,你就可以將該模型部署到你的應(yīng)用程序中。你可以將模型定義為API調(diào)用,例如ParentsInPicture(photo),并且你可以從軟件中調(diào)用該方法,從而導(dǎo)致模型進(jìn)行推理并給出相應(yīng)的結(jié)果。

  稍后我們將詳細(xì)介紹一下這個(gè)確切的過(guò)程,編寫(xiě)一個(gè)識(shí)別名片的iPhone應(yīng)用程序。

  得到一個(gè)標(biāo)注好的數(shù)據(jù)集可能會(huì)很難(也就是很昂貴),所以你需要確保預(yù)測(cè)的價(jià)值能夠證明獲得標(biāo)記數(shù)據(jù)的成本是值得的,并且我們首先要對(duì)模型進(jìn)行訓(xùn)練。例如,獲得可能患有癌癥的人的標(biāo)簽X射線是非常昂貴的,但是獲得產(chǎn)生少量假陽(yáng)性和少量假陰性的準(zhǔn)確模型的值,這種可能性顯然是非常高的。

  無(wú)監(jiān)督學(xué)習(xí)(Unsupervised Learning)

  無(wú)監(jiān)督學(xué)習(xí)適用于你具有數(shù)據(jù)集但無(wú)標(biāo)簽的情況。無(wú)監(jiān)督學(xué)習(xí)采用輸入集,并嘗試查找數(shù)據(jù)中的模式。比如,將其組織成群(聚類(lèi))或查找異常值(異常檢測(cè))。例如:

  想像一下,如果你是一個(gè)T恤制造商,擁有一堆人的身體測(cè)量值。那么你可能就會(huì)想要有一個(gè)聚類(lèi)算法,以便將這些測(cè)量組合成一組集群,從而決定你生產(chǎn)的XS,S,M,L和XL號(hào)襯衫該有多大。

  如果你是一家安全初創(chuàng)企業(yè)的首席技術(shù)官(CTO),你希望找出計(jì)算機(jī)之間網(wǎng)絡(luò)連接歷史中的異常:網(wǎng)絡(luò)流量看起來(lái)不正常,這可能會(huì)幫助你通過(guò)下載員工們的所有CRM歷史記錄來(lái)找到那名該為此事負(fù)責(zé)的員工,因?yàn)樗麄兛赡芗磳⑼顺龌蛴腥苏趯惓4罅康腻X(qián)轉(zhuǎn)移到一個(gè)新的銀行賬戶(hù)。如果你對(duì)這種事情感興趣的話,那么我相信你會(huì)很喜歡這種對(duì)無(wú)監(jiān)督異常檢測(cè)算法的調(diào)查。

  假設(shè)一下,你是Google Brain團(tuán)隊(duì)中的一員,你想知道YouTube視頻中有什么。 谷歌通過(guò)人工智能在視頻網(wǎng)站中找到貓的真實(shí)故事,喚起了大眾對(duì)AI的熱忱。在諸如這篇論文中,Google Brain團(tuán)隊(duì)與斯坦福大學(xué)研究人員Quoc Le和吳恩達(dá)一起描述了一種將YouTube視頻分為多種類(lèi)別的算法,其中一種包含了貓的類(lèi)別。當(dāng)然他們并沒(méi)有真正開(kāi)始尋找貓,但算法自動(dòng)將包含貓的視頻(以及ImageNet中定義的22000個(gè)對(duì)象類(lèi)別中的數(shù)千個(gè)其他對(duì)象)組合在一起,而不需要任何明確的訓(xùn)練數(shù)據(jù)。

  你將在文獻(xiàn)中閱讀到的一些無(wú)監(jiān)督的學(xué)習(xí)技術(shù)包括:

  自編碼(Autoencoding)

  主成分分析(Principal components analysis)

  隨機(jī)森林(Random forests)

  K均值聚類(lèi)(K-means clustering)

  如果你想要了解有關(guān)無(wú)監(jiān)督學(xué)習(xí)的更多信息,可以觀看Udacity的課程。

  無(wú)監(jiān)督學(xué)習(xí)中最有前景的最新發(fā)展之一是Ian Goodfellow(當(dāng)時(shí)在Yoshua Bengio的實(shí)驗(yàn)室工作時(shí)提出)的一個(gè)想法,稱(chēng)為“生成對(duì)抗網(wǎng)絡(luò)(generative adversarial networks)”,其中我們將兩個(gè)神經(jīng)網(wǎng)絡(luò)相互聯(lián)系:一個(gè)網(wǎng)絡(luò),我們稱(chēng)之為生成器,負(fù)責(zé)生成旨在嘗試欺騙另一個(gè)網(wǎng)絡(luò)的數(shù)據(jù),而這個(gè)網(wǎng)絡(luò),我們稱(chēng)為鑒別器。這種方法實(shí)現(xiàn)了一些令人驚奇的結(jié)果,例如可以從文本字符串或手繪草圖生成如照片版逼真圖片的AI技術(shù)

  半監(jiān)督學(xué)習(xí)(Semi-supervised Learning)

  半監(jiān)督學(xué)習(xí)在訓(xùn)練階段結(jié)合了大量未標(biāo)記的數(shù)據(jù)和少量標(biāo)簽數(shù)據(jù)。與使用所有標(biāo)簽數(shù)據(jù)的模型相比,使用訓(xùn)練集的訓(xùn)練模型在訓(xùn)練時(shí)可以更為準(zhǔn)確,而且訓(xùn)練成本更低。舉個(gè)例子來(lái)說(shuō)明,我們的朋友Delip Rao在AI咨詢(xún)公司Joostware工作,他構(gòu)建了一個(gè)使用半監(jiān)督學(xué)習(xí)的解決方案,每個(gè)類(lèi)中只需使用30個(gè)標(biāo)簽,就可以達(dá)到與使用監(jiān)督學(xué)習(xí)訓(xùn)練的模型相同的準(zhǔn)確度,而在這個(gè)監(jiān)督學(xué)習(xí)模型中,每個(gè)類(lèi)中需要1360個(gè)左右的標(biāo)簽。因此,這個(gè)半監(jiān)督學(xué)習(xí)方案使得他們的客戶(hù)能夠非常快地將其預(yù)測(cè)功能從20個(gè)類(lèi)別擴(kuò)展到110個(gè)類(lèi)別。

  為什么使用未標(biāo)記數(shù)據(jù)有時(shí)可以幫助模型更準(zhǔn)確,關(guān)于這一點(diǎn)的體會(huì)就是:即使你不知道答案,但你也可以通過(guò)學(xué)習(xí)來(lái)知曉,有關(guān)可能的值是多少以及特定值出現(xiàn)的頻率。

  數(shù)學(xué)愛(ài)好者的福利:如果你對(duì)半監(jiān)督學(xué)習(xí)很感興趣的話,可以來(lái)閱讀這個(gè)朱小津教授的幻燈片教程和2008年回顧的文獻(xiàn)隨筆文章。

  強(qiáng)化學(xué)習(xí)(Reinforcement Learning)

  強(qiáng)化學(xué)習(xí)是針對(duì)你再次沒(méi)有標(biāo)注數(shù)據(jù)集的情況而言的,但你還是有辦法來(lái)區(qū)分是否越來(lái)越接近目標(biāo)(回報(bào)函數(shù)(reward function))。經(jīng)典的兒童游戲——“hotter or colder”。(Huckle Buckle Beanstalk的一個(gè)變體)是這個(gè)概念的一個(gè)很好的例證。你的任務(wù)是找到一個(gè)隱藏的目標(biāo)物件,然后你的朋友會(huì)喊出你是否越來(lái)越hotter(更接近)或colder(遠(yuǎn)離)目標(biāo)物件?!癏otter/colder”就是回報(bào)函數(shù),而算法的目標(biāo)就是最大化回報(bào)函數(shù)。你可以把回報(bào)函數(shù)當(dāng)做是一種延遲和稀疏的標(biāo)簽數(shù)據(jù)形式:而不是在每個(gè)數(shù)據(jù)點(diǎn)中獲得特定的“right/wrong”答案,你會(huì)得到一個(gè)延遲的反應(yīng),而它只會(huì)提示你是否在朝著目標(biāo)方向前進(jìn)。

  DeepMind在Nature上發(fā)表了一篇文章,描述了一個(gè)將強(qiáng)化學(xué)習(xí)與深度學(xué)習(xí)結(jié)合起來(lái)的系統(tǒng),該系統(tǒng)學(xué)會(huì)該如何去玩一套Atari視頻游戲,一些取得了巨大成功(如Breakout),而另一些就沒(méi)那么幸運(yùn)了(如Montezuma’s Revenge(蒙特祖瑪?shù)膹?fù)仇))。

  Nervana團(tuán)隊(duì)(現(xiàn)在在英特爾)發(fā)表了一個(gè)很好的解惑性博客文章,對(duì)這些技術(shù)進(jìn)行了詳細(xì)介紹,大家有興趣可以閱讀一番。

  Russell Kaplan,Christopher Sauer和Alexander Sosa舉辦的一個(gè)非常有創(chuàng)意的斯坦福學(xué)生項(xiàng)目說(shuō)明了強(qiáng)化學(xué)習(xí)的挑戰(zhàn)之一,并提出了一個(gè)聰明的解決方案。正如你在DeepMind論文中看到的那樣,算法未能學(xué)習(xí)如何去玩Montezuma’s Revenge。其原因是什么呢?正如斯坦福大學(xué)生所描述的那樣,“在稀缺回報(bào)函數(shù)的環(huán)境中,強(qiáng)化學(xué)習(xí)agent仍然在努力學(xué)習(xí)”。當(dāng)你沒(méi)有得到足夠的“hotter”或者“colder”的提示時(shí),你是很難找到隱藏的“鑰匙”的。斯坦福大學(xué)的學(xué)生基礎(chǔ)性地教導(dǎo)系統(tǒng)去了解和回應(yīng)自然語(yǔ)言提示,例如“climb down the ladder”或“get the key”,從而使該系統(tǒng)成為OpenAI gym中的最高評(píng)分算法??梢渣c(diǎn)擊算法視頻觀看算法演示。

  觀看這個(gè)關(guān)于強(qiáng)化學(xué)習(xí)的算法,好好學(xué)習(xí),然后像一個(gè)大boss一樣去玩超級(jí)馬里奧吧。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?