深度學習進階 自然語言處理

[日]齋藤康毅

  • 出版商: 人民郵電
  • 出版日期: 2024-11-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 400
  • ISBN: 7115547645
  • ISBN-13: 9787115547644
  • 相關分類: DeepLearningText-mining
  • 已絕版

  • 深度學習進階 自然語言處理-preview-1
  • 深度學習進階 自然語言處理-preview-2
深度學習進階 自然語言處理-preview-1

相關主題

商品描述

《深度學習進階:自然語言處理》是《深度學習入門:基於Python 的理論與實現》的續作,圍繞自然語言處理和時序數據處理,介紹深度學習中的重要技術,包括word2vec、RNN、LSTM、GRU、seq2seq 和Attention 等。本書語言平實,結合大量示意圖和Python代碼,按照“提出問題”“思考解決問題的新方法”“加以改善”的流程,基於深度學習解決自然語言處理相關的各種問題,使讀者在此過程中更深入地理解深度學習中的重要技術。

作者簡介

斋藤康毅(作者)

1984年生于日本长崎县,东京工业大学毕业,并完成东京大学研究生院课程。目前在某企业从事人工智能相关的研究和开发工作。著有《深度学习入门:基于Python的理论与实现》,同时也是Introducing Python、Python in Practice、The Elements of Computing Systems、Building Machine Learning Systems with Python的日文版译者。

 

陆宇杰(译者)

长期从事自然语言处理、知识图谱、深度学习相关的研究和开发工作。译有《深度学习入门:基于Python的理论与实现》。

 

目錄大綱

譯者序 xi

前言 xiii

第 1 章 神經網絡的復習 1

1.1 數學和Python的復習 1

1.1.1 向量和矩陣 1

1.1.2 矩陣的對應元素的運算 4

1.1.3 廣播 4

1.1.4 向量內積和矩陣乘積 6

1.1.5 矩陣的形狀檢查 7

1.2 神經網絡的推理 8

1.2.1 神經網絡的推理的全貌圖 8

1.2.2 層的類化及正向傳播的實現 14

1.3 神經網絡的學習 18

1.3.1 損失函數 18

1.3.2 導數和梯度 21

1.3.3 鏈式法則 23

1.3.4 計算圖 24

1.3.5 梯度的推導和反向傳播的實現 35

1.3.6 權重的更新 39

1.4 使用神經網絡解決問題 41

1.4.1 螺旋狀數據集 41

1.4.2 神經網絡的實現 43

1.4.3 學慣用的代碼 45

1.4.4 Trainer 類 49

1.5 計算的高速化 50

1.5.1 位精度 51

1.5.2 GPU(CuPy) 52

1.6 小結 54

第 2 章 自然語言和單詞的分佈式表示 57

2.1 什麽是自然語言處理 57

2.2 同義詞詞典 59

2.2.1 WordNet 61

2.2.2 同義詞詞典的問題 61

2.3 基於計數的方法 63

2.3.1 基於Python的語料庫的預處理 63

2.3.2 單詞的分佈式表示 66

2.3.3 分佈式假設 67

2.3.4 共現矩陣 68

2.3.5 向量間的相似度 72

2.3.6 相似單詞的排序 74

2.4 基於計數的方法的改進 77

2.4.1 點互信息 77

2.4.2 降維 81

2.4.3 基於SVD的降維 84

2.4.4 PTB數據集 86

2.4.5 基於PTB數據集的評價 88

2.5 小結 91

第3 章 word2vec 93

3.1 基於推理的方法和神經網絡 93

3.1.1 基於計數的方法的問題 94

3.1.2 基於推理的方法的概要 95

3.1.3 神經網絡中單詞的處理方法 96

3.2 簡單的word2vec 101

3.2.1 CBOW模型的推理 101

3.2.2 CBOW模型的學習 106

3.2.3 word2vec的權重和分佈式表示 108

3.3 學習數據的準備 110

3.2.1 上下文和目標詞 110

3.3.2 轉化為one-hot 表示 113

3.4 CBOW模型的實現 114

3.5 word2vec的補充說明 120

3.5.1 CBOW模型和概率 121

3.5.2 skip-gram 模型 122

3.5.3 基於計數與基於推理 125

3.6 小結 127

第4 章 word2vec的高速化 129

4.1 word2vec的改進① 129

4.1.1 Embedding層 132

4.1.2 Embedding層的實現 133

4.2 word2vec的改進② 137

4.2.1 中間層之後的計算問題 138

4.2.2 從多分類到二分類 139

4.2.3 Sigmoid 函數和交叉熵誤差 141

4.2.4 多分類到二分類的實現 144

4.2.5 負採樣 148

4.2.6 負採樣的採樣方法 151

4.2.7 負採樣的實現 154

4.3 改進版word2vec的學習 156

4.3.1 CBOW模型的實現 156

4.3.2 CBOW模型的學習代碼 159

4.3.3 CBOW模型的評價 161

4.4 wor2vec相關的其他話題 165

4.4.1 word2vec的應用例 166

4.4.2 單詞向量的評價方法 168

4.5 小結 170

第5 章 RNN 173

5.1 概率和語言模型 173

5.1.1 概率視角下的word2vec 174

5.1.2 語言模型 176

5.1.3 將CBOW模型用作語言模型? 178

5.2 RNN 181

5.2.1 循環的神經網絡 181

5.2.2 展開循環 183

5.2.3 Backpropagation Through Time 185

5.2.4 Truncated BPTT 186

5.2.5 Truncated BPTT的mini-batch 學習 190

5.3 RNN的實現 192

5.3.1 RNN層的實現 193

5.3.2 Time RNN層的實現 197

5.4 處理時序數據的層的實現 202

5.4.1 RNNLM的全貌圖 202

5.4.2 Time層的實現 205

5.5 RNNLM的學習和評價 207

5.5.1 RNNLM的實現 207

5.5.2 語言模型的評價 211

5.5.3 RNNLM的學習代碼 213

5.5.4 RNNLM的Trainer類 216

5.6 小結 217

第6 章 Gated RNN 219

6.1 RNN的問題 220

6.1.1 RNN的復習 220

6.1.2 梯度消失和梯度爆炸 221

6.1.3 梯度消失和梯度爆炸的原因 223

6.1.4 梯度爆炸的對策 228

6.2 梯度消失和LSTM 229

6.2.1 LSTM的接口 230

6.2.2 LSTM層的結構 231

6.2.3 輸出門 234

6.2.4 遺忘門 236

6.2.5 新的記憶單元 237

6.2.6 輸入門 238

6.2.7 LSTM的梯度的流動 239

6.3 LSTM的實現 240

6.4 使用LSTM的語言模型 248

6.5 進一步改進RNNLM 255

6.5.1 LSTM層的多層化 256

6.5.2 基於Dropout抑制過擬合 257

6.5.3 權重共享 262

6.5.4 更好的RNNLM的實現 263

6.5.5 前沿研究 269

6.6 小結 270

第7 章 基於RNN生成文本 273

7.1 使用語言模型生成文本 274

7.1.1 使用RNN生成文本的步驟 274

7.1.2 文本生成的實現 278

7.1.3 更好的文本生成 281

7.2 seq2seq 模型 283

7.2.1 seq2seq 的原理 283

7.2.2 時序數據轉換的簡單嘗試 287

7.2.3 可變長度的時序數據 288

7.2.4 加法數據集 290

7.3 seq2seq 的實現 291

7.3.1 Encoder類 291

7.3.2 Decoder類 295

7.3.3 Seq2seq 類 300

7.3.4 seq2seq 的評價 301

7.4 seq2seq 的改進 305

7.4.1 反轉輸入數據(Reverse) 305

7.4.2 偷窺(Peeky) 308

7.5 seq2seq 的應用 313

7.5.1 聊天機器人 314

7.5.2 算法學習 315

7.5.3 自動圖像描述 316

7.6 小結 318

第8 章 Attention 321

8.1 Attention 的結構 321

8.1.1 seq2seq 存在的問題 322

8.1.2 編碼器的改進 323

8.1.3 解碼器的改進① 325

8.1.4 解碼器的改進② 333

8.1.5 解碼器的改進③ 339

8.2 帶Attention 的seq2seq 的實現 344

8.2.1 編碼器的實現 344

8.2.2 解碼器的實現 345

8.2.3 seq2seq 的實現 347

8.3 Attention 的評價 347

8.3.1 日期格式轉換問題 348

8.3.2 帶Attention 的seq2seq 的學習 349

8.3.3 Attention 的可視化 353

8.4 關於Attention 的其他話題 356

8.4.1 雙向RNN 356

8.4.2 Attention 層的使用方法 358

8.4.3 seq2seq 的深層化和skip connection 360

8.5 Attention 的應用 363

8.5.1 Google Neural Machine Translation(GNMT) 363

8.5.2 Transformer 365

8.5.3 Neural Turing Machine(NTM) 369

8.6 小結 373

附錄A sigmoid 函數和tanh 函數的導數 375

A.1 sigmoid 函數 375

A.2 tanh 函數 378

A.3 小結 380

附錄B 運行WordNet 381

B.1 NLTK的安裝 381

B.2 使用WordNet獲得同義詞 382

B.3 WordNet和單詞網絡 384

B.4 基於WordNet的語義相似度 385

附錄C GRU 387

C.1 GRU的接口 387

C.2 GRU的計算圖 388

後記 391

參考文獻 395