1章是對NLP的簡單介紹。該章將首先討論我們需要NLP的原因。接下來,將討論NLP中一些常見的子任務。之后,將討論NLP的兩個主要階段,即傳統(tǒng)階段和深度學習階段。通過研究如何使用傳統(tǒng)算法解決語言建模任務,我們將了解傳統(tǒng)階段NLP的特點。然后,將討論深度學習階段,在這一階段中深度學習算法被大量用于NLP。我們還將討論深度學習算法的主要系列。后,將討論一種基本的深度學習算法:全連接神經網絡。該章結束時會提供一份路線圖,簡要介紹后面的內容。 第2章介紹Python TensorFlow庫,這是我們實現解決方案的主要平臺。首先在TensorFlow中編寫一段代碼,執(zhí)行一個簡單的計算,并討論從運行代碼到得到結果這一過程中到底發(fā)生了什么。我們將詳細介紹TensorFlow的基礎組件。把Tensorflow比作豐富的餐廳,了解如何完成訂單,以便進一步加強對TensorFlow的理解。稍后,將討論TensorFlow的更多技術細節(jié),例如數據結構和操作(主要與神經網絡相關)。后,我們將實現一個全連接的神經網絡來識別手寫數字。這將幫助我們了解如何使用TensorFlow來實現端到端解決方案。 第3章首先討論如何用TensorFlow解決NLP任務。在該章中,我們將討論如何用神經網絡學習單詞向量或單詞表示。單詞向量也稱為詞嵌入。單詞向量是單詞的數字表示,相似單詞有相似值,不同單詞有不同值。首先,將討論實現這一目標的幾種傳統(tǒng)方法,包括使用稱為WordNet的大型人工構建知識庫。然后,將討論基于現代神經網絡的方法,稱為Word2vec,它在沒有任何人為干預的情況下學習單詞向量。我們將通過一個實例來了解Word2vec的機制。接著,將討論用于實現此目的的兩種算法變體:skip-gram和連續(xù)詞袋(CBOW)模型。我們將討論算法的細節(jié),以及如何在TensorFlow中實現它們。 第4章介紹與單詞向量相關的更高級方法。首先,會比較skip-gram和CBOW,討論其中哪一種有明顯優(yōu)勢。接下來,將討論可用于提高Word2vec算法性能的幾項改進。然后,將討論一種更新、更強大的詞嵌入學習算法:GloVe(全局向量)算法。后,將在文檔分類任務中實際觀察單詞向量。在該練習中,我們將看到單詞向量十分強大,足以表示文檔所屬的主題(例如,娛樂和運動)。 第5章討論卷積神經網絡(CNN),它是擅長處理諸如圖像或句子這樣的空間數據的神經網絡家族。首先,討論如何處理數據以及處理數據時涉及哪種操作,以便對CNN有較深的理解。接下來,深入研究CNN計算中涉及的每個操作,以了解CNN背后的數學原理。后,介紹兩個練習。練習使用CNN對手寫數字圖像進行分類,我們將看到CNN能夠在此任務上很快達到較高的準確率。接下來,我們將探討如何使用CNN對句子進行分類。特別地,我們要求CNN預測一個句子是否與對象、人物、位置等相關。 第6章介紹遞歸神經網絡。遞歸神經網絡(RNN)是一個可以模擬數據序列的強大的神經網絡家族。首先討論RNN背后的數學原理以及在學習期間隨時間更新RNN的更新規(guī)則。然后,討論RNN的不同變體及其應用(例如,一對一RNN和一對多RNN)。后,用RNN執(zhí)行文本生成任務的練習。我們用童話故事訓練RNN,然后要求RNN生成一個新故事。我們將看到在持久的長期記憶方面RNN表現不佳。后,討論更高級的RNN變體,即RNN-CF,它能夠保持更長時間的記憶。 第7章介紹長短期記憶網絡。RNN在保持長期記憶方面效果較差,這使我們需要探索能在更長時間內記住信息的更強大技術。我們將在該章討論一種這樣的技術:長短期記憶網絡(LSTM)。LSTM功能更強大,并且在許多時間序列任務中表現得優(yōu)于其他序列模型。首先通過一個例子,研究潛在的數學原理和LSTM的更新規(guī)則,以說明每個計算的重要性。然后,將了解為什么LSTM能夠更長時間地保持記憶。接下來,將討論如何進一步提高LSTM預測能力。后,將討論具有更復雜結構的幾種LSTM變體(具有窺孔連接的LSTM),以及簡化LSTM門控循環(huán)單元(GRU)的方法。 第8章介紹LSTM的應用:文本生成。該章廣泛評估LSTM在文本生成任務中的表現。我們將定性和定量地衡量LSTM產生的文本的好壞程度,還將比較LSTM、窺孔連接LSTM和GRU。后,將介紹如何將詞嵌入應用到模型中來改進LSTM生成的文本。 第9章轉到對多模態(tài)數據(即圖像和文本)的處理。在該章中,我們將研究如何自動生成給定圖像的描述。這涉及將前饋模型(即CNN)與詞嵌入層及順序模型(即LSTM)組合,形成一個端到端的機器學習流程。 第10章介紹有關神經機器翻譯(NMT)模型的應用。機器翻譯指的是將句子或短語從源語言翻譯成目標語言。首先討論機器翻譯是什么并簡單介紹機器翻譯歷史。然后,將詳細討論現代神經機器翻譯模型的體系結構,包括訓練和預測的流程。接下來,將了解如何從頭開始實現NMT系統(tǒng)。后,會探索改進標準NMT系統(tǒng)的方法。 第11章重點介紹NLP的現狀和未來趨勢。我們將討論前面提到的系統(tǒng)的相關新發(fā)現。該章將涵蓋大部分令人興奮的創(chuàng)新,并讓你直觀地感受其中的一些技術。 附錄向讀者介紹各種數學數據結構(例如,矩陣)和操作(例如,矩陣的逆),還將討論概率中的幾個重要概念。然后將介紹Keras,它是在底層使用TensorFlow的高級庫。Keras通過隱藏TensorFlow中的一些有難度的細節(jié)使得神經網絡的實現更簡單。具體而言,通過使用Keras實現CNN來介紹如何使用Keras。接下來,將討論如何使用TensorFlow中的seq2seq庫來實現一個神經機器翻譯系統(tǒng),所使用的代碼比在第11章中使用的代碼少得多。后,將向你介紹如何使用TensorBoard可視化詞嵌入的指南。TensorBoard是TensorFlow附帶的便捷可視化工具,可用于可視化和監(jiān)視TensorFlow客戶端中的各種變量。