推薦序1
介紹深度學(xué)習(xí)的書籍不少,但是《深入淺出深度學(xué)習(xí):原理剖析與Python實(shí)踐》與其他同類書相比,視角明顯不同。如果要給本書寫個(gè)宣傳語,或許可以是“深度學(xué)習(xí)工程師速成培訓(xùn)教材”。本書對(duì)讀者的知識(shí)結(jié)構(gòu)有兩點(diǎn)要求:一是學(xué)過高等數(shù)學(xué),二是熟悉 Python 編程。換而言之,各個(gè)專業(yè)的理工科學(xué)生,尤其是學(xué)過 Python 編程的,都是此書的目標(biāo)讀者。
本書內(nèi)容全面,但是取舍明確,有重點(diǎn)地深入,尤其對(duì)于技術(shù)的重點(diǎn)難點(diǎn)解釋得很詳細(xì),深入淺出。
本書的特色就在于內(nèi)容取舍的尺度非常明確——著重于原理的解釋和動(dòng)手實(shí)踐的路徑,但是并不拘泥于細(xì)枝末節(jié)。
胸中有經(jīng)緯,就不會(huì)迷失在細(xì)節(jié)的汪洋大海。本書剛好側(cè)重于對(duì)經(jīng)緯的梳理。此處的經(jīng)緯,一類是數(shù)學(xué)基礎(chǔ)知識(shí),另一類是深度學(xué)習(xí)技術(shù)。與深度學(xué)習(xí)相關(guān)的數(shù)學(xué)知識(shí)包括線性代數(shù)、概率統(tǒng)計(jì)等。因?yàn)楦怕蕡D與深度學(xué)習(xí)結(jié)合較多,本書把“概率圖”作為單獨(dú)的一章重點(diǎn)講述。深度學(xué)習(xí)技術(shù)包括機(jī)器學(xué)習(xí)的傳統(tǒng)技術(shù)、用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的梯度下降等算法。本書重點(diǎn)講述了神經(jīng)網(wǎng)絡(luò)的基本算法以及幾種常用的深度網(wǎng)絡(luò)架構(gòu)。
工程師,重在實(shí)踐。工欲善其事必先利其器,實(shí)踐深度學(xué)習(xí),離不開深度學(xué)習(xí)工具。本書介紹了 Theano 工具集的基本用法。其實(shí)深度學(xué)習(xí)工具,一通百通,各種工具的區(qū)別,類似于北京口音與東北口音的區(qū)別。
認(rèn)真讀完此書,讀者應(yīng)該擁有三項(xiàng)能力:一是讀得懂深度學(xué)習(xí)的論文;二是讀得懂深度學(xué)習(xí)的代碼;三是能夠自行開發(fā)簡單的深度學(xué)習(xí)應(yīng)用。
總結(jié)一下,在深度學(xué)習(xí)技術(shù)異常火爆,深度學(xué)習(xí)工程師奇缺的當(dāng)下,如何快速培養(yǎng)深度學(xué)習(xí)方向的工程師,是一個(gè)迫切的問題。此書是難得的好教材。
鄧侃博士
黃安埠,2012年畢業(yè)于清華大學(xué),獲碩士學(xué)位,在校期間活躍于TopCoder等編程競賽社區(qū)。現(xiàn)為騰訊基礎(chǔ)研究高級(jí)工程師,研究領(lǐng)域包括個(gè)性化推薦、自然語言處理和大規(guī)模的相似度優(yōu)化計(jì)算,特別是對(duì)于深度學(xué)習(xí)在推薦系統(tǒng)的應(yīng)用有深入的研究,并申請(qǐng)了國內(nèi)十余項(xiàng)相關(guān)專利。
第1 部分 概要 1
1 緒論 2
1.1 人工智能、機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的關(guān)系 3
1.1.1 人工智能——機(jī)器推理 4
1.1.2 機(jī)器學(xué)習(xí)——數(shù)據(jù)驅(qū)動(dòng)的科學(xué) 5
1.1.3 深度學(xué)習(xí)——大腦的仿真 8
1.2 深度學(xué)習(xí)的發(fā)展歷程 8
1.3 深度學(xué)習(xí)技術(shù)概述 10
1.3.1 從低層到高層的特征抽象 11
1.3.2 讓網(wǎng)絡(luò)變得更深 13
1.3.3 自動(dòng)特征提取 14
1.4 深度學(xué)習(xí)框架 15
2 Theano 基礎(chǔ) 19
2.1 符號(hào)變量 20
2.2 符號(hào)計(jì)算的抽象——符號(hào)計(jì)算圖模型 23
2.3 函數(shù) 26
2.3.1 函數(shù)的定義 26
2.3.2 Logistic回歸 27
2.3.3 函數(shù)的復(fù)制 29
2.4 條件表達(dá)式 31
2.5 循環(huán) 32
2.6 共享變量 39
2.7 配置 39
2.7.1 通過THEANO_FLAGS配置 40
2.7.2 通過. theanorc文件配置 41
2.8 常用的Debug技巧 42
2.9 小結(jié) 43
第2 部分 數(shù)學(xué)與機(jī)器學(xué)習(xí)基礎(chǔ)篇 45
3 線性代數(shù)基礎(chǔ) 46
3.1 標(biāo)量、向量、矩陣和張量 46
3.2 矩陣初等變換 47
3.3 線性相關(guān)與向量空間 48
3.4 范數(shù) 49
3.4.1 向量范數(shù) 49
3.4.2 矩陣范數(shù) 53
3.5 特殊的矩陣與向量 56
3.6 特征值分解 57
3.7 奇異值分解 58
3.8 跡運(yùn)算 60
3.9 樣例:主成分分析 61
4 概率統(tǒng)計(jì)基礎(chǔ) 64
4.1 樣本空間與隨機(jī)變量 65
4.2 概率分布與分布函數(shù) 65
4.3 一維隨機(jī)變量 66
4.3.1 離散型隨機(jī)變量和分布律 66
4.3.2 連續(xù)型隨機(jī)變量和概率密度函數(shù) 67
4.4 多維隨機(jī)變量 68
4.4.1 離散型二維隨機(jī)變量和聯(lián)合分布律 69
4.4.2 連續(xù)型二維隨機(jī)變量和聯(lián)合密度函數(shù) 69
4.5 邊緣分布 70
4.6 條件分布與鏈?zhǔn)椒▌t 71
4.6.1 條件概率 71
4.6.2 鏈?zhǔn)椒▌t 73
4.7 多維隨機(jī)變量的獨(dú)立性分析 73
4.7.1 邊緣獨(dú)立 74
4.7.2 條件獨(dú)立 74
4.8 數(shù)學(xué)期望、方差、協(xié)方差 75
4.8.1 數(shù)學(xué)期望 75
4.8.2 方差 76
4.8.3 協(xié)方差 76
4.8.4 協(xié)方差矩陣 78
4.9 信息論基礎(chǔ) 81
4.9.1 信息熵 81
4.9.2 條件熵 83
4.9.3 互信息 84
4.9.4 相對(duì)熵與交叉熵 84
5 概率圖模型 87
5.1 生成模型與判別模型 89
5.2 圖論基礎(chǔ) 90
5.2.1 圖的結(jié)構(gòu) 90
5.2.2 子圖 91
5.2.3 路徑、跡、環(huán)與拓?fù)渑判?92
5.3 貝葉斯網(wǎng)絡(luò) 95
5.3.1 因子分解 96
5.3.2 局部馬爾科夫獨(dú)立性斷言 99
5.3.3 I-Map與因子分解 100
5.3.4 有效跡 103
5.3.5 D-分離與全局馬爾科夫獨(dú)立性 108
5.4 馬爾科夫網(wǎng)絡(luò) 108
5.4.1 勢函數(shù)因子與參數(shù)化表示 109
5.4.2 馬爾科夫獨(dú)立性 111
5.5 變量消除 114
5.6 信念傳播 116
5.6.1 聚類圖 116
5.6.2 團(tuán)樹 120
5.6.3 由變量消除構(gòu)建團(tuán)樹 123
5.7 MCMC采樣原理 126
5.7.1 隨機(jī)采樣 127
5.7.2 隨機(jī)過程與馬爾科夫鏈 128
5.7.3 MCMC采樣 132
5.7.4 Gibbs采樣 134
5.8 參數(shù)學(xué)習(xí) 137
5.8.1 最大似然估計(jì) 137
5.8.2 期望最大化算法 138
5.9 小結(jié) 140
6 機(jī)器學(xué)習(xí)基礎(chǔ) 142
6.1 線性模型 143
6.1.1 線性回歸 143
6.1.2 Logistic回歸 148
6.1.3 廣義的線性模型 150
6.2 支持向量機(jī) 151
6.2.1 最優(yōu)間隔分類器 152
6.2.2 對(duì)偶問題 155
6.2.3 核函數(shù) 156
6.3 樸素貝葉斯 160
6.4 樹模型 162
6.4.1 特征選擇 163
6.4.2 剪枝策略 165
6.5 聚類 166
6.5.1 距離度量 167
6.5.2 層次聚類 168
6.5.3 K-means聚類 171
6.5.4 譜聚類 172
7 數(shù)值計(jì)算與最優(yōu)化 177
7.1 無約束極小值的最優(yōu)化條件 177
7.2 梯度下降 179
7.2.1 傳統(tǒng)更新策略 181
7.2.2 動(dòng)量更新策略 183
7.2.3 改進(jìn)的動(dòng)量更新策略 184
7.2.4 自適應(yīng)梯度策略 187
7.3 共軛梯度 188
7.4 牛頓法 192
7.5 擬牛頓法 194
7.5.1 擬牛頓條件 194
7.5.2 DFP算法 195
7.5.3 BFGS算法 196
7.5.4 L-BFGS算法 197
7.6 約束最優(yōu)化條件 200
第3 部分 理論與應(yīng)用篇 205
8 前饋神經(jīng)網(wǎng)絡(luò) 206
8.1 生物神經(jīng)元結(jié)構(gòu) 207
8.2 人工神經(jīng)元結(jié)構(gòu) 208
8.3 單層感知機(jī) 209
8.4 多層感知機(jī) 212
8.5 激活函數(shù) 217
8.5.1 激活函數(shù)的作用 217
8.5.2 常用的激活函數(shù) 219
9 反向傳播與梯度消失 225
9.1 經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化 227
9.2 梯度計(jì)算 228
9.2.1 輸出層梯度 228
9.2.2 隱藏層梯度 230
9.2.3 參數(shù)梯度 234
9.3 反向傳播 235
9.4 深度學(xué)習(xí)訓(xùn)練的難點(diǎn) 237
9.4.1 欠擬合——梯度消失 237
9.4.2 過擬合 240
10 自編碼器及其相關(guān)模型 243
10.1 自編碼器 243
10.2 降噪自編碼器 245
10.3 棧式自編碼器 247
10.4 稀疏編碼器 250
10.5 應(yīng)用:cifar10圖像分類 254
11 玻爾茲曼機(jī)及其相關(guān)模型 258
11.1 玻爾茲曼機(jī) 258
11.2 能量模型 261
11.2.1 能量函數(shù) 261
11.2.2 從能量函數(shù)到勢函數(shù) 262
11.2.3 從勢函數(shù)到概率分布 263
11.3 推斷 264
11.3.1 邊緣分布 265
11.3.2 條件分布 267
11.4 學(xué)習(xí) 270
11.4.1 最大似然估計(jì) 271
11.4.2 對(duì)比散度 274
11.5 應(yīng)用:個(gè)性化推薦 276
11.5.1 個(gè)性化推薦概述 276
11.5.2 個(gè)性化推薦架構(gòu)與算法 279
11.5.3 RBM與協(xié)同過濾 285
12 遞歸神經(jīng)網(wǎng)絡(luò) 291
12.1 Elman遞歸神經(jīng)網(wǎng)絡(luò) 292
12.2 時(shí)間反向傳播 295
12.3 長短時(shí)記憶網(wǎng)絡(luò) 299
12.4 結(jié)構(gòu)遞歸神經(jīng)網(wǎng)絡(luò) 302
12.5 應(yīng)用:語言模型 308
12.5.1 N元統(tǒng)計(jì)模型 308
12.5.2 基于LSTM 構(gòu)建語言模型 312
13 卷積神經(jīng)網(wǎng)絡(luò) 318
13.1 卷積運(yùn)算 319
13.2 網(wǎng)絡(luò)結(jié)構(gòu) 320
13.3 卷積層 324
13.4 池化層 329
13.5 應(yīng)用:文本分類 333