鏈接:http://www.reibang.com/p/11df8a5a15bb
來(lái)源:簡(jiǎn)書(shū) 好東西
機(jī)器學(xué)習(xí)有多種類型耘分,可以根據(jù)如下規(guī)則進(jìn)行分類:
是否在人類監(jiān)督下進(jìn)行訓(xùn)練(監(jiān)督,非監(jiān)督骄瓣,半監(jiān)督和強(qiáng)化學(xué)習(xí))
是否可以動(dòng)態(tài)漸進(jìn)學(xué)習(xí)(在線學(xué)習(xí) vs 批量學(xué)習(xí))
它們是否只是通過(guò)簡(jiǎn)單地比較新的數(shù)據(jù)點(diǎn)和已知的數(shù)據(jù)點(diǎn)斟薇,或者在訓(xùn)練數(shù)據(jù)中進(jìn)行模式識(shí)別师坎,以建立一個(gè)預(yù)測(cè)模型,就像科學(xué)家所做的那樣(基于實(shí)例學(xué)習(xí) vs 基于模型學(xué)習(xí))
監(jiān)督學(xué)習(xí)
在監(jiān)督學(xué)習(xí)中堪滨,用來(lái)訓(xùn)練算法的訓(xùn)練數(shù)據(jù)包含了答案胯陋,稱為標(biāo)簽
分類:垃圾郵件過(guò)濾器
回歸:預(yù)測(cè)目標(biāo)數(shù)值
在機(jī)器學(xué)習(xí)中,一個(gè)屬性就是一個(gè)數(shù)據(jù)類型(例如,“里程數(shù)”)遏乔,取決于具體問(wèn)題一個(gè)特征會(huì)有多個(gè)含義义矛,但通常是屬性加上它的值(“里程數(shù)=15000”)。
一些重要的監(jiān)督學(xué)習(xí)算法:
K近鄰算法
線性回歸
邏輯回歸
支持向量機(jī)(SVM)
決策樹(shù)和隨機(jī)森林
神經(jīng)網(wǎng)絡(luò)
一些最重要的非監(jiān)督學(xué)習(xí)算法:
聚類
K 均值
層次聚類分析(Hierarchical Cluster Analysis盟萨,HCA)
期望最大值
可視化和降維
主成分分析(Principal Component Analysis凉翻,PCA)
核主成分分析
局部線性嵌入(Locally-Linear Embedding,LLE)
t-分布鄰域嵌入算法(t-distributed Stochastic Neighbor Embedding捻激,t-SNE)
關(guān)聯(lián)性規(guī)則學(xué)習(xí)
Apriori 算法
Eclat 算法
與此有關(guān)聯(lián)的任務(wù)是降維制轰,降維的目的是簡(jiǎn)化數(shù)據(jù)、但是不能失去大部分信息胞谭。做法之一是合并若干相關(guān)的特征艇挨。例如,汽車的里程數(shù)與車齡高度相關(guān)韭赘,降維算法就會(huì)將它們合并成一個(gè)缩滨,表示汽車的磨損。這叫做特征提取
在用訓(xùn)練集訓(xùn)練機(jī)器學(xué)習(xí)算法(比如監(jiān)督學(xué)習(xí)算法)時(shí)泉瞻,最好對(duì)訓(xùn)練集進(jìn)行降維脉漏。這樣可以運(yùn)行的更快,占用的硬盤(pán)和內(nèi)存空間更少袖牙,有些情況下性能也更好侧巨。
半監(jiān)督學(xué)習(xí)
一些算法可以處理部分帶標(biāo)簽的訓(xùn)練數(shù)據(jù),通常是大量不帶標(biāo)簽數(shù)據(jù)加上小部分帶標(biāo)簽數(shù)據(jù)鞭达。
強(qiáng)化學(xué)習(xí)
強(qiáng)化學(xué)習(xí)非常不同司忱。學(xué)習(xí)系統(tǒng)在這里被稱為智能體(agent),可以對(duì)環(huán)境進(jìn)行觀察畴蹭,選擇和執(zhí)行動(dòng)作坦仍,獲得獎(jiǎng)勵(lì)(負(fù)獎(jiǎng)勵(lì)是懲罰,見(jiàn)圖 1-12)叨襟。然后它必須自己學(xué)習(xí)哪個(gè)是最佳方法(稱為策略繁扎,policy),以得到長(zhǎng)久的最大獎(jiǎng)勵(lì)糊闽。策略決定了智能體在給定情況下應(yīng)該采取的行動(dòng)梳玫。
批量和在線學(xué)習(xí)
另一個(gè)用來(lái)分類機(jī)器學(xué)習(xí)的準(zhǔn)則是,它是否能從導(dǎo)入的數(shù)據(jù)流進(jìn)行持續(xù)學(xué)習(xí)右犹。
批量學(xué)習(xí)
在批量學(xué)習(xí)中提澎,系統(tǒng)不能進(jìn)行持續(xù)學(xué)習(xí):必須用所有可用數(shù)據(jù)進(jìn)行訓(xùn)練。這通常會(huì)占用大量時(shí)間和計(jì)算資源念链,所以一般是線下做的盼忌。首先是進(jìn)行訓(xùn)練莉炉,然后部署在生產(chǎn)環(huán)境且停止學(xué)習(xí),它只是使用已經(jīng)學(xué)到的策略碴犬。這稱為離線學(xué)習(xí)。
在線學(xué)習(xí)
在在線學(xué)習(xí)中梆暮,是用數(shù)據(jù)實(shí)例持續(xù)地進(jìn)行訓(xùn)練服协,可以一次一個(gè)或一次幾個(gè)實(shí)例(稱為小批量)。每個(gè)學(xué)習(xí)步驟都很快且廉價(jià)啦粹,所以系統(tǒng)可以動(dòng)態(tài)地學(xué)習(xí)到達(dá)的新數(shù)據(jù)
基于實(shí)例 vs 基于模型學(xué)習(xí)
另一種分類機(jī)器學(xué)習(xí)的方法是判斷它們是如何進(jìn)行歸納推廣的偿荷。大多機(jī)器學(xué)習(xí)任務(wù)是關(guān)于預(yù)測(cè)的。這意味著給定一定數(shù)量的訓(xùn)練樣本唠椭,系統(tǒng)需要能推廣到之前沒(méi)見(jiàn)到過(guò)的樣本跳纳。對(duì)訓(xùn)練數(shù)據(jù)集有很好的性能還不夠,真正的目標(biāo)是對(duì)新實(shí)例預(yù)測(cè)的性能贪嫂。
有兩種主要的歸納方法:基于實(shí)例學(xué)習(xí)和基于模型學(xué)習(xí)寺庄。
基于實(shí)例學(xué)習(xí)
也許最簡(jiǎn)單的學(xué)習(xí)形式就是用記憶學(xué)習(xí)。
基于模型學(xué)習(xí)
另一種從樣本集進(jìn)行歸納的方法是建立這些樣本的模型力崇,然后使用這個(gè)模型進(jìn)行預(yù)測(cè)斗塘。這稱作基于模型學(xué)習(xí)
機(jī)器學(xué)習(xí)的主要挑戰(zhàn)
訓(xùn)練數(shù)據(jù)量不足
沒(méi)有代表性的訓(xùn)練數(shù)據(jù)
為了更好地進(jìn)行歸納推廣,讓訓(xùn)練數(shù)據(jù)對(duì)新數(shù)據(jù)具有代表性是非常重要的亮靴。無(wú)論你用的是基于實(shí)例學(xué)習(xí)或基于模型學(xué)習(xí)馍盟,這點(diǎn)都很重要。
低質(zhì)量數(shù)據(jù)
很明顯茧吊,如果訓(xùn)練集中的錯(cuò)誤贞岭、異常值和噪聲(錯(cuò)誤測(cè)量引入的)太多,系統(tǒng)檢測(cè)出潛在規(guī)律的難度就會(huì)變大搓侄,性能就會(huì)降低瞄桨。花費(fèi)時(shí)間對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行清理是十分重要的讶踪。事實(shí)上讲婚,大多數(shù)據(jù)科學(xué)家的一大部分時(shí)間是做清洗工作的。例如:
如果一些實(shí)例是明顯的異常值俊柔,最好刪掉它們或嘗試手工修改錯(cuò)誤筹麸;
如果一些實(shí)例缺少特征(比如,你的 5% 的顧客沒(méi)有說(shuō)明年齡)雏婶,你必須決定是否忽略這個(gè)屬性物赶、忽略這些實(shí)例、填入缺失值(比如留晚,年齡中位數(shù))酵紫,或者訓(xùn)練一個(gè)含有這個(gè)特征的模型和一個(gè)不含有這個(gè)特征的模型告嘲,等等。
不相關(guān)的特征
機(jī)器學(xué)習(xí)項(xiàng)目成功的關(guān)鍵之一是用好的特征進(jìn)行訓(xùn)練奖地。這個(gè)過(guò)程稱作特征工程橄唬,包括:
- 特征選擇:在所有存在的特征中選取最有用的特征進(jìn)行訓(xùn)練。
- 特征提炔未酢:組合存在的特征仰楚,生成一個(gè)更有用的特征(如前面看到的,可以使用降維算法)犬庇。
- 收集新數(shù)據(jù)創(chuàng)建新特征僧界。
過(guò)擬合訓(xùn)練數(shù)據(jù)
過(guò)度歸納是我們?nèi)祟惤?jīng)常做的,如果我們不小心臭挽,機(jī)器也會(huì)犯同樣的錯(cuò)誤捂襟。在機(jī)器學(xué)習(xí)中,這稱作過(guò)擬合:意思是說(shuō)欢峰,模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)很好葬荷,但是推廣效果不好。
過(guò)擬合發(fā)生在相對(duì)于訓(xùn)練數(shù)據(jù)的量和噪聲纽帖,模型過(guò)于復(fù)雜的情況闯狱。可能的解決方案有:
- 簡(jiǎn)化模型抛计,可以通過(guò)選擇一個(gè)參數(shù)更少的模型(比如使用線性模型哄孤,而不是高階多項(xiàng)式模型)、減少訓(xùn)練數(shù)據(jù)的屬性數(shù)吹截、或限制一下模型
- 收集更多的訓(xùn)練數(shù)據(jù)
- 減小訓(xùn)練數(shù)據(jù)的噪聲(比如瘦陈,修改數(shù)據(jù)錯(cuò)誤和去除異常值)
正則化
限定一個(gè)模型以讓它更簡(jiǎn)單,降低過(guò)擬合的風(fēng)險(xiǎn)被稱作正則化(regularization)波俄。例如晨逝,我們之前定義的線性模型有兩個(gè)參數(shù),θ0和θ1懦铺。它給了學(xué)習(xí)算法兩個(gè)自由度以讓模型適應(yīng)訓(xùn)練數(shù)據(jù):可以調(diào)整截距θ0和斜率θ1捉貌。如果強(qiáng)制θ1=0,算法就只剩一個(gè)自由度冬念,擬合數(shù)據(jù)就會(huì)更為困難:能做的只是將在線下移動(dòng)趁窃,盡可能地靠近訓(xùn)練實(shí)例,結(jié)果會(huì)在平均值附近急前。這就是一個(gè)非常簡(jiǎn)單的模型醒陆!如果我們?cè)试S算法可以修改θ1,但是只能在一個(gè)很小的范圍內(nèi)修改裆针,算法的自由度就會(huì)介于 1 和 2 之間刨摩。它要比兩個(gè)自由度的模型簡(jiǎn)單寺晌,比 1 個(gè)自由度的模型要復(fù)雜。你的目標(biāo)是在完美擬合數(shù)據(jù)和保持模型簡(jiǎn)單性上找到平衡澡刹,確保算法的推廣效果呻征。
正則化的度可以用一個(gè)超參數(shù)(hyperparameter)控制。超參數(shù)是一個(gè)學(xué)習(xí)算法的參數(shù)(而不是模型的)罢浇。這樣陆赋,它是不會(huì)被學(xué)習(xí)算法本身影響的,它優(yōu)于訓(xùn)練己莺,在訓(xùn)練中是保持不變的。如果你設(shè)定的超參數(shù)非常大戈轿,就會(huì)得到一個(gè)幾乎是平的模型(斜率接近于 0)凌受;這種學(xué)習(xí)算法幾乎肯定不會(huì)過(guò)擬合訓(xùn)練數(shù)據(jù),但是也很難得到一個(gè)好的解思杯。調(diào)節(jié)超參數(shù)是創(chuàng)建機(jī)器學(xué)習(xí)算法非常重要的一部分
欠擬合訓(xùn)練數(shù)據(jù)
你可能猜到了胜蛉,欠擬合是和過(guò)擬合相對(duì)的:當(dāng)你的模型過(guò)于簡(jiǎn)單時(shí)就會(huì)發(fā)生。例如色乾,生活滿意度的線性模型傾向于欠擬合誊册;現(xiàn)實(shí)要比這個(gè)模型復(fù)雜的多,所以預(yù)測(cè)很難準(zhǔn)確暖璧,即使在訓(xùn)練樣本上也很難準(zhǔn)確案怯。
解決這個(gè)問(wèn)題的選項(xiàng)包括:
- 選擇一個(gè)更強(qiáng)大的模型,帶有更多參數(shù)
- 用更好的特征訓(xùn)練學(xué)習(xí)算法(特征工程)
- 減小對(duì)模型的限制(比如澎办,減小正則化超參數(shù))
測(cè)試
交叉驗(yàn)證
為了避免“浪費(fèi)”過(guò)多訓(xùn)練數(shù)據(jù)在驗(yàn)證集上嘲碱,通常的辦法是使用交叉驗(yàn)證:訓(xùn)練集分成互補(bǔ)的子集,每個(gè)模型用不同的子集訓(xùn)練局蚀,再用剩下的子集驗(yàn)證麦锯。一旦確定模型類型和超參數(shù),最終的模型使用這些超參數(shù)和全部的訓(xùn)練集進(jìn)行訓(xùn)練琅绅,用測(cè)試集得到推廣誤差率扶欣。
沒(méi)有免費(fèi)午餐公理
模型是觀察的簡(jiǎn)化版本。簡(jiǎn)化意味著舍棄無(wú)法進(jìn)行推廣的表面細(xì)節(jié)千扶。但是料祠,要確定舍棄什么數(shù)據(jù)、保留什么數(shù)據(jù)澎羞,必須要做假設(shè)术陶。例如,線性模型的假設(shè)是數(shù)據(jù)基本上是線性的煤痕,實(shí)例和模型直線間的距離只是噪音梧宫,可以放心忽略接谨。
在一篇 1996 年的著名論文中,David Wolpert 證明塘匣,如果完全不對(duì)數(shù)據(jù)做假設(shè)脓豪,就沒(méi)有理由選擇一個(gè)模型而不選另一個(gè)。這稱作沒(méi)有免費(fèi)午餐(NFL)公理忌卤。對(duì)于一些數(shù)據(jù)集扫夜,最佳模型是線性模型,而對(duì)其它數(shù)據(jù)集是神經(jīng)網(wǎng)絡(luò)驰徊。沒(méi)有一個(gè)模型可以保證效果更好(如這個(gè)公理的名字所示)笤闯。確信的唯一方法就是測(cè)試所有的模型。因?yàn)檫@是不可能的棍厂,實(shí)際中就必須要做一些對(duì)數(shù)據(jù)合理的假設(shè)颗味,只評(píng)估幾個(gè)合理的模型。例如牺弹,對(duì)于簡(jiǎn)單任務(wù)浦马,你可能是用不同程度的正則化評(píng)估線性模型,對(duì)于復(fù)雜問(wèn)題张漂,你可能要評(píng)估幾個(gè)神經(jīng)網(wǎng)絡(luò)模型晶默。