《TensorFlow自然語言處理及應用》以TensorFlow為平臺,講述TensorFlow與自然語言的技術(shù)及開發(fā)。書中每章都以理論開始,以TensorFlow應用及自然語言分析結(jié)束,將理論與實踐相結(jié)合,讓讀者可以快速掌握TensorFlow與自然語言分析。本書共9章,主要內(nèi)容為TensorFlow與編程、自然語言處理與深度學習基礎(chǔ)、神經(jīng)網(wǎng)絡(luò)算法基礎(chǔ)、詞嵌入、卷積神經(jīng)網(wǎng)絡(luò)分析與文本分類、幾種經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)及語言模型、長短期記憶及自動生成文本、其他網(wǎng)絡(luò)的經(jīng)典分析與應用。
《TensorFlow自然語言處理及應用》注重應用,實例豐富,可作為高等院校人工智能相關(guān)專業(yè)的教材,也可作為研究TensorFlow與自然語言分析的廣大科研人員、學者、工程技術(shù)人員的參考書籍。
每章都以理論開始,以 TensorFlow 應用及自然語言分析結(jié)束,將理論與實踐相結(jié)合,讓讀者可以快速掌握 TensorFlow 與自然語言分析。
?由淺入深,循序漸進 首先介紹 TensorFlow 框架本身的特點與編程實現(xiàn),然后介紹NLP在TensorFlow中的實現(xiàn),包括詞嵌入的各種方法、CNN/RNN/LSTM 的 TensorFlow實現(xiàn)及應用、LSTM在文本生成中的應用等。
?注重應用,實例豐富 給出了50多個實例,采用 TensorFlow 代碼實現(xiàn)自然語言處理,可使讀者更容易理解自然語言處理技術(shù)的原理。
?對比學習,視角直觀 使用同一組數(shù)據(jù)集分析不同實例,利用不同方法進行求解,比較各種方法的求解結(jié)果,通過對比學習,讀者能夠更直觀地感受各方法的優(yōu)缺點。
?資源豐富,便于教學 為了便于教師教學,提供程序代碼、教學課件等教學資料,獲取方式詳見前言。
近年來,隨著機器學習和深度學習的發(fā)展,TensorFlow作為它們的開源框架,也得到了快速發(fā)展。TensorFlow的核心組件包括分發(fā)中心、執(zhí)行器、內(nèi)核應用和設(shè)備層,它的工作原理是基于數(shù)據(jù)流圖和計算圖的相互轉(zhuǎn)化過程。
TensorFlow的前身是DistBelief神經(jīng)網(wǎng)絡(luò)算法庫,它的功能是構(gòu)建各尺度下的神經(jīng)網(wǎng)絡(luò)分布式學習和交互系統(tǒng),也被稱為第一代機器學習系統(tǒng)。隨著時間的推移,DistBelief逐漸發(fā)展并應用于許多谷歌產(chǎn)品中,包括語言識別、圖像識別、自然語言處理等。隨著異構(gòu)硬件和多核在CPU上運行效率的需求,TensorFlow應運而生。由于TensorFlow靈活高效且支持各種不同類型的硬件,故其在各領(lǐng)域中得到了廣泛的應用。
隨著計算機和互聯(lián)網(wǎng)的廣泛應用,計算機可處理的自然語言文本數(shù)量空前增長,面向海量信息的文本挖掘、信息提取、跨語言信息處理、人工交互等應用需求急速增長,自然語言處理研究必將對人們的生活產(chǎn)生深遠的影響。自然語言處理是人工智能中最困難的問題之一,對自然語言處理的研究是充滿魅力與挑戰(zhàn)的,其中漢語相對于其他語種更復雜,更難以分析。
近年來自然語言處理(NLP)技術(shù)已經(jīng)取得了階段性進展,在電商、金融、翻譯、旅游等行業(yè)有了廣泛應用,應用場景涵蓋語音交互、文本分類、圖像識別等。在深度學習技術(shù)的驅(qū)動下,自然語言處理技術(shù)應用又上了一個新臺階。TensorFlow作為廣泛使用的深度學習框架,在自然語言處理領(lǐng)域得到了廣泛應用。之所以結(jié)合TensorFlow進行自然語言處理,是因為TensorFlow完全綁定兼容Python,即具備Python的特點,所以利用TensorFlow完全可以對大數(shù)據(jù)進行提取、分析、降維。
本書首先介紹TensorFlow框架本身的特點與編程實現(xiàn),然后介紹NLP在TensorFlow中的實現(xiàn),此部分內(nèi)容涉及詞嵌入的各種方法、CNN/RNN/LSTM的TensorFlow實現(xiàn)及應用、LSTM在文本生成中的應用等。采用TensorFlow代碼實現(xiàn)自然語言處理,可以使讀者更容易理解自然語言處理技術(shù)的原理。
本書主要內(nèi)容如下所述。
第1~3章介紹TensorFlow框架、自然語言處理與深度學習、神經(jīng)網(wǎng)絡(luò)算法等內(nèi)容,主要包括TensorFlow軟件特點及其編程實現(xiàn),自然語言處理與深度學習的定義、聯(lián)系、應用,神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)等內(nèi)容。通過這些內(nèi)容的學習,讀者可對TensorFlow的特點、編程應用、自然語言處理、深度學習、神經(jīng)網(wǎng)絡(luò)算法等有簡單的認識,輕松了解這些定義之間的區(qū)別與聯(lián)系。
第4章介紹詞嵌入的相關(guān)內(nèi)容,主要包括詞嵌入分布式表示、jieba分詞處理、離散表示法、word2vec模型等內(nèi)容。通過這些內(nèi)容的學習,讀者可對詞嵌入有全面的認識,也能體會到利用TensorFlow框架實現(xiàn)詞嵌入有多么簡單、快捷、方便。
第5~8章介紹深度學習及自然語言處理相關(guān)內(nèi)容,主要包括卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、長短期記憶、文本分析、語言模型、自動生成文本等內(nèi)容。通過這些內(nèi)容的學習,讀者可從各個方面深入透徹地了解深度神經(jīng)網(wǎng)絡(luò)的相關(guān)概念,學會利用神經(jīng)網(wǎng)絡(luò)解決自然語言處理等機器問題,進一步了解TensorFlow的強大功能,同時也就明白了為什么TensorFlow可以成為現(xiàn)今最為流行的軟件之一。
第9章介紹機器學習的綜合實例,在深度神經(jīng)網(wǎng)絡(luò)、自然語言處理的基礎(chǔ)上,綜合應用深度神經(jīng)網(wǎng)絡(luò)知識求解實際問題。其中有幾個實例使用的是同一組數(shù)據(jù)集,利用不同的方法進行求解,比較各種方法的求解結(jié)果,通過對比學習,讀者能夠更直觀地感受各方法的優(yōu)缺點,這樣讀者在以后的應用中可以根據(jù)需要選擇合適的方法。
【配套資源】
本書提供教學課件、程序代碼等配套資源,可以在清華大學出版社官方網(wǎng)站本書頁面下載,或者掃描封底的書圈二維碼在公眾號下載。
由于時間倉促,加之編者水平有限,書中錯誤和疏漏之處在所難免,誠懇地期望各領(lǐng)域的專家和廣大讀者批評指正。
編者
2024年8月
第1章 TensorFlow與編程 1
1.1 語言與系統(tǒng)的支持 1
1.2 TensFlow的特點 2
1.3 TensorFlow的環(huán)境搭建 3
1.3.1 安裝環(huán)境介紹 3
1.3.2 安裝TensorFlow 5
1.3.3 安裝測試 6
1.4 張量 7
1.4.1 張量的概念 7
1.4.2 張量的使用 8
1.4.3 NumPy庫 9
1.4.4 張量的階 10
1.4.5 張量的形狀 10
1.5 認識變量 11
1.5.1 變量的創(chuàng)建 11
1.5.2 變量的初始化 19
1.6 矩陣的操作 21
1.6.1 矩陣的生成 22
1.6.2 矩陣的變換 25
1.7 圖的實現(xiàn) 31
1.8 會話的實現(xiàn) 34
1.9 讀取數(shù)據(jù)方式 36
1.9.1 列表格式 37
1.9.2 讀取圖像數(shù)據(jù) 38
第2章 自然語言處理與深度學習基礎(chǔ) 40
2.1 自然語言概述 40
2.1.1 自然語言處理面臨的困難 40
2.1.2 自然語言處理的發(fā)展趨勢 41
2.1.3 自然語言處理的特點 42
2.2 NLP技術(shù)前沿與未來趨勢 43
2.2.1 挑戰(zhàn)與突破 43
2.2.2 人機交互的未來 43
2.2.3 未來發(fā)展趨勢與展望 44
2.2.4 技術(shù)挑戰(zhàn)與解決路徑 44
2.3 深度學習 44
2.3.1 深度學習背景 45
2.3.2 深度學習的核心思想 46
2.3.3 深度學習的應用 47
2.4 深度學習的優(yōu)勢與劣勢 51
第3章 神經(jīng)網(wǎng)絡(luò)算法基礎(chǔ) 52
3.1 激活函數(shù)及實現(xiàn) 53
3.1.1 激活函數(shù)的用途 53
3.1.2 幾種激活函數(shù) 53
3.1.3 幾種激活函數(shù)的繪圖 57
3.2 門函數(shù)及實現(xiàn) 59
3.3 單個神經(jīng)元的擴展及實現(xiàn) 62
3.4 構(gòu)建多層神經(jīng)網(wǎng)絡(luò) 65
第4章 詞嵌入 69
4.1 詞嵌入概述 69
4.2 分布式表示 69
4.2.1 分布式假設(shè) 70
4.2.2 共現(xiàn)矩陣 70
4.2.3 存在的問題 73
4.3 jieba分詞處理 73
4.3.1 jieba庫的三種模式和常用函數(shù) 74
4.3.2 jieba庫分詞的其他操作 75
4.3.3 中文詞頻統(tǒng)計實例 81
4.4 離散表示 82
4.4.1 one-hot編碼 82
4.4.2 詞袋模型 87
4.4.3 TF-IDF算法 90
4.4.4 n-gram模型 92
4.5 word2vec模型 98
4.5.1 word2vec模型介紹 98
4.5.2 word2vec模型結(jié)構(gòu) 103
4.5.3 Skip-gram算法 105
4.5.4 CBOW算法 106
4.5.5 CBOW算法與Skip-gram算法的對比 107
4.5.6 算法改進 108
4.5.7 訓練概率 109
4.5.8 word2vec實現(xiàn) 110
第5章 卷積神經(jīng)網(wǎng)絡(luò)分析與文本分類 120
5.1 全連接網(wǎng)絡(luò)的局限性 120
5.2 卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) 121
5.2.1 卷積層 122
5.2.2 池化層 129
5.2.3 全連接層 131
5.3 卷積神經(jīng)網(wǎng)絡(luò)的訓練 131
5.3.1 池化層反向傳播 132
5.3.2 卷積層反向傳播 134
5.4 卷積神經(jīng)網(wǎng)絡(luò)的實現(xiàn) 139
5.4.1 識別0和1數(shù)字 139
5.4.2 預測MNIST數(shù)字 145
5.5 NLP的卷積 149
5.5.1 NLP卷積概述 149
5.5.2 用于文本分類的CNN 151
第6章 幾種經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò) 161
6.1 AlexNet 161
6.1.1 AlexNet的結(jié)構(gòu) 161
6.1.2 AlexNet的亮點 162
6.1.3 AlexNet的實現(xiàn) 163
6.2 DeepID網(wǎng)絡(luò) 168
6.3 VGGNet 169
6.3.1 VGGNet的特點 169
6.3.2 VGGNet的結(jié)構(gòu) 169
6.3.3 VGGNet的實現(xiàn) 171
6.4 Inception Net 175
6.4.1 Inception Net的原理 175
6.4.2 Inception Net的經(jīng)典應用 176
6.5 ResNet 181
6.5.1 ResNet的結(jié)構(gòu) 181
6.5.2 ResNet的實現(xiàn) 184
第7章 循環(huán)神經(jīng)網(wǎng)絡(luò)及語言模型 190
7.1 循環(huán)神經(jīng)網(wǎng)絡(luò)概述 190
7.1.1 循環(huán)神經(jīng)網(wǎng)絡(luò)的原理 191
7.1.2 循環(huán)神經(jīng)網(wǎng)絡(luò)的簡單應用 194
7.2 損失函數(shù) 195
7.3 梯度求解 196
7.3.1 E3關(guān)于參數(shù)V的偏導數(shù) 197
7.3.2 E3關(guān)于參數(shù)W的偏導數(shù) 197
7.3.3 E3關(guān)于參數(shù)U的偏導數(shù) 197
7.3.4 梯度消失問題 198
7.4 循環(huán)神經(jīng)網(wǎng)絡(luò)的經(jīng)典應用 198
7.4.1 實現(xiàn)二進制數(shù)加法運算 198
7.4.2 實現(xiàn)擬合回聲信號序列 202
7.4.3 基于字符級循環(huán)神經(jīng)網(wǎng)絡(luò)的語言模型 209
7.4.4 使用PyTorch實現(xiàn)基于字符級循環(huán)神經(jīng)網(wǎng)絡(luò)的語言模型 213
第8章 長短期記憶及自動生成文本 220
8.1 長短期記憶網(wǎng)絡(luò) 220
8.1.1 LSTM核心思想 221
8.1.2 LSTM詳解與實現(xiàn) 222
8.2 窺視孔連接 230
8.3 GRU網(wǎng)絡(luò)對MNIST數(shù)據(jù)集分類 231
8.4 雙向循環(huán)神經(jīng)網(wǎng)絡(luò)對MNIST數(shù)據(jù)集分類 233
8.5 CTC實現(xiàn)端到端訓練的語音識別模型 237
8.6 LSTM生成文本預測 244
8.6.1 模型訓練 244
8.6.2 預測文本 246
第9章 其他網(wǎng)絡(luò)的經(jīng)典分析與應用 248
9.1 自編碼網(wǎng)絡(luò)及實現(xiàn) 248
9.1.1 自編碼網(wǎng)絡(luò)的結(jié)構(gòu) 248
9.1.2 自編碼網(wǎng)絡(luò)的代碼實現(xiàn) 249
9.2 棧式自編碼器及實現(xiàn) 256
9.2.1 棧式自編碼概述 256
9.2.2 棧式自編碼訓練 256
9.2.3 棧式自編碼實現(xiàn)MNIST手寫數(shù)字分類 257
9.2.4 棧式自編碼器的應用場合與實現(xiàn) 259
9.3 變分自編碼及實現(xiàn) 268
9.3.1 變分自編碼原理 268
9.3.2 變分自編碼模擬生成MNIST數(shù)據(jù) 269
9.4 條件變分自編碼及實現(xiàn) 275
9.4.1 條件變分自編碼概述 275
9.4.2 條件變分自編碼網(wǎng)絡(luò)生成MNIST數(shù)據(jù) 275
參考文獻 281