深度學習入門之 PyTorch 深度学习入门之PyTorch
廖星宇
- 出版商: 電子工業
- 出版日期: 2017-09-01
- 定價: $474
- 售價: 8.5 折 $403
- 語言: 簡體中文
- 頁數: 232
- 裝訂: 平裝
- ISBN: 7121326205
- ISBN-13: 9787121326202
-
相關分類:
DeepLearning
銷售排行:
👍 2018 年度 簡體中文書 銷售排行 第 16 名
🥈 2017/12 簡體中文書 銷售排行 第 2 名
已絕版
買這商品的人也買了...
-
$580$458 -
$560$476 -
$374深入淺出深度學習:原理剖析與Python實踐
-
$590$460 -
$390$332 -
$653深度學習、優化與識別 (Deep Learning,Optimization and Recognition)
-
$958深度學習
-
$580$458 -
$403機器學習之路 : Caffe、Keras、scikit-learn 實戰
-
$374深度學習算法實踐
-
$403深度學習與計算機視覺 : 算法原理、框架應用與代碼實現 (Deep Learning & Computer Vision:Algorithms and Examples)
-
$480$379 -
$450$383 -
$500$390 -
$450$356 -
$500$390 -
$780$616 -
$474$450 -
$332深度學習框架 PyTorch : 入門與實踐
-
$590$502 -
$374深度學習之 PyTorch 實戰電腦視覺
-
$620$527 -
$301神經網絡與 PyTorch 實戰
-
$540$459 -
$301PyTorch 機器學習從入門到實戰
相關主題
商品描述
深度學習如今已經成為了科技領域最炙手可熱的技術,在本書中,我們將幫助你入門深度學習的領域。本書將從人工智能的介紹入手,瞭解機器學習和深度學習的基礎理論,並學習如何用PyTorch框架對模型進行搭建。通過閱讀本書,你將會學習到機器學習中的線性回歸和logistic回歸,深度學習的優化方法,多層全連接神經網絡,捲積神經網絡,循環神經網絡以及生成對抗網絡,同時從零開始對PyTorch進行學習,瞭解PyTorch基礎及如何用其進行模型的搭建,最後通過實戰瞭解最前沿的研究成果和PyTorch在實際項目中的應用。
海報:
作者簡介
廖星宇,目前就讀於中國科學技術大學應用數學系,獲得國家一等獎學金。在個人博客、知乎等平台上發布多篇關於深度學習的文章,具有一定的閱讀量和人氣。
目錄大綱
第1章深度學習介紹1
1.1人工智能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2數據挖掘、機器學習與深度學習. . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1數據挖掘. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2機器學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3深度學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3學習資源與建議. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
第2章深度學習框架11
2.1深度學習框架介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 PyTorch介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1什麼是PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2為何要使用PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3配置PyTorch深度學習環境. . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1操作系統的選擇. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Python開發環境的安裝. . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 PyTorch的安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
第3章多層全連接神經網絡24
3.1熱身:PyTorch基礎. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1 Tensor(張量) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Variable(變量) . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.3 Dataset(數據集) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.4 nn.Module(模組) . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.5 torch.optim(優化) . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.6模型的保存和加載. . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2線性模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2. 1問題介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2一維線性回歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.3多維線性回歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.4一維線性回歸的代碼實現. . . . . . . . . . . . . . . . . . . . . . 35
3.2.5多項式回歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3分類問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.1問題介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.2 Logistic起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.3 Logistic分佈. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.4二分類的Logistic回歸. . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.5模型的參數估計. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.6 Logistic回歸的代碼實現. . . . . . . . . . . . . . . . . . . . . . . 45
3.4簡單的多層全連接前向網絡. . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.1模擬神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.2單層神經網絡的分類器. . . . . . . . . . . . . . . . . . . . . . . . 50
3.4.3激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.4神經網絡的結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.5模型的表示能力與容量. . . . . . . . . . . . . . . . . . . . . . . . 55
3.5深度學習的基石:反向傳播算法. . . . . . . . . . . . . . . . . . . . . . . 57
3.5.1鍊式法則. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.2反向傳播算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.5.3 Sigmoid函數舉例. . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6各種優化算法的變式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.1梯度下降法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.2梯度下降法的變式. . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7處理數據和訓練模型的技巧. . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.1數據預處理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.2權重初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7.3防止過擬合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.8多層全連接神經網絡實現MNIST手寫數字分類. . . . . . . . . . . . . . 69
3.8.1簡單的三層全連接神經網絡. . . . . . . . . . . . . . . . . . . . . 70
3.8.2添加激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.8.3添加批標準化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.8.4訓練網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
第4章卷積神經網絡76
4.1主要任務及起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2卷積神經網絡的原理和結構. . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2.1卷積層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2.2池化層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.2.3全連接層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2.4卷積神經網絡的基本形式. . . . . . . . . . . . . . . . . . . . . . 85
4.3 PyTorch卷積模塊. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.1卷積層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.2池化層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.3.3提取層結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.3.4如何提取參數及自定義初始化. . . . . . . . . . . . . . . . . . . . 91
4.4卷積神經網絡案例分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.4.1 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.4.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.4.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5再實現MNIST手寫數字分類. . . . . . . . . . . . . . . . . . . . . . . . . 103
4.6圖像增強的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.7實現cifar10分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
第5章循環神經網絡111
5.1循環神經網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1.1問題介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.1.2循環神經網絡的基本結構. . . . . . . . . . . . . . . . . . . . . . 112
5.1.3存在的問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2循環神經網絡的變式:LSTM與GRU . . . . . . . . . . . . . . . . . . . . 116
5.2.1 LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2. 2 GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.3收斂性問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.3循環神經網絡的PyTorch實現. . . . . . . . . . . . . . . . . . . . . . . . 122
5.3.1 PyTorch的循環網絡模塊. . . . . . . . . . . . . . . . . . . . . . . 122
5.3.2實例介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4自然語言處理的應用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.1詞嵌入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.2詞嵌入的PyTorch實現. . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.3 N Gram模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.4單詞預測的PyTorch實現. . . . . . . . . . . . . . . . . . . . . . . 134
5.4.5詞性判斷. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.4.6詞性判斷的PyTorch實現. . . . . . . . . . . . . . . . . . . . . . . 137
5.5循環神經網絡的更多應用. . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.1 Many to one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.2 Many to Many( shorter) . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.3 Seq2seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.4 CNN+RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
第6章生成對抗網絡144
6.1生成模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.1 .1自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.1.2變分自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.2生成對抗網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.1何為生成對抗網絡. . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.2生成對抗網絡的數學原理. . . . . . . . . . . . . . . . . . . . . . 160
6.3 Improving GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.1 Wasserstein GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.2 Improving WGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
6.4應用介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.1 Conditional GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.2 Cycle GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
第7章深度學習實戰173
7.1實例一——貓狗大戰:運用預訓練卷積神經網絡進行特徵提取與預測. 173
7.1.1背景介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.2原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.3代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.1.4總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.2實例二——Deep Dream:探索卷積神經網絡眼中的世界. . . . . . . . . 183
7.2.1原理介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.2.2預備知識:backward . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.2.3代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
7.2.4總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
7.3實例三——Neural-Style:使用PyTorch進行風格遷移. . . . . . . . . . . 196
7.3.1背景介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.3.2原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.3.3代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
7.3.4總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
7.4實例四——Seq2seq:通過RNN實現簡單的Neural Machine Translation . 205
7.4.1背景介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.2原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.3代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
7.4.4總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221