當前位置:
首頁 > 科技 > 一文讀懂監督學習、無監督學習、半監督學習、強化學習四種方式

一文讀懂監督學習、無監督學習、半監督學習、強化學習四種方式

GIF/1.7M

圖:pixabay

「機器人圈」導覽:一般說來,訓練深度學習網路的方式主要有四種:監督、無監督、半監督和強化學習。在接下來的文章中,機器人圈將逐個解釋這些方法背後所蘊含的理論知識。除此之外,機器人圈將分享文獻中經常碰到的術語,並提供與數學相關的更多資源。本文編譯自矽谷著名的風險投資機構安德森?霍洛維茨基金,作者是Frank Chen。有關數學相關問題,請參閱這個斯坦福大學的教程,其中包含監督和無監督學習,內含代碼示例。

監督學習(Supervised Learning)

監督學習是使用已知正確答案的示例來訓練網路的。想像一下,我們可以訓練一個網路,讓其從照片庫中(其中包含你父母的照片)識別出你父母的照片。以下就是我們在這個假設場景中所要採取的步驟。

步驟1:數據集的創建和分類

首先,我們要瀏覽你的照片(數據集),確定所有有你父母的照片,並對其進行標註,從而開始此過程。然後我們將把整堆照片分成兩堆。我們將使用第一堆來訓練網路(訓練數據),而通過第二堆來查看模型在選擇我們父母照片操作上的準確程度(驗證數據)。

等到數據集準備就緒後,我們就會將照片提供給模型。在數學上,我們的目標就是在深度網路中找到一個函數,這個函數的輸入是一張照片,而當你的父母不在照片中時,其輸出為0,否則輸出為1。

此步驟通常稱為分類任務(categorization task)。在這種情況下,我們進行的通常是一個結果為yes or no的訓練,但事實是,監督學習也可以用於輸出一組值,而不僅僅是0或1。例如,我們可以訓練一個網路,用它來輸出一個人償還信用卡貸款的概率,那麼在這種情況下,輸出值就是0到100之間的任意值。這些任務我們稱之為回歸。

步驟2:訓練

為了繼續該過程,模型可通過以下規則(激活函數)對每張照片進行預測,從而決定是否點亮工作中的特定節點。這個模型每次從左到右在一個層上操作——現在我們將更複雜的網路忽略掉。當網路為網路中的每個節點計算好這一點後,我們將到達亮起(或未亮起)的最右邊的節點(輸出節點)。

既然我們已經知道有你父母的照片是哪些圖片,那麼我們就可以告訴模型它的預測是對還是錯。然後我們會將這些信息反饋(feed back)給網路。

該演算法使用的這種反饋,就是一個量化「真實答案與模型預測有多少偏差」的函數的結果。這個函數被稱為成本函數(cost function),也稱為目標函數(objective function),效用函數(utility function)或適應度函數(fitness function)。然後,該函數的結果用於修改一個稱為反向傳播(backpropagation)過程中節點之間的連接強度和偏差,因為信息從結果節點「向後」傳播。

我們會為每個圖片都重複一遍此操作,而在每種情況下,演算法都在盡量最小化成本函數。

其實,我們有多種數學技術可以用來驗證這個模型是正確還是錯誤的,但我們常用的是一個非常常見的方法,我們稱之為梯度下降(gradient descent)。Algobeans上有一個 「門外漢」理論可以很好地解釋它是如何工作的。邁克爾?尼爾森(Michael Nielsen)用數學知識完善了這個方法,其中包括微積分和線性代數。

步驟3:驗證

一旦我們處理了第一個堆棧中的所有照片,我們就應該準備去測試該模型。我們應充分利用好第二堆照片,並使用它們來驗證訓練有素的模型是否可以準確地挑選出含有你父母在內的照片。

我們通常會通過調整和模型相關的各種事物(超參數)來重複步驟2和3,諸如裡面有多少個節點,有多少層,哪些數學函數用於決定節點是否亮起,如何在反向傳播階段積極有效地訓練權值,等等。而你可以通過瀏覽Quora上的相關介紹來理解這一點,它會給你一個很好的解釋。

步驟4:使用

最後,一旦你有了一個準確的模型,你就可以將該模型部署到你的應用程序中。你可以將模型定義為API調用,例如ParentsInPicture(photo),並且你可以從軟體中調用該方法,從而導致模型進行推理並給出相應的結果。

稍後我們將詳細介紹一下這個確切的過程,編寫一個識別名片的iPhone應用程序。

得到一個標註好的數據集可能會很難(也就是很昂貴),所以你需要確保預測的價值能夠證明獲得標記數據的成本是值得的,並且我們首先要對模型進行訓練。例如,獲得可能患有癌症的人的標籤X射線是非常昂貴的,但是獲得產生少量假陽性和少量假陰性的準確模型的值,這種可能性顯然是非常高的。

無監督學習(Unsupervised Learning)

無監督學習適用於你具有數據集但無標籤的情況。無監督學習採用輸入集,並嘗試查找數據中的模式。比如,將其組織成群(聚類)或查找異常值(異常檢測)。例如:

?想像一下,如果你是一個T恤製造商,擁有一堆人的身體測量值。那麼你可能就會想要有一個聚類演算法,以便將這些測量組合成一組集群,從而決定你生產的XS,S,M,L和XL號襯衫該有多大。

?如果你是一家安全初創企業的首席技術官(CTO),你希望找出計算機之間網路連接歷史中的異常:網路流量看起來不正常,這可能會幫助你通過下載員工們的所有CRM歷史記錄來找到那名該為此事負責的員工,因為他們可能即將退出或有人正在將異常大量的錢轉移到一個新的銀行賬戶。如果你對這種事情感興趣的話,那麼我相信你會很喜歡這種對無監督異常檢測演算法的調查。

?假設一下,你是Google Brain團隊中的一員,你想知道YouTube視頻中有什麼。 谷歌通過人工智慧在視頻網站中找到貓的真實故事,喚起了大眾對AI的熱忱。在諸如這篇論文中,Google Brain團隊與斯坦福大學研究人員Quoc Le和吳恩達一起描述了一種將YouTube視頻分為多種類別的演算法,其中一種包含了貓的類別。當然他們並沒有真正開始尋找貓,但演算法自動將包含貓的視頻(以及ImageNet中定義的22000個對象類別中的數千個其他對象)組合在一起,而不需要任何明確的訓練數據。

你將在文獻中閱讀到的一些無監督的學習技術包括:

?自編碼(Autoencoding)

?主成分分析(Principal components analysis)

?隨機森林(Random forests)

?K均值聚類(K-means clustering)

如果你想要了解有關無監督學習的更多信息,可以觀看Udacity的課程。

無監督學習中最有前景的最新發展之一是Ian Goodfellow(當時在Yoshua Bengio的實驗室工作時提出)的一個想法,稱為「生成對抗網路(generative adversarial networks)」,其中我們將兩個神經網路相互聯繫:一個網路,我們稱之為生成器,負責生成旨在嘗試欺騙另一個網路的數據,而這個網路,我們稱為鑒別器。這種方法實現了一些令人驚奇的結果,例如可以從文本字元串或手繪草圖生成如照片版逼真圖片的AI技術。

半監督學習(Semi-supervised Learning)

半監督學習在訓練階段結合了大量未標記的數據和少量標籤數據。與使用所有標籤數據的模型相比,使用訓練集的訓練模型在訓練時可以更為準確,而且訓練成本更低。舉個例子來說明,我們的朋友Delip Rao在AI諮詢公司Joostware工作,他構建了一個使用半監督學習的解決方案,每個類中只需使用30個標籤,就可以達到與使用監督學習訓練的模型相同的準確度,而在這個監督學習模型中,每個類中需要1360個左右的標籤。因此,這個半監督學習方案使得他們的客戶能夠非常快地將其預測功能從20個類別擴展到110個類別。

為什麼使用未標記數據有時可以幫助模型更準確,關於這一點的體會就是:即使你不知道答案,但你也可以通過學習來知曉,有關可能的值是多少以及特定值出現的頻率。

數學愛好者的福利:如果你對半監督學習很感興趣的話,可以來閱讀這個朱小津教授的幻燈片教程和2008年回顧的文獻隨筆文章。

強化學習(Reinforcement Learning)

強化學習是針對你再次沒有標註數據集的情況而言的,但你還是有辦法來區分是否越來越接近目標(回報函數(reward function))。經典的兒童遊戲——「hotter or colder」。(Huckle Buckle Beanstalk的一個變體)是這個概念的一個很好的例證。你的任務是找到一個隱藏的目標物件,然後你的朋友會喊出你是否越來越hotter(更接近)或colder(遠離)目標物件。「Hotter/colder」就是回報函數,而演算法的目標就是最大化回報函數。你可以把回報函數當做是一種延遲和稀疏的標籤數據形式:而不是在每個數據點中獲得特定的「right/wrong」答案,你會得到一個延遲的反應,而它只會提示你是否在朝著目標方向前進。

?DeepMind在Nature上發表了一篇文章,描述了一個將強化學習與深度學習結合起來的系統,該系統學會該如何去玩一套Atari視頻遊戲,一些取得了巨大成功(如Breakout),而另一些就沒那麼幸運了(如Montezuma』s Revenge(蒙特祖瑪的復仇))。

?Nervana團隊(現在在英特爾)發表了一個很好的解惑性博客文章,對這些技術進行了詳細介紹,大家有興趣可以閱讀一番。

?Russell Kaplan,Christopher Sauer和Alexander Sosa舉辦的一個非常有創意的斯坦福學生項目說明了強化學習的挑戰之一,並提出了一個聰明的解決方案。正如你在DeepMind論文中看到的那樣,演算法未能學習如何去玩Montezuma』s Revenge。其原因是什麼呢?正如斯坦福大學生所描述的那樣,「在稀缺回報函數的環境中,強化學習agent仍然在努力學習」。當你沒有得到足夠的「hotter」或者「colder」的提示時,你是很難找到隱藏的「鑰匙」的。斯坦福大學的學生基礎性地教導系統去了解和回應自然語言提示,例如「climb down the ladder」或「get the key」,從而使該系統成為OpenAI gym中的最高評分演算法。可以點擊演算法視頻觀看演算法演示。

?觀看這個關於強化學習的演算法,好好學習,然後像一個大boss一樣去玩超級馬里奧吧。

理查德?薩頓和安德魯?巴托寫了關於強化學習的書。你也可以點擊查看第二版草稿。

作者:Frank Chen

來源:https://hackernoon.com

最初發表於:Andreessen Horowitz』s AI Playbook


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器人圈 的精彩文章:

Facebook公布SGD,可在1小時內訓練ImageNet
新版Tensorflow 1.2RC0出爐,能get到哪些?
AI致教育:我以一場數學PK賽,贈你一份高考四十年紀念禮
如何在MNIST上構建和訓練條件生成式對抗網路?一文詳解!
看蘋果手把手教你如何將訓練模型轉換至Core ML

TAG:機器人圈 |

您可能感興趣

機器學習之監督和無監督學習
機器學習三兄弟概念大揭秘:「監督學習」「非監督學習」「強化學習」
無監督學習新研究簡單的圖像旋轉預測,為特徵學習提供強監督信號
學習學習再學習
谷歌大腦:基於元學習的無監督學習更新規則
無監督學習最新研究:通過圖像旋轉預測為特徵學習提供監督信號
當前最好的詞句嵌入技術概覽:從無監督學習轉向監督、多任務學習
淺談強化學習的方法及學習路線
學習,學習,再學習
機器學習中無監督與有監督的七大區別
科學學習如何指導教育實踐?
人工智慧、機器學習和深度學習
深度 | 當前最好的詞句嵌入技術概覽:從無監督學習轉向監督、多任務學習
學界 | 結合主動學習與遷移學習:讓醫學圖像標註工作量減少一半
何謂語文學習、語言學習?
乾貨|淺談強化學習的方法及學習路線
結合主動學習與遷移學習:讓醫學圖像標註工作量減少一半
學習理論與課程學習有關認識方法的總結
告別低效學習——內科學和外科學的學習與備考方法
學習乾貨 日語的學習