有趣的機器學習:最簡明入門指南

姓名:余玥 ? ? ? 學號:16010188033

轉(zhuǎn)載自http://blog.jobbole.com/67616/,有刪節(jié)

【嵌牛導讀】:機器學習專門研究計算機怎樣模擬或?qū)崿F(xiàn)人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結(jié)構(gòu)使之不斷改善自身的性能。它是人工智能的核心,是使計算機具有智能的根本途徑,其應用遍及人工智能的各個領域,它主要使用歸納、綜合而不是演繹。

【嵌牛鼻子】:機器學習

【嵌牛提問】:什么是機器學習?有哪兩類機器學習算法?機器學習法力無邊嗎?如何深入學習機器學習?

【嵌牛正文】:

何為機器學習?

機器學習這個概念認為,對于待解問題,你無需編寫任何專門的程序代碼,泛型算法(generic algorithms)能夠在數(shù)據(jù)集上為你得出有趣的答案。對于泛型算法,不用編碼,而是將數(shù)據(jù)輸入,它將在數(shù)據(jù)之上建立起它自己的邏輯。

舉個例子,有一類算法稱為分類算法,它可以將數(shù)據(jù)劃分為不同的組別。一個用來識別手寫數(shù)字的分類算法,不用修改一行代碼,就可以用來將電子郵件分為垃圾郵件和普通郵件。算法沒變,但是輸入的訓練數(shù)據(jù)變了,因此它得出了不同的分類邏輯。

機器學習算法是個黑盒,可以重用來解決很多不同的分類問題。

“機器學習”是一個涵蓋性術語,覆蓋了大量類似的泛型算法。

兩類機器學習算法

你可以認為機器學習算法分為兩大類:監(jiān)督式學習(Supervised Learning)監(jiān)督式學習(Unsupervised Learning)。兩者區(qū)別很簡單,但卻非常重要。

監(jiān)督式學習

假設你是一名房產(chǎn)經(jīng)紀,生意越做越大,因此你雇了一批實習生來幫你。但是問題來了——你可以看一眼房子就知道它到底值多少錢,實習生沒有經(jīng)驗,不知道如何估價。

為了幫助你的實習生(也許是為了解放你自己去度個假),你決定寫個小軟件,可以根據(jù)房屋大小、地段以及類似房屋的成交價等因素來評估你所在地區(qū)房屋的價值。

你把3個月來城里每筆房屋交易都寫了下來,每一單你都記錄了一長串的細節(jié)——臥室數(shù)量、房屋大小、地段等等。但最重要的是,你寫下了最終的成交價:

這是我們的“訓練數(shù)據(jù)”。

我們要利用這些訓練數(shù)據(jù)來編寫一個程序來估算該地區(qū)其他房屋的價值:

這就稱為監(jiān)督式學習。你已經(jīng)知道每一棟房屋的售價,換句話說,你知道問題的答案,并可以反向找出解題的邏輯。

為了編寫軟件,你將包含每一套房產(chǎn)的訓練數(shù)據(jù)輸入你的機器學習算法。算法嘗試找出應該使用何種運算來得出價格數(shù)字。

這就像是算術練習題,算式中的運算符號都被擦去了:

天哪!一個陰險的學生將老師答案上的算術符號全擦去了。

看了這些題,你能明白這些測驗里面是什么樣的數(shù)學問題嗎?你知道,你應該對算式左邊的數(shù)字“做些什么”以得出算式右邊的答案。

在監(jiān)督式學習中,你是讓計算機為你算出數(shù)字間的關系。而一旦你知道了解決這類特定問題所需要的數(shù)學方法后,你就可以解答同類的其它問題了。

非監(jiān)督式學習

讓我們回到開頭那個房地產(chǎn)經(jīng)紀的例子。要是你不知道每棟房子的售價怎么辦?即使你所知道的只是房屋的大小、位置等信息,你也可以搞出很酷的花樣。這就是所謂的非監(jiān)督式學習

即使你不是想去預測未知的數(shù)據(jù)(如價格),你也可以運用機器學習完成一些有意思的事。

這就有點像有人給你一張紙,上面列出了很多數(shù)字,然后對你說:“我不知道這些數(shù)字有什么意義,也許你能從中找出規(guī)律或是能將它們分類,或是其它什么-祝你好運!”

你該怎么處理這些數(shù)據(jù)呢?首先,你可以用個算法自動地從數(shù)據(jù)中劃分出不同的細分市場。也許你會發(fā)現(xiàn)大學附近的買房者喜歡戶型小但臥室多的房子,而郊區(qū)的買房者偏好三臥室的大戶型。這些信息可以直接幫助你的營銷。

你還可以作件很酷的事,自動找出房價的離群數(shù)據(jù),即與其它數(shù)據(jù)迥異的值。這些鶴立雞群的房產(chǎn)也許是高樓大廈,而你可以將最優(yōu)秀的推銷員集中在這些地區(qū),因為他們的傭金更高。

本文余下部分我們主要討論監(jiān)督式學習,但這并不是因為非監(jiān)督式學習用處不大或是索然無味。實際上,隨著算法改良,不用將數(shù)據(jù)和正確答案聯(lián)系在一起,因此非監(jiān)督式學習正變得越來越重要。

老學究請看:還有很多其它種類的機器學習算法。但初學時這樣理解不錯了。

太酷了,但是評估房價真能被看作“學習”嗎?

作為人類的一員,你的大腦可以應付絕大多數(shù)情況,并且沒有任何明確指令也能夠?qū)W習如何處理這些情況。如果你做房產(chǎn)經(jīng)紀時間很長,你對于房產(chǎn)的合適定價、它的最佳營銷方式以及哪些客戶會感興趣等等都會有一種本能般的“感覺”。強人工智能(Strong AI)研究的目標就是要能夠用計算機復制這種能力。

但是目前的機器學習算法還沒有那么好——它們只能專注于非常特定的、有限的問題。也許在這種情況下,“學習”更貼切的定義是“在少量范例數(shù)據(jù)的基礎上找出一個等式來解決特定的問題”。

不幸的是,“機器在少量范例數(shù)據(jù)的基礎上找出一個等式來解決特定的問題”這個名字太爛了。所以最后我們用“機器學習”取而代之。

當然,要是你是在50年之后來讀這篇文章,那時我們已經(jīng)得出了強人工智能算法,而本文看起來就像個老古董。未來的人類,你還是別讀了,叫你的機器仆人給你做份三明治吧。

讓我們寫代碼吧!

前面例子中評估房價的程序,你打算怎么寫呢?往下看之前,先思考一下吧。

如果你對機器學習一無所知,很有可能你會嘗試寫出一些基本規(guī)則來評估房價,如下:


假如你像這樣瞎忙幾個小時,也許會取得一點成效,但是你的程序永不會完美,而且當價格變化時很難維護。

如果能讓計算機找出實現(xiàn)上述函數(shù)功能的辦法,這樣豈不更好?只要返回的房價數(shù)字正確,誰會在乎函數(shù)具體干了些什么呢?

考慮這個問題的一種角度是將房價看做一碗美味的湯,而湯中成分就是臥室數(shù)、面積和地段。如果你能算出每種成分對最終的價格有多大影響,也許就能得到各種成分混合起來形成最終價格的具體比例。

這樣可以將你最初的程序(全是瘋狂的if else語句)簡化成類似如下的樣子:


e請注意那些用粗體標注的神奇數(shù)字——.841231951398213,1231.1231231,2.3242341421,201.23432095。它們稱為權(quán)重。如果我們能找出對每棟房子都適用的完美權(quán)重,我們的函數(shù)就能預測所有的房價!

找出最佳權(quán)重的一種笨辦法如下所示:

步驟1:

首先,將每個權(quán)重都設為1.0:


步驟2:

將每棟房產(chǎn)帶入你的函數(shù)運算,檢驗估算值與正確價格的偏離程度:

運用你的程序預測房屋價格。

例如:上表中第一套房產(chǎn)實際成交價為25萬美元,你的函數(shù)估價為17.8萬,這一套房產(chǎn)你就差了7.2萬。

再將你的數(shù)據(jù)集中的每套房產(chǎn)估價偏離值平方后求和。假設數(shù)據(jù)集中有500套房產(chǎn)交易,估價偏離值平方求和總計為86,123,373美元。這就反映了你的函數(shù)現(xiàn)在的“正確”程度。

現(xiàn)在,將總計值除以500,得到每套房產(chǎn)的估價偏離平均值。將這個平均誤差值稱為你函數(shù)的代價

如果你能調(diào)整權(quán)重使得這個代價變?yōu)?,你的函數(shù)就完美了。它意味著,根據(jù)輸入的數(shù)據(jù),你的程序?qū)γ恳还P房產(chǎn)交易的估價都是分毫不差。而這就是我們的目標——嘗試不同的權(quán)重值以使代價盡可能的低。

步驟3:

不斷重復步驟2,嘗試所有可能的權(quán)重值組合。哪一個組合使得代價最接近于0,它就是你要使用的,你只要找到了這樣的組合,問題就得到了解決!

思想擾動時間

這太簡單了,對吧?想一想剛才你做了些什么。你取得了一些數(shù)據(jù),將它們輸入至三個通用的簡單步驟中,最后你得到了一個可以對你所在區(qū)域的房屋進行估價的函數(shù)。房價網(wǎng),要當心咯!

但是下面的事實可能會擾亂你的思想:

1.過去40年來,很多領域(如語言學/翻譯學)的研究表明,這種通用的“攪動數(shù)據(jù)湯”(我編造的詞)式的學習算法已經(jīng)勝過了需要利用真人明確規(guī)則的方法。機器學習的“笨”辦法最終打敗了人類專家。

2.你最后寫出的函數(shù)真是笨,它甚至不知道什么是“面積”和“臥室數(shù)”。它知道的只是攪動,改變數(shù)字來得到正確的答案。

3.很可能你都不知道為何一組特殊的權(quán)重值能起效。所以你只是寫出了一個你實際上并不理解卻能證明的函數(shù)。

4.試想一下,你的程序里沒有類似“面積”和“臥室數(shù)”這樣的參數(shù),而是接受了一組數(shù)字。假設每個數(shù)字代表了你車頂安裝的攝像頭捕捉的畫面中的一個像素,再將預測的輸出不稱為“價格”而是叫做“方向盤轉(zhuǎn)動度數(shù)”,這樣你就得到了一個程序可以自動操縱你的汽車了!

太瘋狂了,對吧?

步驟3中的“嘗試每個數(shù)字”怎么回事?

好吧,當然你不可能嘗試所有可能的權(quán)重值來找到效果最好的組合。那可真要花很長時間,因為要嘗試的數(shù)字可能無窮無盡。

為避免這種情況,數(shù)學家們找到了很多聰明的辦法來快速找到優(yōu)秀的權(quán)重值,而不需要嘗試過多。下面是其中一種:

首先,寫出一個簡單的等式表示前述步驟2:

這是你的代價函數(shù)

接著,讓我們將這同一個等式用機器學習的數(shù)學術語(現(xiàn)在你可以忽略它們)進行重寫:

θ表示當前的權(quán)重值。?J(θ) 意為“當前權(quán)重值對應的代價”。

這個等式表示我們的估價程序在當前權(quán)重值下偏離程度的大小。

如果將所有賦給臥室數(shù)和面積的可能權(quán)重值以圖形形式顯示,我們會得到類似下圖的圖表:

代價函數(shù)的圖形像一支碗。縱軸表示代價。

圖中藍色的最低點就是代價最低的地方——即我們的程序偏離最小。最高點意味著偏離最大。所以,如果我們能找到一組權(quán)重值帶領我們到達圖中的最低點,我們就找到了答案!

因此,我們只需要調(diào)整權(quán)重值使我們在圖上能向著最低點“走下坡路”。如果對于權(quán)重的細小調(diào)節(jié)能一直使我們保持向最低點移動,那么最終我們不用嘗試太多權(quán)重值就能到達那里。

如果你還記得一點微積分的話,你也許記得如果你對一個函數(shù)求導,結(jié)果會告訴你函數(shù)在任一點的斜率。換句話說,對于圖上給定一點,它告訴我們那條路是下坡路。我們可以利用這一點朝底部進發(fā)。

所以,如果我們對代價函數(shù)關于每一個權(quán)重求偏導,那么我們就可以從每一個權(quán)重中減去該值。這樣可以讓我們更加接近山底。一直這樣做,最終我們將到達底部,得到權(quán)重的最優(yōu)值。(讀不懂?不用擔心,接著往下讀)。

這種找出最佳權(quán)重的辦法被稱為批量梯度下降,上面是對它的高度概括。如果想搞懂細節(jié),不要害怕,繼續(xù)深入下去吧。

當你使用機器學習算法庫來解決實際問題,所有這些都已經(jīng)為你準備好了。但明白一些具體細節(jié)總是有用的。

還有什么你隨便就略過了?

上面我描述的三步算法被稱為多元線性回歸。你估算等式是在求一條能夠擬合所有房價數(shù)據(jù)點的直線。然后,你再根據(jù)房價在你的直線上可能出現(xiàn)的位置用這個等式來估算從未見過的房屋的價格。這個想法威力強大,可以用它來解決“實際”問題。

但是,我為你展示的這種方法可能在簡單的情況下有效,它不會在所有情況下都有用。原因之一是因為房價不會一直那么簡單地跟隨一條連續(xù)直線。

但是,幸運的是,有很多辦法來處理這種情況。對于非線性數(shù)據(jù),很多其他類型的機器學習算法可以處理(如神經(jīng)網(wǎng)絡或有核向量機)。還有很多方法運用線性回歸更靈活,想到了用更復雜的線條來擬合。在所有的情況中,尋找最優(yōu)權(quán)重值這一基本思路依然適用。

還有,我忽略了過擬合的概念。很容易碰上這樣一組權(quán)重值,它們對于你原始數(shù)據(jù)集中的房價都能完美預測,但對于原始數(shù)據(jù)集之外的任何新房屋都預測不準。這種情況的解決之道也有不少(如正則化以及使用交叉驗證數(shù)據(jù)集)。學會如何處理這一問題對于順利應用機器學習至關重要。

換言之,基本概念非常簡單,要想運用機器學習得到有用的結(jié)果還需要一些技巧和經(jīng)驗。但是,這是每個開發(fā)者都能學會的技巧。

機器學習法力無邊嗎?

一旦你開始明白機器學習技術很容易應用于解決貌似很困難的問題(如手寫識別),你心中會有一種感覺,只要有足夠的數(shù)據(jù),你就能夠用機器學習解決任何問題。只需要將數(shù)據(jù)輸入進去,就能看到計算機變戲法一樣找出擬合數(shù)據(jù)的等式。

但是很重要的一點你要記住,機器學習只能對用你占有的數(shù)據(jù)實際可解的問題才適用。

例如,如果你建立了一個模型來根據(jù)每套房屋內(nèi)盆栽數(shù)量來預測房價,它就永遠不會成功。房屋內(nèi)盆栽數(shù)量和房價之間沒有任何的關系。所以,無論它怎么去嘗試,計算機也推導不出兩者之間的關系。

你只能對實際存在的關系建模。

怎樣深入學習機器學習

我認為,當前機器學習的最大問題是它主要活躍于學術界和商業(yè)研究組織中。對于圈外想要有個大體了解而不是想成為專家的人們,簡單易懂的學習資料不多。但是這一情況每一天都在改善。

吳恩達教授(Andrew Ng)在Coursera上的機器學習免費課程非常不錯。我強烈建議由此入門。任何擁有計算機科學學位、還能記住一點點數(shù)學的人應該都能理解。

另外,你還可以下載安裝SciKit-Learn,用它來試驗成千上萬的機器學習算法。它是一個python框架,對于所有的標準算法都有“黑盒”版本。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內(nèi)容