為了便于理解,假設(shè)我們收集了一批關(guān)于西瓜的數(shù)據(jù),如(色澤=青綠;根蒂=硬挺;敲聲=濁響),(色澤=烏黑;根蒂=稍蜷;敲聲=沉悶)……
這組記錄的集合成為一個(gè)“數(shù)據(jù)集”(data set),其中每條記錄是關(guān)于一個(gè)事件或?qū)ο螅ㄟ@里是一個(gè)西瓜)的描述,成為一個(gè)“示例”(instance)或“樣本”(sample)
反映事件或?qū)ο笤谀撤矫娴谋憩F(xiàn)或性質(zhì)的事項(xiàng),例如“色澤”,稱為“屬性”(attribute)或特征(feature);屬性上的取值,例如“青綠”,成為“屬性值”(attribute value)。屬性張成的空間成為“屬性空間”(attribute space)、“樣本空間”(sample space)或“輸入空間”。
例如我們把“色澤”“根蒂”“敲聲”作為三個(gè)坐標(biāo)軸,則它們張成一個(gè)用于描述西瓜的三維空間,每個(gè)西瓜都可在這個(gè)空間中找到自己的坐標(biāo)位置。由于空間中的每個(gè)點(diǎn)對(duì)應(yīng)一個(gè)坐標(biāo)向量,因此我們也把一個(gè)示例(樣本)稱為一個(gè)“特征向量”(feature ventor)
從數(shù)據(jù)中學(xué)得模型的過(guò)程稱為“學(xué)習(xí)”或“訓(xùn)練”,這個(gè)過(guò)程通過(guò)執(zhí)行某個(gè)學(xué)習(xí)算法來(lái)完成。訓(xùn)練過(guò)程中使用的數(shù)據(jù)稱為“訓(xùn)練數(shù)據(jù)”,其中每個(gè)樣本稱為一個(gè)“訓(xùn)練樣本”,訓(xùn)練樣本組成的集合稱為“訓(xùn)練集”。學(xué)得模型對(duì)應(yīng)于關(guān)于數(shù)據(jù)的某種潛在的規(guī)律,因此亦稱“假設(shè)”;這種潛在的規(guī)律自身,則稱為“真相”或“真實(shí)”(ground-truth),學(xué)習(xí)過(guò)程就是為了找出或逼近真相。
有時(shí)候可以將模型稱為“學(xué)習(xí)器”(learner),可看作學(xué)習(xí)算法在給定數(shù)據(jù)和參數(shù)空間上的實(shí)例化。
如果希望學(xué)得一個(gè)能幫助我們判斷沒(méi)剖開(kāi)的是不是“好瓜”的模型,僅有前面的示例數(shù)據(jù)顯然不夠。要建立這樣的關(guān)于“預(yù)測(cè)”的模型,我們需獲得訓(xùn)練樣本的“結(jié)果”信息,例如“(色澤=青綠;根蒂=蜷縮;敲聲=濁響),好瓜”。這里關(guān)于示例結(jié)果的信息,例如“好瓜”,成為“標(biāo)記”(label);擁有了標(biāo)記信息的示例,則稱為“樣例”(example)。所有標(biāo)記的集合稱為“標(biāo)記空間”或“輸出空間”。
若我們欲預(yù)測(cè)的是離散值,例如“好瓜”“壞瓜”,此類學(xué)習(xí)任務(wù)稱為“分類”(classification);若欲預(yù)測(cè)的是連續(xù)值,例如西瓜成熟度0.95/0.27,此類學(xué)習(xí)任務(wù)稱為“回歸”(regression)。對(duì)只涉及兩個(gè)類別的“二分類”(binary classification)任務(wù),通常稱其中一個(gè)類為“正類”(positive class),另一個(gè)類為“反類”;涉及多個(gè)類別時(shí),則成為“多分類”(multi-class classification)任務(wù)。
一般的,預(yù)測(cè)任務(wù)是希望通過(guò)對(duì)訓(xùn)練集進(jìn)行學(xué)習(xí),建立一個(gè)從輸入空間到輸出空間的映射。
學(xué)得模型后,使用其進(jìn)行預(yù)測(cè)的過(guò)程稱為“測(cè)試”,被預(yù)測(cè)的樣本稱為“測(cè)試樣本”
我們還可以對(duì)西瓜做“聚類”(clustering),即將訓(xùn)練集中的西瓜分成若干組,每組成為一個(gè)“簇”(cluster);這些自動(dòng)形成的簇可能對(duì)應(yīng)一些潛在的概念劃分,例如“淺色瓜”“深色瓜”,甚至“本地瓜”、“外地瓜”。這樣的學(xué)習(xí)過(guò)程有助于我們了解數(shù)據(jù)內(nèi)在的規(guī)律,能為更深入地分析數(shù)據(jù)建立基礎(chǔ)。需說(shuō)明的是,在聚類學(xué)習(xí)中,“淺色瓜”“本地瓜”這樣的概念我們事先是不知道的,而且學(xué)習(xí)過(guò)程中使用的訓(xùn)練樣本通常不擁有標(biāo)記信息。
根據(jù)訓(xùn)練數(shù)據(jù)是否擁有標(biāo)記信息,學(xué)習(xí)任務(wù)可大致劃分為兩大類:監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí),分類和回歸是前者的代表,而聚類則是后者的代表。
機(jī)器學(xué)習(xí)的目標(biāo)是使學(xué)得的模型能很好地適用于“新樣本”,而不是僅僅在訓(xùn)練樣本上工作得很好;即便對(duì)聚類這樣的無(wú)監(jiān)督學(xué)習(xí)任務(wù),我們也希望學(xué)得的簇劃分能適用于沒(méi)有在訓(xùn)練集中出現(xiàn)的樣本。學(xué)得模型適用于新樣本的能力,稱為“泛化”能力。具有強(qiáng)泛化能力的模型能很好地適用于整個(gè)樣本空間。于是,盡管訓(xùn)練集通常只是樣本空間的一個(gè)很小的采樣,我們?nèi)韵M芎芎玫胤从吵鰳颖究臻g的特性,否則就很難期望在訓(xùn)練集上學(xué)得的模型能在整個(gè)樣本空間上都工作得很好。通常假設(shè)樣本空間中全體樣本服從一個(gè)未知“分布”(distribution),我們獲得的每個(gè)樣本都是獨(dú)立地從這個(gè)分布上采樣獲得的,即“獨(dú)立同分布”(簡(jiǎn)稱i.i.d)。一般而言,訓(xùn)練樣本越多,我們得到的關(guān)于分布的信息越多,這樣就越有可能通過(guò)學(xué)習(xí)獲得具有強(qiáng)泛化能力的模型。
歸納(induction)與演繹(deduction)是科學(xué)推理的兩大基本手段。前者是從特殊到一般的“泛化”(generalization)過(guò)程,即從具體的事實(shí)歸結(jié)出一般性規(guī)律;后者則是從一般到特殊的“特化”(specialization)過(guò)程,即從基礎(chǔ)原理推演出具體狀況。“從樣例中學(xué)習(xí)”顯然是一個(gè)歸納的過(guò)程,因此亦稱“歸納學(xué)習(xí)”(inductive learning)
歸納學(xué)習(xí)有狹義和廣義之分,廣義的歸納學(xué)習(xí)大體相當(dāng)于從樣例中學(xué)習(xí),而狹義的歸納學(xué)習(xí)則要求從訓(xùn)練數(shù)據(jù)中學(xué)得概念(concept),因此亦稱為“概念學(xué)習(xí)”或“概念形成”。概念學(xué)習(xí)技術(shù)目前研究、應(yīng)用都比較少,因?yàn)橐獙W(xué)得泛化性能好且語(yǔ)義明確的概念實(shí)在困難,現(xiàn)實(shí)常用的技術(shù)大多是產(chǎn)生“黑箱”模型。
概念學(xué)習(xí)中最基本的是布爾概念學(xué)習(xí),即對(duì)“是”“不是”這樣的可表示為0/1布爾值的目標(biāo)概念的學(xué)習(xí)。
我們學(xué)習(xí)的目的是“泛化”,即通過(guò)對(duì)訓(xùn)練集中瓜的學(xué)習(xí)以獲得對(duì)沒(méi)見(jiàn)過(guò)的瓜進(jìn)行判斷的能力。我們可以把學(xué)習(xí)過(guò)程看作一個(gè)在所有假設(shè)組成的空間中進(jìn)行搜索的過(guò)程,搜索目標(biāo)是找到與訓(xùn)練集“匹配”(fit)的假設(shè),即能夠?qū)⒂?xùn)練集中的瓜判斷正確的假設(shè)。假設(shè)的表示一旦確定,假設(shè)空間及其規(guī)模大小就確定了。這里我們的假設(shè)空間由形如“(色澤=?)^(根蒂=?)^(敲聲=?)”的可能取值所形成的的假設(shè)組成。可以有許多策略對(duì)假設(shè)空間進(jìn)行搜索,搜索過(guò)程中可以不斷刪除與正例不一致的假設(shè)、和(或)與反例一致的假設(shè)。最終將會(huì)獲得與訓(xùn)練集一致(即對(duì)所有樣本能夠進(jìn)行正確判斷)的假設(shè),這就是我們學(xué)得的結(jié)果。
需注意的是,現(xiàn)實(shí)問(wèn)題中我們常面臨很大的假設(shè)空間,但學(xué)習(xí)過(guò)程是基于有限樣本訓(xùn)練集進(jìn)行的,因此,可能有多個(gè)假設(shè)與訓(xùn)練集一致,即存在著一個(gè)與訓(xùn)練集一致的“假設(shè)集合”,我們稱之為“版本空間”(version space)
通過(guò)學(xué)習(xí)得到的模型對(duì)應(yīng)了假設(shè)空間中的一個(gè)假設(shè)。有時(shí)會(huì)有多個(gè)與訓(xùn)練集一致的假設(shè),但與它們對(duì)應(yīng)的模型在面臨新樣本時(shí),會(huì)產(chǎn)生不同的輸出。對(duì)于一個(gè)具體的學(xué)習(xí)算法而言,它必須要產(chǎn)生一個(gè)模型。這時(shí),學(xué)習(xí)算法本身的“偏好”,就會(huì)起到關(guān)鍵作用,否則它將被假設(shè)空間中看似在訓(xùn)練集上“等效”的假設(shè)所迷惑,而無(wú)法產(chǎn)生確定的學(xué)習(xí)結(jié)果。機(jī)器學(xué)習(xí)算法在學(xué)習(xí)過(guò)程中對(duì)某種類型假設(shè)的偏好,稱為“歸納偏好”(inductive bias),或簡(jiǎn)稱“偏好”。歸納偏好可以看做學(xué)習(xí)算法自身在一個(gè)可能很龐大的假設(shè)空間中對(duì)假設(shè)進(jìn)行選擇的啟發(fā)式或“價(jià)值觀”
有沒(méi)有一般性的原則來(lái)引導(dǎo)算法確立“正確的”偏好呢?——奧卡姆剃刀是一個(gè)最基本的原則,即“若有多個(gè)假設(shè)與觀察一直,則選最簡(jiǎn)單的那個(gè)”
無(wú)論一個(gè)算法多聰明,另一個(gè)算法多笨拙,它們的期望性能竟然相同,這就是“沒(méi)有免費(fèi)的午餐”定理(簡(jiǎn)稱NFL)——既然所有學(xué)習(xí)算法的期望性能都跟隨機(jī)胡猜差不多,那還有什么好學(xué)的?
NFL定理有一個(gè)重要前提:所有“問(wèn)題”出現(xiàn)的機(jī)會(huì)性相同、或所有問(wèn)題同等重要,事實(shí)上,NFL定理假設(shè)了f的均勻分布,但實(shí)際情況并非如此,很多時(shí)候,我們只關(guān)注自己正在試圖解決的問(wèn)題,至于這個(gè)解決方案在別的問(wèn)題、甚至在相似的問(wèn)題上是否為好方案,我們并不關(guān)心。
NFL定理最重要的寓意是讓我們清楚地認(rèn)識(shí)到,脫離具體問(wèn)題,空泛地談?wù)摗笆裁磳W(xué)習(xí)算法更好”毫無(wú)意義。