本書是“高級人工智能人才培養(yǎng)叢書”中的一本,首先介紹了機器學習的相關概念和發(fā)展歷史,并在此基礎上提出了深度學習——它本質(zhì)上是近幾年來大數(shù)據(jù)技術催生的產(chǎn)物。本書共12章,其中,第1~7章為機器學習的內(nèi)容,分別介紹了機器學習的簡單模型、貝葉斯學習、決策樹、支持向量機、集成學習和聚類;第8~12章為深度學習的內(nèi)容,由感知機與神經(jīng)網(wǎng)絡開始,之后分別介紹了卷積神經(jīng)網(wǎng)絡、循環(huán)神經(jīng)網(wǎng)絡、生成對抗網(wǎng)絡及強化學習。第2~12章均提供了相應的實驗案例,不僅配有完整翔實的Python語言代碼及相關注釋,也給出了實驗結(jié)果和實驗分析,便于初學者上機操作并加強理解。本書注重易學性、系統(tǒng)性和實戰(zhàn)性。
陶玉婷,2013年畢業(yè)于南京理工大學,獲模式識別與智能系統(tǒng)專業(yè)的工學博士學位。曾于2010—2011年赴美國亞利桑那州立大學訪學半年。現(xiàn)為金陵科技學院智能科學與技術專業(yè)骨干教師、CCF會員和JSAI會員。講授人工智能數(shù)學基礎、機器視覺與邊緣計算應用等課程,發(fā)表教改論文2篇,主持人工智能課程教學試點項目1項。研究方向為圖像處理、機器學習、數(shù)值計算,發(fā)表SCI論文6篇、EI論文4篇,申請軟件著作權3項,并主持和參與?蒲蟹趸痦椖、江蘇省國際科技合作項目、江蘇省自然科學重大項目、國家自然科學基金面上項目等多個科研項目。
第1章 引言 1
1.1 人工智能概述 1
1.1.1 人工智能產(chǎn)生的基礎條件 1
1.1.2 人工智能的發(fā)展史 2
1.1.3 人工智能的幾個重要分支 3
1.1.4 人工智能與機器學習和深度學習的關系 4
1.2 機器學習概述 5
1.2.1 機器學習的定義 5
1.2.2 機器學習的主要方法 5
1.2.3 機器學習的應用及其相關課程介紹 11
1.3 深度學習概述 12
1.3.1 深度學習產(chǎn)生的背景 12
1.3.2 深度學習的幾種常用模型 13
1.3.3 深度學習的應用場合 16
1.3.4 深度學習開源工具 18
習題 19
參考文獻 19
第2章 簡單模型 21
2.1 KNN算法 21
2.1.1 算法原理 21
2.1.2 算法步驟 22
2.1.3 算法描述 22
2.1.4 算法評價 23
2.1.5 算法實例 23
2.2 線性回歸 24
2.2.1 算法原理 25
2.2.2 模型求解 26
2.2.3 算法步驟 29
2.2.4 算法描述 29
2.2.5 算法評價 30
2.2.6 算法實例 30
2.3 邏輯回歸 32
2.3.1 算法原理 32
2.3.2 模型求解 33
2.3.3 算法步驟 34
2.3.4 算法描述 34
2.3.5 算法評價 35
2.4 實驗:邏輯回歸算法 35
2.4.1 實驗目的 35
2.4.2 實驗要求 35
2.4.3 實驗原理 35
2.4.4 實驗步驟 36
2.4.5 實驗結(jié)果 38
2.4.6 結(jié)果分析 39
習題 39
參考文獻 40
第3章 貝葉斯學習 42
3.1 貝葉斯方法簡述 42
3.2 貝葉斯基礎理論 43
3.2.1 概率基礎 43
3.2.2 貝葉斯方法 44
3.3 樸素貝葉斯 46
3.3.1 樸素貝葉斯法介紹 46
3.3.2 樸素貝葉斯法實例 47
3.3.3 樸素貝葉斯法優(yōu)缺點 51
3.4 貝葉斯網(wǎng)絡 51
3.4.1 貝葉斯網(wǎng)絡介紹 51
3.4.2 貝葉斯網(wǎng)絡實現(xiàn) 52
3.4.3 貝葉斯網(wǎng)絡特性及應用 54
3.5 實驗 54
3.5.1 實驗目的 55
3.5.2 實驗要求 55
3.5.3 實驗原理 55
3.5.4 實驗步驟 56
3.5.5 實驗結(jié)果 57
習題 59
參考文獻 60
第4章 決策樹 62
4.1 決策樹簡述 62
4.1.1 樹形結(jié)構(gòu) 63
4.1.2 樹的構(gòu)建 63
4.2 劃分屬性選擇 64
4.2.1 信息增益 64
4.2.2 增益率 66
4.2.3 基尼指數(shù) 67
4.3 剪枝處理 68
4.3.1 損失函數(shù) 69
4.3.2 先剪枝 70
4.3.3 后剪枝 70
4.4 決策樹算法 72
4.4.1 ID3算法 73
4.4.2 C4.5算法 75
4.4.3 CART算法 77
4.5 實驗:基于CART算法的鳶尾花決策樹構(gòu)建 78
4.5.1 實驗目的 78
4.5.2 實驗要求 78
4.5.3 實驗原理 79
4.5.4 實驗步驟 81
4.5.5 實驗結(jié)果 82
習題 83
參考文獻 83
第5章 支持向量機 84
5.1 最大間隔理論簡介 84
5.2 兩類問題的線性分類 85
5.2.1 線性可分的情況 85
5.2.2 最大間隔與支持向量 86
5.2.3 最大間隔的相關理論 87
5.2.4 線性不可分的情況 89
5.2.5 小結(jié) 91
5.3 非線性空間映射與核函數(shù) 91
5.3.1 非線性空間映射的概念和原理 91
5.3.2 核函數(shù)的選擇與分析 92
5.3.3 核函數(shù)的選擇依據(jù) 95
5.3.4 小結(jié) 95
5.4 多類問題的分類 95
5.4.1 一對一法 96
5.4.2 一對多法 96
5.4.3 其他方法 97
5.4.4 小結(jié) 98
5.5 實驗 98
5.5.1 實驗1:兩類問題的線性可分問題 98
5.5.2 實驗2:兩類問題的非線性分類問題 100
5.5.3 實驗3:UCI數(shù)據(jù)集中wine.data的多類分類問題 103
5.5.4 實驗4:USPS手寫阿拉伯數(shù)據(jù)庫的識別 106
習題 108
參考文獻 109
第6章 集成學習 111
6.1 集成學習簡述 111
6.2 個體學習器與集成學習算法 112
6.2.1 個體學習器 113
6.2.2 集成學習算法 113
6.3 Bagging算法和隨機森林算法 113
6.3.1 Bagging算法 113
6.3.2 隨機森林 114
6.4 Boosting算法和AdaBoost算法 115
6.4.1 Boosting算法 115
6.4.2 AdaBoost算法 116
6.5 結(jié)合策略 123
6.5.1 平均法 123
6.5.2 投票法 123
6.5.3 學習法 124
6.6 實驗:集成學習實例 126
6.6.1 一個簡單的基于AdaBoost算法的二分類實現(xiàn) 126
6.6.2 基于決策樹、Bagging和AdaBoost模型的糖尿病預測實驗 129
習題 133
參考文獻 133
第7章 聚類 136
7.1 聚類簡述 136
7.1.1 基本概念 136
7.1.2 聚類類型 137
7.1.3 算法挑戰(zhàn) 138
7.2 原型聚類 139
7.2.1 k均值聚類 139
7.2.2 k中心點聚類 141
7.3 密度聚類 144
7.3.1 基本術語 144
7.3.2 算法描述 146
7.4 層次聚類 147
7.4.1 層次聚類概述 149
7.4.2 BIRCH算法 151
7.4.3 CURE算法 155
7.5 實驗:用k均值聚類實現(xiàn)籃球運動員聚類 158
7.5.1 實驗目的 158
7.5.2 實驗原理 158
7.5.3 實驗步驟 159
7.5.4 實驗結(jié)果及分析 160
習題 161
參考文獻 161
第8章 感知機與神經(jīng)網(wǎng)絡 162
8.1 感知機 162
8.1.1 神經(jīng)元模型 162
8.1.2 激活函數(shù) 163
8.1.3 感知機算法 165
8.2 神經(jīng)網(wǎng)絡原理 167
8.2.1 基本特征 167
8.2.2 前饋神經(jīng)網(wǎng)絡 168
8.3 反向傳播神經(jīng)網(wǎng)絡 169
8.4 Hopfield神經(jīng)網(wǎng)絡 171
8.4.1 Hopfield神經(jīng)網(wǎng)絡簡介 171
8.4.2 離散Hopfield神經(jīng)網(wǎng)絡 172
8.4.3 能量函數(shù) 173
8.5 實驗:基于Python的感知機實驗 173
8.5.1 實驗目的 173
8.5.2 實驗要求 174
8.5.3 實驗原理 174
8.5.4 實驗步驟 174
8.5.5 實驗結(jié)果 175
習題 175
參考文獻 175
第9章 卷積神經(jīng)網(wǎng)絡 177
9.1 卷積神經(jīng)網(wǎng)絡簡述 177
9.1.1 發(fā)展歷程 177
9.1.2 端到端的學習 178
9.2 網(wǎng)絡部件 179
9.2.1 符號定義 179
9.2.2 卷積層 179
9.2.3 池化層 182
9.2.4 激活函數(shù)層 183
9.2.5 全連接層 184
9.2.6 目標函數(shù) 184
9.3 核心算法 186
9.3.1 隨機梯度下降法 186
9.3.2 反向傳播算法 190
9.4 激活函數(shù)和損失函數(shù) 195
9.4.1 激活函數(shù) 195
9.4.2 損失函數(shù) 196
9.5 經(jīng)典CNN模型 198
9.5.1 LeNet 198
9.5.2 AlexNet 199
9.5.3 VGGNet 201
9.6 實驗:應用CNN模型進行手寫數(shù)字辨識 202
9.6.1 實驗目的 202
9.6.2 實驗要求 203
9.6.3 實驗原理 203
9.6.4 實驗步驟 205
9.6.5 實驗結(jié)果 206
習題 206
參考文獻 208
第10章 循環(huán)神經(jīng)網(wǎng)絡 209
10.1 RNN簡介 209
10.1.1 RNN概述 209
10.1.2 RNN的工作原理 209
10.2 雙向RNN 210
10.3 LSTM 211
10.3.1 LSTM遺忘門 212
10.3.2 LSTM輸入門 213
10.3.3 LSTM輸出門 214
10.3.4 前向傳播的代碼實現(xiàn) 214
10.3.5 反向傳播的代碼實現(xiàn) 215
10.4 GRU 216
10.5 RNN的實現(xiàn) 217
10.5.1 定義初始化類和初始化函數(shù) 217
10.5.2 定義激活函數(shù) 217
10.5.3 定義前向傳播和反向傳播 217
10.5.4 計算delta值和總的delat值 218
10.5.5 計算各個梯度的值和總梯度 218
10.5.6 定義梯度檢查函數(shù) 219
10.5.7 構(gòu)建測試函數(shù)并運行 219
10.6 實驗:應用LSTM模型進行手寫數(shù)字辨識 220
10.6.1 實驗目的 220
10.6.2 實驗要求 220
10.6.3 實驗原理 220
10.6.4 實驗步驟 220
10.6.5 實驗結(jié)果 222
習題 223
參考文獻 223
第11章 生成對抗網(wǎng)絡 225
11.1 生成對抗網(wǎng)絡簡述 225
11.1.1 博弈 225
11.1.2 對抗 226
11.1.3 分類問題 226
11.2 生成對抗網(wǎng)絡的基本原理、學習機制、應用、特點 227
11.2.1 生成對抗網(wǎng)絡的基本原理 227
11.2.2 生成對抗網(wǎng)絡的學習機制 227
11.2.3 生成對抗網(wǎng)絡的應用 228
11.2.4 生成對抗網(wǎng)絡的特點 229
11.3 生成對抗網(wǎng)絡的變種網(wǎng)絡 230
11.3.1 JointGAN 230
11.3.2 MD-GAN 230
11.3.3 MsCGAN 230
11.3.4 TGAN 231
11.3.5 HexaGAN 231
11.4 實驗 231
11.4.1 基于SRGAN模型的人臉超分辨率實驗 231
11.4.2 基于SRGAN的圖像轉(zhuǎn)換實驗 237
習題 246
參考文獻 246
第12章 強化學習 250
12.1 強化學習的引入 250
12.1.1 強化學習的概念 250
12.1.2 強化學習的特點 251
12.1.3 強化學習與監(jiān)督學習 252
12.2 馬爾可夫決策過程 253
12.2.1 策略與環(huán)境模型 253
12.2.2 值函數(shù)與Bellman公式 253
12.3 有模型學習——動態(tài)規(guī)劃 255
12.3.1 策略迭代 256
12.3.2 值迭代 258
12.3.3 廣義策略迭代 260
12.4 免模型學習——蒙特卡羅方法 260
12.4.1 蒙特卡羅方法 260
12.4.2 時序差分方法與SARSA算法 261
12.4.3 Q-Learning算法 263
12.4.4 DQN 264
12.5 實驗 266
12.5.1 實驗一:方塊走迷宮 266
12.5.2 實驗二:利用DQN實現(xiàn)“打磚塊”游戲 271
習題 277
參考文獻 278