《TensorFlow+Keras自然語言處理實戰》是清華大學出版社出版的一本圖書,作者是王曉華。
神經網路是深度學習的核心內容,TensorFlow是現在最為流行的深度學習框架之一。本書使用TensorFlow 2.1作為自然語言處理實現的基本工具,引導深度學習的入門讀者,從搭建環境開始,逐步深入到理論、代碼、套用實踐中去。 本書分為10章,內容包括搭建環境、TensorFlow基本和高級API的使用、MNIST手寫體分辨實戰、Dataset API、ResNet模型、詞嵌入(word embedding)模型的實現,最後給出3個實戰案例:文本分類、基於編碼器的拼音漢字轉化模型,以及基於編碼器、解碼器的拼音漢字翻譯模型。 本書內容詳盡、示例豐富,是機器學習和深度學習讀者必備的參考書,非常適合開設人工智慧相關專業的大中專院校師生閱讀,也可作為高等院校計算機及相關專業教材使用。
目 錄
第1章 自然語言之道 1
1.1 何謂自然語言處理 1
1.1.1 自然語言處理是門技術 1
1.1.2 傳統自然語言處理 2
1.2 自然語言處理為什麼難——以最簡單的情感分析為例 3
1.3 自然語言處理的展望 5
1.3.1 自然語言處理對於人工智慧的意義 6
1.3.2 自然語言在金融、法律、醫療健康等方面的套用 6
1.4 搭建環境1:安裝Python 7
1.4.1 Anaconda的下載與安裝 7
1.4.2 Python編譯器PyCharm的安裝 10
1.4.3 使用Python計算softmax函式 14
1.5 搭建環境2:安裝TensorFlow 2.1 15
1.5.1 安裝TensorFlow 2.1的CPU版本 15
1.5.2 安裝TensorFlow 2.1的GPU版本 15
1.5.3 練習——Hello TensorFlow 18
1.6 實戰——酒店評論的情感分類 19
1.6.1 第一步:數據的準備 19
1.6.2 第二步:數據的處理 20
1.6.3 第三步:模型的設計 20
1.6.4 第四步:模型的訓練 21
1.6.5 第五步:模型的結果和展示 22
1.7 本章小結 22
第2章 Hello TensorFlow & Keras 23
2.1 TensorFlow & Keras 23
2.1.1 模型!模型!還是模型! 24
2.1.2 使用Keras API實現鳶尾花分類的例子(順序模式) 24
...
2.1.3 使用Keras函式式編程實現鳶尾花分類的例子(重點) 27
2.1.4 使用保存的Keras模式對模型進行復用 30
2.1.5 使用TensorFlow標準化編譯對iris模型進行擬合 31
2.1.6 多輸入單一輸出TensorFlow編譯方法(選學) 35
2.1.7 多輸入多輸出TensorFlow編譯方法(選學) 38
2.2 全連線層詳解 40
2.2.1 全連線層的定義與實現 40
2.2.2 使用TensorFlow自帶的API實現全連線層 42
2.2.3 列印顯示已設計的model結構和參數 45
2.3 懶人的福音——Keras模型庫 47
2.3.1 ResNet50模型和參數的載入 47
2.3.2 使用ResNet50作為特徵提取層建立模型 49
2.4 本章小結 51
第3章 深度學習的理論基礎 52
3.1 BP神經網路簡介 53
3.2 BP神經網路兩個基礎算法詳解 56
3.2.1 最小二乘法(LS算法)詳解 56
3.2.2 道士下山的故事——梯度下降算法 58
3.3 反饋神經網路反向傳播算法介紹 61
3.3.1 深度學習基礎 61
3.3.2 鏈式求導法則 62
3.3.3 反饋神經網路原理與公式推導 64
3.3.4 反饋神經網路原理的激活函式 69
3.3.5 反饋神經網路原理的Python實現 70
3.4 本章小結 74
第4章 卷積層與MNIST實戰 75
4.1 卷積運算基本概念 75
4.1.1 卷積運算 76
4.1.2 TensorFlow中卷積函式實現詳解 78
4.1.3 池化運算 80
4.1.4 softmax激活函式 81
4.1.5 卷積神經網路原理 82
4.2 編程實戰:MNIST手寫體識別 85
4.2.1 MNIST數據集 85
4.2.2 MNIST數據集特徵和標籤介紹 87
4.2.3 TensorFlow 2.X編程實戰:MNIST數據集 89
4.2.4 使用自定義的卷積層實現MNIST識別 93
4.3 本章小結 96
第5章 TensorFlow Datasets和TensorBoard詳解 97
5.1 TensorFlow Datasets簡介 97
5.1.1 Datasets數據集的安裝 99
5.1.2 Datasets數據集的使用 99
5.2 Datasets數據集的使用——FashionMNIST 101
5.2.1 FashionMNIST數據集下載與展示 102
5.2.2 模型的建立與訓練 104
5.3 使用Keras對FashionMNIST數據集進行處理 106
5.3.1 獲取數據集 106
5.3.2 數據集的調整 107
5.3.3 使用Python類函式建立模型 107
5.3.4 Model的查看和參數列印 108
5.3.5 模型的訓練和評估 110
5.4 使用TensorBoard可視化訓練過程 112
5.4.1 TensorBoard資料夾的設定 113
5.4.2 TensorBoard的顯式調用 114
5.4.3 TensorBoard的使用 116
5.5 本章小結 119
第6章 從冠軍開始:ResNet 120
6.1 ResNet基礎原理與程式設計基礎 121
6.1.1 ResNet誕生的背景 121
6.1.2 模組工具的TensorFlow實現——不要重複造輪子 124
6.1.3 TensorFlow高級模組layers用法簡介 125
6.2 ResNet實戰:CIFAR100數據集分類 132
6.2.1 CIFAR100數據集簡介 132
6.2.2 ResNet殘差模組的實現 135
6.2.3 ResNet網路的實現 137
6.2.4 使用ResNet對CIFAR100數據集進行分類 140
6.3 ResNet的兄弟——ResNeXt 141
6.3.1 ResNeXt誕生的背景 141
6.3.2 ResNeXt殘差模組的實現 143
6.3.3 ResNeXt網路的實現 145
6.3.4 ResNeXt和ResNet的比較 146
6.4 本章小結 147
第7章 有趣的word embedding 148
7.1 文本數據處理 148
7.1.1 數據集介紹和數據清洗 149
7.1.2 停用詞的使用 151
7.1.3 詞向量訓練模型word2vec使用介紹 154
7.1.4 文本主題的提取:基於TF-IDF(選學) 157
7.1.5 文本主題的提取:基於TextRank(選學) 161
7.2 更多的word embedding方法——fastText和預訓練詞向量 164
7.2.1 fastText的原理與基礎算法 164
7.2.2 fastText訓練以及與TensorFlow 2.X的協同使用 166
7.2.3 使用其他預訓練參數做TensorFlow詞嵌入矩陣(中文) 172
7.3 針對文本的卷積神經網路模型簡介——字元卷積 173
7.3.1 字元(非單詞)文本的處理 173
7.3.2 卷積神經網路文本分類模型的實現——conv1d(一維卷積) 180
7.4 針對文本的卷積神經網路模型簡介——詞卷積 182
7.4.1 單詞的文本處理 183
7.4.2 卷積神經網路文本分類模型的實現——conv2d(二維卷積) 184
7.5 使用卷積對文本分類的補充內容 188
7.5.1 漢字的文本處理 188
7.5.2 其他細節 191
7.6 本章小結 191
第8章 實戰——站在冠軍肩膀上的情感分類實戰 193
8.1 GRU與情感分類 193
8.1.1 什麼是GRU 193
8.1.2 使用GRU的情感分類 195
8.1.3 TensorFlow中的GRU層詳解 196
8.1.4 單向不行就雙向 197
8.2 站在巨人肩膀上的情感分類 198
8.2.1 使用TensorFlow自帶的模型做文本分類 199
8.2.2 使用自定義的DPCNN做模型分類 203
8.3 本章小結 207
第9章 從0起步——自然語言處理的編碼器 208
9.1 編碼器的核心——注意力模型 209
9.1.1 輸入層——初始詞向量層和位置編碼器層 210
9.1.2 自注意力層(本書重點) 211
9.1.3 ticks和LayerNormalization 216
9.1.4 多頭自注意力 217
9.2 編碼器的實現 221
9.2.1 前饋層的實現 221
9.2.2 構建編碼器架構 223
9.3 實戰編碼器——漢字拼音轉化模型 226
9.3.1 漢字拼音數據集處理 227
9.3.2 漢字拼音轉化模型的確定 229
9.3.3 模型訓練部分的編寫 232
9.3.4 推斷函式的編寫 233
9.4 本章小結 234
第10章 從1起步——自然語言處理的解碼器 236
10.1 解碼器的核心——注意力模型 236
10.1.1 解碼器的輸入和互動注意力層的掩碼 237
10.1.2 為什麼通過掩碼操作能夠減少干擾 242
10.1.3 解碼器的輸出(移位訓練方法) 243
10.1.4 解碼器的實現 244
10.2 解碼器實戰——拼音漢字翻譯模型 246
10.2.1 翻譯模型 246
10.2.2 拼音漢字模型的訓練(注意訓練過程的錯位數據輸入) 252
10.2.3 拼音漢字模型的使用(循環輸出的問題) 254
10.3 本章小結 256