當前位置:
首頁 > 最新 > 機器如何學習?5分鐘弄懂監督學習、無監督學習、半監督學習與強化學習

機器如何學習?5分鐘弄懂監督學習、無監督學習、半監督學習與強化學習

導讀:不知道你有沒有這樣的感受,想學點人工智慧,卻被一大堆名詞嚇壞? 想看點直白的說人話的簡單介紹,卻被各種繞來繞去的語言弄昏頭?

沒關係,本文就試圖以最簡單的語言,給你普及一下我們通常所說的人工智慧的四種方法,並通過有趣的例子,幫你建立一些直觀的感受,而且很容易讀懂,是一篇機器學習入門的不可多得的好文章。

同時,文章還包括相關的很多文章和論文,是個很不錯的資源包。請在微信對話中回復「機器學習」即可獲得本文涉及的論文資源包。

好了,5分鐘時間,輕鬆學習到底什麼是監督學習,無監督學習,半監督學習,以及強化學習,enjoy!

作者 Frank Chen

翻譯 智子

讀懂機器學習的四大方法

根據訓練方法的不同,機器學習可以分為四類:

監督學習

無監督學習

半監督學習

強化學習

本文會對各種學習方法給出一種非常直觀的解釋。

文中,我們也會為你介紹那些經常在論文中出現的名詞術語,還會給出不同的機器學習方法所對應的學習資源。

總的來說,本文的分類方法,既適用於傳統的機器學習,又適用於新出現的深度學習。

對於數學相關的問題,可以看看斯坦福大學的深度學習教程,它涵蓋了監督學習和無監督學習,且附有代碼實例。

斯坦福大學的深度學習教程(吳恩達等人撰寫)

http://ufldl.stanford.edu/tutorial/

監督學習

監督學習是用正確答案已知的例子來訓練神經網路,也就是用標記過的數據。如果我們想設計一個系統——從相冊中找出包含你的父母的照片,基本的步驟如下:

第一步:數據的生成和分類

首先,需要將你所有的照片看一遍,記錄下來哪些照片上有你的父母。然後把照片分為兩組。第一組叫做訓練集,用來訓練神經網路。第二組叫做驗證集,用來檢驗訓練好的神經網路能否認出你的父母,正確率有多少。

之後,這些數據會作為神經網路的輸入,得到一些輸出。用數學語言表示就是:找到一個函數,該函數的輸入是一幅照片。當照片上有你的父母的時候,輸出為1;沒有的時候,輸出為0。

這種問題通常叫做分類。因為這個例子中,輸出只有兩個可能,是或者不是。

當然,監督學習的輸出也可以是任意值,而不僅僅是0或者1。舉另一個例子,我們的神經網路可以預測一個人還信用卡的概率。這個概率可以是0到100的任意一個數字。這種問題通常叫做回歸。

第二步:訓練

在進行訓練這一步時,每一幅圖像都會作為神經網路的輸入,根據一定的規則(激活函數),決定某個神經元的輸出,進而得到某一層的輸出。當計算完所有神經元的時候,最後得到了最右邊的神經元(輸出節點)的輸出,是0還是1。

上一步中,我們已對照片上是否有你父母做過標記。這樣,我們就能知道神經網路所預測的結果是否正確,並把這一信息反饋回神經網路。

這裡所反饋的,是成本函數的計算結果,即神經網路計算結果與實際情況的偏差。這個函數也叫做目標函數、效用函數或者適應度函數。這一結果用來調整神經元的權重和偏差,這就是BP演算法,即反向傳播演算法,因為該信息是從後向前傳遞的。

剛才針對的是一個照片。你需要對每張照片不斷重複這個過程。每個過程中都要最小化成本函數。

BP演算法有很多實現方法,最常用還是梯度遞減的方法。

Algobeans 非常通俗易懂的解釋了這個方法。Michael Nielsen 在此基礎上,加上了積分和線性代數,也給出了形象生動的演示。

神經網路入門

https://algobeans.com/2016/11/03/artificial-neural-networks-intro2/

反向傳播演算法原理

http://neuralnetworksanddeeplearning.com/chap2.html

第三步:驗證

至此,第一組中的數據已經全部用完。接下來我們會用第二組數據驗證訓練得到的模型的準確率。

優化模型的許多參數(超參)需要優化,因此導致第二步和第三步通常會交叉進行。常用的超參有神經網路有多少個神經元,有多少層神經元,哪個函數用來激活一個神經元(激活函數),用多快的速度來訓練網路(學習速率)等等。Quora 工程師主管的這一回復很好的解釋了這些超參。

Quora 工程師主管回復

https://www.quora.com/What-are-hyperparameters-in-machine-learning

第四步:應用

完成以上三步,模型就訓練好了。接下來,我們可以把模型融合到程序中。模型可以提供一個 API,例如 ParentsInPicture(photo)。當應用程序調用該 API 的時候,模型會計算得到結果,並返回給應用程序。

稍後,我們將用同樣的方法步驟,在 iPhone 上製作一個 APP,用來識別名片。

對數據集進行標記的成本是非常高的。因此,必須確保使用網路得到的收益比標記數據和訓練模型的消耗要更高。

舉例來說,在醫學領域,根據X光照片標記病人是否患有癌症成本是很高的,但能以極高的準確率來診斷病人是否患癌的系統則又非常有價值。

無監督學習

無監督學習 中使用的數據是沒有標記過的,即不知道輸入數據對應的輸出結果是什麼。無監督學習只能默默的讀取數據,自己尋找數據的模型和規律,比如聚類(把相似數據歸為一組)和異常檢測(尋找異常)。

假設你要生產T恤,卻不知道 XS、S、M、L 和 XL 的尺寸到底應該設計多大。你可以根據人們的體測數據,用聚類演算法把人們分到不同的組,從而決定尺碼的大小。

假如你是初創的安全相關公司的 CTO。你想從網路連接情況找到一些蛛絲馬跡:突然增大的數據流量可能意味著有快要離職的員工下載所有的 CRM 歷史數據,或者有人往新開賬戶裡面轉了一大筆錢。如果你對這類事情感興趣,可以參考無監督異常檢測演算法概覽:

無監督學習概覽

http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0152173

Google Brain 團隊的人想讓系統知道 YouTube 視頻裡面有什麼。他們所實現的 「YouTube 找貓演算法」重新激起了大眾對於人工智慧的熱情。他們的論文介紹了 Google Brain 同斯坦福大學的 Quoc Le 和吳恩達合作,開發出一個分類演算法,能夠把 YouTube 視頻分為很多不同的類,其中一類就是貓。他們並沒有為系統設置「找貓」的任務,也沒有提供任何標記數據,但是演算法能對 YouTube 視頻自動分組,並且找出了貓,當然還有 ImageNet 所定義的22000個類別中的數千個其他物體。

吳恩達「從 YouTube 視頻中找貓」的論文

https://arxiv.org/abs/1112.6209

更多的無監督學習技術可以從以下文獻找到:

自編碼機(Autoencoding)-http://ufldl.stanford.edu/tutorial/unsupervised/Autoencoders/

主成分分析(PCA)-https://www.quora.com/What-is-an-intuitive-explanation-for-PCA

隨機森林(Random forests)-https://en.wikipedia.org/wiki/Random_forest

K均值聚類(K-means clustering)-https://www.youtube.com/watch?v=RD0nNK51Fp8

更系統地學習無監督學習,可以用 Udacity 這門課程

https://www.udacity.com/course/machine-learning-unsupervised-learning--ud741

最有前景的無監督學習方法之一,是剛剛出現的生成式對抗網路。該方法由當時還在 Yoshua Bengio 實驗室工作的 Ian Goodfellow 提出。在該模型中有兩個相互對抗的神經網路組成。一個叫做生成器,負責生成真實數據的近似,企圖騙過另一個叫做判別器的網路。這個方法已經取得了優異的成果,比如從文本描述或者手繪素描中生成圖片,所生成的圖片跟照片一樣逼真。

Yann LeCun 談 GAN-https://www.quora.com/What-are-some-recent-and-potentially-upcoming-breakthroughs-in-deep-learning

從文本描述生成圖片的論文-https://arxiv.org/abs/1612.03242

從手繪素描生成圖片的論文-https://arxiv.org/abs/1611.07004v1

▍半監督學習

半監督學習訓練中使用的數據,只有一小部分是標記過的,而大部分是沒有標記的。因此和監督學習相比,半監督學習的成本較低,但是又能達到較高的準確度。舉例來說,我們在 AI 諮詢公司 Joostware 工作的朋友 Delip Rao,用半監督學習方法對每類只標記30個數據,和用監督學習對每個類標記1360個數據,取得了一樣的效果。並且這使得他們的客戶可以標記更多的類,從20個類迅速擴展到了110個類。

一個直觀的解釋為什麼無標記也能提高準確率:即使不知道正確的答案,但是可以知道輸入數據長什麼樣,有什麼可能的取值。

喜歡數學的可以讀讀朱曉進教授長達135頁的教程和他2008年那篇半監督學習縱覽。

半監督學習教程

http://pages.cs.wisc.edu/~jerryzhu/pub/sslicml07.pdf

半監督學習縱覽

http://pages.cs.wisc.edu/~jerryzhu/pub/ssl_survey.pdf

強化學習

強化學習也是使用未標記的數據,但是可以通過某種方法知道你是離正確答案越來越近還是越來越遠(即獎懲函數)。傳統的「冷熱遊戲」(hotter or colder,是美版捉迷藏遊戲 Huckle Buckle Beanstalk 的一個變種)很生動的解釋了這個概念。你的朋友會事先藏好一個東西,當你離這個東西越來越近的時候,你朋友就說熱,越來越遠的時候,你朋友會說冷。冷或者熱就是一個獎懲函數。半監督學習演算法就是最大化獎懲函數。可以把獎懲函數想像成正確答案的一個延遲的、稀疏的形式。

在監督學習中,能直接得到每個輸入的對應的輸出。強化學習中,訓練一段時間後,你才能得到一個延遲的反饋,並且只有一點提示說明你是離答案越來越遠還是越來越近。

DeepMind 在自然雜誌上發表了一篇論文 ,介紹了他們把強化學習和深度學習結合起來,讓神經網路學著玩各種雅達利(Atari)遊戲(就是各種街機遊戲),一些遊戲如打磚塊(breakout)非常成功,但是另一些遊戲比如蒙特祖瑪的復仇,就表現的很糟糕。

DeepMind 強化學習論文(https://deepmind.com/blog/deep-reinforcement-learning/ Nervana),團隊(已被英特爾收購)的博客有兩篇文章非常棒,把強化學習的技術細節講解清楚了。

Nervana 強化學習博文:

I-https://www.nervanasys.com/demystifying-deep-reinforcement-learning/

II-https://www.nervanasys.com/deep-reinforcement-learning-with-neon/

斯坦福大學的學生 Russell Kaplan、Christopher Sauer 和 Alexander Sosa 論述了強化學習的存在的問題,並給出了很聰明的解決方案。

DeepMind 的論文介紹了沒有成功利用強學習玩蒙特祖瑪的復仇。按照三個人的說法是因為強化學習只能給出很少的提示,即稀疏的延遲。如果沒有足夠多的「冷熱」的提示,很難找到被藏起來的鑰匙。斯坦福的學生們通過讓系統理解和執行自然語言的提示,比如「爬樓梯」,「拿鑰匙」等,在 OpenAI 大賽中獲得了冠軍,其視頻如下:

此外,使用強化學習來玩超級馬里奧的視頻如下:

還寫了一本關於強化學習的書,第二版的手稿你現在就能看到。

關於強化學習的書

http://incompleteideas.net/sutton/book/the-book-1st.html

https://hackernoon.com/ways-in-which-machines-learn-b1824464dd5f

課程結合實例介紹使用TensorFlow開發機器學習應用的詳細方法和步驟,著重講解了用於圖像識別的卷積神經網路和用於自然語言處理的循環神經網路的理論知識及其TensorFlow實現方法,並結合實際場景和例子描述了深度學習技術的應用範圍與效果。 所有案例均來自講師團隊工作中的親身實踐,所選案例均是深度學習的經典應用,非常具有代表性。

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

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


請您繼續閱讀更多來自 AI100 的精彩文章:

敗1/4子是刻意設定?蔣濤講解AlphaGo2.0如何進化

TAG:AI100 |

您可能感興趣

機器學習之監督和無監督學習
機器學習三兄弟概念大揭秘:「監督學習」「非監督學習」「強化學習」
學習學習再學習
學習,學習,再學習
人工智慧、機器學習和深度學習
看圖學機器學習
人工智慧之機器學習篇——強化學習
無監督學習新研究簡單的圖像旋轉預測,為特徵學習提供強監督信號
機器學習1:什麼是機器學習?
學會如何學習
谷歌大腦:基於元學習的無監督學習更新規則
機器學習入門——使用python進行監督學習
數學—機器學習先驗知識
科學學習如何指導教育實踐?
學習筆記:人工智慧基礎-機器學習
當前最好的詞句嵌入技術概覽:從無監督學習轉向監督、多任務學習
機器學習中無監督與有監督的七大區別
席學易院長談如何學習和學會命理
無監督學習最新研究:通過圖像旋轉預測為特徵學習提供監督信號
學界 | 結合主動學習與遷移學習:讓醫學圖像標註工作量減少一半