深度學習入門之PyTorch ( 簡體 字) |
作者:廖星宇 | 類別:1. -> 程式設計 -> 深度學習 2. -> 程式設計 -> Python |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 47801 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:9/1/2017 |
頁數:232 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121326202 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:隨著AlphaGo 以3:1 的成績戰勝李世石,人們對人工智能的熱情如井噴式增長,你 也許對人工智能充滿興趣,向往著了解機器學習,特別是深度學習,那么本書恰好能夠 由淺及深地帶你進入深度學習這個世界。 講深度學習的書有很多,深度學習的框架也有很多,本書將以PyTorch 為工具從基 礎的線性回歸開始,講到時下最前沿的生成對抗網絡,并在其中穿插PyTorch 的教學, 所以本書不僅僅是深度學習的入門指南,同時也是PyTorch 的入門教程。 本書針對的對象是對深度學習有所了解、用過一些深度學習框架(如使用Tensor- Flow 跑過簡單的模型),但是希望能夠用PyTorch 進行深度學習研究和學習的入門者。 閱讀本書并不需要太多的數學基礎,但是需要一定的Python 基礎。本書中的數學推導 不多,感覺困難的讀者可以跳過,這對理解全書的主要內容不會造成影響。 本書的主要內容包括: 第1 章,深度學習介紹; 第2 章,深度學習框架; 第3 章,多層全連接神經網絡; 第4 章,卷積神經網絡; 第5 章,循環神經網絡; 第6 章,生成對抗網絡; 第7 章,深度學習實戰。 建議讀者按照本書的內容順序學習,因為后面的內容會以前面的內容為基礎,另外 本書的全部代碼放在了https://github.com/SherlockLiao/code-of-learn-deep-learning-withpytorch 中,讀者可以前往下載。 本書面向的對象是初學者,學習完本書之后,讀者能夠大致了解深度學習的基本知 識,基本掌握PyTorch 的使用方法,知道如何根據實際問題搭建對應的深層網絡結構, 并能夠進行調參得到較好的結果。當然本書只是一本入門讀物,如果希望以后從事該 領域的研究,僅靠此書是不夠的,需要閱讀更多專業的書籍和學術論文。 在本書的創作過程離不開很多人對我的幫助,書中的一部分內容參考了李飛飛教 授在斯坦福大學開設的課程cs231n,以及臺灣國立大學教授李宏毅開始的MLDS,除此 之外還參考了網絡上的一些圖例,因為大多找不到出處,所以無法一一列出進行感謝。 除此之外,還感謝在寫書的過程中我的家人對我的鼓勵和信任,正是他們的支持 讓我能夠堅持寫完整本書。 最后,感謝電子工業出版社給我這次機會讓我能夠出版此書,同時也感謝孫學瑛 編輯全程對我的幫助。 由于本人水平有限,書中存在的紕漏,歡迎大家向我指出,我也很高興收到大家的 意見和建議,不勝感激。 廖星宇 中國科學技術大學數學系 |
內容簡介:深度學習如今已經成為了科技領域最炙手可熱的技術,在本書中,我們將幫助你入門深度學習的領域。本書將從人工智能的介紹入手,了解機器學習和深度學習的基礎理論,并學習如何用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 |
序: |