機(jī)器學(xué)習(xí)工程實(shí)戰(zhàn)
定 價:119 元
- 作者:[加] 安德烈·布可夫(Andriy Burkov)
- 出版時間:2021/11/1
- ISBN:9787115570505
- 出 版 社:人民郵電出版社
- 中圖法分類:TP181
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:128開
本書是人工智能和機(jī)器學(xué)習(xí)領(lǐng)域?qū)I(yè)多年實(shí)踐的結(jié)晶,深入淺出講解機(jī)器學(xué)習(xí)應(yīng)用和工程實(shí)踐,是對機(jī)器學(xué)習(xí)工程實(shí)踐和設(shè)計模式的系統(tǒng)回顧。全書分別從項(xiàng)目前的準(zhǔn)備,數(shù)據(jù)收集和準(zhǔn)備,特征工程,監(jiān)督模型訓(xùn)練,模型評估,模型服務(wù)、監(jiān)測和維護(hù)等方面講解,由淺入深剖析機(jī)器學(xué)習(xí)實(shí)踐過程中遇到的問題,幫助讀者快速掌握機(jī)器學(xué)習(xí)工程實(shí)踐和設(shè)計模式的基本原理與方法。
本書內(nèi)容安排合理,架構(gòu)清晰,理論與實(shí)踐相結(jié)合,適合想要從事機(jī)器學(xué)習(xí)項(xiàng)目的數(shù)據(jù)分析師、機(jī)器學(xué)習(xí)工程師以及機(jī)器學(xué)習(xí)相關(guān)專業(yè)的學(xué)生閱讀,也可供需要處理模型的軟件架構(gòu)師參考。
1.機(jī)器學(xué)習(xí)入門手冊《機(jī)器學(xué)習(xí)精講》姊妹篇,人工智能和機(jī)器學(xué)習(xí)領(lǐng)域?qū)I(yè)人士的多年實(shí)踐結(jié)晶,深入淺出講解機(jī)器學(xué)習(xí)應(yīng)用和工程實(shí)踐。
2.系統(tǒng)闡釋利用機(jī)器學(xué)習(xí)大規(guī)模地解決業(yè)務(wù)問題,涉及項(xiàng)目準(zhǔn)備工作、數(shù)據(jù)收集、特征工程、監(jiān)督模型訓(xùn)練、模型評估、模型部署,以及模型服務(wù)、監(jiān)測和維護(hù)等全流程
3.從零開始講解,分任務(wù)、分步驟的介紹機(jī)器學(xué)習(xí)項(xiàng)目,展示項(xiàng)目完整設(shè)計過程。
4.理論實(shí)踐相結(jié)合側(cè)重于討論多種實(shí)際應(yīng)用場景,幫助讀者應(yīng)用到實(shí)際開發(fā)中。
5.人工智能和機(jī)器學(xué)習(xí)領(lǐng)域?qū)I(yè)人士Cassie Kozyrkov、Karolis Urbonas作序推薦。
安德烈·布可夫(Andriy Burkov),人工智能和機(jī)器學(xué)習(xí)領(lǐng)域?qū)I(yè)人士,擁有人工智能博士學(xué)位,尤其擅長自然語言處理、機(jī)器學(xué)習(xí)、信息檢索等。目前,他是高德納(Gartner)咨詢公司機(jī)器學(xué)習(xí)開發(fā)團(tuán)隊(duì)的主管。該團(tuán)隊(duì)的主要工作是,使用淺層和深度學(xué)習(xí)技術(shù),開發(fā)可用于生產(chǎn)環(huán)境的、先進(jìn)的多語言文字抽取和標(biāo)準(zhǔn)化系統(tǒng)。著有本書的姊妹篇《機(jī)器學(xué)習(xí)精講》。
目錄
第 1章 概述 1
1.1 符號和定義 1
1.1.1 數(shù)據(jù)結(jié)構(gòu) 1
1.1.2 大寫西格瑪記法 3
1.2 什么是機(jī)器學(xué)習(xí) 3
1.2.1 監(jiān)督學(xué)習(xí) 4
1.2.2 無監(jiān)督學(xué)習(xí) 5
1.2.3 半監(jiān)督學(xué)習(xí) 6
1.2.4 強(qiáng)化學(xué)習(xí) 6
1.3 數(shù)據(jù)和機(jī)器學(xué)習(xí)術(shù)語 6
1.3.1 直接和間接使用的數(shù)據(jù) 7
1.3.2 原始數(shù)據(jù)和規(guī)整數(shù)據(jù) 7
1.3.3 訓(xùn)練集和留出集 8
1.3.4 基線 9
1.3.5 機(jī)器學(xué)習(xí)流水線 9
1.3.6 參數(shù)與超參數(shù) 10
1.3.7 分類與回歸 10
1.3.8 基于模型學(xué)習(xí)與基于實(shí)例學(xué)習(xí) 11
1.3.9 淺層學(xué)習(xí)與深度學(xué)習(xí)的比較 11
1.3.10 訓(xùn)練與評分 11
1.4 何時使用機(jī)器學(xué)習(xí) 11
1.4.1 如果問題太復(fù)雜,無法進(jìn)行編程 12
1.4.2 如果問題不斷變化 12
1.4.3 如果它是一個感知問題 13
1.4.4 如果它是一種未曾研究過的現(xiàn)象 13
1.4.5 如果問題的目標(biāo)簡單 14
1.4.6 如果它有成本效益 14
1.5 何時不使用機(jī)器學(xué)習(xí) 14
1.6 什么是機(jī)器學(xué)習(xí)工程 15
1.7 機(jī)器學(xué)習(xí)項(xiàng)目生命周期 16
1.8 小結(jié) 17
第 2章 項(xiàng)目開始前 19
2.1 機(jī)器學(xué)習(xí)項(xiàng)目的優(yōu)先級排序 19
2.1.1 機(jī)器學(xué)習(xí)的影響 19
2.1.2 機(jī)器學(xué)習(xí)的成本 20
2.2 估計機(jī)器學(xué)習(xí)項(xiàng)目的復(fù)雜度 21
2.2.1 未知因素 21
2.2.2 簡化問題 21
2.2.3 非線性進(jìn)展 22
2.3 確定機(jī)器學(xué)習(xí)項(xiàng)目的目標(biāo) 22
2.3.1 模型能做什么 22
2.3.2 成功模型的屬性 23
2.4 構(gòu)建機(jī)器學(xué)習(xí)團(tuán)隊(duì) 24
2.4.1 兩種文化 24
2.4.2 機(jī)器學(xué)習(xí)團(tuán)隊(duì)的成員 25
2.5 機(jī)器學(xué)習(xí)項(xiàng)目為何失敗 26
2.5.1 缺乏有經(jīng)驗(yàn)的人才 26
2.5.2 缺乏領(lǐng)導(dǎo)層的支持 26
2.5.3 數(shù)據(jù)基礎(chǔ)設(shè)施缺失 27
2.5.4 數(shù)據(jù)標(biāo)簽的挑戰(zhàn) 27
2.5.5 谷倉式組織和缺乏協(xié)作 28
2.5.6 技術(shù)上不可行的項(xiàng)目 28
2.5.7 技術(shù)團(tuán)隊(duì)和業(yè)務(wù)團(tuán)隊(duì)之間缺乏協(xié)調(diào) 28
2.6 小結(jié) 29
第3章 數(shù)據(jù)收集和準(zhǔn)備 31
3.1 關(guān)于數(shù)據(jù)的問題 31
3.1.1 數(shù)據(jù)是否可獲得 31
3.1.2 數(shù)據(jù)是否相當(dāng)大 32
3.1.3 數(shù)據(jù)是否可用 34
3.1.4 數(shù)據(jù)是否可理解 35
3.1.5 數(shù)據(jù)是否可靠 36
3.2 數(shù)據(jù)的常見問題 37
3.2.1 高成本 37
3.2.2 質(zhì)量差 39
3.2.3 噪聲 39
3.2.4 偏差 40
3.2.5 預(yù)測能力低 45
3.2.6 過時的樣本 45
3.2.7 離群值 46
3.2.8 數(shù)據(jù)泄露 47
3.3 什么是好數(shù)據(jù) 48
3.3.1 好數(shù)據(jù)是有信息的 48
3.3.2 好數(shù)據(jù)有好的覆蓋面 48
3.3.3 好數(shù)據(jù)反映真實(shí)的輸入 48
3.3.4 好數(shù)據(jù)沒有偏差 49
3.3.5 好數(shù)據(jù)不是反饋環(huán)路的結(jié)果 49
3.3.6 好數(shù)據(jù)有一致的標(biāo)簽 49
3.3.7 好數(shù)據(jù)足夠大 49
3.3.8 好數(shù)據(jù)總結(jié) 50
3.4 處理交互數(shù)據(jù) 50
3.5 數(shù)據(jù)泄露的原因 51
3.5.1 目標(biāo)是一個特征的函數(shù) 51
3.5.2 特征隱藏目標(biāo) 52
3.5.3 特征來自未來 52
3.6 數(shù)據(jù)劃分 53
3.7 處理缺失的屬性 55
3.7.1 數(shù)據(jù)填補(bǔ)技術(shù) 55
3.7.2 填補(bǔ)過程中的泄露問題 57
3.8 數(shù)據(jù)增強(qiáng) 57
3.8.1 圖像的數(shù)據(jù)增強(qiáng) 57
3.8.2 文本的數(shù)據(jù)增強(qiáng) 59
3.9 處理不平衡的數(shù)據(jù) 60
3.9.1 過采樣 60
3.9.2 欠采樣 62
3.9.3 混合策略 62
3.10 數(shù)據(jù)采樣策略 63
3.10.1 簡單隨機(jī)采樣 63
3.10.2 系統(tǒng)采樣 64
3.10.3 分層采樣 64
3.11 存儲數(shù)據(jù) 64
3.11.1 數(shù)據(jù)格式 65
3.11.2 數(shù)據(jù)存儲級別 66
3.11.3 數(shù)據(jù)版本化 68
3.11.4 文檔和元數(shù)據(jù) 69
3.11.5 數(shù)據(jù)生命周期 70
3.12 數(shù)據(jù)處理實(shí)踐 70
3.12.1 可重復(fù)性 70
3.12.2 數(shù)據(jù)第 一,算法第二 70
3.13 小結(jié) 71
第4章 特征工程 73
4.1 為什么要進(jìn)行特征工程 73
4.2 如何進(jìn)行特征工程 74
4.2.1 文本的特征工程 74
4.2.2 為什么詞袋有用 77
4.2.3 將分類特征轉(zhuǎn)換為數(shù)字 78
4.2.4 特征哈!80
4.2.5 主題建!81
4.2.6 時間序列的特征 85
4.2.7 發(fā)揮你的創(chuàng)造力 88
4.3 疊加特征 88
4.3.1 疊加特征向量 88
4.3.2 疊加單個特征 89
4.4 好特征的屬性 90
4.4.1 高預(yù)測能力 90
4.4.2 快速計算能力 90
4.4.3 可靠性 91
4.4.4 不相關(guān) 91
4.4.5 其他屬性 91
4.5 特征選擇 92
4.5.1 切除長尾 92
4.5.2 Boruta 93
4.5.3 L1正則化 95
4.5.4 特定任務(wù)的特征選擇 95
4.6 合成特征 96
4.6.1 特征離散化 96
4.6.2 從關(guān)系數(shù)據(jù)中合成特征 97
4.6.3 通過數(shù)據(jù)合成特征 99
4.6.4 通過其他特征合成特征 99
4.7 從數(shù)據(jù)中學(xué)習(xí)特征 100
4.7.1 單詞嵌入 100
4.7.2 文檔嵌入 102
4.7.3 任何東西的嵌入 103
4.7.4 選擇嵌入維度 104
4.8 降維 104
4.8.1 用PCA快速降維 104
4.8.2 用于可視化的降維 105
4.9 縮放特征 105
4.9.1 歸一化 105
4.9.2 標(biāo)準(zhǔn)化 106
4.10 特征工程中的數(shù)據(jù)泄露問題 107
4.10.1 可能出現(xiàn)的問題 107
4.10.2 解決方案 107
4.11 存儲特征和編寫文檔 108
4.11.1 模式文件 108
4.11.2 特征商店 109
4.12 特征工程實(shí)踐 112
4.12.1 生成許多簡單的特征 112
4.12.2 復(fù)用遺留系統(tǒng) 112
4.12.3 在需要時使用ID作為特征 112
4.12.4 但在可能時要減少基數(shù) 113
4.12.5 謹(jǐn)慎使用計數(shù) 113
4.12.6 必要時進(jìn)行特征選擇 114
4.12.7 認(rèn)真測試代碼 114
4.12.8 保持代碼、模型和數(shù)據(jù)的同步性 115
4.12.9 隔離特征提取代碼 115
4.12.10 將模型和特征提取器序列化在一起 115
4.12.11 記錄特征的值 115
4.13 小結(jié) 115
第5章 監(jiān)督模型訓(xùn)練(第 一部分) 117
5.1 開始模型工作之前 117
5.1.1 驗(yàn)證模式一致性 117
5.1.2 定義可實(shí)現(xiàn)的表現(xiàn)水平 118
5.1.3 選擇表現(xiàn)指標(biāo) 118
5.1.4 選擇正確的基線 118
5.1.5 將數(shù)據(jù)分成三個集 121
5.1.6 監(jiān)督學(xué)習(xí)的前提條件 122
5.2 為機(jī)器學(xué)習(xí)表示標(biāo)簽 122
5.2.1 多類分類 122
5.2.2 多標(biāo)簽分類 123
5.3 選擇學(xué)習(xí)算法 124
5.3.1 學(xué)習(xí)算法的主要屬性 124
5.3.2 算法抽查 125
5.4 建立流水線 126
5.5 評估模型表現(xiàn) 127
5.5.1 回歸的表現(xiàn)指標(biāo) 128
5.5.2 分類的表現(xiàn)指標(biāo) 128
5.5.3 排名的表現(xiàn)指標(biāo) 134
5.6 超參數(shù)調(diào)整 137
5.6.1 網(wǎng)格搜索 137
5.6.2 隨機(jī)搜索 138
5.6.3 由粗到精搜索 139
5.6.4 其他技術(shù) 140
5.6.5 交叉驗(yàn)證 140
5.7 淺層模型訓(xùn)練 141
5.7.1 淺層模型訓(xùn)練策略 141
5.7.2 保存和恢復(fù)模型 142
5.8 偏差-方差折中 143
5.8.1 欠擬合 143
5.8.2 過擬合 143
5.8.3 折中 145
5.9 正則化 146
5.9.1 L1和L2正則化 147
5.9.2 其他形式的正則化 147
5.10 小結(jié) 148
第6章 監(jiān)督模型訓(xùn)練(第二部分) 150
6.1 深度模型訓(xùn)練策略 150
6.1.1 神經(jīng)網(wǎng)絡(luò)訓(xùn)練策略 151
6.1.2 表現(xiàn)指標(biāo)和成本函數(shù) 151
6.1.3 參數(shù)初始化策略 153
6.1.4 優(yōu)化算法 154
6.1.5 學(xué)習(xí)率衰減安排表 158
6.1.6 正則化 159
6.1.7 網(wǎng)絡(luò)規(guī)模搜索和超參數(shù)調(diào)整 160
6.1.8 處理多個輸入 162
6.1.9 處理多個輸出 162
6.1.10 遷移學(xué)習(xí) 163
6.2 堆疊模型 165
6.2.1 集成學(xué)習(xí)的類型 165
6.2.2 模型堆疊的一種算法 166
6.2.3 模型堆疊中的數(shù)據(jù)泄露問題 167
6.3 應(yīng)對分布偏移 167
6.3.1 分布偏移的類型 167
6.3.2 對抗驗(yàn)證 168
6.4 處理不平衡數(shù)據(jù)集 168
6.4.1 類權(quán)重 169
6.4.2 重采樣數(shù)據(jù)集的集成 169
6.4.3 其他技術(shù) 170
6.5 模型校準(zhǔn) 170
6.5.1 良好校準(zhǔn)的模型 171
6.5.2 校準(zhǔn)技術(shù) 172
6.6 故障排除與誤差分析 172
6.6.1 模范行為不良的原因 173
6.6.2 迭代模型的細(xì)化 173
6.6.3 誤差分析 174
6.6.4 復(fù)雜系統(tǒng)的誤差分析 175
6.6.5 使用切片指標(biāo) 177
6.6.6 修復(fù)錯誤的標(biāo)簽 177
6.6.7 尋找其他的樣本來標(biāo)記 177
6.6.8 深度學(xué)習(xí)的故障排除 178
6.7 實(shí)踐 179
6.7.1 提供一個好模型 180
6.7.2 信任流行的開源實(shí)現(xiàn)方式 180
6.7.3 優(yōu)化業(yè)務(wù)特定的表現(xiàn)指標(biāo) 180
6.7.4 從頭開始升級 180
6.7.5 避免修正級聯(lián) 181
6.7.6 謹(jǐn)慎使用模型級聯(lián) 181
6.7.7 編寫高效的代碼、編譯和并行化 182
6.7.8 對較新和較舊數(shù)據(jù)都進(jìn)行測試 183
6.7.9 更多的數(shù)據(jù)勝過更聰明的算法 183
6.7.10 新數(shù)據(jù)勝過巧妙的特征 184
6.7.11 擁抱微小進(jìn)步 184
6.7.12 促進(jìn)可重復(fù)性 184
6.8 小結(jié) 185
第7章 模型評估 187
7.1 離線和在線評估 188
7.2 A/B測試 190
7.2.1 G檢驗(yàn) 190
7.2.2 Z檢驗(yàn) 193
7.2.3 結(jié)語和警告 195
7.3 多臂老虎機(jī) 195
7.4 模型表現(xiàn)的統(tǒng)計界限 198
7.4.1 分類誤差的統(tǒng)計區(qū)間 199
7.4.2 自舉法統(tǒng)計區(qū)間 199
7.4.3 回歸的自舉法預(yù)測區(qū)間 201
7.5 評估測試集的充分性 201
7.5.1 神經(jīng)元覆蓋率 201
7.5.2 突變測試 202
7.6 模型屬性的評估 202
7.6.1 健壯性 203
7.6.2 公平性 203
7.7 小結(jié) 204
第8章 模型部署 206
8.1 靜態(tài)部署 206
8.2 在用戶設(shè)備上動態(tài)部署 207
8.2.1 模型參數(shù)的部署 207
8.2.2 序列化對象的部署 208
8.2.3 部署到瀏覽器上 208
8.2.4 優(yōu)點(diǎn)和缺點(diǎn) 208
8.3 在服務(wù)器上動態(tài)部署 209
8.3.1 在虛擬機(jī)上部署 209
8.3.2 在容器中部署 210
8.3.3 無服務(wù)器部署 211
8.3.4 模型流 212
8.4 部署策略 214
8.4.1 單一部署 214
8.4.2 靜默部署 215
8.4.3 金絲雀部署 215
8.4.4 多臂老虎機(jī) 216
8.5 自動部署、版本管理和元數(shù)據(jù) 216
8.5.1 模型附帶資產(chǎn) 216
8.5.2 版本同步 216
8.5.3 模型版本元數(shù)據(jù) 217
8.6 模型部署實(shí)踐 217
8.6.1 算法效率 218
8.6.2 深度模型的部署 221
8.6.3 緩存 221
8.6.4 模型和代碼的交付格式 222
8.6.5 從一個簡單的模型開始 224
8.6.6 對外測試 225
8.7 小結(jié) 225
第9章 模型服務(wù)、監(jiān)測和維護(hù) 227
9.1 模型服務(wù)運(yùn)行時的屬性 227
9.1.1 安全性和正確性 227
9.1.2 部署的方便性 228
9.1.3 模型有效性的保證 228
9.1.4 易于恢復(fù) 229
9.1.5 避免訓(xùn)練/服務(wù)偏離 229
9.1.6 避免隱藏反饋環(huán)路 229
9.2 模型服務(wù)模式 230
9.2.1 批量模式服務(wù) 230
9.2.2 對人按需服務(wù) 231
9.2.3 對機(jī)器按需服務(wù) 232
9.3 現(xiàn)實(shí)世界中的模型服務(wù) 233
9.3.1 為錯誤做好準(zhǔn)備 233
9.3.2 處理錯誤 234
9.3.3 做好準(zhǔn)備,應(yīng)對變化 236
9.3.4 做好準(zhǔn)備,應(yīng)對人性 237
9.4 模型監(jiān)測 238
9.4.1 什么會出問題 238
9.4.2 監(jiān)測的內(nèi)容和方法 239
9.4.3 記錄什么日志 241
9.4.4 監(jiān)測濫用情況 242
9.5 模型維護(hù) 243
9.5.1 何時更新 243
9.5.2 如何更新 244
9.6 小結(jié) 246
第 10章 結(jié)論 249
10.1 學(xué)習(xí)收獲 249
10.2 后續(xù)閱讀 253
10.3 致謝 253