本書共分8章,內(nèi)容包括深度學(xué)習(xí)基礎(chǔ)、深度學(xué)習(xí)框架PyTorch的安裝、PyTorch基礎(chǔ)、線性回歸和邏輯回歸、全連接神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)及生成式對抗網(wǎng)絡(luò)。本書首先從深度學(xué)習(xí)基礎(chǔ)知識入手,引領(lǐng)讀者動手搭建深度學(xué)習(xí)框架PyTorch,然后在PyTorch框架下實現(xiàn)深度學(xué)習(xí)中常用的網(wǎng)絡(luò)模型。通過本書,讀者可對深度學(xué)習(xí)有一個清晰的認(rèn)識。本書中的程序均可在Windows系統(tǒng)中運行,不受是否具備GPU的限制。本書提供電子課件、源代碼,讀者可登錄“華信教育資源網(wǎng)”(www.hxedu.com.cn)免費下載。書中每章都配有習(xí)題和實驗,最后還附有參考答案。本書可作為高等學(xué)校本科數(shù)據(jù)科學(xué)與大數(shù)據(jù)、人工智能、機器人工程等專業(yè)深度學(xué)習(xí)相關(guān)課程的教材,也適合廣大對深度學(xué)習(xí)有興趣的讀者自學(xué)使用。
前 言
深度學(xué)習(xí)課程選擇什么樣的教材?這是近年來困擾任課教師的一個難題。作為高校數(shù)據(jù)科學(xué)與大數(shù)據(jù)專業(yè)的一線教師,我希望得到這樣一本教材:
? 既有理論知識,又有豐富的實例,能讓學(xué)生動手實踐。
教材能夠用簡單易懂的語言告訴學(xué)生什么是深度學(xué)習(xí),讓學(xué)生理解深度學(xué)習(xí)中神經(jīng)元、神經(jīng)網(wǎng)絡(luò)、激勵函數(shù)、損失函數(shù)等基本概念,了解深度學(xué)習(xí)與人工智能、機器學(xué)習(xí)的關(guān)系。
? 介紹一種深度學(xué)習(xí)框架。
學(xué)生在這種框架下能夠動手實現(xiàn)如卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、生成式對抗網(wǎng)絡(luò)等常見的網(wǎng)絡(luò)模型。
? 不涉及太多、太難的數(shù)學(xué)知識。
教材能夠把深度學(xué)習(xí)的相關(guān)原理講清楚,但不要變成一本“數(shù)學(xué)書”,可適應(yīng)應(yīng)用型本科學(xué)校的教學(xué)內(nèi)容。
? 能滿足實驗課需求。
在教材中能夠找到合適的、能布置給學(xué)生的實驗內(nèi)容。此外,在學(xué)校機房只有Windows系統(tǒng)、沒有GPU的環(huán)境下,只需進(jìn)行簡單的軟件安裝,就能完成深度學(xué)習(xí)的實驗。
? 具有完整的教學(xué)資源,包括電子課件、習(xí)題、實驗、源代碼、習(xí)題解答。
教師可以根據(jù)電子課件準(zhǔn)備上課內(nèi)容,可以從習(xí)題、實驗中方便地獲得課后作業(yè)、期末考試的素材,不用一切從零開始。
以上要求本書全都滿足。本書共分8章,內(nèi)容包括深度學(xué)習(xí)基礎(chǔ)、深度學(xué)習(xí)框架PyTorch的安裝、PyTorch基礎(chǔ)、線性回歸和邏輯回歸、全連接神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)及生成式對抗網(wǎng)絡(luò)。
通過本書,讀者可對深度學(xué)習(xí)有一個清晰的認(rèn)識,能夠在PyTorch框架下實現(xiàn)常見的網(wǎng)絡(luò)模型。本書全部代碼分別在有GPU的服務(wù)器上和沒有GPU的普通計算機上調(diào)試通過,其運行環(huán)境為Windows 10操作系統(tǒng),軟件版本為Python 3.5.3、PyTorch 0.4。本書提供電子課件、源代碼,讀者可登錄“華信教育資源網(wǎng)”(www.hxedu.com.cn)免費下載。
本書能夠快速成稿,離不開我的兩名學(xué)生曲榮峰和肖玉林的協(xié)助,他們幫助我完成了書中圖、公式、程序的校驗工作,在此表示感謝!特別感謝電子工業(yè)出版社的楊寰編輯、劉瑀編輯對本書的出版提供的大力支持。
由于時間倉促和水平有限,書中難免有不妥之處,歡迎廣大讀者提出寶貴意見。作者聯(lián)系郵箱:wuwei529@163.com。
編 者
目 錄
第1章 深度學(xué)習(xí)基礎(chǔ) 1
1.1 人工智能、機器學(xué)習(xí)與深度學(xué)習(xí) 1
1.1.1 人工智能簡介 1
1.1.2 機器學(xué)習(xí)簡介 2
1.1.3 深度學(xué)習(xí)簡介 3
1.2 深度學(xué)習(xí)的三大核心要素 4
1.3 神經(jīng)元與深度神經(jīng)網(wǎng)絡(luò) 7
1.4 神經(jīng)網(wǎng)絡(luò)中常用的激勵函數(shù) 9
1.5 深度學(xué)習(xí)的優(yōu)勢 13
1.6 常用的深度學(xué)習(xí)框架 15
本章小結(jié) 16
習(xí)題 16
第2章 深度學(xué)習(xí)框架PyTorch的安裝 19
2.1 PyTorch介紹 19
2.2 Windows系統(tǒng)中PyTorch的配置 20
2.2.1 安裝Python 20
2.2.2 PyTorch環(huán)境搭建 21
2.3 Linux系統(tǒng)中PyTorch的配置 22
2.3.1 安裝虛擬機 23
2.3.2 Python環(huán)境配置 25
2.3.3 PyTorch環(huán)境搭建 25
2.4 PyTorch開發(fā)工具 26
2.4.1 IDLE 26
2.4.2 PyCharm 27
本章小結(jié) 34
習(xí)題 34
實驗 35
第3章 PyTorch基礎(chǔ) 36
3.1 Tensor的定義 36
3.2 Tensor的創(chuàng)建 37
3.3 Tensor的形狀調(diào)整 39
3.4 Tensor的簡單運算 40
3.5 Tensor的比較 41
3.6 Tensor的數(shù)理統(tǒng)計 42
3.7 Tensor與NumPy的互相轉(zhuǎn)換 43
3.8 Tensor的降維和增維 44
3.9 Tensor的裁剪 46
3.10 Tensor的索引 46
3.11 把Tensor移到GPU上 48
本章小結(jié) 49
習(xí)題 49
實驗 50
第4章 線性回歸和邏輯回歸 54
4.1 回歸 54
4.2 線性回歸 55
4.3 一元線性回歸的代碼實現(xiàn) 58
4.4 梯度及梯度下降法 62
4.4.1 梯度 62
4.4.2 梯度下降法 62
4.5 多元線性回歸的代碼實現(xiàn) 63
4.6 邏輯回歸 65
4.6.1 邏輯回歸 65
4.6.2 邏輯回歸中的損失函數(shù) 66
4.6.3 邏輯回歸的代碼實現(xiàn) 66
本章小結(jié) 69
習(xí)題 69
實驗 70
第5章 全連接神經(jīng)網(wǎng)絡(luò) 72
5.1 全連接神經(jīng)網(wǎng)絡(luò)概述 72
5.2 多分類問題 73
5.3 Softmax函數(shù)與交叉熵 74
5.4 反向傳播算法 76
5.4.1 鏈?zhǔn)角髮?dǎo)法則 76
5.4.2 反向傳播算法實例 77
5.4.3 Sigmoid函數(shù)實例 77
5.5 計算機視覺工具包torchvision 78
5.6 全連接神經(jīng)網(wǎng)絡(luò)實現(xiàn)多分類 80
5.6.1 定義全連接神經(jīng)網(wǎng)絡(luò) 80
5.6.2 全連接神經(jīng)網(wǎng)絡(luò)識別MNIST手寫數(shù)字 81
本章小結(jié) 85
習(xí)題 85
實驗 87
第6章 卷積神經(jīng)網(wǎng)絡(luò) 88
6.1 前饋神經(jīng)網(wǎng)絡(luò) 88
6.2 卷積神經(jīng)網(wǎng)絡(luò)的原理 89
6.2.1 卷積層 91
6.2.2 池化層 94
6.3 卷積神經(jīng)網(wǎng)絡(luò)的代碼實現(xiàn) 96
6.4 LeNet-5模型 99
6.4.1 LeNet-5模型的架構(gòu) 99
6.4.2 CIFAR 10數(shù)據(jù)集 101
6.4.3 LeNet-5模型的代碼實現(xiàn) 101
6.5 VGGNet模型 106
6.5.1 VGGNet模型簡介 106
6.5.2 VGGNet模型的代碼實現(xiàn) 107
6.6 ResNet模型 112
6.6.1 ResNet模型簡介 112
6.6.2 ResNet模型殘差學(xué)習(xí)單元的代碼實現(xiàn) 113
本章小結(jié) 114
習(xí)題 114
實驗 115
第7章 循環(huán)神經(jīng)網(wǎng)絡(luò) 119
7.1 循環(huán)神經(jīng)網(wǎng)絡(luò)概述 119
7.2 循環(huán)神經(jīng)網(wǎng)絡(luò)的原理 120
7.3 長短時記憶神經(jīng)網(wǎng)絡(luò) 122
7.3.1 長短時記憶神經(jīng)網(wǎng)絡(luò)的原理 122
7.3.2 長短時記憶神經(jīng)網(wǎng)絡(luò)實例1 125
7.3.3 長短時記憶神經(jīng)網(wǎng)絡(luò)實例2 129
本章小結(jié) 136
習(xí)題 136
實驗 137
第8章 生成式對抗網(wǎng)絡(luò) 138
8.1 生成式對抗網(wǎng)絡(luò)概述 138
8.1.1 生成式對抗網(wǎng)絡(luò)的原理 138
8.1.2 生成式對抗網(wǎng)絡(luò)的代碼實現(xiàn) 142
8.2 條件生成式對抗網(wǎng)絡(luò) 150
8.3 最小二乘生成式對抗網(wǎng)絡(luò) 151
本章小結(jié) 151
習(xí)題 151
實驗 152
附錄A 部分習(xí)題與實驗參考答案 153
A.1 第1章習(xí)題與實驗參考答案 153
A.2 第2章習(xí)題與實驗參考答案 155
A.2.1 習(xí)題參考答案 155
A.2.2 實驗參考答案 156
A.3 第3章習(xí)題與實驗參考答案 156
A.3.1 習(xí)題參考答案 156
A.3.2 實驗參考答案 156
A.4 第4章習(xí)題與實驗參考答案 166
A.4.1 習(xí)題參考答案 166
A.4.2 實驗參考答案 167
A.5 第5章習(xí)題與實驗參考答案 175
A.5.1 習(xí)題參考答案 175
A.5.2 實驗參考答案 175
A.6 第6章習(xí)題與實驗參考答案 178
A.6.1 習(xí)題參考答案 178
A.6.2 實驗參考答案 179
A.7 第7章習(xí)題與實驗參考答案 192
A.7.1 習(xí)題參考答案 192
A.7.2 實驗參考答案 193
A.8 第8章習(xí)題與實驗參考答案 196
A.8.1 習(xí)題參考答案 196
A.8.2 實驗參考答案 197
參考文獻(xiàn) 212