周志華老師《機器學習》西瓜書學習筆記

2021-03-02 專知

【導讀】周志華《機器學習》又稱西瓜書是一本較為全面的書籍,書中詳細介紹了機器學習領域不同類型的算法(例如:監督學習、無監督學習、半監督學習、強化學習、集成降維、特徵選擇等),記錄了Vay-Keen在學習過程中的理解思路與擴展知識點,希望對新人閱讀西瓜書有所幫助!

項目地址:

https://github.com/Vay-keen/Machine-learning-learning-notes

學習筆記

一. 緒論

機器學習是目前信息技術中最激動人心的方向之一,其應用已經深入到生活的各個層面且與普通人的日常生活密切相關。本文為清華大學最新出版的《機器學習》教材的Learning Notes,書作者是南京大學周志華教授,多個大陸首位彰顯其學術奢華。本篇主要介紹了該教材前兩個章節的知識點以及自己一點淺陋的理解。

1.1 機器學習的定義

正如我們根據過去的經驗來判斷明天的天氣,吃貨們希望從購買經驗中挑選一個好瓜,那能不能讓計算機幫助人類來實現這個呢?機器學習正是這樣的一門學科,人的「經驗」對應計算機中的「數據」,讓計算機來學習這些經驗數據,生成一個算法模型,在面對新的情況中,計算機便能作出有效的判斷,這便是機器學習。

另一本經典教材的作者Mitchell給出了一個形式化的定義,假設:

P:電腦程式在某任務類T上的性能。

T:電腦程式希望實現的任務類。

E:表示經驗,即歷史的數據集。

若該電腦程式通過利用經驗E在任務T上獲得了性能P的改善,則稱該程序對E進行了學習。

1.2 機器學習的一些基本術語

假設我們收集了一批西瓜的數據,例如:(色澤=青綠;根蒂=蜷縮;敲聲=濁響), (色澤=烏黑;根蒂=稍蜷;敲聲=沉悶), (色澤=淺自;根蒂=硬挺;敲聲=清脆)……每對括號內是一個西瓜的記錄,定義:

所有記錄的集合為:數據集。

每一條記錄為:一個實例(instance)或樣本(sample)。

例如:色澤或敲聲,單個的特點為特徵(feature)或屬性(attribute)。

對於一條記錄,如果在坐標軸上表示,每個西瓜都可以用坐標軸中的一個點表示,一個點也是一個向量,例如(青綠,蜷縮,濁響),即每個西瓜為:一個特徵向量(feature vector)。

一個樣本的特徵數為:維數(dimensionality),該西瓜的例子維數為3,當維數非常大時,也就是現在說的「維數災難」。

電腦程式學習經驗數據生成算法模型的過程中,每一條記錄稱為一個「訓練樣本」,同時在訓練好模型後,我們希望使用新的樣本來測試模型的效果,則每一個新的樣本稱為一個「測試樣本」。定義:

所有訓練樣本的集合為:訓練集(trainning set),[特殊]。

所有測試樣本的集合為:測試集(test set),[一般]。

機器學習出來的模型適用於新樣本的能力為:泛化能力(generalization),即從特殊到一般。

西瓜的例子中,我們是想計算機通過學習西瓜的特徵數據,訓練出一個決策模型,來判斷一個新的西瓜是否是好瓜。可以得知我們預測的是:西瓜是好是壞,即好瓜與差瓜兩種,是離散值。同樣地,也有通過歷年的人口數據,來預測未來的人口數量,人口數量則是連續值。定義:

預測值為離散值的問題為:分類(classification)。

預測值為連續值的問題為:回歸(regression)。

我們預測西瓜是否是好瓜的過程中,很明顯對於訓練集中的西瓜,我們事先已經知道了該瓜是否是好瓜,學習器通過學習這些好瓜或差瓜的特徵,從而總結出規律,即訓練集中的西瓜我們都做了標記,稱為標記信息。但也有沒有標記信息的情形,例如:我們想將一堆西瓜根據特徵分成兩個小堆,使得某一堆的西瓜儘可能相似,即都是好瓜或差瓜,對於這種問題,我們事先並不知道西瓜的好壞,樣本沒有標記信息。定義:

訓練數據有標記信息的學習任務為:監督學習(supervised learning),容易知道上面所描述的分類和回歸都是監督學習的範疇。

訓練數據沒有標記信息的學習任務為:無監督學習(unsupervised learning),常見的有聚類和關聯規則。

2 模型的評估與選擇

2.1 誤差與過擬合

我們將學習器對樣本的實際預測結果與樣本的真實值之間的差異成為:誤差(error)。定義:

在訓練集上的誤差稱為訓練誤差(training error)或經驗誤差(empirical error)。

在測試集上的誤差稱為測試誤差(test error)。

學習器在所有新樣本上的誤差稱為泛化誤差(generalization error)。

顯然,我們希望得到的是在新樣本上表現得很好的學習器,即泛化誤差小的學習器。因此,我們應該讓學習器儘可能地從訓練集中學出普適性的「一般特徵」,這樣在遇到新樣本時才能做出正確的判別。然而,當學習器把訓練集學得「太好」的時候,即把一些訓練樣本的自身特點當做了普遍特徵;同時也有學習能力不足的情況,即訓練集的基本特徵都沒有學習出來。我們定義:

可以得知:在過擬合問題中,訓練誤差十分小,但測試誤差教大;在欠擬合問題中,訓練誤差和測試誤差都比較大。目前,欠擬合問題比較容易克服,例如增加迭代次數等,但過擬合問題還沒有十分好的解決方案,過擬合是機器學習面臨的關鍵障礙。

2.2 評估方法

在現實任務中,我們往往有多種算法可供選擇,那麼我們應該選擇哪一個算法才是最適合的呢?如上所述,我們希望得到的是泛化誤差小的學習器,理想的解決方案是對模型的泛化誤差進行評估,然後選擇泛化誤差最小的那個學習器。但是,泛化誤差指的是模型在所有新樣本上的適用能力,我們無法直接獲得泛化誤差。

因此,通常我們採用一個「測試集」來測試學習器對新樣本的判別能力,然後以「測試集」上的「測試誤差」作為「泛化誤差」的近似。顯然:我們選取的測試集應儘可能與訓練集互斥,下面用一個小故事來解釋why:

假設老師出了10 道習題供同學們練習,考試時老師又用同樣的這10道題作為試題,可能有的童鞋只會做這10 道題卻能得高分,很明顯:這個考試成績並不能有效地反映出真實水平。回到我們的問題上來,我們希望得到泛化性能好的模型,好比希望同學們課程學得好並獲得了對所學知識"舉一反三"的能力;訓練樣本相當於給同學們練習的習題,測試過程則相當於考試。顯然,若測試樣本被用作訓練了,則得到的將是過於"樂觀"的估計結果。

2.3 訓練集與測試集的劃分方法

如上所述:我們希望用一個「測試集」的「測試誤差」來作為「泛化誤差」的近似,因此我們需要對初始數據集進行有效劃分,劃分出互斥的「訓練集」和「測試集」。下面介紹幾種常用的劃分方法:

2.3.1 留出法

將數據集D劃分為兩個互斥的集合,一個作為訓練集S,一個作為測試集T,滿足D=S∪T且S∩T=∅,常見的劃分為:大約2/3-4/5的樣本用作訓練,剩下的用作測試。需要注意的是:訓練/測試集的劃分要儘可能保持數據分布的一致性,以避免由於分布的差異引入額外的偏差,常見的做法是採取分層抽樣。同時,由於劃分的隨機性,單次的留出法結果往往不夠穩定,一般要採用若干次隨機劃分,重複實驗取平均值的做法。

2.3.2 交叉驗證法

將數據集D劃分為k個大小相同的互斥子集,滿足D=D1∪D2∪...∪Dk,Di∩Dj=∅(i≠j),同樣地儘可能保持數據分布的一致性,即採用分層抽樣的方法獲得這些子集。交叉驗證法的思想是:每次用k-1個子集的併集作為訓練集,餘下的那個子集作為測試集,這樣就有K種訓練集/測試集劃分的情況,從而可進行k次訓練和測試,最終返回k次測試結果的均值。交叉驗證法也稱「k折交叉驗證」,k最常用的取值是10,下圖給出了10折交叉驗證的示意圖。

與留出法類似,將數據集D劃分為K個子集的過程具有隨機性,因此K折交叉驗證通常也要重複p次,稱為p次k折交叉驗證,常見的是10次10折交叉驗證,即進行了100次訓練/測試。特殊地當劃分的k個子集的每個子集中只有一個樣本時,稱為「留一法」,顯然,留一法的評估結果比較準確,但對計算機的消耗也是巨大的。

2.3.3 自助法

我們希望評估的是用整個D訓練出的模型。但在留出法和交叉驗證法中,由於保留了一部分樣本用於測試,因此實際評估的模型所使用的訓練集比D小,這必然會引入一些因訓練樣本規模不同而導致的估計偏差。留一法受訓練樣本規模變化的影響較小,但計算複雜度又太高了。「自助法」正是解決了這樣的問題。

自助法的基本思想是:給定包含m個樣本的數據集D,每次隨機從D 中挑選一個樣本,將其拷貝放入D',然後再將該樣本放回初始數據集D 中,使得該樣本在下次採樣時仍有可能被採到。重複執行m 次,就可以得到了包含m個樣本的數據集D'。可以得知在m次採樣中,樣本始終不被採到的概率取極限為:

這樣,通過自助採樣,初始樣本集D中大約有36.8%的樣本沒有出現在D'中,於是可以將D'作為訓練集,D-D'作為測試集。自助法在數據集較小,難以有效劃分訓練集/測試集時很有用,但由於自助法產生的數據集(隨機抽樣)改變了初始數據集的分布,因此引入了估計偏差。在初始數據集足夠時,留出法和交叉驗證法更加常用。

2.4 調參

大多數學習算法都有些參數(parameter) 需要設定,參數配置不同,學得模型的性能往往有顯著差別,這就是通常所說的"參數調節"或簡稱"調參" (parameter tuning)。

學習算法的很多參數是在實數範圍內取值,因此,對每種參數取值都訓練出模型來是不可行的。常用的做法是:對每個參數選定一個範圍和步長λ,這樣使得學習的過程變得可行。例如:假定算法有3 個參數,每個參數僅考慮5 個候選值,這樣對每一組訓練/測試集就有555= 125 個模型需考察,由此可見:拿下一個參數(即經驗值)對於算法人員來說是有多麼的happy。

最後需要注意的是:當選定好模型和調參完成後,我們需要使用初始的數據集D重新訓練模型,即讓最初劃分出來用於評估的測試集也被模型學習,增強模型的學習效果。用上面考試的例子來比喻:就像高中時大家每次考試完,要將考卷的題目消化掉(大多數題目都還是之前沒有見過的吧?),這樣即使考差了也能開心的玩耍了~。

 

二、性能度量

三、假設檢驗&方差&偏差

四、線性模型

五、決策樹

六、神經網絡

七、支持向量機

九、貝葉斯分類器

十、EM算法 

十一、集成學習

十二、聚類

十三、降維與度量學習

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

十五、計算學習理論

十七、半監督學習

十八、概率圖模型

十九、強化學習

更多請查看項目地址

-END-

專 · 知

專知,專業可信的人工智慧知識分發!歡迎登錄www.zhuanzhi.ai,註冊登錄專知,獲取更多AI知識資料!

歡迎微信掃一掃加入專知人工智慧知識星球群,獲取最新AI專業乾貨知識教程視頻資料和與專家交流諮詢

請加專知小助手微信(掃一掃如下二維碼添加),加入專知人工智慧主題群,諮詢技術商務合作~

相關焦點

  • 周志華《機器學習》西瓜書精煉版筆記來了!16 章完整版
    《機器學習》無疑是機器學習的必讀書籍。因此,一份優秀的筆記對於我們學習本書來說,幫助很大。今天就給大家推薦一個西瓜書《機器學習》的精煉版筆記。作者 Vay-keen 來自深圳大學,將自己整理的完整版筆記發布在了 GitHub 上。
  • 周志華《機器學習》西瓜書出全新視頻課啦!
    號主推薦:周志華老師的《機器學習》可以說是中文機器學習最經典的學習資料之一、強烈推薦!
  • 【西瓜書】周志華《機器學習》學習筆記與習題探討(一)
    【西瓜書】周志華《機器學習》學習筆記與習題探討(一)學習算法:機器學習所研究的主要內容,是關於在計算機上從數據中產生「模型」的算法,即「學習算法」。學習算法的作用:1.基於提供的經驗數據產生模型;2.面對新情況時,模型可提供相應的判斷。模型:泛指從數據中學得的結果。學習器:學習算法在給定數據和參數空間上的實例化。要進行機器學習,先要有數據。
  • 《周志華機器學習詳細公式推導版》完整PDF首發!1.1w+標星開源項目pumpkin-book
    關於本書《南瓜書 Pumpkin-Book》由開源組織Datawhale發起,團隊成員謝文睿、秦州牽頭,針對國內機器學習經典教材--周志華老師的《機器學習》,將教材中難以理解的公式做了解析,對跳躍性較大的公式做了推導,幫助大家解決機器學習中的數學難題。
  • CV學習筆記(十二):二值化操作
    關注「深度學習衝鴨」,一起學習一起衝鴨!
  • 教程 | 一文讀懂自學機器學習的誤區和陷阱(附學習資料)
    除此之外,也想特別推薦最近新出的一本Python機器學習類書籍:《Hands-On Machine Learning with Scikit-Learn and TensorFlow》。3.1.3. 周志華《機器學習》周志華老師的《機器學習》也被大家親切的叫做「西瓜書」。雖然只有幾百頁,但內容涵蓋比較廣泛。
  • CV學習筆記(九):光流法的實現
    關注「深度學習衝鴨」,一起學習一起衝鴨!
  • 知乎 | 機器/深度學習入門建議
    獲得CV入坑學習資料視頻:(選一個喜歡的就行)文檔教程:還是推薦看莫煩的教程:書籍的話推薦看看《利用Python進行數據分析》建議觀看吳恩達老師的課程,可以看個兩三遍,乾貨很多機器學習實戰:cuijiahua.com/blog/ml/參考書籍:《統計學習方法》李航吳恩達機器學習筆記:http://www.ai-start.com/ml2014/1.
  • CV學習筆記(八):光流法原理
    關注「深度學習衝鴨」,一起學習一起衝鴨!
  • 周志華:機器學習有這兩大派別,新人入門別跟錯隊
    2017 年 3 月 3 日,中國人工智慧學會(CAAI)將舉辦 AIDL2《機器學習前沿》會議,邀請了南京大學的周志華教授擔任學術負責人,他屆時也將在會議上發表致辭。而在今年 7 月份的 GAIR 大會上,雷鋒網也將邀請周志華教授進行主題演講的分享。
  • 《DEEP LEARNING》《機器學習-周志華》《統計學習方法-李航》《機器學習實戰》《利用Python進行數據分析》
    《深度學習》AI聖經!深度學習領域奠基性的經典暢銷書!        這是深度學習的權威教科書,由該領域的主要貢獻者撰寫。此書內容非常清晰、全面並且權wei。閱讀這本書,你可以知道深度學習的由來、它的好處以及它的未來。
  • 南京大學LAMDA所長周志華:機器學習的現狀與未來
    (原標題:南京大學LAMDA所長周志華:機器學習的現狀與未來)
  • 機器學習 周志華版 PDF 高清電子書
    《機器學習》,清華大學出版社出版,作者:周志華。《機器學習》是計算機科學與人工智慧的重要分支領域。
  • 《機器學習》筆記-半監督學習(13)
    作者:劉才權           編輯:龔    賽           如今機器學習和深度學習如此火熱,相信很多像我一樣的普通程序猿或者還在大學校園中的同學
  • 多模態深度學習:用深度學習的方式融合各種信息
    多模態深度學習的例子,其中使用不同類型的神經網絡提取特徵這種方法的問題是,它將給予所有子網絡/模式同等的重要性,這在現實情況中是非常不可能的。【深度學習衝鴨技術交流二群】微信交流群已成立額外贈送福利資源!
  • 周志華《機器學習》課後習題解析(第一章)緒論
    周志華老師的《機器學習》(西瓜書)一書,沒有公布答案,於是我們從網上搜集了各題目的答案,供大家參考。參考答案 第一章 緒論 1.1.表1.1中若只包含編號為1,4的兩個樣例,試給出相應的版本空間。編號色澤根蒂敲聲好瓜1青綠蜷縮濁響是2烏黑稍蜷沉悶否本題解答:CSDN博主「四去六進一」原文連結:https://blog.csdn.net/icefire_tyh/java/article/details/52065224答:假設空間指的是問題所有假設組成的空間,我們可以把學習過程看作是在假設空間中搜索的過程
  • 周志華:關於機器學習的一點思考
    南京大學周志華教授在AI WORLD 2018大會上分享他關於機器學習的一點思考:我們需要設計新的、神經網絡以外的深度模型;讓智能體在弱監督條件下也能夠學習,以及考慮開放動態任務環境下的學習。震撼!周志華教授表示,當前機器學習成功的背後,實際上離不開三點:1)有效的深度模型,現階段基本上就是深度神經網絡;2)存在強監督信息,也即數據都要有標註,而且越精準越好;3)學習的環境較為穩定。
  • 一文讀懂機器學習中的正則化
    註:以下內容引自魏秀參博士的知乎回答大家都知道在統計機器學習中的一個經典假設是「源空間(source domain)和目標空間(target domain)的數據分布(distribution)是一致的」。如果不一致,那麼就出現了新的機器學習問題,如transfer learning/domain adaptation等。
  • AI | 怎樣快速入門機器學習和深度學習?
    編者按:入門機器學習和深度學習並不是一件容易的事情。需要學習大量的知識,初學者常常會迷茫不知所措。現在我們給你帶來一篇純乾貨,幫助你入門機器學習和深度學習。機器學習算法書籍:《統計學習方法》:李航博士的經典教材。用最精煉的語言描述機器學習算法,轉行AI必讀書籍《機器學習》:周志華教授的西瓜書。統計學習方法涵蓋面太窄,配合西瓜書來擴展寬度。《python機器學習及實現》:適合入門,學習曲線平滑,理論書看累了,就跟著這本書打一遍代碼,對kaggle就會大致的了解。
  • 機器學習/深度學習入門資料匯總
    課程連結:https://www.coursera.org/learn/machine-learning深度學習大家可能看過《一天搞懂深度學習》的PPT,作者是臺灣大學的李宏毅老師。其實,李宏毅老師還有門深度學習的課程,視頻也掛在網上。