叢書名 :博文視點AI係列
作 譯 者:廖星宇
齣版時間:2017-09 韆 字 數:299
版 次:01-01 頁 數:232
開 本:16開
裝 幀:
I S B N :9787121326202
換 版:
所屬分類:科技 >> 計算機 >> 計算機科學
紙質書定價:¥79.0
深度學習如今已經成為瞭科技領域·炙手可熱的技術,在本書中,我們將幫助你入門深度學習的領域。本書將從人工智能的介紹入手,瞭解機器學習和深度學習的基礎理論,並學習如何用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 總結. . . . . . . . . . . . . . . . . . . . . . . . . . .
這本書真的讓我眼前一亮,之前對深度學習一直抱有好奇,但總覺得門檻很高,不敢輕易上手。廖星宇的《深度學習入門之PyTorch》簡直就像一束光,照亮瞭我前行的道路。從最基礎的概念講起,循序漸進,完全不會讓人覺得枯燥乏味。作者非常注重實踐,每一個理論知識點都配有清晰的代碼示例,而且是用PyTorch這個當下最熱門的框架來演示,這一點我覺得太贊瞭!我之前嘗試過其他的深度學習資料,但很多都停留在理論層麵,或者使用的框架已經不太主流,學起來總覺得隔靴搔癢。《深度學習入門之PyTorch》在這方麵做得非常到位,我跟著書中的代碼敲打、運行,看著模型一步步訓練,真的有一種“從0到1”的成就感。特彆是對於那些像我一樣,對編程有一定基礎但對深度學習一無所知的新手來說,這本書的框架搭建指南部分簡直是福音。它把復雜的環境配置、依賴安裝等問題都梳理得井井有條,讓我能夠快速搭建起屬於自己的深度學習實驗環境,這一點對於初學者來說,真的可以省去很多寶貴的試錯時間。而且,書中對PyTorch的常用API講解得也非常細緻,例如張量(Tensor)的創建與操作、自動求導(Autograd)的原理與應用、神經網絡模塊(nn.Module)的設計與使用等等,都介紹得非常透徹,讓我能深刻理解PyTorch的內在邏輯。
評分這本書帶給我的驚喜遠遠超齣瞭我的預期。我原本以為它會是一本側重於理論講解的書籍,但事實證明,它在實踐操作方麵做得非常齣色。《深度學習入門之PyTorch》這本書的內容安排得非常緊湊且邏輯性強。開篇就從非常基礎的深度學習概念講起,例如什麼是神經網絡、什麼是梯度下降等,為讀者打下瞭堅實的基礎。然後,非常巧妙地引入瞭PyTorch這個強大的工具,並且將理論知識與實際代碼相結閤。書中提供的代碼示例都非常經典,並且都是可以直接運行的,這讓我能夠立即將學到的知識應用到實踐中。比如,在講解捲積神經網絡(CNN)的部分,作者不僅解釋瞭捲積層、池化層等組件的工作原理,還提供瞭構建一個簡單圖像分類模型的完整代碼,我跟著代碼一步步操作,看著模型在MNIST數據集上學習,最終達到不錯的準確率,那種成就感是無法言喻的。更重要的是,作者在講解代碼時,非常注重細節,解釋瞭每一行代碼的含義以及背後的原理,這讓我不僅僅是“復製代碼”,而是真正理解瞭模型是如何構建和訓練的。此外,書中對模型評估、超參數調優等方麵的內容也有所涉及,這些都是在實際深度學習項目開發中不可或缺的環節。
評分這本書的結構安排得非常有條理,從基礎到進階,層層遞進,讓我這個深度學習小白也能夠輕鬆跟上。我特彆喜歡作者在講解PyTorch框架搭建部分的處理方式。很多技術書籍在講環境搭建時,總是給人一種“你知道瞭就知道,不知道就繼續去查”的感覺,但這本書不同,它把每一步都拆解得非常細緻,從Python環境的準備,到PyTorch的安裝,再到GPU加速的配置,都有清晰的步驟和截圖說明,讓我這個之前對環境配置一竅不通的人,也能順利地搭建起自己的開發環境,這讓我有種“原來深度學習並沒有那麼難”的頓悟。而且,這本書不僅僅是教你搭建環境,更重要的是,它圍繞著PyTorch這個框架,講解瞭深度學習的核心概念。我之前看一些理論書,總是感覺離實際應用很遠,但這本書通過大量的代碼示例,把理論知識落到瞭實處。比如,在講到神經網絡的構建時,作者會用PyTorch的`nn.Module`來演示,你會直觀地看到如何定義層,如何連接層,如何進行前嚮傳播。學習過程中,我感覺自己不僅僅是在閱讀一本技術書籍,更像是在完成一個又一個的小項目,每完成一個,我的信心就更足一分。這本書的語言也比較通俗易懂,沒有過多地使用晦澀難懂的專業術語,即使遇到不太理解的地方,作者也會給齣相應的解釋或者類比,這讓我的學習過程變得更加輕鬆愉快。
評分作為一名對深度學習領域充滿興趣但又相對陌生的初學者,我曾嘗試過閱讀不少相關的書籍和技術博客,但往往因為概念過於抽象或者代碼實現過於復雜而難以深入。直到我讀到廖星宇的《深度學習入門之PyTorch》,我纔真正體會到“入門”的含義。這本書的行文風格非常親切,仿佛作者在身邊手把手地指導你學習。它沒有一開始就拋齣大量晦澀難懂的數學公式,而是從大傢都能理解的例子入手,逐步引導讀者進入深度學習的世界。PyTorch框架的引入也恰到好處,作者並沒有將重點放在框架的API堆砌上,而是通過實際項目的演練,讓讀者在解決問題的過程中自然而然地掌握PyTorch的核心用法。我尤其喜歡書中關於模型構建和訓練的章節,它將常見的網絡結構(如全連接網絡、捲積神經網絡、循環神經網絡)的原理和實現娓娓道來,並提供瞭可以直接運行的示例代碼。我跟著書中的例子,成功地復現瞭一些經典的深度學習模型,這對我來說是一個巨大的鼓舞。這本書的另一個亮點在於,它不僅關注模型的搭建,還對數據預處理、模型評估、常見問題排查等方麵的內容進行瞭詳細的闡述,這些都是保證模型取得良好效果的關鍵步驟,往往在其他入門書籍中會被忽略。
評分說實話,當初選擇這本書,很大程度上是被“PyTorch框架搭建指南教程”這個副標題吸引瞭。我之前摺騰過幾次深度學習環境搭建,每次都踩無數的坑,什麼CUDA版本不對、cuDNN版本不匹配、依賴庫衝突之類的,搞得焦頭爛額,直接勸退。這本書在這方麵簡直是我的救星!廖星宇老師在這部分的內容安排得非常閤理,從最開始的Python環境準備,到PyTorch的安裝(包括CPU版本和GPU版本),再到一些常用的輔助庫(如NumPy, Matplotlib)的配置,都講得非常細緻,而且是手把手教學的風格。我跟著書中的步驟操作,幾乎沒有遇到什麼阻礙,順利地搭建好瞭我的第一個PyTorch開發環境。書裏還給齣瞭一些常見的錯誤排查方法和建議,這對於新手來說太重要瞭,避免瞭很多不必要的沮喪。除瞭環境搭建,書中對PyTorch的一些核心概念也做瞭很好的介紹,比如數據加載、模型定義、損失函數、優化器等等。雖然我之前也接觸過一些深度學習的概念,但通過PyTorch這個具體的框架來理解,感覺更加直觀和生動。作者沒有迴避PyTorch的底層實現細節,但又不會過於深奧,能夠讓讀者在理解框架的同時,也能對深度學習的運作機製有更深層次的認識。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有