生成式人工智能 (基於 PyTorch 實現)
劉煥良(Mark Liu)
- 出版商: 人民郵電
- 出版日期: 2025-05-01
- 售價: $599
- 語言: 簡體中文
- 頁數: 306
- ISBN: 7115666156
- ISBN-13: 9787115666154
-
相關分類:
DeepLearning
- 此書翻譯自: Learn Generative AI with Pytorch (Paperback)
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書通過從零開始構建生成式人工智能模型來探討生成式人工智能的底層機制,並使用PyTorch對生成式人工智能模型進行編程的實踐指導,以期讓讀者在瞭解生成對抗網絡(GAN)、變分自編碼器(VAE)、循環神經網絡(RNN)、Transformer、擴散模型、大語言模型(LLM)和LangChain等技術原理之後,能構建可生成形狀、數字、圖像、文本和音樂的生成式人工智能
模型。
本書適合各種商業領域中的人工智能技術工程師和數據科學家在實踐生成式人工智能模型時隨手查閱,也適合生成式人工智能的初學者作為入門指南。
作者簡介
劉煥良(Mark Liu)博士是美國肯塔基大學金融學終身副教授和金融學碩士項目(創始)負責人。他著有兩本書:Make Python Talk(No Starch Press,2021) 和 Machine Learning, Animated(CRC Press,2023)。
他擁有 20 多年的編程經驗。他獲得美國波士頓學院金融學博士學 位, 曾 在 Journal of Financial Economics、Journal of Financial and Quantitative Analysis 和 Journal of Corporate Finance 等金融學頂級期刊上發表過研究論文。
目錄大綱
第 一部分 生成式人工智能簡介
第 1章 生成式人工智能和PyTorch 2
1.1 生成式人工智能和PyTorch簡介 3
1.1.1 生成式人工智能 3
1.1.2 Python編程語言 5
1.1.3 使用PyTorch作為人工智能框架 5
1.2 生成對抗網絡(GAN) 6
1.2.1 GAN概述 6
1.2.2 示例:生成動漫人臉 7
1.2.3 為什麽要關註GAN 9
1.3 Transformer 9
1.3.1 註意力機制簡介 10
1.3.2 Transformer架構簡介 10
1.3.3 多模態Transformer和預訓練LLM 11
1.4 為什麽要從零開始構建生成模型 13
1.5 小結 14
第 2章 使用PyTorch進行深度學習 15
2.1 PyTorch中的數據類型 16
2.1.1 創建PyTorch張量 16
2.1.2 對PyTorch張量進行索引和切片 18
2.1.3 PyTorch張量的形狀 19
2.1.4 PyTorch張量的數學運算 20
2.2 使用PyTorch完成端到端深度學習
項目 21
2.2.1 PyTorch深度學習:高層次概述 21
2.2.2 數據預處理 22
2.3 二分類 25
2.3.1 創建批次 25
2.3.2 構建並訓練二分類模型 25
2.3.3 測試二分類模型 27
2.4 多類別分類 28
2.4.1 驗證集和早停止 28
2.4.2 構建並訓練多類別分類模型 29
2.5 小結 32
第3章 生成對抗網絡:生成形狀和數字 33
3.1 訓練GAN的步驟 34
3.2 準備訓練數據 35
3.2.1 形成指數增長曲線的訓練數據集 36
3.2.2 準備訓練數據集 37
3.3 構建GAN 37
3.3.1 判別器網絡 37
3.3.2 生成器網絡 38
3.3.3 損失函數、優化器和早停止 39
3.4 訓練GAN並使用GAN生成形狀 40
3.4.1 GAN的訓練 40
3.4.2 保存並使用訓練好的生成器 44
3.5 用模式生成數字 45
3.5.1 獨熱變量 45
3.5.2 使用GAN生成具備模式的數字 47
3.5.3 訓練GAN生成具備模式的數字 48
3.5.4 保存並使用訓練好的模型 49
3.6 小結 50
第二部分 圖像生成
第4章 使用GAN生成圖像 52
4.1 使用GAN生成服裝灰度圖像 53
4.1.1 訓練樣本和判別器 53
4.1.2 生成灰度圖像的生成器 54
4.1.3 訓練GAN生成服裝圖像 55
4.2 捲積層 58
4.2.1 捲積運算的工作原理 59
4.2.2 步幅和填充對捲積運算的影響 61
4.3 轉置捲積和批量歸一化 62
4.3.1 轉置捲積層的工作原理 62
4.3.2 批量歸一化 64
4.4 彩色動漫人臉圖像 65
4.4.1 下載動漫人臉圖像 65
4.4.2 PyTorch中的通道前置彩色圖像 66
4.5 深度捲積GAN(DCGAN) 67
4.5.1 構建DCGAN 68
4.5.2 訓練並使用DCGAN 70
4.6 小結 72
第5章 在生成圖像中選擇特徵 73
5.1 眼鏡數據集 74
5.1.1 下載眼鏡數據集 74
5.1.2 可視化眼鏡數據集中的圖像 75
5.2 cGAN和沃瑟斯坦距離 76
5.2.1 帶有梯度懲罰的WGAN 76
5.2.2 cGAN 77
5.3 構建cGAN 78
5.3.1 cGAN中的批評者 78
5.3.2 cGAN中的生成器 79
5.3.3 權重初始化和梯度懲罰函數 80
5.4 訓練cGAN 82
5.4.1 為輸入添加標簽 82
5.4.2 訓練模型 83
5.5 在生成圖像中選擇特徵的方法 85
5.5.1 選擇生成戴眼鏡或不戴眼鏡的人臉
圖像 86
5.5.2 潛空間中的向量運算 88
5.5.3 同時選擇兩個特徵 89
5.6 小結 92
第6章 CycleGAN:將金發轉換為
黑發 93
6.1 CycleGAN和循環一致性損失 94
6.1.1 CycleGAN 94
6.1.2 循環一致性損失 95
6.2 名人人臉數據集 96
6.2.1 下載名人人臉數據集 96
6.2.2 處理黑發圖像和金發圖像的數據 97
6.3 構建CycleGAN模型 99
6.3.1 創建兩個判別器 99
6.3.2 創建兩個生成器 100
6.4 用CycleGAN在黑發和金發之間
轉換 103
6.4.1 訓練CycleGAN在黑發和金發之間
轉換 103
6.4.2 黑發圖像和金發圖像的往返轉換 105
6.5 小結 107
第7章 利用變分自編碼器生成圖像 108
7.1 自編碼器概述 110
7.1.1 自編碼器 110
7.1.2 構建並訓練自編碼器的步驟 110
7.2 構建並訓練能生成數字的
自編碼器 111
7.2.1 收集手寫數字 111
7.2.2 構建和訓練自編碼器 112
7.2.3 保存並使用訓練好的自編碼器 114
7.3 變分自編碼器 115
7.3.1 AE與VAE的區別 115
7.3.2 訓練可生成人臉圖像的VAE所需的藍圖 116
7.4 生成人臉圖像的變分自編碼器 117
7.4.1 構建變分自編碼器 117
7.4.2 訓練變分自編碼器 119
7.4.3 使用訓練好的VAE生成圖像 120
7.4.4 使用訓練好的VAE進行編碼運算 122
7.5 小結 126
第三部分 自然語言處理和Transformer
第8章 利用循環神經網絡生成文本 128
8.1 循環神經網絡(RNN)簡介 129
8.1.1 文本生成過程中的挑戰 130
8.1.2 循環神經網絡的工作原理 130
8.1.3 訓練長短期記憶(LSTM)模型的步驟 131
8.2 自然語言處理(NLP)的基本原理 132
8.2.1 詞元化方法 133
8.2.2 詞嵌入方法 134
8.3 準備數據以訓練LSTM模型 135
8.3.1 下載並清理文本 135
8.3.2 創建多批訓練數據 137
8.4 構建並訓練LSTM模型 137
8.4.1 構建LSTM模型 138
8.4.2 訓練LSTM模型 139
8.5 使用訓練好的LSTM模型生成文本 140
8.5.1 通過預測下一個詞元來生成文本 140
8.5.2 文本生成中的溫度和top-K採樣 142
8.6 小結 146
第9章 實現註意力機制和Transformer 147
9.1 註意力機制和Transformer 148
9.1.1 註意力機制 148
9.1.2 Transformer架構 151
9.1.3 Transformer的類型 154
9.2 構建編碼器 154
9.2.1 實現註意力機制 155
9.2.2 創建編碼器層 157
9.3 構建編碼器-解碼器Transformer 158
9.3.1 創建解碼器層 158
9.3.2 創建編碼器-解碼器Transformer 160
9.4 將所有部件組合在一起 161
9.4.1 定義生成器 161
9.4.2 創建能進行兩種語言對譯的模型 162
9.5 小結 163
第 10章 訓練能將英語翻譯成法語的Transformer 164
10.1 子詞詞元化 164
10.1.1 英語句子和法語句子的詞元化
處理 165
10.1.2 序列填充和批次創建 169
10.2 詞嵌入和位置編碼 171
10.2.1 詞嵌入 172
10.2.2 位置編碼 172
10.3 訓練Transformer將英語翻譯成法語 174
10.3.1 損失函數和優化器 174
10.3.2 訓練循環 177
10.4 用訓練好的模型將英語翻譯成法語 177
10.5 小結 179
第 11章 從零開始構建GPT 180
11.1 GPT-2的架構和因果自註意力 181
11.1.1 GPT-2的架構 181
11.1.2 GPT-2中的詞嵌入和位置編碼 182
11.1.3 GPT-2中的因果自註意力 183
11.2 從零開始構建GPT-2XL 187
11.2.1 字節對編碼器(BPE)詞元化 187
11.2.2 GELU激活函數 188
11.2.3 因果自註意力 190
11.2.4 構建GPT-2XL模型 191
11.3 加載預訓練權重並生成文本 193
11.3.1 加載GPT-2XL的預訓練參數 194
11.3.2 定義用於生成文本的generate()函數 195
11.3.3 用GPT-2XL生成文本 197
11.4 小結 199
第 12章 訓練生成文本的Transformer 200
12.1 從零開始構建並訓練GPT 201
12.1.1 文本生成GPT的架構 202
12.1.2 文本生成GPT模型的訓練過程 203
12.2 海明威小說的文本詞元化 204
12.2.1 對文本進行詞元化 205
12.2.2 創建訓練批次 208
12.3 構建用於生成文本的GPT 209
12.3.1 模型超參數 209
12.3.2 構建因果自註意力機制模型 210
12.3.3 構建GPT模型 210
12.4 訓練GPT模型以生成文本 212
12.4.1 訓練GPT模型 212
12.4.2 生成文本的函數 213
12.4.3 使用不同版本的訓練好的模型生成文本 215
12.5 小結 218
第四部分 實際應用和新進展
第 13章 使用MuseGAN生成音樂 220
13.1 音樂的數字化表示 221
13.1.1 音符、八度音階和音高 221
13.1.2 多軌音樂簡介 222
13.1.3 音樂的數字化表示:鋼琴捲譜 224
13.2 音樂生成所用的藍圖 226
13.2.1 用和弦、風格、旋律和節奏構建音樂 227
13.2.2 訓練MuseGAN所用的藍圖 228
13.3 準備MuseGAN所需的訓練數據 229
13.3.1 下載訓練數據 230
13.3.2 將多維對象轉換為音樂作品 230
13.4 構建MuseGAN 231
13.4.1 MuseGAN中的批評者 232
13.4.2 MuseGAN中的生成器 233
13.4.3 優化器和損失函數 235
13.5 訓練MuseGAN以生成音樂 236
13.5.1 訓練MuseGAN 237
13.5.2 使用訓練好的MuseGAN生成音樂 238
13.6 小結 239
第 14章 構建並訓練音樂Transformer 241
14.1 音樂Transformer簡介 242
14.1.1 表示基於演奏的音樂 242
14.1.2 音樂Transformer的架構 245
14.1.3 訓練音樂Transformer的過程 246
14.2 詞元化音樂作品 248
14.2.1 下載訓練數據 248
14.2.2 詞元化MIDI文件 249
14.2.3 準備訓練數據 251
14.3 構建用於生成音樂的GPT 253
14.3.1 音樂Transformer中的超參數 253
14.3.2 構建音樂Transformer 254
14.4 訓練和使用音樂Transformer 255
14.4.1 訓練音樂Transformer 255
14.4.2 使用訓練好的Transformer生成音樂 256
14.5 小結 258
第 15章 擴散模型和文生圖Transformer 259
15.1 去噪擴散模型簡介 260
15.1.1 正向擴散過程 260
15.1.2 使用U-Net模型為圖像去噪 261
15.1.3 去噪U-Net模型的訓練藍圖 263
15.2 準備訓練數據 264
15.2.1 作為訓練數據的花朵圖像 264
15.2.2 正向擴散過程的可視化 265
15.3 構建去噪U-Net模型 267
15.3.1 去噪U-Net模型中的註意力機制 267
15.3.2 去噪U-Net模型 268
15.4 訓練和使用去噪U-Net模型 269
15.4.1 訓練去噪U-Net模型 270
15.4.2 使用訓練好的模型生成花朵圖像 271
15.5 文生圖Transformer 274
15.5.1 CLIP:一種多模態Transformer 274
15.5.2 用DALL·E 2進行文生圖 276
15.6 小結 277
第 16章 預訓練LLM和LangChain庫 279
16.1 使用OpenAI API生成內容 280
16.1.1 使用OpenAI API運行文本生成
任務 280
16.1.2 使用OpenAI API生成代碼 282
16.1.3 使用OpenAI DALL·E 2生成圖像 283
16.1.4 使用OpenAI API進行語音生成 284
16.2 LangChain簡介 285
16.2.1 LangChain庫的必要性 285
16.2.2 在LangChain中使用
OpenAI API 286
16.2.3 零樣本提示、單樣本提示和少樣本提示 286
16.3 用LangChain創建博學多才的零樣本智能體 288
16.3.1 申請Wolfram Alpha API密鑰 288
16.3.2 在LangChain中創建智能體 290
16.3.3 用OpenAI GPT添加工具 291
16.3.4 添加能生成代碼和圖像的工具 293
16.4 LLM的局限性和倫理問題 295
16.4.1 LLM的局限性 295
16.4.2 LLM的倫理問題 296
16.5 小結 297
附錄A 安裝Python、Jupyter Notebook和PyTorch 298
A.1 安裝Python並設置虛擬環境 298
A.1.1 安裝Anaconda 298
A.1.2 設置Python虛擬環境 299
A.1.3 安裝Jupyter Notebook 299
A.2 安裝PyTorch 300
A.2.1 安裝不帶CUDA的PyTorch 300
A.2.2 安裝帶CUDA的PyTorch 301
附錄B 閱讀本書需要掌握的基礎知識 303
B.1 深度學習和深度神經網絡 303
B.1.1 神經網絡簡介 303
B.1.2 神經網絡中不同類型的層 304
B.1.3 激活函數 304
B.2 訓練深度神經網絡 305
B.2.1 訓練過程 305
B.2.2 損失函數 306
B.2.3 優化器 306