前言
回憶起來,AndrewNg 在coursera上開設(shè)的機(jī)器學(xué)習(xí)課程受益匪淺,課程覆蓋了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容,深入淺出,把很多概念解釋得很到位?,F(xiàn)在將其課件和內(nèi)容進(jìn)行總結(jié)和梳理,主要是因?yàn)檎n程確實(shí)非常好,再者也是對學(xué)習(xí)過程的一個回顧總結(jié),其中也會加入本人的一些思考。如果有興趣,最好是可以對課程進(jìn)行系統(tǒng)的學(xué)習(xí)將對應(yīng)的習(xí)題和小測都做一遍,收獲會更大。由于課程的代碼不能公開,因此本文不會對實(shí)踐部分進(jìn)行多加闡述,如果有可能,本人會加入一些公開的實(shí)踐樣例。
Introduction
本部門主要對機(jī)器學(xué)習(xí)的基本概念以及相關(guān)的方法分類進(jìn)行一個概要的介紹。進(jìn)行的拓展主要在于總結(jié)和科普,沒有進(jìn)行詳細(xì)詳細(xì)的展開,后續(xù)會進(jìn)一步進(jìn)行展開或總結(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.
以上兩個定義中,普遍使用的后者。在進(jìn)行機(jī)器學(xué)習(xí)的建模過程中,我們首要的任務(wù)是確定好三個基本要素,即經(jīng)驗(yàn)(experience,E)、任務(wù)(task, T)和效果(performance, P)。學(xué)習(xí)是基于歷史經(jīng)驗(yàn)(E)的,直觀的表現(xiàn)為采集的歷史數(shù)據(jù),學(xué)習(xí)的過程要針對特定的任務(wù)(T),即目的(比如說需要對郵件進(jìn)行分類),候選的能夠擬合給定歷史數(shù)據(jù)的模型假設(shè)有很多,如何挑選出好的假設(shè),就需要定義好評估的標(biāo)準(zhǔn)(P)。
舉個例子,對郵件進(jìn)行分類,假設(shè)分成兩類,即正常郵件和垃圾郵件,那么:
E: 事先采集好的一系列郵件
T: 將郵件分成兩類:正常郵件和垃圾郵件
P: 正常分類的百分比
2. 機(jī)器學(xué)習(xí)方法分類
機(jī)器學(xué)習(xí)方法可以大致分為:監(jiān)督學(xué)習(xí)(supervised learning)和非監(jiān)督學(xué)習(xí)(unsupervised learning),其最主要的區(qū)別在于我們是否可以實(shí)現(xiàn)獲取到所學(xué)目標(biāo)的分類。
2.1.監(jiān)督學(xué)習(xí):
對于任意樣本,我們知道其目標(biāo)值,通常也稱為類標(biāo),當(dāng)目標(biāo)值是離散的,則是分類問題,當(dāng)目標(biāo)值是連續(xù)的,那么就是回歸問題。
對于任意實(shí)例 (x,y),x為向量,通常稱為特征向量,每一個維度表示目標(biāo)的一個屬性,y為目標(biāo)值,即實(shí)例的類標(biāo),當(dāng)y為離散值時是分類問題,y為連續(xù)值是回歸問題。
分類問題,如圖1所示。假設(shè)樣本實(shí)例為一些列的患者,我們希望給予兩個屬性,即x1(腫瘤大小)和x2(腫瘤個數(shù)),來對患者是否患有癌癥進(jìn)行預(yù)測。每一個患者用表示為圖中一點(diǎn),表示一類(非癌癥患者),表示一類(癌癥患者)。有監(jiān)督的學(xué)習(xí)過程是基于有類標(biāo)的數(shù)據(jù)(通常稱為訓(xùn)練集)將出一個分類面,通常稱為假設(shè)h(x)=y,此處y=1(癌癥患者)或y=0(非癌癥患者),將訓(xùn)練集劃分成兩類。當(dāng)新數(shù)據(jù)到來時,根據(jù)學(xué)習(xí)的假設(shè)h(x)可以對患者是否患癌癥作出預(yù)測。
圖1
回歸問題,如圖2所示,假設(shè)我們希望對房子的價錢進(jìn)行預(yù)測。圖中我們已經(jīng)采集了一系列樣本,每個表示一個樣本,我們希望能夠?qū)W習(xí)出房子大小和價錢的關(guān)系,h(x)=y,此處特征向量只有一個值,即房子的大小,而目標(biāo)值為房子的價錢??梢钥吹剑軌驍M合樣本的曲線不止一條(藍(lán)色曲線和紅色曲線),這就涉及到判斷哪個假設(shè)更好的問題,通常稱為模型選擇。
圖2
2.2.非監(jiān)督學(xué)習(xí)
非監(jiān)督學(xué)習(xí)中,我們無法事先獲取到樣本的類標(biāo),即如圖3所示,每個表示一個樣本,很明顯樣本可以劃分成兩個蔟,這兩個蔟之間相距很遠(yuǎn),但蔟內(nèi)各樣本點(diǎn)之間很近。聚類是非監(jiān)督學(xué)習(xí)的典型,而關(guān)鍵在于距離函數(shù)的定義,即如何衡量樣本之間的相近程度,一般我們認(rèn)為距離相近的兩個樣本點(diǎn)屬于一個蔟。常用的聚類算法有k-mean,dbscan等。
大數(shù)據(jù)
圖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)練集是打了類標(biāo)的,即我們事先知道樣本中的郵件是否為垃圾郵件,基于這一經(jīng)驗(yàn)來對模型進(jìn)行訓(xùn)練;而非監(jiān)督學(xué)習(xí)的訓(xùn)練集是不知道類標(biāo)的,我們只能基于某種相似性或是結(jié)構(gòu)特征將樣本分成不同的蔟。現(xiàn)實(shí)生活中我們很難獲取到大量的標(biāo)記數(shù)據(jù),通過人工大類標(biāo)也是費(fèi)時費(fèi)力的,因此就有了半監(jiān)督學(xué)習(xí)方法的提出,其核心思想是,我們先通過少量的標(biāo)記數(shù)據(jù)來訓(xùn)練模型,然后基于某種方法將未標(biāo)記的數(shù)據(jù)也用上,對模型進(jìn)行自動的進(jìn)一步的優(yōu)化。
[2] 主動學(xué)習(xí)
主動學(xué)習(xí)與半監(jiān)督學(xué)習(xí)有點(diǎn)相似,半監(jiān)督學(xué)習(xí)期望自動的利用未標(biāo)記數(shù)據(jù)進(jìn)行學(xué)習(xí),而主動學(xué)習(xí)則可以看成是半自動的利用未標(biāo)記的數(shù)據(jù)。其核心思想是,利用少量的標(biāo)記數(shù)據(jù)訓(xùn)練模型,基于當(dāng)前模型嘗試對未標(biāo)記的數(shù)據(jù)進(jìn)行標(biāo)記,如果模型對當(dāng)前標(biāo)記的結(jié)果把握不大,則可以對人發(fā)起幫助請求,詢問當(dāng)前樣例的類標(biāo),通過人的反饋對模型進(jìn)行優(yōu)化,而對于把握大的結(jié)果則不發(fā)出詢問。
[3] 增強(qiáng)學(xué)習(xí) (reinforcement learning)
增強(qiáng)學(xué)習(xí)是一個交互學(xué)習(xí)的過程,通常用馬爾可夫決策過程來描述,其核心在于打分機(jī)制。以下棋為例子進(jìn)行說明,每個棋局表示一個狀態(tài),在當(dāng)前狀態(tài)有不同的下法,即下一個棋子應(yīng)該如何走,每一種策略都會將當(dāng)前狀態(tài)轉(zhuǎn)換到下一狀態(tài),假設(shè)為x1,x2,…,xn,對于每一個轉(zhuǎn)換造成的后果我們給予一個分?jǐn)?shù),分?jǐn)?shù)表明了贏的可能性,那么在下棋過程以貪心的策略選擇分?jǐn)?shù)最高的策略。
[4] 集成學(xué)習(xí) (ensemble learning)
集成學(xué)習(xí)的核心思想是將多個弱的分類器集合成一個強(qiáng)的分類器。打個比方,小明要去看病,看是否發(fā)燒,為了更準(zhǔn)確,小明看了5個大夫,其中有4個大夫說小明沒有發(fā)燒,只有1個大夫說小明發(fā)燒了,綜合來看,如果每個大夫各有一票,最后少數(shù)服從多數(shù),小明應(yīng)該是沒有發(fā)燒。
在機(jī)器學(xué)習(xí)中也是如此,我們通常希望將多個分類器集合起來,綜合各個分類器的結(jié)果作出最后的預(yù)測。最簡單的就是投標(biāo)機(jī)制,少數(shù)服從多數(shù)。假設(shè)訓(xùn)練有k個分類器,對于任意實(shí)例,同時輸入到k個分類器中,獲取k個預(yù)測結(jié)果,依據(jù)少數(shù)服從多數(shù)的原則對實(shí)例進(jìn)行分類。
[5] 模型選擇 (model selection)
在機(jī)器學(xué)習(xí)中,能夠反映歷史經(jīng)驗(yàn)的模型有很多,如圖2所示,能擬合數(shù)據(jù)的有兩條曲線,那么如何從眾多候選中選出好的模型是一個很重要的話題。我們希望一個好的模型,不但在訓(xùn)練集(見過的數(shù)據(jù))上具有很好的效果,我們還希望其對未見過的數(shù)據(jù)也具有很好的預(yù)測效果,即具有好的泛化能力。此處涉及到兩個重要名詞,即過擬合和欠擬合。欠擬合是指模型在所有數(shù)據(jù)上(見過的和未見過的)數(shù)據(jù)上表現(xiàn)都很差,沒有能夠很好的抽象模型。過擬合是指模型在見過的數(shù)據(jù)上表現(xiàn)很好,但對未見過的數(shù)據(jù)上表現(xiàn)很差,也就是模型通過擬合極端的數(shù)據(jù)來獲取好的效果,學(xué)習(xí)的模型太過于具體,以至于對未見過的數(shù)據(jù)沒有預(yù)測能力。我們通常會使用精確度來衡量預(yù)測的結(jié)果的好壞。保證預(yù)測精度還不夠,同等條件下我們更偏向于簡單的模型,這就是著名的奧卡姆剃刀原則(Occam’s Razor),”An explanation of the data should be mad as simple as possible,but no simpler”。
綜上所述,模型選擇過程中考慮的方向主要有兩個:預(yù)測結(jié)果的好壞(比如準(zhǔn)確率)和模型的復(fù)雜程度。
[6] 特征選擇 (feature selection)
如圖1的例子,患者是否患有癌癥的分類問題,我們考慮腫瘤的大小和腫瘤數(shù)量兩個特征;如圖2例子,房價的預(yù)測我們考慮房子大小的特征。特征的好壞,以及與目標(biāo)的相關(guān)程度都在很大程度上影響了模型學(xué)習(xí)的效果。如果特征不足,或者與目標(biāo)相關(guān)不大,學(xué)習(xí)出的模型很容易欠擬合。如果無關(guān)的特征過多會引起維度災(zāi)難,影響學(xué)習(xí)過程的效率。深度學(xué)習(xí)的效果好,是因?yàn)槠潆[藏層對特征具有很好的抽象作用。因此在進(jìn)行模型學(xué)習(xí)的過程中,特征的選擇也是很重要的課題。常用的特征選擇方法有PCA,即主成分分析。