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