本教材是一個機器學習工具箱,適用于計算機科學專業(yè)本科四年級或研究生一年級的學生。本書為那些想要使用機器學習過程來完成任務的人提供了許多主題,強調使用現有的工具和包,而不是自己重新編寫代碼。本書適用于從頭至尾的講授或閱讀,不同的講師或讀者有不同的需求。
譯者序
前言
致謝
關于作者
第一部分 分類
第1章 學會分類2
1.1 分類的主要思想2
1.1.1 誤差率及其他性能指標2
1.1.2 更詳細的評估3
1.1.3 過擬合與交叉驗證4
1.2 最近鄰分類5
1.3 樸素貝葉斯7
1.3.1 利用交叉驗證進行模型選擇9
1.3.2 數據缺失11
編程練習11
第2章 支持向量機和隨機森林14
2.1 支持向量機14
2.1.1 鉸鏈損失15
2.1.2 正則化16
2.1.3 通過隨機梯度下降來尋找分類器17
2.1.4 λ的搜索19
2.1.5 總結:用隨機梯度下降訓練20
2.1.6 例子:利用支持向量機分析成人收入21
2.1.7 利用支持向量機進行多類分類23
2.2 利用隨機森林進行分類23
2.2.1 構造決策樹25
2.2.2 用信息增益來選擇劃分27
2.2.3 森林29
2.2.4 構造并評估決策森林29
2.2.5 利用決策森林進行數據分類30
編程練習31
MNIST練習33
第3章 學習理論初步35
3.1 用留出損失預測測試損失35
3.1.1 樣本均值和期望36
3.1.2 利用切比雪夫不等式37
3.1.3 一個泛化界37
3.2 有限分類器族的測試誤差與訓練誤差38
3.2.1 霍夫丁不等式39
3.2.2 在有限預測器族上訓練39
3.2.3 所需樣例數量40
3.3 無限預測器集合41
3.3.1 預測器和二值函數41
3.3.2 對稱化43
3.3.3 限制泛化誤差44
第二部分 高維數據
第4章 高維數據48
4.1 概述及簡單繪圖48
4.1.1 均值48
4.1.2 桿圖和散點圖矩陣49
4.1.3 協(xié)方差51
4.1.4 協(xié)方差矩陣52
4.2 維數災難53
4.2.1 災難:數據不是你想象的那樣53
4.2.2 維數的小困擾55
4.3 用均值和協(xié)方差理解高維數據55
4.3.1 仿射變換下的均值和協(xié)方差56
4.3.2 特征向量及矩陣對角化56
4.3.3 通過旋轉數據堆來對角化協(xié)方差矩陣57
4.4 多元正態(tài)分布58
4.4.1 仿射變換與高斯模型59
4.4.2 繪制二維高斯模型:協(xié)方差橢圓59
4.4.3 描述統(tǒng)計與期望60
4.4.4 維數災難的更多內容61
習題61
第5章 主成分分析64
5.1 在主成分上表示數據64
5.1.1 近似數據團塊64
5.1.2 例子:變換身高體重堆65
5.1.3 在主成分上表示數據67
5.1.4 低維表示中的誤差68
5.1.5 用NIPALS算法提取若干主成分69
5.1.6 主成分和缺失值70
5.1.7 PCA作為平滑方法71
5.2 例子:用主成分表示顏色72
5.3 例子:用主成分表示人臉75
習題77
編程練習78
第6章 低秩近似80
6.1 奇異值分解80
6.1.1 SVD和PCA81
6.1.2 SVD和低秩近似82
6.1.3 用SVD進行平滑82
6.2 多維縮放83
6.2.1 通過高維的距離選擇低維的點83
6.2.2 使用低秩近似分解因子84
6.2.3 例子:利用多維縮放進行映射85
6.3 例子:文本模型和潛在語義分析87
6.3.1 余弦距離88
6.3.2 對單詞計數進行平滑88
6.3.3 例子:對NIPS文檔進行映射89
6.3.4 獲得詞的含義90
6.3.5 例子:對NIPS數據集的詞進行映射92
6.3.6 TFIDF93
習題94
編程練習95
第7章 典型相關分析97
7.1 典型相關分析算法97
7.2 例子:在詞和圖片上進行CCA99
7.3 例子:在反射率和遮光上進行CCA102
編程練習105
第三部分 聚類
第8章 聚類108
8.1 聚合式聚類和拆分式聚類108
8.2 k均值算法及其變體111
8.2.1 如何選擇k的值114
8.2.2 軟分配115
8.2.3 高效聚類和層級式k均值117
8.2.4 k中心點算法117
8.2.5 例子:葡萄牙的雜貨117
8.2.6 關于k均值算法的一些見解119
8.3 用向量量化描述重復性120
8.3.1 向量量化121
8.3.2 例子:基于加速度計數據的行為123
編程練習126
第9章 使用概率模型進行聚類130
9.1 混合模型與聚類130
9.1.1 數據團塊的有限混合模型130
9.1.2 主題和主題模型132
9.2 EM算法133
9.2.1 例子——高斯混合:E步134
9.2.2 例子——高斯混合:M步136
9.2.3 例子——主題模型:E步136
9.2.4 例子——主題模型:M步137
9.2.5 EM算法的實踐137
習題140
編程練習140
第四部分 回歸
第10章 回歸144
10.1 概述144
10.2 線性回歸和最小二乘法146
10.2.1 線性回歸146
10.2.2 選擇β147
10.2.3 殘差148
10.2.4 R2149
10.2.5 變量變換150
10.2.6 可以相信回歸嗎152
10.3 可視化回歸以發(fā)現問題153
10.3.1 問題數據點具有顯著影響153
10.3.2 帽子矩陣和杠桿155
10.3.3 庫克距離156
10.3.4 標準化殘差156
10.4 很多解釋變量158
10.4.1 一個解釋變量的函數158
10.4.2 正則化線性回歸159
10.4.3 例子:體重與身體測量值162
附錄 數據165
習題165
編程練習168
第11章 回歸:選擇和管理模型170
11.1 模型選擇:哪種模型最好170
11.1.1 偏差與方差170
11.1.2 用懲罰機制選擇模型:AIC和BIC172
11.1.3 使用交叉驗證選擇模型173
11.1.4 基于分階段回歸的貪心搜索174
11.1.5 哪些變量是重要的174
11.2 魯棒回歸175
11.2.1 M估計和迭代加權最小二乘176
11.2.2 M估計的尺度178
11.3 廣義線性模型179
11.3.1 邏輯回歸179
11.3.2 多類邏輯回歸180
11.3.3 回歸計數數據181
11.3.4 離差181
11.4 L1正則化和稀疏模型182
11.4.1 通過L1正則化刪除變量182
11.4.2 寬數據集185
11.4.3 在其他模型上使用稀疏懲罰186
編程練習187
第12章 Boosting190
12.1 貪心法和分階段回歸法190
12.1.1 例子:貪心分階段線性回歸190
12.1.2 回歸樹192
12.1.3 基于樹的貪心分階段回歸193
12.2 Boosting分類器196
12.2.1 損失196
12.2.2 分階段降低損失的一般方法197
12.2.3 例子:Boosting決策樹樁198
12.2.4 決策樹樁的梯度提升199
12.2.5 其他預測器的梯度提升200
12.2.6 例子:醫(yī)生會開阿片類藥物嗎201
12.2.7 用lasso修剪提升的預測器202
12.2.8 梯度提升軟件204
習題206
編程練習207
第五部分 圖模型
第13章 隱馬爾可夫模型210
13.1 馬爾可夫鏈210
13.1.1 轉移概率矩陣212
13.1.2 穩(wěn)態(tài)分布214
13.1.3 例子:文本的馬爾可夫鏈模型216
13.2 隱馬爾可夫模型與動態(tài)規(guī)劃218
13.2.1 隱馬爾可夫模型218
13.2.2 用網格圖圖解推斷過程219
13.2.3 基于動態(tài)規(guī)劃的推斷過程222
13.2.4 例子:校正簡單文本錯誤222
13.3 隱馬爾可夫模型的學習過程224
13.3.1 當隱狀態(tài)有明確語義信息時225
13.3.2 基于EM的隱馬爾可夫模型學習過程225
習題228
編程練習229
第14章 學習序列模型的判別式方法232
14.1 圖模型232
14.1.1 推斷與圖232
14.1.2 圖模型234
14.1.3 在圖模型中的學習235
14.2 用于序列的條件隨機場模型235
14.2.1 MEMM和標簽偏置236
14.2.2 條件隨機場模型237
14.2.3 學習CRF時需要留心238
14.3 CRF的判別學習239
14.3.1 模型的表示239
14.3.2 例子:數字序列建模240
14.3.3 建立學習問題241
14.3.4 梯度計算241
習題243
編程練習243
第15章 平均場推斷245
15.1 有用卻難解的模型245
15.1.1 用玻爾茲曼機為二值圖像去噪246
15.1.2 離散馬爾可夫隨機場246
15.1.3 基于離散馬爾可夫隨機場的去噪和分割247
15.1.4 離散馬爾可夫場的MAP推斷可能很難249
15.2 變分推斷250
15.2.1 KL散度250
15.2.2 變分自由能251
15.3 例子:玻爾茲曼機的變分推斷251
第六部分 深度網絡
第16章 簡單神經網絡256
16.1 單元和分類256
16.1.1 用單元來構建一個分類器:代價函數256
16.1.2 用單元來構建一個分類器:決策 258
16.1.3 用單元來構建一個分類器:訓練258
16.2 例子:信用卡賬戶分類260
16.3 層和網絡264
16.3.1 堆疊層264
16.3.2 雅可比矩陣和梯度265
16.3.3 構建多層266
16.3.4 梯度和反向傳播267
16.4 訓練多層網絡269
16.4.1 軟件環(huán)境270
16.4.2 Dropout和冗余單元271
16.4.3 例子:再論信用卡賬戶271
16.4.4 高級技巧:梯度縮放273
習題276
編程練習277
第17章 簡單圖像分類器278
17.1 圖像分類278
17.1.1 基于卷積的模式檢測279
17.1.2 卷積層的堆疊283
17.2 兩個實用的圖像分類器284
17.2.1 例子:MNIST數據集分類285
17.2.2 例子:CIFAR10數據集分類288
17.2.3 異類:對抗樣本292
編程練習293
第18章 圖像分類與物體檢測294
18.1 圖像分類295
18.1.1 物體圖像分類數據集295
18.1.2 場景圖像分類數據集296
18.1.3 增廣和集成297
18.1.4 AlexNet298
18.1.5 VGGNet299
18.1.6 批歸一化301
18.1.7 計算圖302
18.1.8 Inception網絡302
18.1.9 殘差網絡303
18.2 物體檢測305
18.2.1 物體檢測如何工作305
18.2.2 選擇性搜索306
18.2.3 RCNN、Fast RCNN和Faster RCNN307
18.2.4 YOLO309
18.2.5 評價檢測器310
18.3 延伸閱讀312
習題313
編程練習313
第19章 大信號的小碼表示315
19.1 更好的低維映射315
19.1.1 薩蒙映射316
19.1.2 TSNE317
19.2 產生低維表示的映射319
19.2.1 編碼器、解碼器和自編碼器319
19.2.2 令數據塊變得更大320
19.2.3 去噪自編碼器322
19.3 從例子中產生圖像325
19.3.1 變分自編碼器326
19.3.2 對抗損失:愚弄分類器327
19.3.3 利用測試函數來匹配分布328
19.3.4 通過查看距離來匹配分布329
編程練習330