本書是面向機器學習新手的入門書,從學習環(huán)境的搭建開始,圖文并茂地介紹了學習機器學習所需的Python知識和數(shù)學知識,并在此基礎上結合數(shù)學式、示例程序、插圖等,抽絲剝繭般地對有監(jiān)督學習中的回歸與分類、神經(jīng)網(wǎng)絡與深度學習的算法與應用、手寫數(shù)字識別、無監(jiān)督學習的算法等進行了介紹。
本書既有圖形、代碼,又有詳細的數(shù)學式推導過程,大大降低了機器學習的學習門檻,即使沒有學過Python、數(shù)學基礎不太好,也可以看懂。
面向機器學習新手的入門書,透徹掌握機器學習基礎知識
341個公式:推導過程全公開
175段代碼:邊試邊學效率高
167張插圖:以圖配文好理解
支持Jupyter Notebook
配套源碼&資源可下載
1.Jupyter Notebook交互式編程環(huán)境,讓學習過程不枯燥
使用Jupyter Notebook,你可以在線編碼、運行,并將結果繪圖,還可以記筆記、隨時修改代碼并查看運行效果,在不斷探索中掌握實戰(zhàn)能力。
2.公式和代碼一一對應,讓理解更深入
通過一步一步地推導公式,手把手教你代碼實踐,一行行公式與一行行代碼相結合,幫助你直觀、透徹地理解算法流程。
3.循序漸近,真正適合初學者
從環(huán)境搭建講起,然后介紹Python和數(shù)學基礎知識,再介紹有監(jiān)督學習中的回歸和分類問題、神經(jīng)網(wǎng)絡模型和手寫數(shù)字識別,以及無監(jiān)督學習中的聚類問題,對每個知識點都有細致解釋,力求通俗易懂。讀完本書,你將掌握足以閱讀經(jīng)典專業(yè)書的能力。
伊藤真(作者)
日本栃木縣人,目前居住在神奈川縣。
2000年獲得日本東北大學大學院信息科學博士學位,研究內(nèi)容為小鼠導航行為的數(shù)理模型。2004年~2016年在沖繩科學技術大學院大學擔任神經(jīng)計算單元實驗小組負責人,主要研究如何通過強化學習模型解釋小鼠的選擇行為和腦活動。
2017年入職Progress Technologies株式會社,研究人工智能的產(chǎn)業(yè)應用。
愛好是用瓦楞紙板做手工藝品。
鄭明智(譯者)
智慧醫(yī)療工程師。主要研究方向為醫(yī)療與前沿ICT技術的結合及其應用,密切關注人工智能、5G、量子計算等領域。譯有《松本行弘:編程語言的設計與實現(xiàn)》《深度學習基礎與實踐》《詳解深度學習》《白話機器學習的數(shù)學》等書。
司磊(譯者)
碩士畢業(yè)于日本芝浦工業(yè)大學理工學研究科,研究方向為電氣電子信息工學,該校智能系統(tǒng)實驗室成員。目前在某智能設備廠商任系統(tǒng)工程師。喜歡讀書、跑步、學習新知識以及嘗試實現(xiàn)一些好玩的idea。
第 1章 學習前的準備 1
1.1 關于機器學習 2
1.1.1 學習機器學習的竅門 4
1.1.2 機器學習中問題的分類 5
1.1.3 本書的結構 6
1.2 安裝Python 7
1.3 Jupyter Notebook 11
1.3.1 Jupyter Notebook的用法 11
1.3.2 輸入Markdown格式文本 14
1.3.3 更改文件名 16
1.4 安裝Keras和TensorFlow 17
第 2章 Python基礎知識 19
2.1 四則運算 20
2.1.1 四則運算的用法 20
2.1.2 冪運算 20
2.2 變量 21
2.2.1 利用變量進行計算 21
2.2.2 變量的命名 21
2.3 類型 22
2.3.1 類型的種類 22
2.3.2 檢查類型 22
2.3.3 字符串 23
2.4 print 語句 24
2.4.1 print語句的用法 24
2.4.2 同時顯示數(shù)值和字符串的方法1 24
2.4.3 同時顯示數(shù)值和字符串的方法2 25
2.5 list(數(shù)組變量) 26
2.5.1 list的用法 26
2.5.2 二維數(shù)組 27
2.5.3 創(chuàng)建連續(xù)的整數(shù)數(shù)組 28
2.6 tuple(數(shù)組) 29
2.6.1 tuple的用法 29
2.6.2 讀取元素 29
2.6.3 長度為1的tuple 30
2.7 if 語句 31
2.7.1 if語句的用法 31
2.7.2 比較運算符 32
2.8 for 語句 33
2.8.1 for語句的用法 33
2.8.2 enumerate的用法 33
2.9 向量 34
2.9.1 NumPy的用法 34
2.9.2 定義向量 35
2.9.3 讀取元素 36
2.9.4 替換元素 36
2.9.5 創(chuàng)建連續(xù)整數(shù)的向量 36
2.9.6 ndarray的注意事項 37
2.10 矩陣 38
2.10.1 定義矩陣 38
2.10.2 矩陣的大小 38
2.10.3 讀取元素 39
2.10.4 替換元素 39
2.10.5 生成元素為0和1的ndarray 39
2.10.6 生成元素隨機的矩陣 40
2.10.7 改變矩陣的大小 41
2.11 矩陣的四則運算 41
2.11.1 矩陣的四則運算 41
2.11.2 標量×矩陣 42
2.11.3 算術函數(shù) 42
2.11.4 計算矩陣乘積 43
2.12 切片 43
2.13 替換滿足條件的數(shù)據(jù) 45
2.14 help 46
2.15 函數(shù) 47
2.15.1 函數(shù)的用法 47
2.15.2 參數(shù)與返回值 47
2.16 保存文件 49
2.16.1 保存一個ndarray類型變量 49
2.16.2 保存多個ndarray類型變量 49
第3章 數(shù)據(jù)可視化 51
3.1 繪制二維圖形 52
3.1.1 繪制隨機圖形 52
3.1.2 代碼清單的格式 53
3.1.3 繪制三次函數(shù)f (x) = (x - 2) x (x + 2) 53
3.1.4 確定繪制范圍 54
3.1.5 繪制圖形 55
3.1.6 裝飾圖形 55
3.1.7 并列顯示多張圖形 58
3.2 繪制三維圖形 59
3.2.1 包含兩個變量的函數(shù) 59
3.2.2 用顏色表示數(shù)值:pcolor 60
3.2.3 繪制三維圖形:surface 62
3.2.4 繪制等高線:contour 64
第4章 機器學習中的數(shù)學 67
4.1 向量 68
4.1.1 什么是向量 68
4.1.2 用Python定義向量 69
4.1.3 列向量的表示方法 69
4.1.4 轉置的表示方法 70
4.1.5 加法和減法 71
4.1.6 標量積 73
4.1.7 內(nèi)積 74
4.1.8 向量的!75
4.2 求和符號 76
4.2.1 帶求和符號的數(shù)學式的變形 77
4.2.2 通過內(nèi)積求和 79
4.3 累乘符號 79
4.4 導數(shù) 80
4.4.1 多項式的導數(shù) 80
4.4.2 帶導數(shù)符號的數(shù)學式的變形 82
4.4.3 復合函數(shù)的導數(shù) 83
4.4.4 復合函數(shù)的導數(shù):鏈式法則 84
4.5 偏導數(shù) 85
4.5.1 什么是偏導數(shù) 85
4.5.2 偏導數(shù)的圖形 87
4.5.3 繪制梯度的圖形 89
4.5.4 多變量的復合函數(shù)的偏導數(shù) 91
4.5.5 交換求和與求導的順序 93
4.6 矩陣 95
4.6.1 什么是矩陣 95
4.6.2 矩陣的加法和減法 97
4.6.3 標量積 99
4.6.4 矩陣的乘積 100
4.6.5 單位矩陣 103
4.6.6 逆矩陣 105
4.6.7 轉置 107
4.6.8 矩陣和聯(lián)立方程式 109
4.6.9 矩陣和映射 111
4.7 指數(shù)函數(shù)和對數(shù)函數(shù) 113
4.7.1 指數(shù) 113
4.7.2 對數(shù) 115
4.7.3 指數(shù)函數(shù)的導數(shù) 118
4.7.4 對數(shù)函數(shù)的導數(shù) 120
4.7.5 Sigmoid函數(shù) 121
4.7.6 Softmax函數(shù) 123
4.7.7 Softmax函數(shù)和Sigmoid函數(shù) 127
4.7.8 高斯函數(shù) 128
4.7.9 二維高斯函數(shù) 129
第5章 有監(jiān)督學習:回歸 135
5.1 一維輸入的直線模型 136
5.1.1 直線模型 138
5.1.2 平方誤差函數(shù) 139
5.1.3 求參數(shù)(梯度法) 142
5.1.4 直線模型參數(shù)的解析解 148
5.2 二維輸入的平面模型 152
5.2.1 數(shù)據(jù)的表示方法 154
5.2.2 平面模型 155
5.2.3 平面模型參數(shù)的解析解 157
5.3 D維線性回歸模型 159
5.3.1 D維線性回歸模型 160
5.3.2 參數(shù)的解析解 160
5.3.3 擴展到不通過原點的平面 164
5.4 線性基底函數(shù)模型 165
5.5 過擬合問題 171
5.6 新模型的生成 181
5.7 模型的選擇 185
5.8 小結 186
第6章 有監(jiān)督學習:分類 189
6.1 一維輸入的二元分類 190
6.1.1 問題設置 190
6.1.2 使用概率表示類別分類 194
6.1.3 最大似然估計 196
6.1.4 邏輯回歸模型 199
6.1.5 交叉熵誤差 201
6.1.6 學習法則的推導 205
6.1.7 通過梯度法求解 209
6.2 二維輸入的二元分類 210
6.2.1 問題設置 210
6.2.2 邏輯回歸模型 214
6.3 二維輸入的三元分類 219
6.3.1 三元分類邏輯回歸模型 219
6.3.2 交叉熵誤差 222
6.3.3 通過梯度法求解 223
第7章 神經(jīng)網(wǎng)絡與深度學習 227
7.1 神經(jīng)元模型 229
7.1.1 神經(jīng)細胞 229
7.1.2 神經(jīng)元模型 230
7.2 神經(jīng)網(wǎng)絡模型 234
7.2.1 二層前饋神經(jīng)網(wǎng)絡 234
7.2.2 二層前饋神經(jīng)網(wǎng)絡的實現(xiàn) 237
7.2.3 數(shù)值導數(shù)法 242
7.2.4 通過數(shù)值導數(shù)法應用梯度法 246
7.2.5 誤差反向傳播法 251
7.2.6 求.E / .vkj 252
7.2.7 求.E / .wji 256
7.2.8 誤差反向傳播法的實現(xiàn) 262
7.2.9 學習后的神經(jīng)元的特性 268
7.3 使用Keras實現(xiàn)神經(jīng)網(wǎng)絡模型 270
7.3.1 二層前饋神經(jīng)網(wǎng)絡 271
7.3.2 Keras的使用流程 273
第8章 神經(jīng)網(wǎng)絡與深度學習的應用(手寫數(shù)字識別) 277
8.1 MINST數(shù)據(jù)集 278
8.2 二層前饋神經(jīng)網(wǎng)絡模型 279
8.3 ReLU激活函數(shù) 286
8.4 空間過濾器 291
8.5 卷積神經(jīng)網(wǎng)絡 295
8.6 池化 300
8.7 Dropout 301
8.8 融合了各種特性的MNIST識別網(wǎng)絡模型 302
第9章 無監(jiān)督學習 307
9.1 二維輸入數(shù)據(jù) 308
9.2 K-means算法 310
9.2.1 K-means算法的概要 310
9.2.2 步驟0:準備變量與初始化 311
9.2.3 步驟1:更新R 313
9.2.4 步驟2:更新μ 315
9.2.5 失真度量 318
9.3 混合高斯模型 320
9.3.1 基于概率的聚類 320
9.3.2 混合高斯模型 323
9.3.3 EM算法的概要 328
9.3.4 步驟0:準備變量與初始化 329
9.3.5 步驟1(步驟E):更新γ 330
9.3.6 步驟2(步驟M):更新π、μ和Σ 332
9.3.7 似然 336
第 10章 本書小結 339
后記 349