作者:雷明
京東購5折
對於機器學習來說,上至理論層面如統計學習理論,下至典型的具體算法,在算法的推導與實現過程中,都大量的以數學作為工具。
機器學習的具體算法,包括有監督學習、無監督學習、半監督學習,以及強化學習,無不需要數學作為支撐。這表現在下面幾個方面:
1. 算法模型的構造如假設函數(對於有監督學習)、策略函數(對於強化學習)需要數學。
2. 目標函數的構造需要數學,對於有監督學習、無監督學習、半監督學習、強化學習都是如此。如果構造出了目標函數,你就成功了一半。
3. 最優化問題的求解/訓練算法的設計,需要數學,比如梯度下降法,牛頓法,擬牛頓法,SMO算法。
很多時候我們需要分析機器學習算法的特性和問題,並有針對性的給出一些解決方案。除了實驗之外,最有力的工具就是理論分析,這通常依賴於數學。
以經典的萬能逼近定理為例,我們如何證明多層神經網絡能擬合閉區間上的任意連續函數?請看部分證明過程:
生成對抗網絡(GAN)在訓練過程中會出現令人討厭的模式坍塌問題,為什麼會出現這種問題?如何解決此問題?這同樣需要從數學層面進行分析。
對有監督學習模型的泛化誤差分析等任務,就更離不開數學。
除了少數從事偏理論方向學術研究的人,絕大部分人都不會去了解機器學習理論。但機器學習理論對這個領域具有提綱挈領的作用。它可以回答諸如下面一些基本的問題:
1. 什麼樣的任務是可以學習的?
2. 機器學習模型能夠學習到何種程度,即在訓練集,測試集上的誤差上界是多少?
3. 模型假設與泛化誤差上界存在何種關係?
這些晦澀的理論研究,更離不開數學這個工具。
你也許會說,我只需要調用開源庫或使用開源軟體,學會調參就夠了。除非你是跨專業的人,只是偶爾把機器學習當做工具使用而不靠它吃飯,否則這種思想是要不得的。不掌握算法的原理尤其是某些數學知識,你恐怕連做「調參俠」都很困難。試看下面幾個問題:
1. 梯度下降法中為什麼需要學習率?
2. 梯度下降法能保證在每次迭代時目標函數值一定下降嗎?隨機梯度下降法呢?
3. 為什麼在訓練GAN時會有模式坍塌問題,如何解決?
4. 支持向量機中的懲罰因子C應該怎麼設置?核函數該如何選擇?
雖然現在有AutoML等自動化機器學習工具(如貝葉斯優化等算法)來實現自動調參,但在有些時候它們不一定能滿足你的實際要求。
很多同學認為學了本科3門數學課-高等數學,線性代數,概率論與數理統計,就足以學好機器學習了,這種觀點其實是不準確的。且不說最優化方法,隨機過程等課程大部分人並沒學過,即使是這3門課,機器學習中所用的數學知識也經常會超出工科乃至數學系教材的範疇。下面我們來一一分析。
微積分可以進一步分為一元函數微積分,多元函數微積分兩部分, 它是整個高等數學的基石。通常情況下,機器學習需要得到一個函數(模型或者說假設),既然是函數,那自然就離不開微積分了。它為我們研究函數的性質,包括單調性,凹凸性,以及極值提供了理論依據。同時它也是學習概率論、 資訊理論、 最優化方法等課程的基礎。
總體來說,機器學習中所用的微積分知識,本科工科微積分教材基本上已經講了,除了下面這些內容:
8. 多重積分的換元法
如果你真的學好了本科微積分,上面這些內容並不難理解。線性代數對於機器學習是至關重要的。機器學習算法的輸入、輸出、中間結果,通常為向量,矩陣,張量。使用線性代數可以簡化問題的表達,用一個矩陣乘法,比寫成多重求和要簡潔明了得多。線性代數是學習後續數學課程的基礎。它可以與微積分結合,研究多元函數的性質。線性代數在概率論中也被使用,比如隨機向量,協方差矩陣。線性代數在圖論中亦有應用-比如圖的鄰接矩陣,拉普拉斯矩陣。在隨機過程中它同樣有應用-比如狀態轉移矩陣。
機器學習中所用的線性代數知識,有不少超出了一般線性代數乃至高等代數教材的範疇,對於很多讀者來說陌生的。下面是典型的例子:
1. 向量的範數
2. 矩陣的範數
3. Householder變換
4. QR算法
5. 廣義特徵值
6. 瑞利商
7. 矩陣的條件數
8. 矩陣分解,包括Cholesky分解,QR分解,奇異值分解(SVD)
這些知識在教材和論文中頻繁出現。
概率論對於機器學習來說也是至關重要的,這是一種重要的工具。如果將機器學習算法的輸入、輸出看作隨機變量/向量, 則可以用概率論的觀點對問題進行建模。概率論的一個好處是可以對不確定性進行建模,這對於某些問題是非常有必要的。另外,它還可以挖掘變量之間的概率依賴關係,實現因果推理。概率論為某些隨機算法-如蒙特卡洛算法, 遺傳算法,以及隨機數生成算法-包括基本隨機數生成,以及採樣算法提供了理論依據和指導。最後,概率論也是資訊理論,隨機過程的先導課程。
工科的概率論與數理統計教材,已經講述了機器學習所需的大部分概率論知識,只有以下的知識點除外:
1. 條件獨立性
2. Jensen不等式
3. 某些概率分布如多項分布,拉普拉斯分布,t分布等
4. 概率分布變換
5. 多維正態分布
6. 多維概率分布變換
7. 某些參數估計方法,包括最大後驗概率估計,貝葉斯估計等
8. 隨機數生成算法,包括逆變換採樣,拒絕採樣等算法
最優化方法在機器學習中處於中心地位,遺憾的是很多讀者並沒有系統的學過這門課程,包括線性規劃,凸優化,非線性規劃,在一般的數值分析課程中,只講述了最優化方法的小部分內容。
幾乎所有機器學習算法最後都歸結於求解最優化問題,從而確定模型參數,或直接獲得預測結果。前者的典型代表是有監督學習,通過最小化損失函數或優化其他類型的目標函數確定模型的參數;後者的典型代表是數據降維算法,通過優化某種目標函數確定降維後的結果,如主成分分析。
資訊理論是概率論的延伸,在機器學習與深度學習中通常用於構造目標函數,以及對算法進行理論分析與證明。這同樣是很多讀者沒有學習過的課程。
在機器學習尤其是深度學習中,資訊理論的知識隨處可見:
1. 某些決策樹的訓練過程中需要使用熵作為指標。
2. 在深度學習中經常會使用交叉熵,KL散度,JS散度,互信息等概念。
3. 變分推斷的推導需要以KL散度為基礎。
4. 距離度量學習,流形降維等算法也需要資訊理論的知識。
隨機過程同樣是概率論的延伸,這也是大部分讀者沒有學習過的課程。它被廣泛用於序列數據分析。在機器學習中,隨機過程被用於概率圖模型,強化學習建模 ,以及貝葉斯優化等問題。不理解馬爾可夫過程,你將對MCMC採樣算法一頭霧水。
圖論似乎只有計算機相關專業在本科時學過,而且還不完整,比如譜圖理論。在機器學習中,概率圖模型是典型的圖結構。流形降維算法與譜聚類算法均使用了譜圖理論。神經網絡的計算圖也是圖的典型代表,圖神經網絡作為一種新的深度學習模型,與圖論也有密切的關係。因此補充圖論的知識也是很有必要的。
在有些論文和問題上,可能使用了更高級的數學知識,包括微分幾何,實變函數,泛函分析,拓撲學等,不過對一般人來說,這不是必要的,因此我們不做過多介紹。
為了幫助機器學習乃至人工智慧領域的讀者掃清數學這一障礙,我們編寫了《機器學習的數學》這本書。此書適用於下面的讀者:
1. 可作為人工智慧(智能科學與技術)、計算機、電子工程、自動化、數學等相關專業的教材與教學參考書;
2. 可用作人工智慧領域的工程技術人員,如算法工程師、產品經理的參考書;
3. 廣大數學與應用數學愛好者也可以閱讀
下面來介紹本書的特點。
每滿100減50元
點擊封面購買
從前面已經看到,機器學習使用了至少7門課的數學知識,我們是否需要把這些課程完整的學習一遍?答案顯然是否定的,對於絕大多數讀者來說,時間和精力也不允許,且不說能不能完全學懂。
如何用最小的篇幅覆蓋機器學習領域常用的數學知識,是我們在編寫此書時考慮的第一個問題。對此,筆者結合自己在機器學習領域的背景知識進行了精心的設計,通過分析各機器學習算法,以及重要的理論所需的數學知識,我們最終圈定了一個合理的範圍,並對章節和順序進行了科學的設計。總體原則是:非必要的知識儘量不講或少講!下面請看這本書的完整目錄:(👇上下滑動查看)
第1 章一元函數微積分1
1.1 極限與連續 1
1.1.1 可數集與不可數集 1
1.1.2 數列的極限 3
1.1.3 函數的極限 7
1.1.4 函數的連續性與間斷點 9
1.1.5 上確界與下確界 11
1.1.6 李普希茨連續性 12
1.1.7 無窮小量 13
1.2 導數與微分 14
1.2.1 一階導數 14
1.2.2 機器學習中的常用函數 20
1.2.3 高階導數 22
1.2.4 微分 24
1.2.5 導數與函數的單調性 25
1.2.6 極值判別法則 26
1.2.7 導數與函數的凹凸性 28
1.3 微分中值定理 29
1.3.1 羅爾中值定理 29
1.3.2 拉格朗日中值定理 29
1.3.3 柯西中值定理 31
1.4 泰勒公式 31
1.5 不定積分 33
1.5.1 不定積分的定義與性質 33
1.5.2 換元積分法 35
1.5.3 分部積分法 36
1.6 定積分 37
1.6.1 定積分的定義與性質 38
1.6.2 牛頓-萊布尼茨公式 39
1.6.3 定積分的計算 40
1.6.4 變上限積分 41
1.6.5 定積分的應用 42
1.6.6 廣義積分 44
1.7 常微分方程 45
1.7.1 基本概念 45
1.7.2 一階線性微分方程 46
第2 章線性代數與矩陣論49
2.1 向量及其運算 49
2.1.1 基本概念 49
2.1.2 基本運算 51
2.1.3 向量的範數 53
2.1.4 解析幾何 55
2.1.5 線性相關性 57
2.1.6 向量空間 58
2.1.7 應用——線性回歸 61
2.1.8 應用——線性分類器與支持
向量機 62
2.2 矩陣及其運算 65
2.2.1 基本概念 65
2.2.2 基本運算 67
2.2.3 逆矩陣 72
2.2.4 矩陣的範數 78
2.2.5 應用——人工神經網絡 78
2.2.6 線性變換 81
2.3 行列式 82
2.3.1 行列式的定義與性質 83
2.3.2 計算方法 91
2.4 線性方程組 92
2.4.1 高斯消元法 92
2.4.2 齊次方程組 93
2.4.3 非齊次方程組 95
2.5 特徵值與特徵向量 97
2.5.1 特徵值與特徵向量 97
2.5.2 相似變換 105
2.5.3 正交變換 106
2.5.4 QR 算法 110
2.5.5 廣義特徵值 112
2.5.6 瑞利商 112
2.5.7 譜範數與特徵值的關係 114
2.5.8 條件數 114
2.5.9 應用——譜歸一化與譜正則化 115
2.6 二次型 116
2.6.1 基本概念 116
2.6.2 正定二次型與正定矩陣 116
2.6.3 標準型 119
2.7 矩陣分解 121
2.7.1 楚列斯基分解 121
2.7.2 QR 分解 123
2.7.3 特徵值分解 127
2.7.4 奇異值分解 128
第3 章多元函數微積分133
3.1 偏導數 133
3.1.1 一階偏導數 133
3.1.2 高階偏導數 134
3.1.3 全微分 136
3.1.4 鏈式法則 136
3.2 梯度與方向導數 138
3.2.1 梯度 138
3.2.2 方向導數 139
3.2.3 應用——邊緣檢測與HOG
特徵 139
3.3 黑塞矩陣 140
3.3.1 黑塞矩陣的定義與性質 141
3.3.2 凹凸性 141
3.3.3 極值判別法則 143
3.3.4 應用——最小二乘法 145
3.4 雅可比矩陣 146
3.4.1 雅可比矩陣的定義和性質 146
3.4.2 鏈式法則的矩陣形式 148
3.5 向量與矩陣求導 150
3.5.1 常用求導公式 150
3.5.2 應用——反向傳播算法 154
3.6 微分算法 156
3.6.1 符號微分 156
3.6.2 數值微分 157
3.6.3 自動微分 158
3.7 泰勒公式 159
3.8 多重積分 161
3.8.1 二重積分 161
3.8.2 三重積分 164
3.8.3 n 重積分 167
3.9 無窮級數 170
3.9.1 常數項級數 170
3.9.2 函數項級數 173
第4 章最優化方法176
4.1 基本概念 176
4.1.1 問題定義 177
4.1.2 迭代法的基本思想 179
4.2 一階優化算法 180
4.2.1 梯度下降法 180
4.2.2 最速下降法 183
4.2.3 梯度下降法的改進 184
4.2.4 隨機梯度下降法 186
4.2.5 應用——人工神經網絡 187
4.3 二階優化算法 188
4.3.1 牛頓法 188
4.3.2 擬牛頓法 189
4.4 分治法 193
4.4.1 坐標下降法 193
4.4.2 SMO 算法 194
4.4.3 分階段優化 195
4.4.4 應用——logistic 回歸 196
4.5 凸優化問題 198
4.5.1 數值優化算法面臨的問題 198
4.5.2 凸集 199
4.5.3 凸優化問題及其性質 200
4.5.4 機器學習中的凸優化問題 201
4.6 帶約束的優化問題 202
4.6.1 拉格朗日乘數法 202
4.6.2 應用——線性判別分析 204
4.6.3 拉格朗日對偶 205
4.6.4 KKT 條件 208
4.6.5 應用——支持向量機 209
4.7 多目標優化問題 213
4.7.1 基本概念 213
4.7.2 求解算法 215
4.7.3 應用——多目標神經結構搜
索 215
4.8 泛函極值與變分法 216
4.8.1 泛函與變分 217
4.8.2 歐拉—拉格朗日方程 218
4.8.3 應用——證明兩點之間直線
最短 220
4.9 目標函數的構造 221
4.9.1 有監督學習 221
4.9.2 無監督學習 224
4.9.3 強化學習 225
第5 章概率論228
5.1 隨機事件與概率 229
5.1.1 隨機事件概率 229
5.1.2 條件概率 233
5.1.3 全概率公式 234
5.1.4 貝葉斯公式 235
5.1.5 條件獨立 236
5.2 隨機變量 236
5.2.1 離散型隨機變量 236
5.2.2 連續型隨機變量 237
5.2.3 數學期望 240
5.2.4 方差與標準差 242
5.2.5 Jensen 不等式 243
5.3 常用概率分布 244
5.3.1 均勻分布 244
5.3.2 伯努利分布 246
5.3.3 二項分布 247
5.3.4 多項分布 248
5.3.5 幾何分布 249
5.3.6 正態分布 250
5.3.7 t 分布 252
5.3.8 應用——顏色直方圖 253
5.3.9 應用——貝葉斯分類器 254
5.4 分布變換 254
5.4.1 隨機變量函數 254
5.4.2 逆變換採樣算法 256
5.5 隨機向量 258
5.5.1 離散型隨機向量 258
5.5.2 連續型隨機向量 260
5.5.3 數學期望 261
5.5.4 協方差 262
5.5.5 常用概率分布 265
5.5.6 分布變換 268
5.5.7 應用——高斯混合模型 269
5.6 極限定理 271
5.6.1 切比雪夫不等式 271
5.6.2 大數定律 271
5.6.3 中心極限定理 273
5.7 參數估計 273
5.7.1 最大似然估計 274
5.7.2 最大後驗概率估計 276
5.7.3 貝葉斯估計 278
5.7.4 核密度估計 278
5.7.5 應用——logistic 回歸 280
5.7.6 應用——EM 算法 282
5.7.7 應用——Mean Shift 算法 286
5.8 隨機算法 288
5.8.1 基本隨機數生成算法 288
5.8.2 遺傳算法 290
5.8.3 蒙特卡洛算法 293
5.9 採樣算法 295
5.9.1 拒絕採樣 296
5.9.2 重要性採樣 297
第6 章資訊理論298
6.1 熵與聯合熵 298
6.1.1 信息量與熵 298
6.1.2 熵的性質 300
6.1.3 應用——決策樹 302
6.1.4 聯合熵 303
6.2 交叉熵 305
6.2.1 交叉熵的定義 306
6.2.2 交叉熵的性質 306
6.2.3 應用——softmax 回歸 307
6.3 Kullback-Leibler 散度 309
6.3.1 KL 散度的定義 309
6.3.2 KL 散度的性質 311
6.3.3 與交叉熵的關係 312
6.3.4 應用——流形降維 312
6.3.5 應用——變分推斷 313
6.4 Jensen-Shannon 散度 316
6.4.1 JS 散度的定義 316
6.4.2 JS 散度的性質 316
6.4.3 應用——生成對抗網絡 317
6.5 互信息 320
6.5.1 互信息的定義 320
6.5.2 互信息的性質 321
6.5.3 與熵的關係 322
6.5.4 應用——特徵選擇 323
6.6 條件熵 324
6.6.1 條件熵定義 324
6.6.2 條件熵的性質 325
6.6.3 與熵以及互信息的關係 325
6.7 總結 326
第7 章隨機過程328
7.1 馬爾可夫過程 328
7.1.1 馬爾可夫性 329
7.1.2 馬爾可夫鏈的基本概念 330
7.1.3 狀態的性質與分類 333
7.1.4 平穩分布與極限分布 337
7.1.5 細緻平衡條件 342
7.1.6 應用——隱馬爾可夫模型 343
7.1.7 應用——強化學習 345
7.2 馬爾可夫鏈採樣算法 348
7.2.1 基本馬爾可夫鏈採樣 349
7.2.2 MCMC 採樣算法 349
7.2.3 Metropolis-Hastings 算法 351
7.2.4 Gibbs 算法 353
7.3 高斯過程 355
7.3.1 高斯過程性質 355
7.3.2 高斯過程回歸 355
7.3.3 應用——貝葉斯優化 358
第8 章圖論363
8.1 圖的基本概念 363
8.1.1 基本概念 363
8.1.2 應用——計算圖與自動微分 365
8.1.3 應用——概率圖模型 370
8.1.4 鄰接矩陣與加權度矩陣 371
8.1.5 應用——樣本集的相似度圖 372
8.2 若干特殊的圖 373
8.2.1 聯通圖 373
8.2.2 二部圖 374
8.2.3 應用——受限玻爾茲曼機 374
8.2.4 有向無環圖 376
8.2.5 應用——神經結構搜索 376
8.3 重要的算法 380
8.3.1 遍歷算法 380
8.3.2 最短路徑算法 381
8.3.3 拓撲排序算法 382
8.4 譜圖理論 384
8.4.1 拉普拉斯矩陣 385
8.4.2 歸一化拉普拉斯矩陣 388
8.4.3 應用——流形降維 390
相信這一章節安排對於大部分讀者來說是非常科學合理的,也極大地降低了大家的學習成本。下面是本書的總體章節結構圖。
02 從機器學習的角度講述數學,從數學的角度看待機器學習
專門的數學教材通常不會講授機器學習的相關內容,而專門的機器學習教程又不會再去詳細講解數學知識,二者之間存在一個鴻溝。從更大的層面看,不知數學有何用,不知學了怎麼用,是很多讀者面臨的一個問題。
針對這一問題,本書也給出了很好的答案:從機器學習的角度講授數學,從數學的角度看待機器學習,這是本書的一大特色。這本書實現了機器學習與數學的無縫銜接。對於很多數學知識,我們會講到它在機器學習中的應用,而對於很多機器學習算法,我們也會講清它的數學原理,包括:
線性回歸
線性分類器
人工神經網絡
支持向量機
譜歸一化與譜正則化
反向傳播算法
微分算法
Logistic回歸
Softmax回歸
線性判別分析
多目標神經結構搜索
貝葉斯分類器
高斯混合模型
EM算法
最大後驗概率估計,貝葉斯估計
核密度估計與mean shift算法
遺傳算法
蒙特卡洛算法
採樣算法
決策樹
流形降維
變分推斷
生成對抗網絡
特徵選擇問題
隱馬爾可夫模型
馬爾可夫決策過程
馬爾可夫鏈採樣算法
貝葉斯優化
計算圖與自動微分
概率圖模型
受限玻爾茲曼機
這些內容已經涵蓋了機器學習,深度學習,強化學習的核心基礎知識。讀完本書,讀者對機器學習算法也基本上也有了一個整體的理解。
數學抽象難懂,是幾乎所有讀者都會面臨的一個問題。如何把一些概念、理論清晰地講述出來,是一個非常有挑戰的問題。在這一方面,作者進行了大量的思考與設計,力求用淺顯易懂的語言把晦澀的知識講述清楚,並用實例和圖表等形式把抽象的知識具象化,確保讀者理解起來無困難。下面來看幾個例子。
很多讀者覺得反向傳播算法不易理解,不清楚為什麼要這樣做,到底解決了什麼問題。書中條理清晰地闡述了反向傳播算法的原理,推導簡潔而易懂,同時附以下面的圖讓讀者理解算法的核心步驟與本質。
書中大量使用了在機器學習中、實際生活中的例子進行講解,化抽象為具體。以馬爾可夫決策過程為例。強化學習中的馬爾可夫決策過程一直讓很多讀者覺得難解。相信很多讀者會有下面的疑問:
1. 強化學習中為什麼需要用馬爾可夫決策過程進行建模?
2. 為什麼需要用狀態轉移概率?
3. 為什麼獎勵函數與狀態轉移有關?
4. 確定性策略,非確定性策略到底是怎麼回事?
書中對馬爾可夫決策過程進行了清晰的闡述,並以人工降雨這種大家都能理解的生活例子進行說明。
機器學習中所用的數學知識,有不少是公認的難以理解的。比如正交變換,QR算法,奇異值分解,擬牛頓法,拉格朗日對偶,概率分布變換等。這些數學概念的定義,推導中的關鍵步驟,以及為何要這樣做,在很多教材中並沒有交代。本書對這些難點的講解進行了精心的設計。
以Householder變換為例,它在矩陣分解、特徵值計算等任務中具有重要的作用。不少讀者在學習矩陣分析、數值分析等課程的時候可能會有這樣的疑問:
1. 為什麼用Householder變換可以將矩陣變換為近似對角的矩陣?
2. Householder變換的變換矩陣是怎樣構造的,為什麼要這麼構造?
3. 為何不直接將對稱矩陣變換為對角矩陣?
對於這些問題,本書都有清晰的交代。
4. 結合python程序,直觀的給出數學結論的結果。
對於某些數學知識點,我們給出了python代碼,讓讀者能夠通過程序直接看到數學結論和結果,降低理解難度。
對於讀者普遍感到難以理解的知識,如QR算法,矩陣分解,反向傳播算法,擬牛頓法,支持向量機,拉格朗日對偶,EM算法,變分推斷,MCMC採樣算法,貝葉斯優化等,本書都有深入淺出的講解。並給出詳細的推理過程和應用實例。下面舉例說明。
1. 擬牛頓法
2. 變分推斷
3. 貝葉斯優化
在宏觀層面,本書也對各章的知識結構進行了總結和梳理,讓讀者不僅能理解細節,更能知全局,從全局層面把握數學知識,加深理解。
下圖是最優化方法的知識體系:
下圖是資訊理論的知識體系:
本書配套的資源
為了幫助讀者更高效地學習本書,本書後續將推出配套的講解視頻。為了幫助讀者以及高校老師使用本書,特意配備了本書的PPT教學資源,將會免費公開。
本書目前已經在京東上線,點擊封面直接購買
本書的目標是幫助讀者全面、系統地學習機器學習所必須的數學知識。全書由8章組成,力求精準、最小地覆蓋機器學習的數學知識。包括微積分,線性代數與矩陣論,最優化方法,概率論,資訊理論,隨機過程,以及圖論。本書從機器學習的角度講授這些數學知識,對它們在該領域的應用舉例說明,使讀者對某些抽象的數學知識和理論的實際應用有直觀、具體的認識。本書內容緊湊,結構清晰,深入淺出,講解詳細。