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