數據嗨客 | 第1期:5分鐘包你看懂「機器學習」

和大數據一樣,機器學習(MachineLearning, ML)是一個熱門而又有略有誤導性的名詞。

字面上它讓不禁讓人聯想到一群機器人排排坐上自習的科幻場景,然而實際上它指的是讓計算機具備像人一樣的學習能力的高(qi)端(ji)技(yin)術(qiao),進而從堆積如山的數據中尋找出有用的知識。

聽起來有些不可思議,真的有這種黑科技嗎?

計算機的正確打開方式難道不是餵給它一串命令,然後愉快地看它乖乖執行么?

除了0和1啥也不認識的獃獃計算機,怎麼還能像人類一樣「學習」了呢?

嘿嘿,這個還真可以有。別急,且容我慢慢道來。

在討論計算機如何學習之前,不妨先來看看我們人類是如何學習的。

人類的學習按邏輯順序可分為三個階段:輸入,整合,輸出。大家都多多少少學過英語,我就拿學英語來舉例好了。

在入門時我們都逃不出背單詞的苦海,不積累一定的辭彙量後續學習都無從談起,這是輸入階段。

然而很快我們就會發現,即使背完一本牛津大辭典也是沒法和歪果仁愉快交流的。

我們必須學習語法,學習一些約定俗成的習慣用語,才能知道如何把單片語合成地道的句子,這便是整合階段。

最後,有辭彙量作基石,又有了語法規律作為架構,我們就能在特定場合用英文來表達自己的想法。

這是輸出階段,也正是我們學習英文的初衷。

學習其他東西也是一樣,概括來說,都要經歷從積累經驗到總結規律,最終靈活運用這三個階段。

對此,我們完全可以對人類的學習給出如下定義:

人類的學習是一個人根據過往的經驗,對一類問題形成某種認識或總結出一定的規律,然後利用這些知識來對新的問題下判斷的過程。

毫不誇張地說,學習能力絕對是人類打猩猩時代起憋出的大招,在它的幫助下人類一舉登頂食物鏈之巔。

之後經過了數千萬年的自然選擇,學習能力弱的要麼被環境淘汰要麼被同類坑害,都死絕了。

學習這套流程已深深寫入了我們的DNA里,一代比一代玩得溜。

故事到這裡似乎直指人類稱霸宇宙的happy ending了,然而我們還忽略了一件事,就是人類的腦容量和壽命畢竟有限。

即便聰明如愛因斯坦,發現相對論前前後後也要耗費數十年。即使再有更聰明的人出生,也得從1+1abc學起,達到愛因斯坦的水平小半輩子也過去了。

由於這個限制,縱使人類有超級的學習能力,還是很難讓現有知識爆炸性增長的。

幫助人類突破這個瓶頸的,正是計算機。

人類學習能力強,但記性差,反應慢,還容易壞。計算機雖呆,但容量大,計算快,還穩定。

怎樣融合這兩者的優勢呢?

顯然最簡單省事的方法就是手把手教會計算機學習了~(是誰說不如植入晶元讓人腦變電腦的,你出來,我保證不拿你去做實驗(微笑臉))

那麼,應該怎樣教會計算機學習呢?

人類可以從自己獲得的經驗中學習知識,然而計算機沒法讀書萬卷也做不到閱人無數,只能從我們投餵給它的數據中學習規律了。

我們當然希望計算機學到規律之後立馬智商爆表,分分鐘就能自己用新知識獨當一面啦。

不難想像,一旦這個設想成為現實,計算機就能以類似人類的方式解決很多複雜而多變的問題。

計算機解決問題與人類思考的經驗過程將會趨同,不過它能考慮更多的情況,執行更加複雜的計算,從而產生及其可觀的效益。

那麼問題來了,怎麼指導計算機從數據中總結規律呢?

幾十年來,很多計算機科學和應用數學界的學者們總結出了不少教會計算機的辦法,它們就是各式各樣的機器學習演算法。它們是數據科學家們胯下的挖掘機,擔負著將海量數據化腐朽為神奇的使命。

至此,我們終於可以對機器學習下這樣一個定義了:

機器學習是指用某些演算法指導計算機利用已知數據得出適當的模型,並利用此模型對新的情境給出判斷的過程。

由此看來,機器學習的思想並不複雜,它僅僅是對人類生活中學習過程的一個模擬。

而在這整個過程中,最關鍵的是數據,是數據,是數據!重要的事情說三遍。

如果說模型是我們希望造出來的火箭,那數據就是它的燃料。

數據量直接決定了我們的火箭只是個概念玩具,還是能夠載人登月,還是可以飛出太陽系探尋智慧生物。

這也是機器學習和大數據是如此密不可分的原因。不得不說在這一點上計算機是遠遠比不上人腦的。

人類學習能力的可怕之處在於,能夠通過極其有限的樣本歸納出泛化能力極高的準則。

要知道,AlphaGo經過和自己左右互搏數千萬局才達到現今的棋力,而和他不相上下的李世石,窮其一生打譜恐怕也到不了這個數目的百分之一。

正所謂「No data,no intelligence」。事實上,只要數據量足夠大,機器學習演算法的選擇反倒沒有那麼重要了。

打個比方的話,數據和演算法之於計算機好比閱歷和智商之於人類。豐富的閱歷所帶來的智慧,自然不是靠一點小聰明就能駕馭得了的啦。

AlphaGo就是一個智商20棋齡10000年的老妖精,打敗李世石主要靠的是經驗。

機器學習根據所處理數據種類的不同,可以分為有監督學習,無監督學習,半監督學習和強化學習等幾種類型。

實踐中應用較多的也就是前兩種。

所謂監督學習,就是說數據樣本會告訴計算機在該情形下的正確輸出結果,希望計算機能夠在面對沒有見過的輸入樣本時也給出靠譜的輸出結果,從而達到預測未知的目的。

就像一個學生通過做多套高考模擬卷並訂正答案的方式來提高高考成績。

在這種情形下,數據就像是監督計算機進行學習的教師,故而得名。

根據輸出結果是離散值還是連續值,監督學習可以分為分類問題和回歸問題兩大類。

他們在文字、語音、圖像識別,垃圾郵件分類與攔截,網頁檢索,股票預測等方面有著廣泛應用。

而無監督學習,是指數據樣本中沒有給出正確的輸出結果信息。這就像做了好多套沒有答案的模擬卷,最後還要去高考。

聽上去是不是既驚悚又不靠譜?

但其實做沒有答案的試卷也是能學到很多有價值的信息的,比方說哪些題出現頻率高,那些題愛扎堆考,等等。

無監督學習希望從數據中挖掘的正是這一類信息,常見的例子有聚類,關聯規則挖掘,離群點檢測等等。

看到這裡,親們對機器學習的來龍去脈是不是有一些了解了呢?歡迎關注普林大數據學院「機器學習」科普系列連載。我們將在下一期介紹線性回歸。

本文由 普林科技(微信公眾號:普林科技) 投稿 數據分析網 發表,並經數據分析網編輯。版權歸作者所有,轉載此文請與作者聯繫。

推薦閱讀:

互動式文檔簡介
乾貨教程|可能是最方便好用的文字雲工具
什麼水平?使用 R 語言從拉勾網看數據挖掘崗位現狀
PDNS數據驅動DGA分析
數據挖掘|K-means聚類

TAG:机器学习 | 数据挖掘 | 大数据 |