你周圍的人是否都在談?wù)撝皺C(jī)器學(xué)習(xí)”?而你是否也聽說過一些算法技術(shù)卻仍舊缺乏一個(gè)全局的認(rèn)識(shí)?本文也許就是一個(gè)好的起點(diǎn)……
智力的新紀(jì)元
在科學(xué)界,機(jī)器學(xué)習(xí)是目前很熱門的話題。通過把計(jì)算機(jī)和人類的能力相結(jié)合,一些相當(dāng)復(fù)雜甚至是難以想象的問題正在被逐個(gè)突破。
如今的機(jī)器可以更容易地處理不斷產(chǎn)生的大量數(shù)據(jù),也能夠?qū)?fù)雜的科學(xué)發(fā)現(xiàn)進(jìn)行破譯。另一方面,研究人員已經(jīng)承認(rèn)機(jī)器學(xué)習(xí)具有用于廣泛領(lǐng)域的潛力,并且最終可以付諸實(shí)踐。
當(dāng)開始著手研究機(jī)器學(xué)習(xí),我們會(huì)發(fā)現(xiàn)這其中很多的算法技術(shù)對(duì)于統(tǒng)計(jì)學(xué)家、工程師、程序員、數(shù)學(xué)家和金融工程師而言也許并不陌生。這是因?yàn)檫@些算法技術(shù)實(shí)際上已經(jīng)被研究很多年了?!皺C(jī)器學(xué)習(xí)”是一個(gè)相對(duì)而言的新名詞,但對(duì)于數(shù)據(jù)科學(xué)家而言這并不是一個(gè)完全陌生的領(lǐng)域。
本文匯總了原作者在研究初時(shí)遇到的一些有趣的實(shí)例,從而有助于理解機(jī)器學(xué)習(xí)的相關(guān)內(nèi)容是如何聯(lián)系在一起,并列出其知識(shí)體系各部分之間的不同之處,最終針對(duì)現(xiàn)有的項(xiàng)目,選擇最佳的方案。
雖然本文并沒有提出什么新的觀點(diǎn),甚至算不上專業(yè),但原作者希望本文可以幫助那些對(duì)入門機(jī)器學(xué)習(xí)仍有疑惑的人。

“機(jī)器學(xué)習(xí)”是什么?
在機(jī)器學(xué)習(xí)領(lǐng)域,我們讓機(jī)器自主學(xué)習(xí)。他們通過給定數(shù)據(jù)集里的案例進(jìn)行學(xué)習(xí)。人們只需要利用機(jī)器得到的結(jié)論去改善方案、提高效率、實(shí)現(xiàn)自動(dòng)化流程和任務(wù)。
讓我們引用該領(lǐng)域兩位巨擘的話來更精確地解釋:
“機(jī)器學(xué)習(xí)是讓計(jì)算機(jī)在不被明確編程的情況下運(yùn)作的科學(xué)。” ——安德魯·吳(Coursera)
“一種計(jì)算機(jī)程序,如果它的任務(wù)記為T,用P來測(cè)度性能,并通過經(jīng)驗(yàn)E來改善的話,它就會(huì)不斷地從經(jīng)驗(yàn)E中學(xué)習(xí),從而滿足某類任務(wù)T和性能指標(biāo)P?!薄獪贰っ仔獱枺?997)
我曾經(jīng)聽說過這個(gè)!
聽起來,“機(jī)器學(xué)習(xí)”(簡(jiǎn)稱為ML)和你之前了解的其他科學(xué)十分相似?,F(xiàn)在,讓我們看看它們之間究竟有什么不同。
或許,你對(duì)“人工智能”(簡(jiǎn)稱為AI)更加熟悉。人工智能是通過復(fù)制人類的基本意識(shí)來開發(fā)系統(tǒng)項(xiàng)目從而獨(dú)立完成預(yù)設(shè)好的目標(biāo)的科學(xué)。很大程度上,機(jī)器學(xué)習(xí)可以算作是通過創(chuàng)造算法來調(diào)整機(jī)器行為從而接近經(jīng)驗(yàn)數(shù)據(jù)的人工智能。
很多機(jī)器學(xué)習(xí)的內(nèi)容來源于統(tǒng)計(jì)學(xué)科,只不過叫法不同罷了。與傳統(tǒng)的統(tǒng)計(jì)學(xué)科不同,在機(jī)器學(xué)習(xí)中機(jī)器不對(duì)數(shù)據(jù)做推斷,它得到的結(jié)論也不會(huì)被最初的諸多假設(shè)所限定?;叵胍幌履阍诮y(tǒng)計(jì)學(xué)中聽到了多少次“假設(shè)X服從正態(tài)分布”或者“給定獨(dú)立同分布的隨機(jī)變量”。你有想過這些假設(shè)在現(xiàn)實(shí)中真的可能成立嗎?
然而,機(jī)器學(xué)習(xí)方法的一個(gè)缺點(diǎn)在于我們很難得到對(duì)變量之間關(guān)系的直觀解釋,而這恰恰是統(tǒng)計(jì)推理所擅長(zhǎng)的。為了實(shí)現(xiàn)更精確的預(yù)測(cè),機(jī)器學(xué)習(xí)得到的模型會(huì)變得相當(dāng)復(fù)雜以至于難以去解釋。
失去解釋性是絕大多數(shù)數(shù)據(jù)科學(xué)家不愿意見到的,但這也是為了解決復(fù)雜問題必須付出的代價(jià)。通常來說,在機(jī)器學(xué)習(xí)中最重要的是解決整個(gè)問題而不需要去分析細(xì)節(jié)。你能夠不依賴其他技術(shù)發(fā)現(xiàn)數(shù)據(jù)背后隱藏的信息嗎?嘗試在下面這個(gè)色彩豐富的圖中找出隱藏的三個(gè)物體,你能看到什么?

“機(jī)器學(xué)習(xí)”和“數(shù)據(jù)挖掘”也很相似。然而數(shù)據(jù)挖掘主要是為了發(fā)現(xiàn)數(shù)據(jù)中未知的模式和關(guān)系,機(jī)器學(xué)習(xí)則是在實(shí)際應(yīng)用中通過先前得來的信息來處理新的數(shù)據(jù)集。
問題的關(guān)鍵在于平衡好性能和解釋性的關(guān)系,比如說,預(yù)測(cè)準(zhǔn)確性 vs 解釋性。
如果你仍舊對(duì)機(jī)器學(xué)習(xí)與其他學(xué)科的異同留有困惑,你可以在“這里”和"這里"找到機(jī)器學(xué)習(xí)和人工智能、統(tǒng)計(jì)、數(shù)據(jù)挖掘、深度學(xué)習(xí)的比較。
揭開機(jī)器學(xué)習(xí)的面紗
理解機(jī)器學(xué)習(xí)和學(xué)習(xí)如何入門最好的方法莫過于理解其知識(shí)體系各部分之間的不同之處。熟悉機(jī)器學(xué)習(xí)的人可能知道機(jī)器學(xué)習(xí)的主要模式就是監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)了。
簡(jiǎn)而言之,監(jiān)督學(xué)習(xí)就是我們已經(jīng)通過之前已知的數(shù)據(jù)知道結(jié)果了。
此時(shí),我們想建立一個(gè)模型來預(yù)測(cè)未知數(shù)據(jù)的結(jié)果。我們將已有的數(shù)據(jù)和結(jié)果輸入機(jī)器,讓它從這兩者之間的關(guān)系中不斷學(xué)習(xí)從而建立模型。

在無監(jiān)督學(xué)習(xí)中,我們則是希望發(fā)現(xiàn)數(shù)據(jù)中未知的結(jié)構(gòu)或者是趨勢(shì)。原數(shù)據(jù)不含任何的標(biāo)簽,但我們希望可以對(duì)數(shù)據(jù)進(jìn)行整合(分組或者聚類),或是簡(jiǎn)化數(shù)據(jù)(降維、移除不必要的變量或者檢測(cè)異常值)。
我們進(jìn)一步區(qū)分這兩個(gè)模式的子類別,并在下圖中展示出來:

監(jiān)督學(xué)習(xí)可以根據(jù)預(yù)測(cè)變量的類型再細(xì)分。如果預(yù)測(cè)變量是連續(xù)的,那這就屬于回歸問題。
而如果預(yù)測(cè)變量是獨(dú)立類別(定性或是定類的離散值),那這就屬于分類問題了。
舉例來說,如下兩圖所示:
- 預(yù)測(cè) S&P500 指數(shù)下周的回報(bào)率。由于回報(bào)率是連續(xù)變量,這就是回歸問題。
- 預(yù)測(cè)歐元兌美元的趨勢(shì)是上升還是下降。這里只有兩種可能性:牛市或熊市。這就是分類問題。

無監(jiān)督學(xué)習(xí)可以再細(xì)分為聚類分析、密度估計(jì)和降維。
聚類分析中,數(shù)據(jù)通過相似性或者距離來分組。密度估計(jì)中,模式和數(shù)據(jù)用分布函數(shù)或是定義的形狀表示。降維中,通過移除重復(fù)或者不必要的變量實(shí)現(xiàn)更簡(jiǎn)潔的數(shù)據(jù)結(jié)構(gòu)。
我們也可以根據(jù)學(xué)習(xí)的類型和所需解決的問題對(duì)特定的方法進(jìn)行分類,如下圖所示:

“MLmastery”和“analyticsV”等博文對(duì)機(jī)器學(xué)習(xí)主要的算法做了清晰實(shí)用的解釋。
其他細(xì)節(jié)
機(jī)器學(xué)習(xí)技術(shù)在應(yīng)用之前使用“訓(xùn)練+檢驗(yàn)”的模式(通常被稱作”交叉驗(yàn)證“)。

機(jī)器會(huì)不斷地嘗試參數(shù)的組合,因此我們要警惕“過擬合”和“運(yùn)行時(shí)間”的問題。在訓(xùn)練階段過高的準(zhǔn)確性往往會(huì)造成過度優(yōu)化,以至于在檢驗(yàn)階段會(huì)有較差的結(jié)果。同時(shí),為了減小成本函數(shù)到足夠的水平,算法也會(huì)花很長(zhǎng)時(shí)間直至收斂到最終的結(jié)果。
關(guān)于實(shí)際應(yīng)用
機(jī)器學(xué)習(xí)可謂是無處不在,在日常生活中有大量相關(guān)實(shí)例,只是我們沒有意識(shí)到。比如說,機(jī)器學(xué)習(xí)被用于搜索引擎、過濾垃圾郵件、面部識(shí)別、社交網(wǎng)絡(luò)分析、市場(chǎng)細(xì)分、數(shù)據(jù)分析、欺詐檢測(cè)和風(fēng)險(xiǎn)分析等。
泛泛而談是不足以說明問題的。通過將機(jī)器學(xué)習(xí)用于金融領(lǐng)域的實(shí)例,我們能看到將這些復(fù)雜的算法用于實(shí)際會(huì)帶來多大的便利。
無監(jiān)督學(xué)習(xí)技術(shù)可以用于分析和理解金融數(shù)據(jù)。比如說,主成分分析(PCA)可以用于資產(chǎn)配置,K 均值可用來債券市場(chǎng)回報(bào)率的聚類,其他聚類方法可以再現(xiàn) S&P 500指數(shù)的組成,ISOMAPS 算法可以分類不同行業(yè)的股票。
監(jiān)督學(xué)習(xí)技術(shù)則非常適合用于分析金融數(shù)據(jù)。它可以實(shí)現(xiàn)預(yù)測(cè)和幫助制定投資風(fēng)險(xiǎn)策略。舉例來說,近鄰算法、神經(jīng)網(wǎng)絡(luò)、決策樹、隨機(jī)森林和貝葉斯這些都可以用來監(jiān)測(cè)股市的市場(chǎng)變動(dòng)趨勢(shì)。
更多相關(guān)鏈接
不知道從何開始?可以嘗試“在Coursera上的機(jī)器學(xué)習(xí)課程”或者用Python的”tool scikit-learn“。當(dāng)然,你也可以在”Kaggle“上進(jìn)行學(xué)習(xí),”泰坦尼克號(hào)''實(shí)例很適合初學(xué)者。
想知道究竟什么算法才適合解決你的問題?不如去看看“scikit learn”和“Azure”。
如果你想開始編程并嘗試一些實(shí)例,“caret Package”中包含大量的相關(guān)細(xì)節(jié)、函數(shù)和案例。你也可以從”Python and R codes“中學(xué)到機(jī)器學(xué)習(xí)主要的算法。
不喜歡本文?想了解更多或想換個(gè)角度看?"detailed post"介紹了機(jī)器學(xué)習(xí)的入門知識(shí),或是閱讀"innovative introductory visualisation"。
在機(jī)器學(xué)習(xí)中有很多不同的詞實(shí)際上代表同一樣?xùn)|西。下圖是對(duì)于輸入和輸出變量的常見的一些表達(dá)方式:

你也可以在"Glossary"找到更多與機(jī)器學(xué)習(xí)相關(guān)的術(shù)語。
原文鏈接:http://quantdare.com/2016/03/machine-learning-a-brief-breakdown/
原文作者: libesa
譯作者:Vector