摘要:本文試圖對(duì)“機(jī)器學(xué)習(xí)”做一個(gè)概況描述往产,用簡(jiǎn)單易懂的方式介紹它的一些基本概念以及一些應(yīng)用場(chǎng)景,并簡(jiǎn)單介紹目前機(jī)器學(xué)習(xí)在商業(yè)領(lǐng)域的主要應(yīng)用和成就锅很。
機(jī)器學(xué)習(xí)是一門多領(lǐng)域交叉學(xué)科缤灵,涉及概率論、統(tǒng)計(jì)學(xué)善延、逼近論、 凸分析城侧、算法復(fù)雜度等多門學(xué)科易遣。主要研究的是從大量已知的數(shù)據(jù)和信息中找出未知的規(guī)律。它的本質(zhì)是模式識(shí)別嫌佑,是人工智能的核心豆茫。
計(jì)算機(jī)科學(xué)家Tom Mitchell對(duì)機(jī)器學(xué)習(xí)的定義為,“一個(gè)程序在完成任務(wù)T后獲得了經(jīng)驗(yàn)E歧强,其表現(xiàn)為效果P澜薄,如果它完成任務(wù)T的效果是P 为肮,那么會(huì)獲得經(jīng)驗(yàn)E”摊册。例如,假設(shè)你有一些圖片颊艳,每個(gè)圖片里是一條狗或一只貓茅特。程序可以通過觀察圖片來學(xué)習(xí)忘分,在學(xué)習(xí)到分辨能力之后,對(duì)新的包含有貓或者狗的圖片具有識(shí)別歸類的能力白修。我們可以對(duì)它識(shí)別新圖片的能力來進(jìn)行模型效果評(píng)估妒峦。
本文先介紹機(jī)器學(xué)習(xí)的兩種主要形式:監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí);然后介紹它們的主要任務(wù)兵睛,以及處理任務(wù)過程中所需要用到的數(shù)據(jù)集概念肯骇;最后介紹學(xué)習(xí)效果評(píng)估方式和評(píng)估涉及到的常用概念(過擬合、欠擬合)祖很。
監(jiān)督學(xué)習(xí) VS 無(wú)監(jiān)督學(xué)習(xí)
機(jī)器學(xué)習(xí)形式主要分為兩種:監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)笛丙。介于兩者之間的是半監(jiān)督學(xué)習(xí)(Semi-Supervised Learning)。
監(jiān)督學(xué)習(xí)(supervised learning)
如果把監(jiān)督學(xué)習(xí)的目的類比為考試假颇,那么監(jiān)督學(xué)習(xí)就是利用一些訓(xùn)練數(shù)據(jù)(練習(xí)題)胚鸯,構(gòu)建出一種模型(解題方法),能夠用來分析未知數(shù)據(jù)(考試)笨鸡。
直白一點(diǎn)說姜钳,就是在監(jiān)督學(xué)習(xí)中,必須存在一個(gè)訓(xùn)練集形耗,對(duì)訓(xùn)練集里邊的每個(gè)特征或者每個(gè)特征組合x哥桥,都有唯一確定的標(biāo)簽y與之對(duì)應(yīng),我們需要通過訓(xùn)練激涤,找到一個(gè)y與x的對(duì)應(yīng)關(guān)系的模型泰讽,使得對(duì)訓(xùn)練集以外的數(shù)據(jù)x’,能夠預(yù)測(cè)出它對(duì)應(yīng)的y'昔期。
明確定義一下已卸,監(jiān)督學(xué)習(xí)是從給定的訓(xùn)練數(shù)據(jù)集中學(xué)習(xí)出一個(gè)函數(shù)模型,當(dāng)新的數(shù)據(jù)到來時(shí)硼一,可以根據(jù)這個(gè)函數(shù)模型來預(yù)測(cè)結(jié)果累澡。它要求訓(xùn)練數(shù)據(jù)集中包含輸入變量(特征)和輸出變量(目標(biāo))。
這里的輸入變量和輸出變量有很多名稱般贼,本文主要使用解釋變量和響應(yīng)變量:
無(wú)監(jiān)督學(xué)習(xí)(unsupervised learning)
仍舊以學(xué)習(xí)做類比愧哟,無(wú)監(jiān)督學(xué)習(xí)就是,我們手里有一些問題哼蛆,但是我們不知道答案蕊梧,我們只能按照這些問題的特征,將它們分類腮介,比如數(shù)學(xué)題分為一類肥矢,英語(yǔ)題分為一類,語(yǔ)文題分為一類叠洗。
這種學(xué)習(xí)又稱為歸納學(xué)習(xí)甘改,即事先不知道樣本類別(樣本沒有標(biāo)簽)旅东,通過一定的方法,將相似的樣本歸為一類(然后再通過定性分析十艾,就可以給不同的分類加上標(biāo)簽了)抵代。
半監(jiān)督學(xué)習(xí)(semi-supervised learning)
介于監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)之間的,是半監(jiān)督學(xué)習(xí)忘嫉,即訓(xùn)練數(shù)據(jù)中有一部分是有便簽的荤牍,一部分是沒有標(biāo)簽的,沒有標(biāo)簽的數(shù)據(jù)往往占絕大多數(shù)庆冕。從不同的場(chǎng)景看参淫,半監(jiān)督學(xué)習(xí)又可以分為半監(jiān)督分類、半監(jiān)督回歸愧杯、半監(jiān)督聚類涎才、半監(jiān)督降維。
機(jī)器學(xué)習(xí)的主要任務(wù)
監(jiān)督學(xué)習(xí)的主要任務(wù)是預(yù)測(cè)力九,可以分為回歸性預(yù)測(cè)和分類性預(yù)測(cè)耍铜。
回歸預(yù)測(cè):預(yù)測(cè)連續(xù)型變量的數(shù)值,例如預(yù)測(cè)新產(chǎn)品銷量跌前,預(yù)測(cè)交易增長(zhǎng)量等棕兼。
根據(jù)輸入變量的個(gè)數(shù),可以分為一元回歸和多元回歸:
- 一元回歸:輸入變量只有1個(gè)抵乓,如y = ax + b伴挚,只有一個(gè)輸入變量x
- 多元回歸:輸入變量有2個(gè)或者2個(gè)以上,如y = ax1 + bx2 + c灾炭,有兩個(gè)輸入變量 x1 和 x2
這里采用簡(jiǎn)單的一元線性方程表示一元線性回歸模型茎芋,嚴(yán)格的模型定義還有一個(gè)誤差項(xiàng),后續(xù)一元線性回歸文章中會(huì)提到
根據(jù)輸入變量的指數(shù)蜈出,可以分為線性回歸和非線性回歸:
- 線性回歸:每個(gè)輸入變量的指數(shù)都是1田弥,例如典型的線性回歸方程y = ax + b 中,輸入變量x的指數(shù)是1
- 非線性回歸:至少有一個(gè)輸入變量的指數(shù)不等于1铡原,例如方程y = ax^2 + b偷厦,輸入變量x的指數(shù)是2;方程y = ax^(-1) + b燕刻,x的指數(shù)為-1只泼。
分類預(yù)測(cè):預(yù)測(cè)目標(biāo)變量的分類或者標(biāo)簽,例如根據(jù)病癥預(yù)測(cè)病人的疾病類型卵洗,根據(jù)文本內(nèi)容預(yù)測(cè)是否為垃圾短信请唱,P2P平臺(tái)根據(jù)借款期限和年化收益率等指標(biāo)預(yù)測(cè)風(fēng)險(xiǎn)類型等。
常用的監(jiān)督學(xué)習(xí)算法
- 回歸分析:線性回歸,邏輯回歸
- 統(tǒng)計(jì)分類:樸素貝葉斯籍滴,決策樹酪夷,隨機(jī)森林榴啸,AdaBoost孽惰,神經(jīng)元網(wǎng)絡(luò)等
無(wú)監(jiān)督學(xué)習(xí)的主要任務(wù)是聚類(Clustering),即發(fā)現(xiàn)觀測(cè)值的類別(但是無(wú)法知道每個(gè)組別的具體標(biāo)簽鸥印,需要再進(jìn)行定性分析)勋功,通過一些相似性度量方法,把相似的觀測(cè)值分到同一類別库说,使得同一組別之間的相似度最大狂鞋,不同組別之間的相似度最小。例如根據(jù)用戶屬性和行為特征進(jìn)行個(gè)性化推薦潜的。
無(wú)監(jiān)督學(xué)習(xí)的另一個(gè)常見的任務(wù)是降維(dimensionality reduction)骚揍。有些問題可能包含成千上萬(wàn)個(gè)輸入變量,會(huì)導(dǎo)致模型過于復(fù)雜啰挪,訓(xùn)練速度過慢信不,并且難以可視化;甚至存在一些噪音或者完全無(wú)關(guān)的變量亡呵,影響模型的歸納能力抽活。降維就是發(fā)現(xiàn)對(duì)輸出變量影響最大的輸入變量的過程,它將原來眾多的具有一定關(guān)系的變量锰什,重新組合成一組新的互相無(wú)關(guān)的綜合變量下硕,來代替原來的指標(biāo),并且盡可能多的反映原來變量的信息汁胆。
常用的無(wú)監(jiān)督學(xué)習(xí)算法
- 聚類算法梭姓,如K-Means,主成分分析PCA嫩码,混合高斯模型GMM等
訓(xùn)練集 VS 測(cè)試集
一般做預(yù)測(cè)型分析時(shí)糊昙,會(huì)將數(shù)據(jù)集分為訓(xùn)練集(Training Set)和測(cè)試集(Test Set),訓(xùn)練集用來構(gòu)建模型谢谦,測(cè)試集用來驗(yàn)證構(gòu)建好的模型的泛化能力(對(duì)具有同一規(guī)律的訓(xùn)練集以外的數(shù)據(jù)释牺,經(jīng)過訓(xùn)練的模型也能給出合適的輸出)。
有時(shí)候模型構(gòu)建過程中回挽,也需要檢驗(yàn)?zāi)P兔涣o助模型的構(gòu)建,所以會(huì)將訓(xùn)練集再分成兩部分:1)訓(xùn)練集千劈;2)驗(yàn)證集(Validation Set)祭刚。驗(yàn)證集主要用來確定網(wǎng)絡(luò)結(jié)構(gòu)或者控制模型復(fù)雜程度的參數(shù)。
典型的劃分是:訓(xùn)練集75%,測(cè)試集25%涡驮;或者訓(xùn)練集50%暗甥,驗(yàn)證集25%,測(cè)試集25%捉捅。
如果數(shù)據(jù)集本身非常少撤防,可能存在訓(xùn)練集不夠而無(wú)法很好的構(gòu)建模型的情況。交叉驗(yàn)證(Cross Validation)可以很好的解決這個(gè)問題棒口。它的主體思想是寄月,把數(shù)據(jù)集隨機(jī)分成N等份,用其中N-1份做訓(xùn)練无牵,剩余1份做測(cè)試漾肮,然后一次迭代。例如將數(shù)據(jù)分成5等份:
過擬合 VS 欠擬合
訓(xùn)練集和測(cè)試集的數(shù)據(jù)應(yīng)該嚴(yán)格區(qū)分茎毁,不能出現(xiàn)交叉或者重合克懊。否則很難評(píng)價(jià)構(gòu)建的模型,是從訓(xùn)練集中學(xué)到了歸納能力七蜘,還是僅僅記住了訓(xùn)練集的特征谭溉。
對(duì)訓(xùn)練集的這種記憶稱為過擬合(over-fitting),簡(jiǎn)單來說就是模型對(duì)訓(xùn)練集的數(shù)據(jù)準(zhǔn)確率高的離譜崔梗,卻無(wú)法適應(yīng)訓(xùn)練集以外的測(cè)試集數(shù)據(jù)夜只。
給定一個(gè)假設(shè)空間H,一個(gè)假設(shè)h屬于H蒜魄,如果存在其他的假設(shè)h’屬于H,使得在訓(xùn)練樣例上h的錯(cuò)誤率比h’小扔亥,但在整個(gè)實(shí)例分布上h’比h的錯(cuò)誤率小,那么就說假設(shè)h過度擬合訓(xùn)練數(shù)據(jù)谈为。
一個(gè)過擬合的模型旅挤,泛化能力較差,因?yàn)樗鼉H僅是記憶了訓(xùn)練集的關(guān)系和結(jié)果伞鲫,如果存在噪音粘茄,連同噪音也會(huì)記憶。
一般過擬合的原因是訓(xùn)練集中存在噪音或者訓(xùn)練集數(shù)據(jù)太少秕脓。解決的方法有:
雖然很多機(jī)器學(xué)習(xí)算法能力會(huì)隨著訓(xùn)練集的增加而增強(qiáng)柒瓣,
但是機(jī)器學(xué)習(xí)也有句話叫“Garbage in, garbage out”吠架,
如果一個(gè)訓(xùn)練集非常龐大但卻包含了太多噪聲芙贫、沒有關(guān)聯(lián)或者錯(cuò)誤的數(shù)據(jù),
訓(xùn)練出來的模型效果不會(huì)比只學(xué)習(xí)一小部分更有代表性的訓(xùn)練集的效果更好
與過擬合相對(duì)的傍药,是欠擬合磺平,即模型不能很好的捕捉到數(shù)據(jù)特征魂仍,不能很好的擬合數(shù)據(jù)。解決欠擬合的方法有:
- 添加其他特征項(xiàng)
- 添加多項(xiàng)式特征拣挪,例如將線性模型通過添加二次項(xiàng)或者三次項(xiàng)使模型泛化能力更強(qiáng)
- 減少正則化參數(shù)擦酌,因?yàn)檎齽t化是用來防止過擬合的,欠擬合的情況下菠劝,就要減少正則化參數(shù)
一開始模型往往是欠擬合的赊舶,也正因此,我們可以通過調(diào)整算法來對(duì)模型調(diào)優(yōu)闸英,但是優(yōu)化到一定程度以后锯岖,又需要注意過擬合的問題介袜。如何平衡過擬合和欠擬合甫何,是很多機(jī)器學(xué)習(xí)算法模型需要面對(duì)的問題。
模型評(píng)估
監(jiān)督學(xué)習(xí)中遇伞,有很多評(píng)估指標(biāo)用來評(píng)估模型的預(yù)測(cè)誤差辙喂。其中兩個(gè)基本的指標(biāo)是:偏差(Bias)和方差(Variance)。
偏差和方差就像飛鏢射到靶子上鸠珠,每個(gè)飛鏢都是從不同數(shù)據(jù)集得出的預(yù)測(cè)結(jié)果巍耗。
理想情況下,模型應(yīng)該具有低偏差和低方差渐排,但是兩者具有背反特征炬太,要降低一個(gè)指標(biāo)的時(shí)候,另一個(gè)指標(biāo)就會(huì)增高驯耻。這就是著名的偏差-方差均衡(Bias-Variance Trade-off)亲族。
監(jiān)督學(xué)習(xí)模型的評(píng)估指標(biāo)還有很多(后續(xù)介紹):
無(wú)監(jiān)督學(xué)習(xí),聚類模型可缚,評(píng)價(jià)指標(biāo)主要有Adjusted Rand Index(蘭德指數(shù))霎迫,互信息和輪廓系數(shù),暫不詳說帘靡。
機(jī)器學(xué)習(xí)的應(yīng)用
2016年知给,機(jī)器學(xué)習(xí)、人工智能領(lǐng)域取得了很多突飛猛進(jìn)的進(jìn)展描姚,稱作機(jī)器學(xué)習(xí)元年也不為過涩赢。全球各大公司都在進(jìn)行機(jī)器學(xué)習(xí)的研究,或者通過收購(gòu)機(jī)器學(xué)習(xí)領(lǐng)域的初創(chuàng)公司來迅速進(jìn)入這個(gè)領(lǐng)域轩勘。2016年筒扒,谷歌AlphaGo戰(zhàn)勝了李世石,各大巨頭公司紛紛開源深度學(xué)習(xí)相關(guān)框架和工具包赃阀,亞馬遜將人工智能服務(wù)納入AWS霎肯,無(wú)人駕駛成為“風(fēng)口”擎颖,各大巨頭涌入,百度推出的無(wú)人駕駛在美國(guó)開始測(cè)試观游,京東試水無(wú)人機(jī)搂捧、倉(cāng)儲(chǔ)機(jī)器人等等。
如今機(jī)器學(xué)習(xí)的應(yīng)用領(lǐng)域已經(jīng)非常廣泛懂缕,例如數(shù)據(jù)挖掘允跑、人臉識(shí)別、語(yǔ)音識(shí)別搪柑、自然語(yǔ)言處理聋丝、醫(yī)學(xué)診斷、信用卡欺詐工碾、證券市場(chǎng)分析等等弱睦。
然而機(jī)器學(xué)習(xí)在應(yīng)用領(lǐng)域也存在諸多爭(zhēng)論,例如偏見(Bias)問題:自動(dòng)汽車保險(xiǎn)報(bào)價(jià)可能存在歧視性定價(jià)渊额,刑事判決預(yù)測(cè)模型可能存在種族偏見况木,圖像分類器將“膚白”作為漂亮要素等等。而針對(duì)這些爭(zhēng)論旬迹,也有專家學(xué)者紛紛為其正名火惊,如Cathy O’Neil在《數(shù)學(xué)殺傷性武器》(Weapons of Math Destruction)中提出:“算法是沒有偏見的,研制算法的人才可能有偏見”奔垦。