機器學習沒有捷徑,根據機器學習演算法地圖學習是最有效的一種方式!
《機器學習與應用》由清華大學出版社出版,是機器學習和深度學習領域又一高質量的入門與提高教材。該書系統、深入地講述了機器學習與深度學習的主要方法與理論,並緊密結合工程實踐與應用。
https://item.m.jd.com/product/12504554.html
作者簡介
雷明,畢業於清華大學計算機系,研究方向為機器學習、計算機視覺。有超過12年的學術研究與產品研發經驗,曾發表論文數篇,具有深厚的理論功底與豐富的實踐經驗。其撰寫的系列技術文章在半年內累計閱讀量達數百萬次,擅長用生動、形象的語言把複雜、抽象的理論和演算法解釋清楚。
適讀人群
計算機,電子,自動化,人工智慧等相關專業的本科生,研究生
從事人工智慧學術研究與產品研發的人員
對人工智慧、機器學習感興趣的人
本書優勢(附精彩試讀)
1、內容全面、系統,緊跟技術進步
完整的講述了機器學習、深度學習主要演算法以及在各個領域的典型應用,含括了學術界與工業界截止2017年初的新成果,緊跟時代步伐,彌補了市面上經典教材內容老化的缺憾。
精彩試讀:
影像超分辨的目標是由低解析度的影像得到高解析度的影像,傳統的做法大多采用純影像處理的技術。用機器學習的思路解決超分辨問題取得了更好的效果,卷積神經網路被成功地用於超分辨問題。文獻[7]提出了一種用生成對抗網路框架解決影像超分辨問題的方法,稱為超分辨生成對抗網路,簡稱SRGAN,能夠將縮小4倍以上的影像進行復原。
這種方法使用了一種新的損失函式,由對抗損失和內容損失兩部分構成。第一部分損失和標準生成對抗框架相同,通過一個判別模型,讓生成網路生成的超分辨影像和真實高解析度影像儘可能接近。
生成器卷積網路採用了深度殘差網路;判別模型也是一個層次很深的卷積網路,用於區分一張影像是真實的高解析度影像還是由生成器網路生成的影像。網路結構如下圖所示。
影像超分辨的網路結構
假設低解析度影像為,這裡的目標是根據它估計出高解析度的影像,在訓練樣本中與低解析度影像相對應的真實高解析度影像為。
2、推導論證清晰、深入、詳細
絕大部分核心演算法均有詳細的推導、證明過程,從問題本源、思想層面對演算法進行講解,讓讀者不僅知其然還知其所以然,真正掌握演算法的思想與精髓。在書的前部對機器學習所需的數學知識也做了系統的講解
精彩試讀:
目標函式的二階導數為,前面假設二階導數,從而保證目標函式是凸函式,即開口向上的拋物線,有極小值。如果,或者該怎麼處理?對於線性核或正定核函式,由於矩陣的任意一個上述子問題對應的二階子矩陣半正定,必定有。下面給出證明這個關於兩個變數的子問題的目標函式是凸函式,只需要證明它的Hessian矩陣是半正定矩陣。這兩個變數的目標函式的Hessian為
和10.3.2節證明整個對偶問題的Hessian矩陣正定的方法相同,如果是線性核,這個矩陣也可以寫成一個矩陣和它的轉置的乘積形式:
矩陣為訓練樣本特徵向量乘上類別標籤形成的矩陣。顯然這個Hessian矩陣是半正定的,因此必定有。如果是非線性核,因為核函式相當於對兩個核對映之後的向量做內積,因此上面的結論同樣成立。
無論本次迭代時和的初始值是多少,通過上面的子問題求解演算法得到是在可行域裡的最小值,因此每次求解更新這兩個變數的值之後,都能保證目標函式值小於或者等於初始值,即函式值下降,所以SMO演算法能保證收斂。
3、核心演算法配有實現細節介紹,使用示例,知名開源庫程式碼分析
對大部分核心演算法的實現細節進行了介紹,並配有示例程式與知名開源庫原始碼分析,包括OpenCV,libsvm,liblinear,Caffe,這對需要使用、實現機器學習演算法的讀者至關重要
精彩試讀:
求解器的實現是原始碼分析的核心,分為可信域牛頓法與座標下降法兩類。可信域牛頓法由TRON類實現,座標下降法由各個問題具體的求解函式實現。限於篇幅,在這裡只分析一部分求解器,其他的實現原理類似。
可信域牛頓法由類TRON實現,這個類為L2-正則化logistic迴歸和L2-正則化支援向量機的訓練提供支援。類定義如下:
class TRON
{
public:
// 傳入的是基類function的指標,可以使用上面兩種損失函式,eps為迭代精度
// max_iter為最大迭代次數,預設值為1000
TRON(const function *fun_obj, double eps = 0.1, int max_iter = 1000);
~TRON();
// 這是求解的介面函式
void tron(double *w);
void set_print_string(void (*i_print) (const char *buf));
private:
int trcg(double delta, double *g, double *s, double *r); // 共軛梯度法,被tron呼叫
double norm_inf(int n, double *x);
double eps; // 收斂精度
int max_iter; // 最大迭代次數
function *fun_obj; // 目標函式
void info(const char *fmt,...);
void (*tron_print_string)(const char *buf);
};
4、重要演算法的實際應用均有講解
核心演算法的實際應用都有介紹,對深度學習技術在計算機視覺、語音識別、自然語言處理、計算機圖形學等領域的應用情況有詳細而深入的介紹。這些內容能幫助讀者掌握演算法的實際應用方法、建模的思路。
在本書的核心演算法部分介紹了機器學習和深度學習的主要演算法,包括
線性迴歸
嶺迴歸
LASSO迴歸
貝葉斯分類器
決策樹
K近鄰演算法
距離度量學習
資料降維演算法,包括主成分分析、流形學習
線性判別分析
人工神經網路
支援向量機
logistic迴歸
線性支援向量機
softmax迴歸
Bagging演算法與隨機森林
boosting演算法
高斯混合模型
隱馬爾可夫模型
自動編碼器
受限玻爾茲曼機
卷積神經網路
迴圈神經網路
生成對抗網路
聚類演算法,包括層次聚類、k均值演算法、DBSCAN演算法、OPTICS演算法、EM演算法、均值漂移演算法、譜聚類
半監督學習,包括自訓練、協同訓練、生成模型、半監督支援向量機、基於圖的演算法、半監督深度學習
強化學習,包括策略迭代演算法、價值迭代演算法、蒙特卡洛演算法、時序差分演算法、深度Q網路、策略梯度演算法
在工程實踐部分介紹了機器學習演算法在工程應用時面臨的問題與解決方案,包括
樣本的收集與標註
特徵工程
演算法與模型選擇
過擬合問題
安全性問題(對抗樣本)
計算與儲存成本問題
深度神經網路模型壓縮與優化
購買指南:
目前本書已在京東上七五折包郵預售
https://item.m.jd.com/product/12504554.html
目錄
全書由21章組成,共分為三大部分。第1~3章為第一部分,介紹機器學習的基本原理、所需的數學知識(包括微積分、線性代數、概率論和優化方法),以及機器學習中的核心概念。第4~20章為第二部分,是本書的主體,介紹各種常用的有監督學習演算法、無監督學習演算法、半監督學習演算法和強化學習演算法。對於每種演算法,從原理與推導、工程實現和實際應用3個方面進行講解,對於大多數演算法,都配有實驗程式。第21章為第三部分,介紹機器學習和深度學習演算法實際應用時面臨的問題,並給出典型的解決方案。此外,附錄A給出各種機器學習演算法的總結,附錄B給出梯度下降法的演化關係,附錄C給出EM演算法的推導。
第一部分 基本概念與數學知識
第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
參考文獻15
第2章數學知識17
2.1微積分和線性代數17
2.1.1導數17
2.1.2向量與矩陣19
2.1.3偏導數與梯度21
2.1.4雅克比矩陣22
2.1.5Hessian矩陣23
2.1.6泰勒展開24
2.1.7行列式24
2.1.8特徵值與特徵向量25
2.1.9奇異值分解26
2.1.10二次型26
2.1.11向量與矩陣求導26
2.2最優化方法27
2.2.1梯度下降法27
2.2.2牛頓法28
2.2.3座標下降法29
2.2.4拉格朗日乘數法30
2.2.5凸優化30
2.2.6拉格朗日對偶34
2.2.7KKT條件36
2.2.8擬牛頓法37
2.2.9面臨的問題38
2.3概率論39
2.3.1隨機事件與概率39
2.3.2條件概率39
2.3.3隨機變數40
2.3.4數學期望與方差41
2.3.5隨機向量41
2.3.6最大似然估計42
參考文獻43
第3章基本概念44
3.1演算法分類44
3.1.1監督訊號44
3.1.2分類問題與迴歸問題45
3.1.3判別模型與生成模型47
3.1.4強化學習47
3.2模型評價指標48
3.2.1精度與召回率48
3.2.2ROC曲線48
3.2.3混淆矩陣50
3.2.4交叉驗證50
3.3模型選擇50
3.3.1過擬合與欠擬合50
3.3.2偏差與方差分解51
3.3.3正則化52
參考文獻54
第二部分主要的機器學習演算法與理論
第4章貝葉斯分類器57
4.1貝葉斯決策57
4.2樸素貝葉斯分類器58
4.2.1離散型特徵58
4.2.2連續型特徵59
4.3正態貝葉斯分類器59
4.3.1訓練演算法59
4.3.2預測演算法60
4.4實驗程式61
4.5原始碼分析64
4.5.1主要資料結構64
4.5.2訓練函式65
4.5.3預測函式68
4.6應用70
參考文獻71
第5章決策樹72
5.1樹形決策過程72
5.2分類與迴歸樹73
5.3訓練演算法74
5.3.1遞迴分裂過程74
5.3.2尋找最佳分裂74
5.3.3葉子節點值的設定77
5.3.4屬性缺失問題77
5.3.5剪枝演算法78
5.4實驗程式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距離度量學習106
6.4實驗程式107
6.5應用109
參考文獻110
第7章資料降維111
7.1主成分分析111
7.1.1資料降維問題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流形學習118
7.3.1區域性線性嵌入119
7.3.2拉普拉斯特徵對映119
7.3.3區域性保持投影122
7.3.4等距對映123
7.4應用124
參考文獻124
第8章線性判別分析125
8.1用投影進行分類125
8.2投影矩陣125
8.2.1一維的情況125
8.2.2推廣到高維127
8.3實驗程式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章人工神經網路138
9.1多層前饋型神經網路138
9.1.1神經元138
9.1.2網路結構139
9.1.3正向傳播演算法140
9.2反向傳播演算法141
9.2.1一個簡單的例子141
9.2.2完整的演算法145
9.3實驗程式149
9.4理論解釋152
9.4.1數學性質152
9.4.2與神經系統的關係153
9.5面臨的問題153
9.5.1梯度消失153
9.5.2退化154
9.5.3區域性極小值154
9.5.4鞍點154
9.6實現細節問題154
9.6.1輸入值與輸出值154
9.6.2網路規模155
9.6.3啟用函式155
9.6.4損失函式156
9.6.5權重初始化156
9.6.6正則化156
9.6.7學習率的設定156
9.6.8動量項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線性分類器182
10.1.1線性分類器概述182
10.1.2分類間隔182
10.2線性可分的問題183
10.2.1原問題183
10.2.2對偶問題184
10.3線性不可分的問題187
10.3.1原問題187
10.3.2對偶問題187
10.4核對映與核函式190
10.5SMO演算法193
10.5.1求解子問題193
10.5.2優化變數的選擇196
10.6多分類問題197
10.7實驗程式198
10.8原始碼分析200
10.8.1求解演算法201
10.8.2主要資料結構204
10.8.3求解器211
10.9應用222
參考文獻223
第11章線性模型225
11.1logistic迴歸225
11.2正則化logistic迴歸228
11.2.1對數似然函式228
11.2.2L2正則化原問題229
11.2.3L2正則化對偶問題232
11.2.4L1正則化原問題233
11.2.5實驗程式234
11.3線性支援向量機236
11.3.1L2正則化L1loss SVC原問題236
11.3.2L2正則化L2loss SVC原問題237
11.3.3L2正則化SVC對偶問題237
11.3.4L1正則化L2loss SVC原問題238
11.3.5多類線性支援向量機238
11.3.6實驗程式240
11.4原始碼分析241
11.4.1求解的問題241
11.4.2主要資料結構241
11.4.3求解器249
11.5softmax迴歸262
11.6應用263
參考文獻264
第12章隨機森林266
12.1整合學習266
12.1.1隨機抽樣266
12.1.2Bagging演算法267
12.2隨機森林概述267
12.3訓練演算法267
12.4變數的重要性268
12.5實驗程式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演算法簡介284
13.2訓練演算法284
13.3訓練誤差分析286
13.4廣義加法模型288
13.5各種AdaBoost演算法290
13.5.1離散型AdaBoost290
13.5.2實數型AdaBoost292
13.5.3LogitBoost292
13.5.4Gentle型AdaBoost294
13.6實現細節問題294
13.6.1弱分類器的選擇295
13.6.2弱分類器的數量295
13.6.3樣本權重削減295
13.7實驗程式295
13.8原始碼分析297
13.8.1主要資料結構297
13.8.2弱分類器300
13.8.3強分類器306
13.9應用——目標檢測318
13.9.1VJ框架的原理319
13.9.2模型訓練321
參考文獻322
第14章深度學習概論324
14.1機器學習面臨的挑戰324
14.1.1人工特徵325
14.1.2機器學習演算法326
14.2深度學習技術326
14.3進展與典型應用328
14.3.1計算機視覺329
14.3.2語音識別331
14.3.3自然語言處理331
14.3.4計算機圖形學332
14.3.5推薦系統332
14.3.6深度強化學習333
14.4自動編碼器333
14.4.1自動編碼器簡介333
14.4.2去噪自動編碼器334
14.4.3稀疏自動編碼器334
14.4.4收縮自動編碼器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深度置信網339
參考文獻339
第15章卷積神經網路347
15.1網路結構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遷移學習357
15.3典型網路357
15.3.1LeNet5網路357
15.3.2AlexNet網路358
15.3.3VGG網路359
15.3.4GoogLeNet網路360
15.4理論分析361
15.4.1反摺積運算361
15.4.2卷積層視覺化362
15.4.3理論解釋364
15.5挑戰與改進措施365
15.5.1卷積層365
15.5.2池化層365
15.5.3啟用函式366
15.5.4損失函式366
15.5.5網路結構366
15.5.6批量歸一化370
15.6實際例子371
15.6.1LeNet5網路371
15.6.2訓練自己的模型373
15.7原始碼分析374
15.7.1Caffe簡介374
15.7.2資料層376
15.7.3卷積層376
15.7.4池化層378
15.7.5神經元層378
15.7.6內積層384
15.7.7損失層386
15.7.8網路的實現——Net類396
15.7.9求解器398
15.8應用——計算機視覺413
15.8.1人臉檢測414
15.8.2通用目標檢測416
15.8.3人臉關鍵點定位425
15.8.4人臉識別425
15.8.5影像分割428
15.8.6邊緣檢測429
15.8.7風格遷移432
15.8.8影像增強433
15.8.9三維視覺435
15.8.10目標跟蹤436
15.9應用——計算機圖形學437
15.9.1幾何模型438
15.9.2物理模型439
15.9.3紋理合成440
15.9.4影像彩色化441
15.9.5HDR442
15.10應用——自然語言處理444
15.10.1文字分類444
15.10.2機器翻譯444
參考文獻444
第16章迴圈神經網路450
16.1網路結構450
16.1.1迴圈層450
16.1.2輸出層451
16.1.3一個簡單的例子452
16.1.4深層網路452
16.2網路的訓練453
16.2.1一個簡單的例子453
16.2.2完整的演算法455
16.3挑戰與改進措施457
16.3.1梯度消失457
16.3.2長短期記憶模型458
16.3.3門控迴圈單元459
16.3.4雙向網路459
16.4序列預測問題460
16.4.1序列標註問題460
16.4.2連線主義時序分類461
16.4.3序列到序列學習465
16.5應用——語音識別467
16.5.1語音識別問題467
16.5.2隱馬爾可夫模型468
16.5.3高斯混合模型474
16.5.4GMM-HMM框架475
16.5.5深度模型475
16.6應用——自然語言處理478
16.6.1中文分詞479
16.6.2詞性標註480
16.6.3命名實體識別480
16.6.4文字分類481
16.6.5自動摘要483
16.6.6機器翻譯483
16.7應用——機器視覺485
16.7.1字元識別485
16.7.2目標跟蹤486
16.7.3視訊分析488
參考文獻490
第17章生成對抗網路494
17.1隨機資料生成494
17.2生成對抗網路簡介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應用與改進499
17.4.1改進方案500
17.4.2典型應用503
參考文獻505
第18章聚類演算法506
18.1問題定義506
18.2層次聚類507
18.3基於質心的演算法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演算法評價指標518
18.7.1內部指標518
18.7.2外部指標518
18.8應用519
參考文獻519
第19章半監督學習521
19.1問題假設521
19.1.1連續性假設521
19.1.2聚類假設521
19.1.3流形假設521
19.1.4低密度分割假設521
19.2啟發式演算法522
19.2.1自訓練522
19.2.2協同訓練522
19.3生成模型522
19.4低密度分割523
19.5基於圖的演算法523
19.6半監督深度學習524
參考文獻525
第20章強化學習527
20.1強化學習簡介527
20.1.1問題定義527
20.1.2馬爾可夫決策過程528
20.2基於動態規劃的演算法532
20.2.1策略迭代演算法532
20.2.2價值迭代演算法534
20.3蒙特卡洛演算法535
20.3.1演算法簡介535
20.3.2狀態價值函式估計536
20.3.3動作價值函式估計537
20.3.4蒙特卡洛控制537
20.4時序差分學習538
20.4.1Sarsa演算法538
20.4.2Q學習539
20.5深度強化學習540
20.5.1深度Q網路541
20.5.2策略梯度演算法544
20.6應用547
參考文獻547
第三部分工程實踐問題
第21章工程實踐問題概述551
21.1實現細節問題551
21.1.1訓練樣本551
21.1.2特徵預處理552
21.1.3模型選擇552
21.1.4過擬合問題552
21.2安全性問題553
21.2.1對抗樣本553
21.2.2形成原因分析555
21.3實現成本問題556
21.3.1訓練樣本量556
21.3.2計算與儲存成本556
21.4深度模型優化557
21.4.1剪枝與編碼557
21.4.2二值化網路558
21.4.3卷積核分離562
參考文獻563
附錄A各種機器學習演算法的總結565
附錄B梯度下降法的演化關係(見第15章)569
附錄C EM演算法的推導(見第18章)570
相關文章
- 在機器學習領域,主要的學習方式是哪幾種?機器學習
- 如何更好地學習機器學習?機器學習
- 學習Linux是存在捷徑的Linux
- 學習python沒有捷徑,唯有多寫,多練,多想Python
- 機器學習--有監督學習--演算法整理機器學習演算法
- 機器學習成才之路:這是一條GitHub高讚的學習路徑機器學習Github
- 機器學習定義及基本術語(根據周志華的《機器學習》概括)機器學習
- 機器學習根據文字生成圖片教程(附python程式碼)機器學習Python
- 杉巖:成功沒有捷徑,但雙中心資料讀寫有“捷徑”
- 【機器學習】新手必看的十種機器學習演算法機器學習演算法
- 機器學習是深度學習之母機器學習深度學習
- 有沒有必要把機器學習演算法自己實現一遍?機器學習演算法
- 如何研究學習一個機器學習演算法機器學習演算法
- 機器學習演算法一覽圖機器學習演算法
- 學習人工智慧不走捷徑,走大道的方式人工智慧
- 程式設計師初學機器學習的四種方式程式設計師機器學習
- 學習linux到底有沒捷徑?講講我重入Linux江湖Linux
- 機器學習演算法學習筆記機器學習演算法筆記
- 沒有Python基礎,如何學習用Python寫機器學習Python機器學習
- 學習設計模式的捷徑設計模式
- 機器學習MLOps學習路徑 - AI_Grigor機器學習AIGo
- 【機器學習】深度學習與經典機器學習的優劣勢一覽機器學習深度學習
- 機器人想要什麼:利用機器學習有效地進行教學機器人機器學習
- 機器學習助力移動革命的四種方式機器學習
- 演算法金 | 一文看懂人工智慧、機器學習、深度學習是什麼、有什麼區別!演算法人工智慧機器學習深度學習
- 一文圖解機器學習的基本演算法!圖解機器學習演算法
- 機器學習--有監督學習--分類演算法(預測分類)機器學習演算法
- 機器學習-整合學習機器學習
- 如何學習機器學習機器學習
- 收藏:機器學習27張速查表、13種演算法和4種學習方法機器學習演算法
- 什麼是AI、機器學習與深度學習?AI機器學習深度學習
- 什麼是 AI、機器學習與深度學習?AI機器學習深度學習
- Python遷移學習:機器學習演算法Python遷移學習機器學習演算法
- iOS開發捷徑學習(三)iOS
- 暫時結束有計劃地學習RMAN,以後根據需要再總結
- 全球40億人沒有地址,於是資料科學家想到了機器學習資料科學機器學習
- 機器學習中的元學習機器學習
- 機器學習之沒有免費午餐定理機器學習