産品特色
編輯推薦
適讀人群 :本書將理論和代碼相結閤,幫助讀者更好地進入深度學習領域,適閤任何對深度學習感興趣的人。 1 作者本身也是從小白開始入門深度學習的,無論從書中內容,還是講解思路,以及語言風格,均適閤你從零開始進入深度學習這個充滿魔力的世界。
2 實例簡單而不簡約,用到瞭生成對抗網絡和注意力機製等目前相對前沿的深度學習技術。
3 雖然是一本入門教程,但是對原理的講述也不含糊,清晰易懂,讓讀者能知其然且知其所以然。
內容簡介
深度學習如今已經成為瞭科技領域*炙手可熱的技術,在本書中,我們將幫助你入門深度學習的領域。本書將從人工智能的介紹入手,瞭解機器學習和深度學習的基礎理論,並學習如何用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 生成對抗網絡. . . . . . . . .
深度學習入門之PyTorch 下載 mobi epub pdf txt 電子書