Python深度學(xué)習(xí)入門(mén) 從零構(gòu)建CNN和RNN
定 價(jià):79 元
- 作者:[美] 塞思·韋德曼(Seth Weidman)
- 出版時(shí)間:2021/2/1
- ISBN:9787115555649
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP311.561
- 頁(yè)碼:192
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)全面介紹了深度學(xué)習(xí)知識(shí),借助數(shù)學(xué)公式、示意圖和代碼,旨在幫助讀者從數(shù)學(xué)層面、概念層面和應(yīng)用層面理解神經(jīng)網(wǎng)絡(luò)。讀者可以跟隨本書(shū)構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,從而解決實(shí)際問(wèn)題。另外,本書(shū)著重介紹卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),并提供PyTorch開(kāi)源神經(jīng)網(wǎng)絡(luò)庫(kù)的使用方法,有助于學(xué)習(xí)構(gòu)建更高級(jí)的神經(jīng)網(wǎng)絡(luò)架構(gòu)。
1.前Facebook數(shù)據(jù)科學(xué)家?guī)泐I(lǐng)略深度學(xué)習(xí)領(lǐng)域的全貌;
2.從數(shù)學(xué)、示意圖、Python三個(gè)維度立體地認(rèn)識(shí)深度學(xué)習(xí);
3.提供PyTorch開(kāi)源神經(jīng)網(wǎng)絡(luò)庫(kù)的使用方法;
4.提供示例代碼。
深度學(xué)習(xí)技術(shù)的發(fā)展如火如荼,這些知識(shí)正迅速成為機(jī)器學(xué)習(xí)從業(yè)者甚至許多軟件開(kāi)發(fā)工程師的“加分項(xiàng)”。深度學(xué)習(xí)是一個(gè)立體的領(lǐng)域,僅從數(shù)學(xué)層面或代碼層面學(xué)習(xí),難免以偏概全,無(wú)法融會(huì)貫通。
本書(shū)作者認(rèn)為,理解深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)需要多種思維模型。因此,本書(shū)從數(shù)學(xué)、示意圖、Python代碼三個(gè)維度幫助你立體地理解每一個(gè)概念,帶你領(lǐng)略深度學(xué)習(xí)領(lǐng)域的全貌,從內(nèi)到外地理解構(gòu)建神經(jīng)網(wǎng)絡(luò)的每一步。你將學(xué)到以下內(nèi)容。
- 為理解深度學(xué)習(xí)的概念和原理構(gòu)建多種思維模型。
- 掌握嵌套函數(shù)、鏈?zhǔn)椒▌t等數(shù)學(xué)概念。
- 掌握學(xué)習(xí)率衰減、權(quán)重初始化、dropout等優(yōu)化技巧。
- 從零構(gòu)建CNN和RNN等常見(jiàn)的神經(jīng)網(wǎng)絡(luò)架構(gòu)。
- 使用PyTorch實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)。
作者介紹
塞思·韋德曼(Seth Weidman),SentiLink公司數(shù)據(jù)科學(xué)家。他曾在Facebook公司從事數(shù)據(jù)科學(xué)工作,并為多家企業(yè)開(kāi)發(fā)了深度學(xué)習(xí)培訓(xùn)課程。塞思善于通過(guò)簡(jiǎn)單明了的方式解釋復(fù)雜的概念。除了講授課程,他還熱衷于技術(shù)寫(xiě)作,并撰寫(xiě)了大量PyTorch教程。
譯者介紹
鄭天民,日本足利工業(yè)大學(xué)信息工程學(xué)碩士,研究方向?yàn)槿斯ぶ悄茉诖笠?guī)模調(diào)度系統(tǒng)中的應(yīng)用,在國(guó)際三大索引上發(fā)表多篇論文。擁有十余年軟件行業(yè)從業(yè)經(jīng)驗(yàn),前后經(jīng)歷過(guò)多家大型上市公司、互聯(lián)網(wǎng)電商、健康類(lèi)獨(dú)角獸公司,擔(dān)任CTO、系統(tǒng)分析架構(gòu)師和技術(shù)總監(jiān)等職務(wù)。阿里云MVP、騰訊云TVP、TGO鯤鵬會(huì)會(huì)員。著有《Spring響應(yīng)式微服務(wù)》《系統(tǒng)架構(gòu)設(shè)計(jì)》《向技術(shù)管理者轉(zhuǎn)型》《微服務(wù)設(shè)計(jì)原理與架構(gòu)》《微服務(wù)架構(gòu)實(shí)戰(zhàn)》等。
第 1章 基本概念 1
1.1 函數(shù) 2
1.2 導(dǎo)數(shù) 6
1.3 嵌套函數(shù) 8
1.4 鏈?zhǔn)椒▌t 9
1.5 示例介紹 12
1.6 多輸入函數(shù) 15
1.7 多輸入函數(shù)的導(dǎo)數(shù) 16
1.8 多向量輸入函數(shù) 17
1.9 基于已有特征創(chuàng)建新特征 18
1.10 多向量輸入函數(shù)的導(dǎo)數(shù) 20
1.11 向量函數(shù)及其導(dǎo)數(shù):再進(jìn)一步 22
1.12 包含兩個(gè)二維矩陣輸入的計(jì)算圖 25
1.13 有趣的部分:后向傳遞 28
1.14 小結(jié) 34
第 2章 基本原理 35
2.1 監(jiān)督學(xué)習(xí)概述 36
2.2 監(jiān)督學(xué)習(xí)模型 38
2.3 線性回歸 38
2.3.1 線性回歸:示意圖 39
2.3.2 線性回歸:更有用的示意圖和數(shù)學(xué) 41
2.3.3 加入截距項(xiàng) 41
2.3.4 線性回歸:代碼 42
2.4 訓(xùn)練模型 42
2.4.1 計(jì)算梯度:示意圖 43
2.4.2 計(jì)算梯度:數(shù)學(xué)和一些代碼 43
2.4.3 計(jì)算梯度:完整的代碼 44
2.4.4 使用梯度訓(xùn)練模型 45
2.5 評(píng)估模型:訓(xùn)練集與測(cè)試集 46
2.6 評(píng)估模型:代碼 46
2.7 從零開(kāi)始構(gòu)建神經(jīng)網(wǎng)絡(luò) 49
2.7.1 步驟1:一系列線性回歸 49
2.7.2 步驟2:一個(gè)非線性函數(shù) 50
2.7.3 步驟3:另一個(gè)線性回歸 50
2.7.4 示意圖 51
2.7.5 代碼 52
2.7.6 神經(jīng)網(wǎng)絡(luò):后向傳遞 53
2.8 訓(xùn)練和評(píng)估第 一個(gè)神經(jīng)網(wǎng)絡(luò) 55
2.9 小結(jié) 57
第3章 從零開(kāi)始深度學(xué)習(xí) 58
3.1 定義深度學(xué)習(xí) 58
3.2 神經(jīng)網(wǎng)絡(luò)的構(gòu)成要素:運(yùn)算 59
3.2.1 示意圖 60
3.2.2 代碼 61
3.3 神經(jīng)網(wǎng)絡(luò)的構(gòu)成要素:層 62
3.4 在構(gòu)成要素之上構(gòu)建新的要素 64
3.4.1 層的藍(lán)圖 66
3.4.2 稠密層 68
3.5 NeuralNetwork類(lèi)和其他類(lèi) 69
3.5.1 示意圖 70
3.5.2 代碼 70
3.5.3 Loss類(lèi) 71
3.6 從零開(kāi)始構(gòu)建深度學(xué)習(xí)模型 72
3.6.1 實(shí)現(xiàn)批量訓(xùn)練 73
3.6.2 NeuralNetwork: 代碼 73
3.7 優(yōu)化器和訓(xùn)練器 75
3.7.1 優(yōu)化器 76
3.7.2 訓(xùn)練器 77
3.8 整合 79
3.9 小結(jié)與展望 80
第4章 擴(kuò)展 81
4.1 關(guān)于神經(jīng)網(wǎng)絡(luò)的一些直覺(jué) 82
4.2 softmax交叉熵?fù)p失函數(shù) 84
4.2.1 組件1:softmax函數(shù) 84
4.2.2 組件2:交叉熵?fù)p失 85
4.2.3 關(guān)于激活函數(shù)的注意事項(xiàng) 87
4.3 實(shí)驗(yàn) 90
4.3.1 數(shù)據(jù)預(yù)處理 90
4.3.2 模型 91
4.3.3 實(shí)驗(yàn):softmax交叉熵?fù)p失函數(shù) 92
4.4 動(dòng)量 92
4.4.1 理解動(dòng)量 93
4.4.2 在Optimizer類(lèi)中實(shí)現(xiàn)動(dòng)量 93
4.4.3 實(shí)驗(yàn):帶有動(dòng)量的隨機(jī)梯度下降 94
4.5 學(xué)習(xí)率衰減 95
4.5.1 學(xué)習(xí)率衰減的類(lèi)型 95
4.5.2 實(shí)驗(yàn):學(xué)習(xí)率衰減 97
4.6 權(quán)重初始化 97
4.6.1 數(shù)學(xué)和代碼 99
4.6.2 實(shí)驗(yàn):權(quán)重初始化 100
4.7 dropout 100
4.7.1 定義 100
4.7.2 實(shí)現(xiàn) 101
4.7.3 實(shí)驗(yàn):dropout 102
4.8 小結(jié) 104
第5章 CNN 105
5.1 神經(jīng)網(wǎng)絡(luò)與表征學(xué)習(xí) 105
5.1.1 針對(duì)圖像數(shù)據(jù)的不同架構(gòu) 106
5.1.2 卷積運(yùn)算 107
5.1.3 多通道卷積運(yùn)算 108
5.2 卷積層 109
5.2.1 實(shí)現(xiàn)意義 110
5.2.2 卷積層與全連接層的區(qū)別 111
5.2.3 利用卷積層進(jìn)行預(yù)測(cè):Flatten層 111
5.2.4 池化層 112
5.3 實(shí)現(xiàn)多通道卷積運(yùn)算 114
5.3.1 前向傳遞 114
5.3.2 后向傳遞 117
5.3.3 批處理 120
5.3.4 二維卷積 121
5.3.5 最后一個(gè)元素:通道 123
5.4 使用多通道卷積運(yùn)算訓(xùn)練CNN 126
5.4.1 Flatten運(yùn)算 126
5.4.2 完整的Conv2D層 127
5.4.3 實(shí)驗(yàn) 128
5.5 小結(jié) 129
第6章 RNN 130
6.1 關(guān)鍵限制:處理分支 131
6.2 自動(dòng)微分 132
6.3 RNN的動(dòng)機(jī) 137
6.4 RNN簡(jiǎn)介 138
6.4.1 RNN的第 一個(gè)類(lèi):RNNLayer 139
6.4.2 RNN的第二個(gè)類(lèi):RNNNode 140
6.4.3 整合RNNNode類(lèi)和RNNLayer類(lèi) 140
6.4.4 后向傳遞 142
6.5 RNN:代碼 143
6.5.1 RNNLayer類(lèi) 144
6.5.2 RNNNode類(lèi)的基本元素 147
6.5.3 vanilla RNNNode類(lèi) 148
6.5.4 vanilla RNNNode類(lèi)的局限性 150
6.5.5 GRUNode類(lèi) 151
6.5.6 LSTMNode類(lèi) 154
6.5.7 基于字符級(jí)RNN語(yǔ)言模型的數(shù)據(jù)表示 156
6.5.8 其他語(yǔ)言建模任務(wù) 157
6.5.9 組合RNNLayer類(lèi)的變體 158
6.5.10 將全部?jī)?nèi)容整合在一起 158
6.6 小結(jié) 159
第7章 PyTorch 160
7.1 PyTorch Tensor 160
7.2 使用PyTorch進(jìn)行深度學(xué)習(xí) 161
7.2.1 PyTorch元素:Model類(lèi)及其Layer類(lèi) 162
7.2.2 使用PyTorch實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)基本要素:DenseLayer類(lèi) 163
7.2.3 示例:基于PyTorch的波士頓房?jī)r(jià)模型 164
7.2.4 PyTorch元素:Optimizer類(lèi)和Loss類(lèi) 165
7.2.5 PyTorch元素:Trainer類(lèi) 165
7.2.6 PyTorch優(yōu)化學(xué)習(xí)技術(shù) 168
7.3 PyTorch中的CNN 168
7.4 PyTorch中的LSTM 173
7.5 后記:通過(guò)自編碼器進(jìn)行無(wú)監(jiān)督學(xué)習(xí) 175
7.5.1 表征學(xué)習(xí) 175
7.5.2 應(yīng)對(duì)無(wú)標(biāo)簽場(chǎng)景的方法 176
7.5.3 在PyTorch中實(shí)現(xiàn)自編碼器 176
7.5.4 更強(qiáng)大的無(wú)監(jiān)督學(xué)習(xí)測(cè)試及解決方案 181
7.6 小結(jié) 182
附錄 深入探討 183
關(guān)于作者 192
關(guān)于封面 192