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