深度學(xué)習(xí)進(jìn)階 自然語言處理
定 價:99 元
- 作者:[日]齋藤康毅
- 出版時間:2020/10/1
- ISBN:9787115547644
- 出 版 社:人民郵電出版社
- 中圖法分類:TP391
- 頁碼:400
- 紙張:
- 版次:01
- 開本:大32開
《深度學(xué)習(xí)進(jìn)階:自然語言處理》是《深度學(xué)習(xí)入門:基于Python 的理論與實現(xiàn)》的續(xù)作,圍繞自然語言處理和時序數(shù)據(jù)處理,介紹深度學(xué)習(xí)中的重要技術(shù),包括word2vec、RNN、LSTM、GRU、seq2seq 和Attention 等。本書語言平實,結(jié)合大量示意圖和Python代碼,按照“提出問題”“思考解決問題的新方法”“加以改善”的流程,基于深度學(xué)習(xí)解決自然語言處理相關(guān)的各種問題,使讀者在此過程中更深入地理解深度學(xué)習(xí)中的重要技術(shù)。
豆瓣評分9.4的暢銷書《深度學(xué)習(xí)入門:基于Python的理論與實現(xiàn)》續(xù)作,帶你快速直達(dá)自然語言處理領(lǐng)域!
1.簡明易懂
本書內(nèi)容精煉,聚焦深度學(xué)習(xí)視角下的自然語言處理,延續(xù)前作的行文風(fēng)格,采用通俗的語言和大量直觀的示意圖詳細(xì)講解,幫助讀者加深對深度學(xué)習(xí)技術(shù)的理解,輕松入門自然語言處理。
2.側(cè)重原理
不依賴外部庫,使用Python 3從零開始創(chuàng)建深度學(xué)習(xí)程序,通過親自創(chuàng)建程序并運行,讀者可透徹掌握word2vec、RNN、LSTM、GRU、seq2seq和Attention等技術(shù)背后的運行原理。
3.學(xué)習(xí)曲線平緩
按照“文字介紹→代碼實現(xiàn)→分析結(jié)果→發(fā)現(xiàn)問題→進(jìn)行改善”的流程,逐步深入,讀者只需具備基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)和Python知識,即可輕松讀懂。
4.提供源代碼
5.雙色印刷
齋藤康毅(作者)
1984年生于日本長崎縣,東京工業(yè)大學(xué)畢業(yè),并完成東京大學(xué)研究生院課程。目前在某企業(yè)從事人工智能相關(guān)的研究和開發(fā)工作。著有《深度學(xué)習(xí)入門:基于Python的理論與實現(xiàn)》,同時也是Introducing Python、Python in Practice、The Elements of Computing Systems、Building Machine Learning Systems with Python的日文版譯者。
陸宇杰(譯者)
長期從事自然語言處理、知識圖譜、深度學(xué)習(xí)相關(guān)的研究和開發(fā)工作。譯有《深度學(xué)習(xí)入門:基于Python的理論與實現(xiàn)》。
譯者序 xi
前言 xiii
第 1 章 神經(jīng)網(wǎng)絡(luò)的復(fù)習(xí) 1
1.1 數(shù)學(xué)和Python的復(fù)習(xí) 1
1.1.1 向量和矩陣 1
1.1.2 矩陣的對應(yīng)元素的運算 4
1.1.3 廣播 4
1.1.4 向量內(nèi)積和矩陣乘積 6
1.1.5 矩陣的形狀檢查 7
1.2 神經(jīng)網(wǎng)絡(luò)的推理 8
1.2.1 神經(jīng)網(wǎng)絡(luò)的推理的全貌圖 8
1.2.2 層的類化及正向傳播的實現(xiàn) 14
1.3 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí) 18
1.3.1 損失函數(shù) 18
1.3.2 導(dǎo)數(shù)和梯度 21
1.3.3 鏈?zhǔn)椒▌t 23
1.3.4 計算圖 24
1.3.5 梯度的推導(dǎo)和反向傳播的實現(xiàn) 35
1.3.6 權(quán)重的更新 39
1.4 使用神經(jīng)網(wǎng)絡(luò)解決問題 41
1.4.1 螺旋狀數(shù)據(jù)集 41
1.4.2 神經(jīng)網(wǎng)絡(luò)的實現(xiàn) 43
1.4.3 學(xué)習(xí)用的代碼 45
1.4.4 Trainer 類 49
1.5 計算的高速化 50
1.5.1 位精度 51
1.5.2 GPU(CuPy) 52
1.6 小結(jié) 54
第 2 章 自然語言和單詞的分布式表示 57
2.1 什么是自然語言處理 57
2.2 同義詞詞典 59
2.2.1 WordNet 61
2.2.2 同義詞詞典的問題 61
2.3 基于計數(shù)的方法 63
2.3.1 基于Python的語料庫的預(yù)處理 63
2.3.2 單詞的分布式表示 66
2.3.3 分布式假設(shè) 67
2.3.4 共現(xiàn)矩陣 68
2.3.5 向量間的相似度 72
2.3.6 相似單詞的排序 74
2.4 基于計數(shù)的方法的改進(jìn) 77
2.4.1 點互信息 77
2.4.2 降維 81
2.4.3 基于SVD的降維 84
2.4.4 PTB數(shù)據(jù)集 86
2.4.5 基于PTB數(shù)據(jù)集的評價 88
2.5 小結(jié) 91
第3 章 word2vec 93
3.1 基于推理的方法和神經(jīng)網(wǎng)絡(luò) 93
3.1.1 基于計數(shù)的方法的問題 94
3.1.2 基于推理的方法的概要 95
3.1.3 神經(jīng)網(wǎng)絡(luò)中單詞的處理方法 96
3.2 簡單的word2vec 101
3.2.1 CBOW模型的推理 101
3.2.2 CBOW模型的學(xué)習(xí) 106
3.2.3 word2vec的權(quán)重和分布式表示 108
3.3 學(xué)習(xí)數(shù)據(jù)的準(zhǔn)備 110
3.2.1 上下文和目標(biāo)詞 110
3.3.2 轉(zhuǎn)化為one-hot 表示 113
3.4 CBOW模型的實現(xiàn) 114
3.5 word2vec的補充說明 120
3.5.1 CBOW模型和概率 121
3.5.2 skip-gram 模型 122
3.5.3 基于計數(shù)與基于推理 125
3.6 小結(jié) 127
第4 章 word2vec的高速化 129
4.1 word2vec的改進(jìn)① 129
4.1.1 Embedding層 132
4.1.2 Embedding層的實現(xiàn) 133
4.2 word2vec的改進(jìn)② 137
4.2.1 中間層之后的計算問題 138
4.2.2 從多分類到二分類 139
4.2.3 Sigmoid 函數(shù)和交叉熵誤差 141
4.2.4 多分類到二分類的實現(xiàn) 144
4.2.5 負(fù)采樣 148
4.2.6 負(fù)采樣的采樣方法 151
4.2.7 負(fù)采樣的實現(xiàn) 154
4.3 改進(jìn)版word2vec的學(xué)習(xí) 156
4.3.1 CBOW模型的實現(xiàn) 156
4.3.2 CBOW模型的學(xué)習(xí)代碼 159
4.3.3 CBOW模型的評價 161
4.4 wor2vec相關(guān)的其他話題 165
4.4.1 word2vec的應(yīng)用例 166
4.4.2 單詞向量的評價方法 168
4.5 小結(jié) 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 循環(huán)的神經(jīng)網(wǎng)絡(luò) 181
5.2.2 展開循環(huán) 183
5.2.3 Backpropagation Through Time 185
5.2.4 Truncated BPTT 186
5.2.5 Truncated BPTT的mini-batch 學(xué)習(xí) 190
5.3 RNN的實現(xiàn) 192
5.3.1 RNN層的實現(xiàn) 193
5.3.2 Time RNN層的實現(xiàn) 197
5.4 處理時序數(shù)據(jù)的層的實現(xiàn) 202
5.4.1 RNNLM的全貌圖 202
5.4.2 Time層的實現(xiàn) 205
5.5 RNNLM的學(xué)習(xí)和評價 207
5.5.1 RNNLM的實現(xiàn) 207
5.5.2 語言模型的評價 211
5.5.3 RNNLM的學(xué)習(xí)代碼 213
5.5.4 RNNLM的Trainer類 216
5.6 小結(jié) 217
第6 章 Gated RNN 219
6.1 RNN的問題 220
6.1.1 RNN的復(fù)習(xí) 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層的結(jié)構(gòu) 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的實現(xiàn) 240
6.4 使用LSTM的語言模型 248
6.5 進(jìn)一步改進(jìn)RNNLM 255
6.5.1 LSTM層的多層化 256
6.5.2 基于Dropout抑制過擬合 257
6.5.3 權(quán)重共享 262
6.5.4 更好的RNNLM的實現(xiàn) 263
6.5.5 前沿研究 269
6.6 小結(jié) 270
第7 章 基于RNN生成文本 273
7.1 使用語言模型生成文本 274
7.1.1 使用RNN生成文本的步驟 274
7.1.2 文本生成的實現(xiàn) 278
7.1.3 更好的文本生成 281
7.2 seq2seq 模型 283
7.2.1 seq2seq 的原理 283
7.2.2 時序數(shù)據(jù)轉(zhuǎn)換的簡單嘗試 287
7.2.3 可變長度的時序數(shù)據(jù) 288
7.2.4 加法數(shù)據(jù)集 290
7.3 seq2seq 的實現(xiàn) 291
7.3.1 Encoder類 291
7.3.2 Decoder類 295
7.3.3 Seq2seq 類 300
7.3.4 seq2seq 的評價 301
7.4 seq2seq 的改進(jìn) 305
7.4.1 反轉(zhuǎn)輸入數(shù)據(jù)(Reverse) 305
7.4.2 偷窺(Peeky) 308
7.5 seq2seq 的應(yīng)用 313
7.5.1 聊天機器人 314
7.5.2 算法學(xué)習(xí) 315
7.5.3 自動圖像描述 316
7.6 小結(jié) 318
第8 章 Attention 321
8.1 Attention 的結(jié)構(gòu) 321
8.1.1 seq2seq 存在的問題 322
8.1.2 編碼器的改進(jìn) 323
8.1.3 解碼器的改進(jìn)① 325
8.1.4 解碼器的改進(jìn)② 333
8.1.5 解碼器的改進(jìn)③ 339
8.2 帶Attention 的seq2seq 的實現(xiàn) 344
8.2.1 編碼器的實現(xiàn) 344
8.2.2 解碼器的實現(xiàn) 345
8.2.3 seq2seq 的實現(xiàn) 347
8.3 Attention 的評價 347
8.3.1 日期格式轉(zhuǎn)換問題 348
8.3.2 帶Attention 的seq2seq 的學(xué)習(xí) 349
8.3.3 Attention 的可視化 353
8.4 關(guān)于Attention 的其他話題 356
8.4.1 雙向RNN 356
8.4.2 Attention 層的使用方法 358
8.4.3 seq2seq 的深層化和skip connection 360
8.5 Attention 的應(yīng)用 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 小結(jié) 373
附錄A sigmoid 函數(shù)和tanh 函數(shù)的導(dǎo)數(shù) 375
A.1 sigmoid 函數(shù) 375
A.2 tanh 函數(shù) 378
A.3 小結(jié) 380
附錄B 運行WordNet 381
B.1 NLTK的安裝 381
B.2 使用WordNet獲得同義詞 382
B.3 WordNet和單詞網(wǎng)絡(luò) 384
B.4 基于WordNet的語義相似度 385
附錄C GRU 387
C.1 GRU的接口 387
C.2 GRU的計算圖 388
后記 391
參考文獻(xiàn) 395