走馬觀花之《機器學習》

一、緒論

基本術語

數據集(data set)、示例instance、樣本sample、屬性attribute、特徵feature、屬性值attribute value、屬性空間attribute space、樣本空間sample space、特徵向量feature vector。

從數據中學得模型的過程稱爲“學習”(learning)或“訓練”(training),這個過程通過執行某個學習算法來完成.訓練過程中使用的數據稱爲“訓練數據”(training data),其中每個樣本稱爲一個“訓練樣本”(training sample),訓練樣本組成的集合稱爲“訓練集”(training set).學得模型對應了關於數據的某種潛在的規律,因此亦稱“假設”(hypothesis);這種潛在規律自身,則稱爲“真相”或“真實”(ground-truth),學習過程就是爲了找出或逼近真相.有時將模型稱爲“學習器”(learner),可看作學習算法在給定數據和參數空間上的實例化。擁有了標記信息的示例,則稱爲“樣例”(example)。

若我們欲預測的是離散值,此類學習任務稱爲“分類”(classification);若欲預測的是連續值,此類學習任務稱爲“迴歸”(regression).對只涉及兩個類別的“二分類”(binary classification)任務,通常稱其中一個類爲“正類”(positive class),另一個類爲“反類”(negative class);涉及多個類別時,則稱爲“多分類”(multi-class classification)任務。

學得模型後,使用其進行預測的過程稱爲“測試”(testing),被預測的樣本稱爲“測試樣本”(testing sample)。我們還可以對西瓜做“聚類”(clustering),即將訓練集中的西瓜分成若干組,每組稱爲一個“簇”(cluster);這些自動形成的簇可能對應一些潛在的概念劃分,例如“淺色瓜”“深色瓜”,甚至“本地瓜”“外地瓜”.這樣的學習過程有助於我們瞭解數據內在的規律,能爲更深入地分析數據建立基礎.需說明的是,在聚類學習中,“淺色瓜”“本地瓜”這樣的概念我們事先是不知道的,而且學習過程中使用的訓練樣本通常不擁有標記信息.

根據訓練數據是否擁有標記信息,學習任務可大致劃分爲兩大類:“監督學習”(supervised learning)和“無監督學習”(unsupervised learning),分類和迴歸是前者的代表,而聚類則是後者的代表.

學得模型適用於新樣本的能力,稱爲“泛化”(generalization)能力

二、模型評估與選擇

三、線性模型

在屬性空間中擬合出一條滿足所有樣本的曲線。

四、決策樹

決策樹(decision tree)是一類常見的機器學習方法.以二分類任務爲例,我們希望從給定訓練數據集學得一個模型用以對新示例進行分類,這個把樣本分類的任務,可看作對“當前樣本屬於正類嗎?”這個問題的“決策”或“判定”過程.顧名思義,決策樹是基於樹結構來進行決策的,這恰是人類在面臨決策問題時一種很自然的處理機制,剪枝(pruning)是決策樹學習算法對付“過擬合”的主要手段.

五、神經網絡

1、神經元模型

1943年提出的M-P神經元模型:(此結構只能解決線性可分的問題,無法解決異或等非線性可分問題)
在這裏插入圖片描述
理想的激活函數是階躍函數,但其數學性質不好,實際上多用sigmoid函數。
在這裏插入圖片描述
把許多個這樣的神經元按一定的層次結構連接起來,就得到了神經網絡.

2、感知機與多層網絡

要解決非線性可分問題,需考慮使用多層功能神經元。例如圖5.5中這個簡單的兩層感知機就能解決異或問題.在圖5.5(a)中,輸出層與輸入層之間的一層神經元,被稱爲隱層或隱含層(hidden layer),隱含層和輸出層神經元都是擁有激活函數的功能神經元。
在這裏插入圖片描述
更一般的,常見的神經網絡是形如圖5.6所示的層級結構,每層神經元與下一層神經元全互連,神經元之間不存在同層連接,也不存在跨層連接.這樣的神經網絡結構通常稱爲“多層前饋神經網絡”(multi-layer feedforward neural networks),其中輸入層神經元接收外界輸入,隱層與輸出層神經元對信號進行加工,最終結果由輸出層神經元輸出;換言之,輸入層神經元僅是接受輸入,不進行函數處理,隱層與輸出層包含功能神經元。因此,圖5.6(a)通常被稱爲“兩層網絡”.爲避免歧義,本書稱其爲“單隱層網絡”.只需包含隱層,即可稱爲多層網絡.神經網絡的學習過程,就是根據訓練數據來調整神經元之間的“連接權”(connection weight)以及每個功能神經元的閥值;換言之,神經網絡“學”到的東西,蘊涵在連接權閥值中.
在這裏插入圖片描述

3、誤差逆傳播算法

多層網絡的學習能力比單層感知機強得多.欲訓練多層網絡,式(5.1)的簡單感知機學習規則顯然不夠了,需要更強大的學習算法.誤差逆傳播(error BackPropagation,簡稱BP)算法就是其中最傑出的代表,它是迄今最成功的神經網絡學習算法.現實任務中使用神經網絡時,大多是在使用BP算法進行訓練.值得指出的是,BP算法不僅可用於多層前饋神經網絡,還可用於其他類型的神經網絡,例如訓練遞歸神經網絡[Pineda,1987].但通常說“BP網絡”時,一般是指用BP算法訓練的多層前饋神經網絡.
在這裏插入圖片描述
圖5.8給出了BP算法的工作流程.對每個訓練樣例,BP算法執行以下操作:先將輸入示例提供給輸入層神經元,然後逐層將信號前傳,直到產生輸出層的結果;然後計算輸出層的誤差(第4-5行),再將誤差逆向傳播至隱層神經元(第6行),最後根據隱層神經元的誤差來對連接權和閾值進行調整(第7行).該迭代過程循環進行,直到達到某些停止條件爲止,例如訓練誤差已達到一個很小的值.
在這裏插入圖片描述

4、深度學習

典型的深度學習模型就是很深層的神經網絡(深度學習模型通常有八九層甚至更多隱層).顯然,對神經網絡模型,提高容量的辦法是增加隱層的數目和通過單純增加隱層神經元的數目,增加隱層的數目顯然比增加隱層神經元的數目更有效,然而,多隱層神經網絡難以直接用經典算法(例如標準BP算法)進行訓練,因爲誤差在多隱層內逆傳播時,往往會“發散”(diverge)而不能收斂到穩定狀態.

無監督逐層訓練(unsupervised layer-wise training)是多隱層網絡訓練的有效手段,其基本思想是每次訓練一層隱結點,訓練時將上一層隱結點的輸出作爲輸入,而本層隱結點的輸出作爲下一層隱結點的輸入,這稱爲“預訓練”(pre-training);在預訓練全部完成後,再對整個網絡進行“微調”(fine-tuning)訓練.

事實上,“預訓練+微調”的做法可視爲將大量參數分組,對每組先找到局部看來比較好的設置,然後再基於這些局部較優的結果聯合起來進行全局尋優.這樣就在利用了模型大量參數所提供的自由度的同時,有效地節省了訓練開銷.

另一種節省訓練開銷的策略是“權共享”(weight sharing),即讓一組神經元使用相同的連接權.這個策略在卷積神經網絡(Convolutional Neural Network,簡稱 CNN)[LeCun and Bengio,1995;LeCun et al.,1998]中發揮了重要作用.

六、支持向量機

在這裏插入圖片描述
在這裏插入圖片描述
如圖6.2所示,距離超平面最近的這幾個訓練樣本點使式(6.3)的等號成立,它們被稱爲“支持向量”(support vector),兩個異類支持向量到超平面的距離之和爲
在這裏插入圖片描述
它被稱爲“間隔”(margin).

七、貝葉斯分類

八、集成學習

集成學習(ensemble learning)通過構建並結合多個學習器來完成學習任務,有時也被稱爲多分類器系統(multi-classifier system)、基於委員會的學習(committee-based learning)等.

圖8.1顯示出集成學習的一般結構:先產生一組“個體學習器”(individual learner),再用某種策略將它們結合起來.個體學習器通常由一個現有的學習算法從訓練數據產生,例如C4.5決策樹算法、BP神經網絡算法等,此時集成中只包含同種類型的個體學習器,例如“決策樹集成”中全是決策樹,“神經網絡集成”中全是神經網絡,這樣的集成是“同質”的(homogeneous).同質集成中的個體學習器亦稱“基學習器”(base learner),相應的學習算法稱爲“基學習算法”(base learning algorithm).集成也可包含不同類型的個體學習器,例如同時包含決策樹和神經網絡,這樣的集成是“異質”的(heterogenous).異質集成中的個體學習器由不同的學習算法生成,這時就不再有基學習算法;相應的,個體學習器一般不稱爲基學習器,常稱爲“組件學習器”(component learner)或直接稱爲個體學習器.
在這裏插入圖片描述
根據個體學習器的生成方式,目前的集成學習方法大致可分爲兩大類,即個體學習器間存在強依賴關係、必須串行生成的序列化方法,以及個體學習器間不存在強依賴關係、可同時生成的並行化方法;前者的代表是Boosting,後者的代表是Bagging和“隨機森林”(Random Forest).

Boosting是一族可將弱學習器提升爲強學習器的算法.這族算法的工作機制類似:先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練樣本分佈進行調整,使得先前基學習器做錯的訓練樣本在後續受到更多關注,然後基於調整後的樣本分佈來訓練下一個基學習器;如此重複進行,直至基學習器數目達到事先指定的值T,最終將這個基學習器進行加權結合.

Bagging[Breiman,1996a]是並行式集成學習方法最著名的代表.從名字即可看出,它直接基於我們在2.2.3節介紹過的自助採樣法(bootstrap sampling).給定包含m個樣本的數據集,我們先隨機取出一個樣本放入採樣集中,再把該樣本放回初始數據集,使得下次採樣時該樣本仍有可能被選中,這樣,經過m次隨機採樣操作,我們得到含m個樣本的採樣集,初始訓練集中有的樣本在採樣集裏多次出現,有的則從未出現.

隨機森林(Random Forest,簡稱RF)[Breiman,2001a]是Bagging的一個擴展變體.RF在以決策樹爲基學習器構建Bagging集成的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇.具體來說,傳統決策樹在選擇劃分屬性時是在當前結點的屬性集合(假定有d個屬性)中選擇一個最優屬性;而在RF中,對基決策樹的每個結點,先從該結點的屬性集合中隨機選擇一個包含k個屬性的子集,然後再從這個子集中選擇一個最優屬性用於劃分.這裏的參數k控制了隨機性的引入程度:若令k=d,則基決策樹的構建與傳統決策樹相同;若令k=1,則是隨機選擇一個屬性用於劃分;一般情況下,推薦值k=log2d.

九、聚類

在“無監督學習”(unsupervised learning)中,訓練樣本的標記信息是未知的,目標是通過對無標記訓練樣本的學習來揭示數據的內在性質及規律,爲進一步的數據分析提供基礎.此類學習任務中研究最多、應用最廣的是“聚類”(clustering).

聚類試圖將數據集中的樣本劃分爲若干個通常是不相交的子集,每個子集稱爲一個“簇”(cluster).通過這樣的劃分,每個簇可能對應於一些潛在的概念(類別);需說明的是,這些概念對聚類算法而言事先是未知的,聚類過程僅能自動形成簇結構,簇所對應的概念語義需由使用者來把握和命名.

十、降維與度量學習

十一、特徵選擇與稀疏學習

我們將屬性稱爲“特徵”(feature),對當前學習任務有用的屬性稱爲“相關特徵”(relevant feature)、沒什麼用的屬性稱爲“無關特徵”(irrelevant feature).從給定的特徵集合中選擇出相關特徵子集的過程,稱爲“特徵選擇”(feature selection).

特徵選擇是一個重要的“數據預處理”(data preprocessing)過程,在現實機器學習任務中,獲得數據之後通常先進行特徵選擇,此後再訓練學習器.那麼,爲什麼要進行特徵選擇呢?

有兩個很重要的原因:首先,我們在現實任務中經常會遇到維數災難問題,這是由於屬性過多而造成的,若能從中選擇出重要的特徵,使得後續學習過程僅需在一部分特徵上構建模型,則維數災難問題會大爲減輕.從這個意義上說,特徵選擇與第10章介紹的降維有相似的動機;事實上,它們是處理高維數據的兩大主流技術.第二個原因是,去除不相關特徵往往會降低學習任務的難度,這就像偵探破案一樣,若將紛繁複雜的因素抽絲剝繭,只留下關鍵因素,則真相往往更易看清

十二、計算學習理論

顧名思義,計算學習理論(computational learning theory)研究的是關於通過“計算”來進行“學習”的理論,即關於機器學習的理論基礎,其目的是分析學習任務的困難本質,爲學習算法提供理論保證,並根據分析結果指導算法設計.

十三、半監督學習

事實上,未標記樣本雖未直接包含標記信息,但若它們與有標記樣本是從同樣的數據源獨立同分布採樣而來,則它們所包含的關於數據分佈的信息對建立模型將大有裨益.圖13.1給出了一個直觀的例示.若僅基於圖中的一個正例和一個反例,則由於待判別樣本恰位於兩者正中間,大體上只能隨機猜測;若能觀察到圖中的未標記樣本,則將很有把握地判別爲正例.
在這裏插入圖片描述
讓學習器不依賴外界交互、自動地利用未標記樣本來提升學習性能,就是半監督學習(semi-supervised learning).半監督學習的現實需求非常強烈,因爲在現實應用中往往能容易地收集到大量未標記樣本,而獲取“標記”卻需耗費人力、物力.例如,在進行計算機輔助醫學影像分析時,可以從醫院獲得大量醫學影像,但若希望醫學專家把影像中的病竈全都標識出來則是不現實的.“有標記數據少,未標記數據多”半監督學習恰是提供了一條利用“廉價”的未標記樣本的途徑.

要利用未標記樣本,必然要做一些將未標記樣本所揭示的數據分佈信息與類別標記相聯繫的假設.最常見的是“聚類假設”(cluster assumption),即假設數據存在簇結構,同一個簇的樣本屬於同一個類別.圖13.1就是基於聚類假設來利用未標記樣本,由於待預測樣本與正例樣本通過未標記樣本的“撮合”聚在一起,與相對分離的反例樣本相比,待判別樣本更可能屬於正類.半監督學習中另一種常見的假設是“流形假設”(manifold assumption),即假設數據分佈在一個流形結構上,鄰近的樣本擁有相似的輸出值.“鄰近”程度常用“相似”程度來刻畫,因此,流形假設可看作聚類假設的推廣,但流形假設對輸出值沒有限制,因此比聚類假設的適用範圍更廣,可用於更多類型的學習任務.事實上,無論聚類假設還是流形假設,其本質都是“相似的樣本擁有相似的輸出”這個基本假設.

十四、概率圖模型

機器學習最重要的任務,是根據一些已觀察到的證據(例如訓練樣本)來對感興趣的未知變量(例如類別標記)進行估計和推測.概率模型(probabilistic model)提供了一種描述框架,將學習任務歸結於計算變量的概率分佈.在概率模型中,利用已知變量推測未知變量的分佈稱爲“推斷”(inference),其核心是如何基於可觀測變量推測出未知變量的條件分佈.

概率圖模型(probabilistic graphical model)是一類用圖來表達變量相關關係的概率模型.它以圖爲表示工具,最常見的是用一個結點表示一個或一組隨機變量,結點之間的邊表示變量間的概率相關關係,即“變量關係圖”.根據邊的性質不同,概率圖模型可大致分爲兩類:第一類是使用有向無環圖表示變量間的依賴關係,稱爲有向圖模型或貝葉斯網(Bayesian network);第二類是使用無向圖表示變量間的相關關係,稱爲無向圖模型或馬爾可夫網(Markov network).

隱馬爾可夫模型(Hidden Markov Model,簡稱HMM)是結構最簡單的動態貝葉斯網(dynamic Bayesian network),這是一種著名的有向圖模型,主要用於時序數據建模,在語音識別、自然語言處理等領域有廣泛應用.
在這裏插入圖片描述

十五、規則學習

機器學習中的“規則”(rule)通常是指語義明確、能描述數據分佈所隱含的客觀規律或領域概念、可寫成“若……,則……”形式的邏輯規則
[Firnkranz et al.,2012].“規則學習”(rule learning)是從訓練數據中學習出一組能用於對未見示例進行判別的規則.

與神經網絡、支持向量機這樣的“黑箱模型”相比,規則學習具有更好的可解釋性,能使用戶更直觀地對判別過程有所瞭解.另一方面,數理邏輯具有極強的表達能力,絕大多數人類知識都能通過數理邏輯進行簡潔的刻畫和表達.規則學習能更自然地在學習過程中引入領域知識.此外,邏輯規則的抽象描述能力在處理一些高度複雜的AI任務時具有顯著的優勢,例如在問答系統中有時可能遇到非常多、甚至無窮種可能的答案,此時若能基於邏輯規則進行抽象表述或者推理,則將帶來極大的便利.

十六、強化學習

我們考慮一下如何種西瓜.種瓜有許多步驟,從一開始的選種,到定期澆水、施肥、除草、殺蟲,經過一段時間才能收穫西瓜.通常要等到收穫後,我們才知道種出的瓜好不好.若將得到好瓜作爲辛勤種瓜勞動的獎賞,則在種瓜過程中當我們執行某個操作(例如,施肥)時,並不能立即獲得這個最終獎賞,甚至難以判斷當前操作對最終獎賞的影響,僅能得到一個當前反饋(例如,瓜苗看起來更健壯了).我們需多次種瓜,在種瓜過程中不斷摸索,然後才能總結出較好的種瓜策略.這個過程抽象出來,就是“強化學習”(reinforcement learning).

機器要做的是通過在環境中不斷地嘗試而學得一個“策略”(policy)π,根據這個策略,在狀態x下就能得知要執行的動作a=π(x),例如看到瓜苗狀態是缺水時,能返回動作“澆水”.

策略的優劣取決於長期執行這一策略後得到的累積獎賞,例如某個策略使得瓜苗枯死,它的累積獎賞會很小,另一個策略種出了好瓜,它的累積獎賞會很大.在強化學習任務中,學習的目的就是要找到能使長期累積獎賞最大化的策略長期累積獎賞有多種計算方式

讀者也許已經感覺到強化學習與監督學習的差別.若將這裏的“狀態”對應爲監督學習中的“示例”、“動作”對應爲“標記”,則可看出,強化學習中的“策略”實際上就相當於監督學習中的“分類器”(當動作是離散的)或“迴歸器”(當動作是連續的),模型的形式並無差別.但不同的是,在強化學習中並沒有監督學習中的有標記樣本(即“示例-標記”對),換言之,沒有人直接告訴機器在什麼狀態下應該做什麼動作,只有等到最終結果揭曉,才能通過“反思”之前的動作是否正確來進行學習.因此,強化學習在某種意義上可看作具有“延遲標記信息”的監督學習問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章