機器學習——原理、算法與應用

雷明

立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

機器學習是當前解決很多人工智能問題的核心技術,自2012年以來,深度學習的出現帶來了人工智能復興。本書是機器學習和深度學習領域的入門與提高教材,緊密結合工程實踐與應用,系統、深入地講述機器學習與深度學習的主流方法與理論。全書由23章組成,共分為三大部分。第1~3章為第一部分,介紹機器學習的基本原理、所需的數學知識(包括微積分、線性代數、最優化方法和概率論),以及機器學習中的核心概念。第4~22章為第二部分,是本書的主體,介紹各種常用的有監督學習算法、無監督學習算法、半監督學習算法和強化學習算法。對於每種算法,從原理與推導、工程實現和應用3個方面進行介紹,對於大多數算法,都配有實驗程序。第23章為第三部分,介紹機器學習和深度學習算法實際應用時面臨的問題,並給出典型的解決方案。 本書理論推導與證明詳細、深入,結構清晰,詳細地講述主要算法的原理與細節,讓讀者不僅知其然,還知其所以然,真正理解算法、學會使用算法。對於電腦、人工智能及相關專業的本科生和研究生,這是一本適合入門與系統學習的教材;對於從事人工智能和機器學習產品研發的工程技術人員,本書也具有很強的參考價值。

作者簡介

雷明,致力於研發機器學習與深度學習、計算機視覺框架,SIGAI創始人。2009年畢業於清華大學計算機系,獲碩士學位,研究方向為機器學習、計算機視覺,發表論文數篇。曾就職於百度公司,任高級軟件工程師和項目經理;zmodo/meshare,任CTO與平台研發中心負責人。在機器學習、計算機視覺方向有豐富的學術研究與產品研發經驗。

目錄大綱

第一部分基本概念與數學知識
第1章機器學習簡介3
1.1機器學習是什麼3
1.1.1一個簡單的例子3
1.1.2為什麼需要機器學習5
1.2典型應用7
1.2.1語音識別7
1.2.2人臉檢測8
1.2.3人機對弈9
1.2.4機器翻譯10
1.2.5自動駕駛11
1.3發展歷程11
1.3.1歷史成就11
1.3.2當前進展12
1.4關於本書13
參考文獻13
第2章數學知識15
2.1微積分和線性代數15
2.1.1導數15
2.1.2向量與矩陣17
2.1.3偏導數與梯度19
2.1.4雅可比矩陣20
2.1.5Hessian矩陣21
2.1.6泰勒展開22
2.1.7行列式22
2.1.8特徵值與特徵向量23
2.1.9奇異值分解24
2.1. 10二次型24
2.1.11向量與矩陣求導24
2.2最優化方法25
〖1〗
〖2〗機器學習——原理、算法與應用
〖1〗
目錄
2.2.1梯度下降法25
2.2.2牛頓法26
2.2.3坐標下降法27
2.2.4拉格朗日乘數法28
2.2.5凸優化28
2.2.6拉格朗日對偶32
2.2.7KKT條件34
2.2.8擬牛頓法35
2.2.9面臨的問題36
2.3概率論37
2.3.1隨機事件與概率37
2.3.2條件概率37
2.3.3隨機變量38
2.3.4數學期望與方差39
2.3.5隨機向量39
2.3.6最大似然估計40
參考文獻41
第3章基本概念42
3.1算法分類42
3.1.1監督信號42
3.1.2分類問題與回歸問題43
3.1.3判別模型與生成模型45
3.1.4強化學習45
3.2模型評價指標46
3.2.1精度與召回率46
3.2.2ROC曲線46
3.2. 3混淆矩陣48
3.2.4交叉驗證48
3.3模型選擇48
3.3.1過擬合與欠擬合48
3.3.2偏差與方差分解49
3.3.3正則化50
參考文獻52
第二部分主要的機器學習算法與理論
第4章貝葉斯分類器55
4.1貝葉斯決策55
4.2樸素貝葉斯分類器56
4.2.1離散型特徵56
4.2.2連續型特徵57
4.3正態貝葉斯分類器57
4.3. 1訓練算法57
4.3.2預測算法58
4.4實驗程序59
4.5應用61
參考文獻61
第5章決策樹62
5.1樹形決策過程62
5.2分類與回歸樹63
5.3訓練算法64
5.3.1遞歸分裂過程64
5.3 .2尋找最佳分裂64
5.3.3葉子節點值的設定67
5.3.4屬性缺失問題67
5.3.5剪枝算法68
5.3.6訓練算法的流程69
5.3.7計算變量的重要性70
5.4實驗程序70
5.5應用71
參考文獻71
第6章k近鄰算法72
6.1基本概念72
6.2預測算法72
6.3距離定義73
6.3.1常用距離定義74
6.3.2距離度量學習74
6.4實驗程序75
6.5應用76
參考文獻76
第7章數據降維78
7.1主成分分析78
7.1.1數據降維問題78
7.1.2計算投影矩陣78
7.1.3向量降維81
7.1.4向量重構81
7.2流形學習81
7.2.1局部線性嵌入82
7.2.2拉普拉斯特徵映射83
7.2.3局部保持投影86
7.2.4等距映射87
7.2.5隨機近鄰嵌入88
7.2.6t分佈隨機近鄰嵌入89
7.3實驗程序90
7.4應用91
參考文獻91
第8章線性判別分析92
8.1用投影進行分類92
8.2投影矩陣92
8.2.1一維的情況92
8.2.2推廣到高維94
8.3實驗程序96
8.4應用96
參考文獻97
第9章人工神經網絡98
9.1多層前饋型神經網絡98
9.1.1神經元98
9.1.2網絡結構99
9.1.3正向傳播算法100
9.2反向傳播算法101
9.2.1一個簡單的例子101
9.2.2完整的算法105
9.3實驗程序109
9.4理論解釋110
9.4.1數學性質110
9.4.2與神經系統的關係111
9.5面臨的問題111
9.5.1梯度消失111
9.5.2退化111
9.5.3局部極小值111
9.5.4鞍點111
9.6實現細節問題112
9.6.1輸入值與輸出值112
9.6.2網絡規模112
9.6.3激活函數112
9.6.4損失函數113
9.6.5權重初始化113
9.6.6正則化113
9.6.7學習率的設定114
9.6.8動量項114
9.7應用114
參考文獻115
第10章支持向量機118
10.1線性分類器118
10.1.1線性分類器概述118
10.1.2分類間隔118
10.2線性可分的問題119
10.2.1原問題119
10.2.2對偶問題120
10.3線性不可分的問題123
10.3.1原問題123
10.3.2對偶問題123
10.4核映射與核函數126
10.5SMO算法129
10.5.1求解子問題129
10.5.2優化變量的選擇132
10.6多分類問題133
10.7實驗程序134
10.8libsvm簡介136
10.8.1求解算法137
10.8.2庫的使用140
10.9應用142
參考文獻143
第11章線性模型145
11.1logistic回歸145
11.1.1第一種表述145
11.1.2第二種表述147
11.1.3L2正則化原問題148
11.1.4L2正則化對偶問題151
11.1.5L1正則化原問題152
11.1.6實驗程序154
11.2線性支持向量機156
11.2.1L2正則化L1loss SVC原問題156
11.2.2L2正則化L2loss SVC原問題156
11.2.3L2正則化SVC對偶問題157
11.2.4L1正則化L2loss SVC原問題158
11.2.5多類線性支持向量機158
11.2.6實驗程序160
11.3liblinear簡介160
11.3.1求解的問題161
11.3.2庫的使用161
11.4softmax回歸162
11.5應用164
參考文獻165
第12章隨機森林166
12.1集成學習166
12.1.1隨機抽樣166
12.1.2Bagging算法167
12.2隨機森林概述167
12.3訓練算法167
12.4變量的重要性168
12.5實驗程序169
12.6應用169
參考文獻169
第13章Boosting算法171
13.1AdaBoost算法171
13.1.1強分類器與弱分類器171
13.1.2訓練算法172
13.1.3訓練誤差分析174
13.2廣義加法模型176
13.3各種AdaBoost算法177
13.3.1離散型AdaBoost177
13.3.2實數型AdaBoost179
13.3.3LogitBoost180
13.3.4Gentle型AdaBoost181
13.4實現細節問題182
13.4.1弱分類器182
13.4.2弱分類器的數量182
13.4.3樣本權重削減183
13.5實驗程序183
13.6梯度提升算法183
13.6.1梯度提升框架184
13.6 .2回歸問題185
13.6.3分類問題185
13.6.4XGBoost187
13.7應用——目標檢測189
13.7.1VJ框架的原理190
13.7.2模型訓練192
參考文獻193
第14章深度學習概論195
14.1機器學習面臨的挑戰195
14.1.1人工特徵196
14.1.2機器學習算法197
14.2深度學習技術197
14.3進展與典型應用199
14.3.1計算機視覺200
14.3.2語音識別202
14.3.3自然語言處理202
14.3.4計算機圖形學203
14.3.5推薦系統203
14.3.6深度強化學習204
14.4自動編碼器204
14.4.1自動編碼器簡介204
14.4.2去噪自動編碼器205
14.4.3稀疏自動編碼器205
14.4.4收縮自動編碼器206
14.4.5多層編碼器206
14.5受限玻爾茲曼機206
14.5.1玻爾茲曼分佈206
14.5.2受限玻爾茲曼機結構207
14.5.3訓練算法209
14.5.4深度玻爾茲曼機210
14.5.5深度置信網210
參考文獻210
第15章卷積神經網絡218
15.1網絡結構218
15.1.1卷積層219
15.1.2池化層222
15.1.3全連接層222
15.2訓練算法223
15.2.1卷積層223
15.2.2池化層226
15.2. 3隨機梯度下降法227
15.2.4遷移學習228
15.3典型網絡228
15.3.1LeNet5網絡228
15.3.2AlexNet網絡229
15.3.3VGG網絡230
15.3.4GoogLeNet網絡231
15.4理論分析232
15.4.1反捲積運算232
15.4.2卷積層可視化233
15.4.3理論解釋235
15.5挑戰與改進措施236
15.5.1卷積層236
15.5.2池化層236
15.5.3激活函數237
15.5.4損失函數237
15.5.5網絡結構237
15.5.6批量歸一化241
15.6實現細節242
15.6.1卷積層242
15.6.2激活函數244
15.6.3內積層244
15.6.4損失層245
15.6.5求解器248
15.7應用——計算機視覺251
15.7.1人臉檢測251
15.7.2通用目標檢測254
15.7.3人臉關鍵點定位262
15.7.4人臉識別263
15.7.5圖像分割265
參考文獻266
第16章循環神經網絡270
16.1網絡結構270
16.1.1循環層270
16.1.2輸出層271
16.1.3一個簡單的例子272
16.1.4深層網絡272
16.2網絡的訓練273
16.2.1一個簡單的例子273
16.2.2完整的算法275
16.3挑戰與改進措施277
16.3.1梯度消失277
16.3.2長短期記憶模型278
16.3.3門控循環單元279
16.3.4雙向網絡279
16.4序列預測問題280
16.4.1序列標註問題280
16.4.2連接主義時序分類281
16.4.3序列到序列學習285
16.5應用——語音識別287
16.5.1語音識別問題287
16.5.2GMMHMM框架288
16.5.3深度模型288
16.6應用——自然語言處理291
16.6.1中文分詞292
16.6.2詞性標註293
16.6.3命名實體識別293
16.6.4文本分類294
16.6.5自動摘要296
16.6.6機器翻譯296
參考文獻298
第17章生成對抗網絡302
17.1隨機數據生成302
17.2生成對抗網絡結構303
17.2.1生成模型303
17.2.2判別模型304
17.3模型的訓練304
17.3.1目標函數304
17.3.2訓練算法305
17.3.3理論分析306
17.4應用與改進307
17.4.1改進方案308
17.4.2典型應用311
參考文獻313
第18章聚類算法314
18.1問題定義314
18.2層次聚類315
18.3基於質心的算法315
18.4基於概率分佈的算法316
18.4.1高斯混合模型316
18.4.2EM算法317
18.5基於密度的算法322
18.5.1DBSCAN算法322
18.5.2OPTICS算法324
18.5.3Mean Shift算法326
18.6基於圖的算法328
18.7算法評價指標331
18.7.1內部指標331
18.7.2外部指標331
18.8實驗程序332
18.9應用332
參考文獻332
第19章半監督學習334
19.1問題假設334
19.1.1連續性假設334
19.1.2聚類假設334
19.1.3流形假設334
19.1.4低密度分割假設334
19.2啟發式算法335
19.2.1自訓練335
19.2.2協同訓練335
19.3生成模型335
19.4低密度分割336
19.5基於圖的算法336
19.6半監督深度學習337
參考文獻338
第20章隱馬爾可夫模型340
20.1馬爾可夫模型340
20.2隱馬爾可夫模型簡介343
20.2.1模型結構343
20.2.2中文分詞345
20.3估值問題345
20.4解碼問題347
20.5訓練算法349
20.6應用352
參考文獻352
第21章條件隨機場353
21.1馬爾可夫隨機場353
21.1.1概率圖模型353
21.1.2馬爾可夫隨機場354
21.2條件隨機場概述355
21.2.1條件隨機場簡介355
21.2.2線性鏈條件隨機場355
21.3推斷算法357
21.4訓練算法359
21.5應用360
參考文獻360
第22章強化學習361
22.1強化學習簡介361
22.1.1問題定義361
22.1. 2馬爾可夫決策過程362
22.2基於動態規劃的算法366
22.2.1策略迭代算法366
22.2.2價值迭代算法368
22.3蒙特卡洛算法369
22.3.1算法簡介369
22.3.2狀態價值函數估計370
22.3. 3動作價值函數估計371
22.3.4蒙特卡洛控制371
22.4時序差分學習372
22.4.1Sarsa算法372
22.4.2Q學習373
22.5深度強化學習374
22.5.1深度Q網絡375
22.5.2策略梯度算法378
22.6應用381
參考文獻381
第三部分工程實踐問題
第23章工程實踐問題概述385
23.1實現細節問題385
23.1.1訓練樣本385
23.1.2特徵預處理386
23.1.3模型選擇386
23.1.4過擬合問題386
23.2安全性問題387
23.2.1對抗樣本387
23.2.2形成原因分析389
23.3實現成本問題390
23.3.1訓練樣本量390
23.3.2計算與存儲成本390
23.4深度模型優化391
23.4.1剪枝與編碼391
23.4.2二值化網絡392
23.4.3卷積核分離396
參考文獻397