1. 內容全面深入。全書(shū)系統地講解機器學(xué)習算法與理論,主要算法的理論講解透徹、結構清晰,均有詳細的推導和證明過(guò)程。
2. 內容新。對于深度學(xué)習等重點(diǎn)算法,涵蓋和反映了截至2017年學(xué)術(shù)界與工業(yè)界的新成果,確保本書(shū)的內容能夠緊跟當前的學(xué)術(shù)和技術(shù)趨勢。
3. 理論與實(shí)踐相結合。對于所有重點(diǎn)算法,除深入講解算法的原理之外,還介紹了算法的工程實(shí)現細節,對各種算法的實(shí)際應用也進(jìn)行了介紹。
4. 對機器學(xué)習所需的數學(xué)知識進(jìn)行全面系統的介紹,確保讀者無(wú)須單獨再看其他數學(xué)教材也能順利學(xué)習。
內 容 簡(jiǎn) 介
機器學(xué)習是當前解決很多人工智能問(wèn)題的核心技術(shù),深度學(xué)習的出現帶來(lái)了自2012年以來(lái)的人工智能復興。本書(shū)是機器學(xué)習和深度學(xué)習領(lǐng)域的入門(mén)與提高教材,系統、深入地講述機器學(xué)習與深度學(xué)習的主流方法與理論,并緊密結合工程實(shí)踐與應用。全書(shū)由21章組成,共分為三大部分。第1~3章為第一部分,介紹機器學(xué)習的基本原理、所需的數學(xué)知識(包括微積分、線(xiàn)性代數、概率論和*優(yōu)化方法),以及機器學(xué)習中的核心概念。第4~20章為第二部分,是本書(shū)的主體,介紹各種常用的有監督學(xué)習算法、無(wú)監督學(xué)習算法、半監督學(xué)習算法和強化學(xué)習算法。對于每種算法,從原理與推導、工程實(shí)現和實(shí)際應用3個(gè)方面進(jìn)行介紹,對于大多數算法,都配有實(shí)驗程序。第21章為第三部分,介紹機器學(xué)習和深度學(xué)習算法實(shí)際應用時(shí)面臨的問(wèn)題,并給出典型的解決方案。此外,附錄A給出各種機器學(xué)習算法的總結,附錄B給出梯度下降法的演化關(guān)系,附錄C給出EM算法的推導。
本書(shū)理論推導與證明詳細、深入,結構清晰,詳細地講述主要算法的工程實(shí)現細節,配以著(zhù)名開(kāi)源庫的源代碼分析(包括libsvm、liblinear、OpenCV、Caffe等開(kāi)源庫),讓讀者不僅知其然,還知其所以然,真正理解算法、學(xué)會(huì )使用算法。對于計算機、人工智能及相關(guān)專(zhuān)業(yè)的本科生和研究生,這是一本適合入門(mén)與系統學(xué)習的教材,對于從事人工智能和機器學(xué)習產(chǎn)品研發(fā)的工程技術(shù)人員,本書(shū)也具有很強的參考價(jià)值。
雷明 人工智能學(xué)習與實(shí)踐平臺SIGAI的創(chuàng )始人;2009年畢業(yè)于清華大學(xué)計算機系,獲碩士學(xué)位,研究方向為機器視覺(jué)與機器學(xué)習;畢業(yè)后曾就職于百度公司,任高級軟件工程師、項目經(jīng)理。2012年加入zmodo(深圳市智美達科技股份有限公司),任CTO與平臺研發(fā)中心負責人;2018年2月創(chuàng )立SIGAI,其核心產(chǎn)品為云端實(shí)驗室與知識庫,為人工智能學(xué)習與實(shí)踐提供便捷的一站式服務(wù);在機器學(xué)習與深度學(xué)習、機器視覺(jué)、自然語(yǔ)言處理方向有扎實(shí)的理論功底與豐富的學(xué)術(shù)和產(chǎn)品研發(fā)經(jīng)驗,碩士期間曾發(fā)表論文數篇。
第一部分基本概念與數學(xué)知識
第1章機器學(xué)習簡(jiǎn)介3
1.1機器學(xué)習是什么3
1.1.1一個(gè)簡(jiǎn)單的例子3
1.1.2為什么需要機器學(xué)習5
1.2典型應用7
1.2.1語(yǔ)音識別7
1.2.2人臉檢測8
1.2.3人機對弈9
1.2.4機器翻譯10
1.2.5自動(dòng)駕駛11
1.3發(fā)展歷程11
1.3.1歷史成就11
1.3.2當前進(jìn)展12
1.4關(guān)于本書(shū)13
參考文獻15
第2章數學(xué)知識17
2.1微積分和線(xiàn)性代數17
2.1.1導數17
2.1.2向量與矩陣19
2.1.3偏導數與梯度21
2.1.4雅克比矩陣22
2.1.5Hessian矩陣23
2.1.6泰勒展開(kāi)24
2.1.7行列式24
2.1.8特征值與特征向量25
2.1.9奇異值分解26
2.1.10二次型26
2.1.11向量與矩陣求導26
2.2最優(yōu)化方法27
2.2.1梯度下降法27
2.2.2牛頓法28
2.2.3坐標下降法29
2.2.4拉格朗日乘數法30
2.2.5凸優(yōu)化30
2.2.6拉格朗日對偶34
2.2.7KKT條件36
2.2.8擬牛頓法37
2.2.9面臨的問(wèn)題38
2.3概率論39
2.3.1隨機事件與概率39
2.3.2條件概率39
2.3.3隨機變量40
2.3.4數學(xué)期望與方差41
2.3.5隨機向量41
2.3.6最大似然估計42
參考文獻43
第3章基本概念44
3.1算法分類(lèi)44
3.1.1監督信號44
3.1.2分類(lèi)問(wèn)題與回歸問(wèn)題45
3.1.3判別模型與生成模型47
3.1.4強化學(xué)習47
3.2模型評價(jià)指標48
3.2.1精度與召回率48
3.2.2ROC曲線(xiàn)48
3.2.3混淆矩陣50
3.2.4交叉驗證50
3.3模型選擇50
3.3.1過(guò)擬合與欠擬合50
3.3.2偏差與方差分解51
3.3.3正則化52
參考文獻54
第二部分主要的機器學(xué)習算法與理論
第4章貝葉斯分類(lèi)器57
4.1貝葉斯決策57
4.2樸素貝葉斯分類(lèi)器58
4.2.1離散型特征58
4.2.2連續型特征59
4.3正態(tài)貝葉斯分類(lèi)器59
4.3.1訓練算法59
4.3.2預測算法60
4.4實(shí)驗程序61
4.5源代碼分析64
4.5.1主要數據結構64
4.5.2訓練函數65
4.5.3預測函數68
4.6應用70
參考文獻71
第5章決策樹(shù)72
5.1樹(shù)形決策過(guò)程72
5.2分類(lèi)與回歸樹(shù)73
5.3訓練算法74
5.3.1遞歸分裂過(guò)程74
5.3.2尋找最佳分裂74
5.3.3葉子節點(diǎn)值的設定77
5.3.4屬性缺失問(wèn)題77
5.3.5剪枝算法78
5.4實(shí)驗程序79
5.5源代碼分析81
5.5.1主要數據結構81
5.5.2遞歸分裂84
5.5.3尋找最佳分裂90
5.5.4尋找替代分裂96
5.5.5變量的重要性99
5.5.6預測算法100
5.6應用103
參考文獻103
第6章k近鄰算法104
6.1基本概念104
6.2預測算法104
6.3距離定義105
6.3.1常用距離定義105
6.3.2距離度量學(xué)習106
6.4實(shí)驗程序107
6.5應用109
參考文獻110
第7章數據降維111
7.1主成分分析111
7.1.1數據降維問(wèn)題111
7.1.2計算投影矩陣111
7.1.3向量降維114
7.1.4向量重構114
7.2源代碼分析114
7.2.1主要數據結構114
7.2.2計算投影矩陣115
7.2.3向量降維117
7.2.4向量重構117
7.3流形學(xué)習118
7.3.1局部線(xiàn)性嵌入119
7.3.2拉普拉斯特征映射119
7.3.3局部保持投影122
7.3.4等距映射123
7.4應用124
參考文獻124
第8章線(xiàn)性判別分析125
8.1用投影進(jìn)行分類(lèi)125
8.2投影矩陣125
8.2.1一維的情況125
8.2.2推廣到高維127
8.3實(shí)驗程序128
8.4源代碼分析131
8.4.1主要數據結構131
8.4.2計算投影矩陣132
8.4.3向量投影135
8.4.4向量重構136
8.5應用136
參考文獻137
第9章人工神經(jīng)網(wǎng)絡(luò )138
9.1多層前饋型神經(jīng)網(wǎng)絡(luò )138
9.1.1神經(jīng)元138
9.1.2網(wǎng)絡(luò )結構139
9.1.3正向傳播算法140
9.2反向傳播算法141
9.2.1一個(gè)簡(jiǎn)單的例子141
9.2.2完整的算法145
9.3實(shí)驗程序149
9.4理論解釋152
9.4.1數學(xué)性質(zhì)152
9.4.2與神經(jīng)系統的關(guān)系153
9.5面臨的問(wèn)題153
9.5.1梯度消失153
9.5.2退化154
9.5.3局部極小值154
9.5.4鞍點(diǎn)154
9.6實(shí)現細節問(wèn)題154
9.6.1輸入值與輸出值154
9.6.2網(wǎng)絡(luò )規模155
9.6.3激活函數155
9.6.4損失函數156
9.6.5權重初始化156
9.6.6正則化156
9.6.7學(xué)習率的設定156
9.6.8動(dòng)量項156
9.7源代碼分析157
9.7.1主要數據結構157
9.7.2激活函數160
9.7.3權重初始化163
9.7.4訓練函數164
9.7.5預測函數177
9.8應用179
參考文獻180
第10章支持向量機182
10.1線(xiàn)性分類(lèi)器182
10.1.1線(xiàn)性分類(lèi)器概述182
10.1.2分類(lèi)間隔182
10.2線(xiàn)性可分的問(wèn)題183
10.2.1原問(wèn)題183
10.2.2對偶問(wèn)題184
10.3線(xiàn)性不可分的問(wèn)題187
10.3.1原問(wèn)題187
10.3.2對偶問(wèn)題187
10.4核映射與核函數190
10.5SMO算法193
10.5.1求解子問(wèn)題193
10.5.2優(yōu)化變量的選擇196
10.6多分類(lèi)問(wèn)題197
10.7實(shí)驗程序198
10.8源代碼分析200
10.8.1求解算法201
10.8.2主要數據結構204
10.8.3求解器211
10.9應用222
參考文獻223
第11章線(xiàn)性模型225
11.1logistic回歸225
11.2正則化logistic回歸228
11.2.1對數似然函數228
11.2.2L2正則化原問(wèn)題229
11.2.3L2正則化對偶問(wèn)題232
11.2.4L1正則化原問(wèn)題233
11.2.5實(shí)驗程序234
11.3線(xiàn)性支持向量機236
11.3.1L2正則化L1-loss SVC原問(wèn)題236
11.3.2L2正則化L2-loss SVC原問(wèn)題237
11.3.3L2正則化SVC對偶問(wèn)題237
11.3.4L1正則化L2-loss SVC原問(wèn)題238
11.3.5多類(lèi)線(xiàn)性支持向量機238
11.3.6實(shí)驗程序240
11.4源代碼分析241
11.4.1求解的問(wèn)題241
11.4.2主要數據結構241
11.4.3求解器249
11.5softmax回歸262
11.6應用263
參考文獻264
第12章隨機森林266
12.1集成學(xué)習266
12.1.1隨機抽樣266
12.1.2Bagging算法267
12.2隨機森林概述267
12.3訓練算法267
12.4變量的重要性268
12.5實(shí)驗程序269
12.6源代碼分析271
12.6.1主要數據結構271
12.6.2訓練算法273
12.6.3預測算法282
12.7應用282
參考文獻283
第13章Boosting算法284
13.1AdaBoost算法簡(jiǎn)介284
13.2訓練算法284
13.3訓練誤差分析286
13.4廣義加法模型288
13.5各種AdaBoost算法290
13.5.1離散型AdaBoost290
13.5.2實(shí)數型AdaBoost292
13.5.3LogitBoost292
13.5.4Gentle型AdaBoost294
13.6實(shí)現細節問(wèn)題294
13.6.1弱分類(lèi)器的選擇295
13.6.2弱分類(lèi)器的數量295
13.6.3樣本權重削減295
13.7實(shí)驗程序295
13.8源代碼分析297
13.8.1主要數據結構297
13.8.2弱分類(lèi)器300
13.8.3強分類(lèi)器306
13.9應用——目標檢測318
13.9.1VJ框架的原理319
13.9.2模型訓練321
參考文獻322
第14章深度學(xué)習概論324
14.1機器學(xué)習面臨的挑戰324
14.1.1人工特征325
14.1.2機器學(xué)習算法326
14.2深度學(xué)習技術(shù)326
14.3進(jìn)展與典型應用328
14.3.1計算機視覺(jué)329
14.3.2語(yǔ)音識別331
14.3.3自然語(yǔ)言處理331
14.3.4計算機圖形學(xué)332
14.3.5推薦系統332
14.3.6深度強化學(xué)習333
14.4自動(dòng)編碼器333
14.4.1自動(dòng)編碼器簡(jiǎn)介333
14.4.2去噪自動(dòng)編碼器334
14.4.3稀疏自動(dòng)編碼器334
14.4.4收縮自動(dòng)編碼器335
14.4.5多層編碼器335
14.5受限玻爾茲曼機335
14.5.1玻爾茲曼分布335
14.5.2受限玻爾茲曼機336
14.5.3訓練算法338
14.5.4深度玻爾茲曼機339
14.5.5深度置信網(wǎng)339
參考文獻339
第15章卷積神經(jīng)網(wǎng)絡(luò )347
15.1網(wǎng)絡(luò )結構347
15.1.1卷積層348
15.1.2池化層351
15.1.3全連接層351
15.2訓練算法352
15.2.1卷積層352
15.2.2池化層355
15.2.3隨機梯度下降法356
15.2.4遷移學(xué)習357
15.3典型網(wǎng)絡(luò )357
15.3.1LeNet-5網(wǎng)絡(luò )357
15.3.2AlexNet網(wǎng)絡(luò )358
15.3.3VGG網(wǎng)絡(luò )359
15.3.4GoogLeNet網(wǎng)絡(luò )360
15.4理論分析361
15.4.1反卷積運算361
15.4.2卷積層可視化362
15.4.3理論解釋364
15.5挑戰與改進(jìn)措施365
15.5.1卷積層365
15.5.2池化層365
15.5.3激活函數366
15.5.4損失函數366
15.5.5網(wǎng)絡(luò )結構366
15.5.6批量歸一化370
15.6實(shí)際例子371
15.6.1LeNet-5網(wǎng)絡(luò )371
15.6.2訓練自己的模型373
15.7源代碼分析374
15.7.1Caffe簡(jiǎn)介374
15.7.2數據層376
15.7.3卷積層376
15.7.4池化層378
15.7.5神經(jīng)元層378
15.7.6內積層384
15.7.7損失層386
15.7.8網(wǎng)絡(luò )的實(shí)現——Net類(lèi)396
15.7.9求解器398
15.8應用——計算機視覺(jué)413
15.8.1人臉檢測414
15.8.2通用目標檢測416
15.8.3人臉關(guān)鍵點(diǎn)定位425
15.8.4人臉識別425
15.8.5圖像分割428
15.8.6邊緣檢測429
15.8.7風(fēng)格遷移432
15.8.8圖像增強433
15.8.9三維視覺(jué)435
15.8.10目標跟蹤436
15.9應用——計算機圖形學(xué)437
15.9.1幾何模型438
15.9.2物理模型439
15.9.3紋理合成440
15.9.4圖像彩色化441
15.9.5HDR442
15.10應用——自然語(yǔ)言處理444
15.10.1文本分類(lèi)444
15.10.2機器翻譯444
參考文獻444
第16章循環(huán)神經(jīng)網(wǎng)絡(luò )450
16.1網(wǎng)絡(luò )結構450
16.1.1循環(huán)層450
16.1.2輸出層451
16.1.3一個(gè)簡(jiǎn)單的例子452
16.1.4深層網(wǎng)絡(luò )452
16.2網(wǎng)絡(luò )的訓練453
16.2.1一個(gè)簡(jiǎn)單的例子453
16.2.2完整的算法455
16.3挑戰與改進(jìn)措施457
16.3.1梯度消失457
16.3.2長(cháng)短期記憶模型458
16.3.3門(mén)控循環(huán)單元459
16.3.4雙向網(wǎng)絡(luò )459
16.4序列預測問(wèn)題460
16.4.1序列標注問(wèn)題460
16.4.2連接主義時(shí)序分類(lèi)461
16.4.3序列到序列學(xué)習465
16.5應用——語(yǔ)音識別467
16.5.1語(yǔ)音識別問(wèn)題467
16.5.2隱馬爾可夫模型468
16.5.3高斯混合模型474
16.5.4GMMHMM框架475
16.5.5深度模型475
16.6應用——自然語(yǔ)言處理478
16.6.1中文分詞479
16.6.2詞性標注480
16.6.3命名實(shí)體識別480
16.6.4文本分類(lèi)481
16.6.5自動(dòng)摘要483
16.6.6機器翻譯483
16.7應用——機器視覺(jué)485
16.7.1字符識別485
16.7.2目標跟蹤486
16.7.3視頻分析488
參考文獻490
第17章生成對抗網(wǎng)絡(luò )494
17.1隨機數據生成494
17.2生成對抗網(wǎng)絡(luò )簡(jiǎn)介495
17.2.1生成模型495
17.2.2判別模型496
17.3模型的訓練496
17.3.1目標函數496
17.3.2訓練算法497
17.3.3理論分析498
17.4應用與改進(jìn)499
17.4.1改進(jìn)方案500
17.4.2典型應用503
參考文獻505
第18章聚類(lèi)算法506
18.1問(wèn)題定義506
18.2層次聚類(lèi)507
18.3基于質(zhì)心的算法507
18.4基于概率分布的算法508
18.5基于密度的算法512
18.5.1DBSCAN算法512
18.5.2OPTICS算法514
18.5.3Mean Shift算法516
18.6基于圖的算法517
18.7算法評價(jià)指標518
18.7.1內部指標518
18.7.2外部指標518
18.8應用519
參考文獻519
第19章半監督學(xué)習521
19.1問(wèn)題假設521
19.1.1連續性假設521
19.1.2聚類(lèi)假設521
19.1.3流形假設521
19.1.4低密度分割假設521
19.2啟發(fā)式算法522
19.2.1自訓練522
19.2.2協(xié)同訓練522
19.3生成模型522
19.4低密度分割523
19.5基于圖的算法523
19.6半監督深度學(xué)習524
參考文獻525
第20章強化學(xué)習527
20.1強化學(xué)習簡(jiǎn)介527
20.1.1問(wèn)題定義527
20.1.2馬爾可夫決策過(guò)程528
20.2基于動(dòng)態(tài)規劃的算法532
20.2.1策略迭代算法532
20.2.2價(jià)值迭代算法534
20.3蒙特卡洛算法535
20.3.1算法簡(jiǎn)介535
20.3.2狀態(tài)價(jià)值函數估計536
20.3.3動(dòng)作價(jià)值函數估計537
20.3.4蒙特卡洛控制537
20.4時(shí)序差分學(xué)習538
20.4.1Sarsa算法538
20.4.2Q學(xué)習539
20.5深度強化學(xué)習540
20.5.1深度Q網(wǎng)絡(luò )541
20.5.2策略梯度算法544
20.6應用547
參考文獻547第三部分工程實(shí)踐問(wèn)題
第21章工程實(shí)踐問(wèn)題概述551
21.1實(shí)現細節問(wèn)題551
21.1.1訓練樣本551
21.1.2特征預處理552
21.1.3模型選擇552
21.1.4過(guò)擬合問(wèn)題552
21.2安全性問(wèn)題553
21.2.1對抗樣本553
21.2.2形成原因分析555
21.3實(shí)現成本問(wèn)題556
21.3.1訓練樣本量556
21.3.2計算與存儲成本556
21.4深度模型優(yōu)化557
21.4.1剪枝與編碼557
21.4.2二值化網(wǎng)絡(luò )558
21.4.3卷積核分離562
參考文獻563
附錄A各種機器學(xué)習算法的總結565
附錄B梯度下降法的演化關(guān)系(見(jiàn)第15章)569
附錄CEM算法的推導(見(jiàn)第18章)570