機(jī)器學(xué)習(xí)從入門(mén)到精通
前言
回憶起來(lái),AndrewNg 在coursera上開(kāi)設(shè)的機(jī)器學(xué)習(xí)課程受益匪淺,課程覆蓋了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容,深入淺出,把很多概念解釋得很到位?,F(xiàn)在將其課件和內(nèi)容進(jìn)行總結(jié)和梳理,主要是因?yàn)檎n程確實(shí)非常好,再者也是對(duì)學(xué)習(xí)過(guò)程的一個(gè)回顧總結(jié),其中也會(huì)加入本人的一些思考。如果有興趣,最好是可以對(duì)課程進(jìn)行系統(tǒng)的學(xué)習(xí)將對(duì)應(yīng)的習(xí)題和小測(cè)都做一遍,收獲會(huì)更大。由于課程的代碼不能公開(kāi),因此本文不會(huì)對(duì)實(shí)踐部分進(jìn)行多加闡述,如果有可能,本人會(huì)加入一些公開(kāi)的實(shí)踐樣例。
Introduction
本部門(mén)主要對(duì)機(jī)器學(xué)習(xí)的基本概念以及相關(guān)的方法分類(lèi)進(jìn)行一個(gè)概要的介紹。進(jìn)行的拓展主要在于總結(jié)和科普,沒(méi)有進(jìn)行詳細(xì)詳細(xì)的展開(kāi),后續(xù)會(huì)進(jìn)一步進(jìn)行展開(kāi)或總結(jié)。
1. 機(jī)器學(xué)習(xí)的定義
ArthurSamuel(1959).MachineLearning:Fieldof study that gives computers the ability to learn without being explicitly programmed.
TomMitchell(1998)Well-posedLearning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
以上兩個(gè)定義中,普遍使用的后者。在進(jìn)行機(jī)器學(xué)習(xí)的建模過(guò)程中,我們首要的任務(wù)是確定好三個(gè)基本要素,即經(jīng)驗(yàn)(experience,E)、任務(wù)(task, T)和效果(performance, P)。學(xué)習(xí)是基于歷史經(jīng)驗(yàn)(E)的,直觀的表現(xiàn)為采集的歷史數(shù)據(jù),學(xué)習(xí)的過(guò)程要針對(duì)特定的任務(wù)(T),即目的(比如說(shuō)需要對(duì)郵件進(jìn)行分類(lèi)),候選的能夠擬合給定歷史數(shù)據(jù)的模型假設(shè)有很多,如何挑選出好的假設(shè),就需要定義好評(píng)估的標(biāo)準(zhǔn)(P)。
舉個(gè)例子,對(duì)郵件進(jìn)行分類(lèi),假設(shè)分成兩類(lèi),即正常郵件和垃圾郵件,那么:
E: 事先采集好的一系列郵件
T: 將郵件分成兩類(lèi):正常郵件和垃圾郵件
P: 正常分類(lèi)的百分比
2. 機(jī)器學(xué)習(xí)方法分類(lèi)
機(jī)器學(xué)習(xí)方法可以大致分為:監(jiān)督學(xué)習(xí)(supervised learning)和非監(jiān)督學(xué)習(xí)(unsupervised learning),其最主要的區(qū)別在于我們是否可以實(shí)現(xiàn)獲取到所學(xué)目標(biāo)的分類(lèi)。
2.1.監(jiān)督學(xué)習(xí):
對(duì)于任意樣本,我們知道其目標(biāo)值,通常也稱為類(lèi)標(biāo),當(dāng)目標(biāo)值是離散的,則是分類(lèi)問(wèn)題,當(dāng)目標(biāo)值是連續(xù)的,那么就是回歸問(wèn)題。
對(duì)于任意實(shí)例 (x,y),x為向量,通常稱為特征向量,每一個(gè)維度表示目標(biāo)的一個(gè)屬性,y為目標(biāo)值,即實(shí)例的類(lèi)標(biāo),當(dāng)y為離散值時(shí)是分類(lèi)問(wèn)題,y為連續(xù)值是回歸問(wèn)題。
分類(lèi)問(wèn)題,如圖1所示。假設(shè)樣本實(shí)例為一些列的患者,我們希望給予兩個(gè)屬性,即x1(腫瘤大小)和x2(腫瘤個(gè)數(shù)),來(lái)對(duì)患者是否患有癌癥進(jìn)行預(yù)測(cè)。每一個(gè)患者用表示為圖中一點(diǎn),表示一類(lèi)(非癌癥患者),
表示一類(lèi)(癌癥患者)。有監(jiān)督的學(xué)習(xí)過(guò)程是基于有類(lèi)標(biāo)的數(shù)據(jù)(通常稱為訓(xùn)練集)將出一個(gè)分類(lèi)面,通常稱為假設(shè)h(x)=y,此處y=1(癌癥患者)或y=0(非癌癥患者),將訓(xùn)練集劃分成兩類(lèi)。當(dāng)新數(shù)據(jù)到來(lái)時(shí),根據(jù)學(xué)習(xí)的假設(shè)h(x)可以對(duì)患者是否患癌癥作出預(yù)測(cè)。
圖1
回歸問(wèn)題,如圖2所示,假設(shè)我們希望對(duì)房子的價(jià)錢(qián)進(jìn)行預(yù)測(cè)。圖中我們已經(jīng)采集了一系列樣本,每個(gè)表示一個(gè)樣本,我們希望能夠?qū)W習(xí)出房子大小和價(jià)錢(qián)的關(guān)系,h(x)=y,此處特征向量只有一個(gè)值,即房子的大小,而目標(biāo)值為房子的價(jià)錢(qián)??梢钥吹?,能夠擬合樣本的曲線不止一條(藍(lán)色曲線和紅色曲線),這就涉及到判斷哪個(gè)假設(shè)更好的問(wèn)題,通常稱為模型選擇。
圖2
2.2.非監(jiān)督學(xué)習(xí)
非監(jiān)督學(xué)習(xí)中,我們無(wú)法事先獲取到樣本的類(lèi)標(biāo),即如圖3所示,每個(gè)表示一個(gè)樣本,很明顯樣本可以劃分成兩個(gè)蔟,這兩個(gè)蔟之間相距很遠(yuǎn),但蔟內(nèi)各樣本點(diǎn)之間很近。聚類(lèi)是非監(jiān)督學(xué)習(xí)的典型,而關(guān)鍵在于距離函數(shù)的定義,即如何衡量樣本之間的相近程度,一般我們認(rèn)為距離相近的兩個(gè)樣本點(diǎn)屬于一個(gè)蔟。常用的聚類(lèi)算法有k-mean,dbscan等。

圖3
3.其他概念
這里稍微概括的介紹一下機(jī)器學(xué)習(xí)中的一些重要概念。
[1] 半監(jiān)督學(xué)習(xí)
半監(jiān)督學(xué)習(xí)介于監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)之間。監(jiān)督學(xué)習(xí)的訓(xùn)練集是打了類(lèi)標(biāo)的,即我們事先知道樣本中的郵件是否為垃圾郵件,基于這一經(jīng)驗(yàn)來(lái)對(duì)模型進(jìn)行訓(xùn)練;而非監(jiān)督學(xué)習(xí)的訓(xùn)練集是不知道類(lèi)標(biāo)的,我們只能基于某種相似性或是結(jié)構(gòu)特征將樣本分成不同的蔟?,F(xiàn)實(shí)生活中我們很難獲取到大量的標(biāo)記數(shù)據(jù),通過(guò)人工大類(lèi)標(biāo)也是費(fèi)時(shí)費(fèi)力的,因此就有了半監(jiān)督學(xué)習(xí)方法的提出,其核心思想是,我們先通過(guò)少量的標(biāo)記數(shù)據(jù)來(lái)訓(xùn)練模型,然后基于某種方法將未標(biāo)記的數(shù)據(jù)也用上,對(duì)模型進(jìn)行自動(dòng)的進(jìn)一步的優(yōu)化。
[2] 主動(dòng)學(xué)習(xí)
主動(dòng)學(xué)習(xí)與半監(jiān)督學(xué)習(xí)有點(diǎn)相似,半監(jiān)督學(xué)習(xí)期望自動(dòng)的利用未標(biāo)記數(shù)據(jù)進(jìn)行學(xué)習(xí),而主動(dòng)學(xué)習(xí)則可以看成是半自動(dòng)的利用未標(biāo)記的數(shù)據(jù)。其核心思想是,利用少量的標(biāo)記數(shù)據(jù)訓(xùn)練模型,基于當(dāng)前模型嘗試對(duì)未標(biāo)記的數(shù)據(jù)進(jìn)行標(biāo)記,如果模型對(duì)當(dāng)前標(biāo)記的結(jié)果把握不大,則可以對(duì)人發(fā)起幫助請(qǐng)求,詢問(wèn)當(dāng)前樣例的類(lèi)標(biāo),通過(guò)人的反饋對(duì)模型進(jìn)行優(yōu)化,而對(duì)于把握大的結(jié)果則不發(fā)出詢問(wèn)。
[3] 增強(qiáng)學(xué)習(xí) (reinforcement learning)
增強(qiáng)學(xué)習(xí)是一個(gè)交互學(xué)習(xí)的過(guò)程,通常用馬爾可夫決策過(guò)程來(lái)描述,其核心在于打分機(jī)制。以下棋為例子進(jìn)行說(shuō)明,每個(gè)棋局表示一個(gè)狀態(tài),在當(dāng)前狀態(tài)有不同的下法,即下一個(gè)棋子應(yīng)該如何走,每一種策略都會(huì)將當(dāng)前狀態(tài)轉(zhuǎn)換到下一狀態(tài),假設(shè)為x1,x2,…,xn,對(duì)于每一個(gè)轉(zhuǎn)換造成的后果我們給予一個(gè)分?jǐn)?shù),分?jǐn)?shù)表明了贏的可能性,那么在下棋過(guò)程以貪心的策略選擇分?jǐn)?shù)最高的策略。
[4] 集成學(xué)習(xí) (ensemble learning)
集成學(xué)習(xí)的核心思想是將多個(gè)弱的分類(lèi)器集合成一個(gè)強(qiáng)的分類(lèi)器。打個(gè)比方,小明要去看病,看是否發(fā)燒,為了更準(zhǔn)確,小明看了5個(gè)大夫,其中有4個(gè)大夫說(shuō)小明沒(méi)有發(fā)燒,只有1個(gè)大夫說(shuō)小明發(fā)燒了,綜合來(lái)看,如果每個(gè)大夫各有一票,最后少數(shù)服從多數(shù),小明應(yīng)該是沒(méi)有發(fā)燒。
在機(jī)器學(xué)習(xí)中也是如此,我們通常希望將多個(gè)分類(lèi)器集合起來(lái),綜合各個(gè)分類(lèi)器的結(jié)果作出最后的預(yù)測(cè)。最簡(jiǎn)單的就是投標(biāo)機(jī)制,少數(shù)服從多數(shù)。假設(shè)訓(xùn)練有k個(gè)分類(lèi)器,對(duì)于任意實(shí)例,同時(shí)輸入到k個(gè)分類(lèi)器中,獲取k個(gè)預(yù)測(cè)結(jié)果,依據(jù)少數(shù)服從多數(shù)的原則對(duì)實(shí)例進(jìn)行分類(lèi)。
[5] 模型選擇 (model selection)
在機(jī)器學(xué)習(xí)中,能夠反映歷史經(jīng)驗(yàn)的模型有很多,如圖2所示,能擬合數(shù)據(jù)的有兩條曲線,那么如何從眾多候選中選出好的模型是一個(gè)很重要的話題。我們希望一個(gè)好的模型,不但在訓(xùn)練集(見(jiàn)過(guò)的數(shù)據(jù))上具有很好的效果,我們還希望其對(duì)未見(jiàn)過(guò)的數(shù)據(jù)也具有很好的預(yù)測(cè)效果,即具有好的泛化能力。此處涉及到兩個(gè)重要名詞,即過(guò)擬合和欠擬合。欠擬合是指模型在所有數(shù)據(jù)上(見(jiàn)過(guò)的和未見(jiàn)過(guò)的)數(shù)據(jù)上表現(xiàn)都很差,沒(méi)有能夠很好的抽象模型。過(guò)擬合是指模型在見(jiàn)過(guò)的數(shù)據(jù)上表現(xiàn)很好,但對(duì)未見(jiàn)過(guò)的數(shù)據(jù)上表現(xiàn)很差,也就是模型通過(guò)擬合極端的數(shù)據(jù)來(lái)獲取好的效果,學(xué)習(xí)的模型太過(guò)于具體,以至于對(duì)未見(jiàn)過(guò)的數(shù)據(jù)沒(méi)有預(yù)測(cè)能力。我們通常會(huì)使用精確度來(lái)衡量預(yù)測(cè)的結(jié)果的好壞。保證預(yù)測(cè)精度還不夠,同等條件下我們更偏向于簡(jiǎn)單的模型,這就是著名的奧卡姆剃刀原則(Occam’s Razor),”An explanation of the data should be mad as simple as possible,but no simpler”。
綜上所述,模型選擇過(guò)程中考慮的方向主要有兩個(gè):預(yù)測(cè)結(jié)果的好壞(比如準(zhǔn)確率)和模型的復(fù)雜程度。
[6] 特征選擇 (feature selection)
如圖1的例子,患者是否患有癌癥的分類(lèi)問(wèn)題,我們考慮腫瘤的大小和腫瘤數(shù)量?jī)蓚€(gè)特征;如圖2例子,房?jī)r(jià)的預(yù)測(cè)我們考慮房子大小的特征。特征的好壞,以及與目標(biāo)的相關(guān)程度都在很大程度上影響了模型學(xué)習(xí)的效果。如果特征不足,或者與目標(biāo)相關(guān)不大,學(xué)習(xí)出的模型很容易欠擬合。如果無(wú)關(guān)的特征過(guò)多會(huì)引起維度災(zāi)難,影響學(xué)習(xí)過(guò)程的效率。深度學(xué)習(xí)的效果好,是因?yàn)槠潆[藏層對(duì)特征具有很好的抽象作用。因此在進(jìn)行模型學(xué)習(xí)的過(guò)程中,特征的選擇也是很重要的課題。常用的特征選擇方法有PCA,即主成分分析。