本書兼顧機器學習基礎、經(jīng)典方法和深度學習方法,對組成機器學習的基礎知識和基本算法進行了比 較細致的介紹,對廣泛應用的經(jīng)典算法如線性回歸、邏輯回歸、樸素貝葉斯、支持向量機、決策樹和集成學 習等算法都給出了深入的分析并討論了無監(jiān)督學習的基本方法,對深度學習和強化學習進行了全面的敘 述,比較深入地討論了反向傳播算法、多層感知機、CNN、RNN 和 LSTM 等深度神經(jīng)網(wǎng)絡的核心知識和結 構;對于強化學習,不僅介紹了經(jīng)典表格方法,還討論了深度強化學習。 本書是面向大學理工科和管理類各專業(yè)的寬口徑、綜合性機器學習的教材,可供本科生和一年級研究 生課程使用,也可供科技人員、工程師和程序員自學機器學習的原理和算法使用。本書對基礎和前沿、經(jīng) 典方法和熱門技術進行了盡可能的平衡,使得讀者不僅能在機器學習領域打下一個良好的基礎,同時也可 以利用所學知識解決遇到的實際問題并為進入學科前沿打好基礎。
本書對機器學習算法的全面介紹,既包含經(jīng)典機器學習方法,也包括深度學習和增強學習。
前言
機器學習已經(jīng)成為一種解決諸多問題的有效工具,廣泛應用于多學科交叉領域。本書以理工科本科生和一年級研究生的基礎知識為起點,以面向工程應用為目標,適度側重電子信息專業(yè)學生,并盡可能滿足其他專業(yè)需求,是一本通用性和專業(yè)性兼顧的機器學習入門教材。通過學習本書,讀者可以為掌握機器學習包括深度學習的本質和算法、解決實際問題及開展與本領域相關的研究打下基礎。
本書是作者《機器學習導論》(以下稱《導論》)的姐妹篇,是對《導論》的精簡。但本書不是經(jīng)過簡單刪削的簡化版,而是對內(nèi)容進行了重新梳理和編排,更適合作為一個學期機器學習課程的基本教材!秾д摗犯m合作為對機器學習課程要求更高并留有一定自學材料的教材。與《導論》類似,本書在內(nèi)容選擇上盡可能地進行了平衡,既反映機器學習的基礎知識和經(jīng)典方法,又重視近期非;钴S的深度學習和強化學習的內(nèi)容。深度學習很重要,尤其當前的一些商業(yè)化應用(包括計算機視覺、語音識別、自然語言處理、推薦系統(tǒng)、信息檢索等),既有大數(shù)據(jù)支持,又可以通過大規(guī)模計算系統(tǒng)進行訓練(學習),取得了許多重要進展。但并不是所有應用都有必要使用深度學習,許多問題用傳統(tǒng)機器學習技術就可以取得很好的結果,尤其是一些工程中的專門領域,獲取大數(shù)據(jù)集是非常困難的,在這些領域中,經(jīng)典的機器學習方法可得到更廣泛的應用。
全書內(nèi)容共12章,分為3部分。
第一部分涵蓋前5章,包括基礎性介紹和一些需要補充的基礎知識。第1章是機器學習概述,介紹了機器學習要解決的基本問題,以及一些基本術語、基本類型和構成模型的基本元素; 第2章是
統(tǒng)計與優(yōu)化基礎,介紹了概率和統(tǒng)計基礎、決策論基礎、信息理論入門知識和優(yōu)化原理入門知識,目的是使本書盡可能滿足具有不同背景的讀者需求;第3章和第4章分別介紹了基本回歸算法和基本分類算法,包括線性回歸、線性基函數(shù)回歸、Fisher線性判別分析、感知機、邏輯回歸和樸素貝葉斯方法; 第5章介紹了機器學習的評估和機器學習理論的相關知識。
第二部分由第6~8章組成,介紹了機器學習的3種重要算法: 支持向量機、決策樹和集成學習。由于這3類算法較為重要,每類都用一章的篇幅進行專題介紹。
第三部分由最后4章組成,包括深度學習、無監(jiān)督學習和強化學習。關于神經(jīng)網(wǎng)絡與深度學習的專題,用兩章的篇幅做了較深入的討論。第9章是神經(jīng)網(wǎng)絡的基礎,討論了網(wǎng)絡的結構、表示定理、目標函數(shù)、基本優(yōu)化方法、梯度計算、初始化和正則化等,最重要的是給出了反向傳播算法的詳細介紹; 第10章詳細介紹深度學習中的兩大類網(wǎng)絡結構: 卷積神經(jīng)網(wǎng)絡和循環(huán)神經(jīng)網(wǎng)絡,分別介紹了其基本結構、擴展結構,以及幾個有影響的網(wǎng)絡結構的例子,給出了殘差網(wǎng)絡、LSTM、GRU等新結構的介紹,然后介紹了深度網(wǎng)絡的優(yōu)化技術、正則化和歸一化。第11章是關于無監(jiān)督學習算法的專題,討論了聚類算法、EM算法及主分量分析。第12章介紹了強化學習原理和算法,首先討論了強化學習的表格方法,然后介紹了值函數(shù)逼近和策略梯度兩類算法,這兩類算法都可以結合深度神經(jīng)網(wǎng)絡構成深度強化學習。
目錄中標記星號的章節(jié)屬于選讀內(nèi)容。
作為一本教材,本書每章都設置了適量的習題供選用。作者在附錄A中給出了課程的實踐型作業(yè)實例。在作者自己開設的課程中,每學期均要求學生完成若干實踐型作業(yè),作業(yè)一般來自網(wǎng)絡資源中的實際數(shù)據(jù),需要學生自己選擇預處理方法,實踐型作業(yè)的效果非常好。每年的作業(yè)都有變化,為了提供完整的參考性,附錄A給出某年的全部實踐型作業(yè)的原題,僅供使用本書作為教材的老師參考。對于不同的院校、不同的專業(yè),可以有不同的要求,但應該至少完成一項實踐型作業(yè)。對于自學本書的科技人員,可以自行選擇一些題目測試自己的學習效果。真正掌握好機器學習既需要較強的數(shù)學知識,從而理解各種算法; 又需要有較強的實踐能力,編程、調試完成一些實踐型作業(yè)。本書以原理和算法為主,若讀者需要學習編程基礎,如Python語言,可自行選擇相關的編程教材或指南,本書附錄A的最后介紹了幾個編程指南的網(wǎng)絡鏈接。
作為一本綜合性、導論性的機器學習教材,本書對深度學習和強化學習的介紹在深度和廣度上都做了很大的努力,希望讀者在學習到機器學習基礎知識的同時,對深度學習和強化學習有深入的了解,盡快進入這些領域的前沿。
本書作為一本適合一學期課程使用的基本教材,參考文獻只列出了教材和專著,《導論》則包含了更多較新的研究論文,考慮篇幅和基本教材的定位,本書沒有再列出這些文獻。
許多同行和研究生對本書的出版做出了貢獻。微軟亞洲研究院的劉鐵巖博士對課程內(nèi)容的設置提出了寶貴意見,秦濤博士對本書的內(nèi)容給出了若干有價值的建議,清華大學電子工程系的同事汪玉、王劍、袁堅和沈淵等教授提供了各種幫助,謹表示感謝!作者的學生王超博士,曾多次作為課程助教,協(xié)助進行課程內(nèi)容的完善和實踐型作業(yè)的設計,并仔細閱讀了本書的初稿,提出若干修改意見; 助教博士生金月、邱云波幫助繪制了多幅插圖,金月幫助實現(xiàn)了3.3節(jié)的實例,在此一并表示感謝。
盡管做了很大努力,但由于作者水平、時間和精力所限,本書難免有缺點和不足,希望讀者批評指正。
張旭東
2023年3月于清華園
張旭東:清華大學電子工程系長聘教授,博士生導師,教學指導委員會主席。主要研究方向為信號處理和機器學習。先后承擔國家級、省部級和國際合作項目數(shù)十項,在IEEE、IET、ACM等重要刊物和NIPS、AAAI、ICASSP、SIGIR等重要會議上發(fā)表學術論文150余篇,出版著作5部。獲得Elsevier最高引用獎(The Most Cited Paper Award)和IET國際雷達年會最優(yōu)論文獎,兩次獲得清華大學教學成果一等獎,三次獲得清華大學優(yōu)秀教材獎。
第一部分基礎知識和基本方法
第1章機器學習概述
微課視頻 185分鐘
1.1什么是機器學習
1.2機器學習的類型
1.2.1基本分類
1.2.2監(jiān)督學習及其功能分類
1.3構建機器學習系統(tǒng)的基本問題
1.3.1機器學習的基本元素
1.3.2機器學習的一些基本概念
1.4從簡單示例理解機器學習
1.4.1一個簡單的回歸示例
1.4.2一個簡單的分類示例
1.5深度學習簡介
1.6本章小結
習題
第2章統(tǒng)計與優(yōu)化基礎
微課視頻 168分鐘
2.1概率論基礎
2.1.1離散隨機變量
2.1.2連續(xù)隨機變量
2.1.3隨機變量的統(tǒng)一表示
2.1.4隨機變量的基本特征
2.1.5隨機特征的蒙特卡洛逼近
2.2概率實例
2.2.1離散隨機變量示例
2.2.2高斯分布
2.2.3指數(shù)族
2.2.4混合高斯過程
2.2.5馬爾可夫過程
2.3最大似然估計
2.4貝葉斯估計
2.5貝葉斯決策
2.5.1機器學習中的決策
2.5.2分類的決策
2.5.3回歸的決策
2.6隨機變量的熵特征
2.6.1熵的定義和基本性質
2.6.2KL散度
2.7非參數(shù)方法
2.8優(yōu)化技術概述
2.9本章小結
習題
第3章基本回歸算法
微課視頻 85分鐘
3.1線性回歸
3.1.1基本線性回歸
3.1.2線性回歸的遞推學習
3.1.3多輸出線性回歸
3.2正則化線性回歸
3.3線性基函數(shù)回歸
3.4本章小結
習題
第4章基本分類算法
微課視頻 86分鐘
4.1基本分類問題
4.2線性判別函數(shù)模型
4.2.1Fisher線性判別分析
*4.2.2感知機
4.3邏輯回歸
4.3.1二分類問題的邏輯回歸
4.3.2多分類問題的邏輯回歸
4.4樸素貝葉斯方法
4.5高斯生成模型分類器
4.5.1相同協(xié)方差矩陣情況的二分類
4.5.2不同協(xié)方差矩陣情況的二分類
4.5.3多分類情況
4.6本章小結
習題
第5章機器學習的性能與評估
5.1模型的訓練、驗證與測試
5.2機器學習模型的性能評估
5.3機器學習模型的誤差分解
5.4機器學習模型的泛化性能
5.4.1假設空間有限時的泛化誤差界
*5.4.2假設空間無限時的泛化誤差界
5.5本章小結
習題
第二部分經(jīng)典算法
第6章支持向量機與核函數(shù)方法
微課視頻 90分鐘
6.1線性可分的支持向量機
6.1.1不等式約束的優(yōu)化
6.1.2線性可分情況SVM的原理
6.1.3線性可分情況SVM的優(yōu)化解
6.2線性不可分情況的SVM
6.2.1線性不可分情況SVM的優(yōu)化解
6.2.2合頁損失函數(shù)
6.3非線性支持向量機
6.3.1SVM分類算法小結
6.3.2核函數(shù)方法
6.4SVM用于多分類問題
*6.5支持向量回歸
6.6本章小結
習題
第7章決策樹算法
微課視頻 75分鐘
7.1基本決策樹算法
7.1.1決策樹的基本結構
7.1.2信息增益和ID3算法
7.1.3信息增益率和C4.5算法
7.2CART算法
7.2.1分類樹
7.2.2回歸樹
7.3決策樹的一些實際問題
7.3.1連續(xù)數(shù)值變量
7.3.2正則化和剪枝技術
7.3.3缺失屬性的訓練樣本問題
7.4本章小結
習題
第8章集成學習算法
微課視頻 60分鐘
8.1Bagging和隨機森林
8.1.1自助采樣和Bagging算法
8.1.2隨機森林算法
8.2提升和AdaBoost算法
8.3提升樹算法
8.3.1加法模型和提升樹
8.3.2梯度提升樹
8.4本章小結
習題
第三部分進階方法
第9章神經(jīng)網(wǎng)絡與深度學習之一: 基礎
微課視頻 90分鐘
9.1神經(jīng)網(wǎng)絡的基本結構
9.1.1神經(jīng)元結構
9.1.2多層神經(jīng)網(wǎng)絡解決異或問題
9.1.3多層感知機
9.1.4神經(jīng)網(wǎng)絡的逼近定理
9.2神經(jīng)網(wǎng)絡的目標函數(shù)和優(yōu)化
9.2.1神經(jīng)網(wǎng)絡的目標函數(shù)
9.2.2神經(jīng)網(wǎng)絡的優(yōu)化
9.3誤差反向傳播算法
9.3.1反向傳播算法的推導
9.3.2反向傳播算法的向量形式
9.4神經(jīng)網(wǎng)絡學習中的一些問題
9.4.1初始化
9.4.2正則化
9.4.3幾類等價正則化技術
9.5本章小結
習題
第10章神經(jīng)網(wǎng)絡與深度學習之二: 結構與優(yōu)化
微課視頻 180分鐘
10.1卷積神經(jīng)網(wǎng)絡
10.1.1基本CNN的結構
*10.1.2卷積的一些擴展結構
*10.1.3CNN示例介紹
10.2循環(huán)神經(jīng)網(wǎng)絡
10.2.1基本RNN
10.2.2RNN的計算流程
*10.2.3RNN的擴展BP算法
10.2.4深度RNN
*10.2.5長短期記憶模型
*10.2.6門控循環(huán)單元
10.3深度學習中的優(yōu)化算法
10.3.1小批量SGD算法
10.3.2動量SGD算法
10.3.3自適應學習率算法
10.4深度學習訓練的正則化技術
10.4.1Dropout技術
10.4.2批歸一化
10.5本章小結
習題
第11章無監(jiān)督學習算法
微課視頻 85分鐘
11.1聚類算法
11.1.1K均值聚類算法
11.1.2其他度量和聚類算法
11.2EM算法
11.2.1獨立同分布情況
*11.2.2通過KL散度對EM算法的解釋
11.3EM算法求解高斯混合模型參數(shù)
11.3.1GMM參數(shù)估計
11.3.2GMM的軟聚類
11.4主分量分析
11.4.1主分量分析原理
11.4.2廣義Hebb算法
11.5本章小結
習題
第12章強化學習
微課視頻 160分鐘
12.1強化學習的基本問題
12.2馬爾可夫決策過程
12.2.1MDP的定義
12.2.2貝爾曼方程
12.2.3最優(yōu)策略
12.2.4強化學習的類型
12.2.5探索與利用
12.3動態(tài)規(guī)劃
12.3.1策略迭代方法
12.3.2值函數(shù)迭代方法
12.4強化學習的蒙特卡洛方法
12.4.1MC部分策略評估
12.4.2MC策略改進
12.5強化學習的時序差分方法
12.5.1基本時序差分學習和Sarsa算法
12.5.2Q學習
12.5.3DP、MC和TD算法的簡單比較
12.6強化學習的值函數(shù)逼近
12.6.1基本線性值函數(shù)逼近
12.6.2深度Q網(wǎng)絡
12.7策略梯度方法
12.7.1MC策略梯度算法Reinforce
12.7.2行動器評判器方法
*12.8多臂賭博機
12.9本章小結
習題
參考文獻
附錄A課程的實踐型作業(yè)實例
A.1第1次實踐作業(yè)
A.2第2次實踐作業(yè)
A.3第3次實踐作業(yè)
附錄B函數(shù)對向量和矩陣的求導
視 頻 名 稱時長/分鐘位置
ML01導論1651.1節(jié)節(jié)首
ML02導論2601.3節(jié)節(jié)首
ML03導論3601.4節(jié)節(jié)首
ML04統(tǒng)計基礎1702.1節(jié)節(jié)首
ML05統(tǒng)計基礎2402.5節(jié)節(jié)首
ML06統(tǒng)計基礎3582.6節(jié)節(jié)首
ML07回歸學習853.1節(jié)節(jié)首
ML08分類學習1504.1節(jié)節(jié)首
ML09分類學習2364.4節(jié)節(jié)首
ML10核與SVM906.1節(jié)節(jié)首
ML11決策樹757.1節(jié)節(jié)首
ML12集成學習608.1節(jié)節(jié)首
ML13神經(jīng)網(wǎng)絡909.1節(jié)節(jié)首
ML14深度學習18010.1節(jié)節(jié)首
ML15深度學習24410.2節(jié)節(jié)首
ML16深度學習35610.3節(jié)節(jié)首
ML17無監(jiān)督學習16511.1節(jié)節(jié)首
ML18無監(jiān)督學習22011.4節(jié)節(jié)首
ML19強化學習19012.1節(jié)節(jié)首
ML20強化學習27012.3節(jié)節(jié)首