Deep Learning.ai學習筆記_第五門課_序列模型

目錄

第一週 循環序列模型

第二週 自然語言處理與詞嵌入

第三週 序列模型和注意力機制

 

第一週 循環序列模型

在進行語音識別時,給定一個輸入音頻片段X,並要求輸出對應的文字記錄Y,這個例子中輸入和輸出數據就是序列模型。

音樂生產問題也是使用序列數據的一個例子。

 

在自然語言處理中,首先需要決定怎樣表示一個序列裏單獨的單詞,解決辦法式創建一個詞典。然後每個單詞的序列表示可以使用該詞典長度的一維數組來表示,匹配的位置數據爲1,其它位置數據爲0。

下面看一個循環神經網絡模型:

 

RNN反向傳播示意圖:

 

如何構建一個語言模型呢?

首先需要一個訓練集,包含一個很大的英文文本語料(corpus)或者其它的語言,你想用於構建模型的語言的語料庫。語料庫是自然語言處理的一個專有名詞,意思就是很長的或者說數量衆多的英文句子組成的文本。

 

下圖是一個RNN構建序列的概率模型:

 

RNN的梯度消失:

 

 

GRU單元:

 

LSTM主要公式:

 

雙向RNN:

 

深層循環神經網絡(Deep RNNs)

 

下面看一下RNN單元:

 

LSTM模型可以更好地解決梯度消失問題,能夠更好地記住一條信息,並且可以在很多時間步中保存。

下面看下LSTM模塊:

 

 

第二週 自然語言處理與詞嵌入

在對單詞進行向量化表示的時候,可以對其特徵進行標誌學習,例如學習apple的相關特性後,可以依據orange與apple的相似程度,推斷出orange也會有相關的特性。一般可以定義一個多維的特徵向量,每一維表示一個特性判斷。

 

使用詞潛入,能夠有效解決一些同類型詞特性識別問題,其中該詞在訓練集中出現較少或者就沒有出現過。 當你的任務的訓練集相對較小時,詞嵌入的作用最明顯,所以它廣泛用於NLP領域。

 

詞嵌入的特性

如果你學習一些詞嵌入,通過算法來找到使得相似度最大化的單詞w,你確實可以得到完全正確的答案。例如,man和women的差值,求出king對應的差值單詞,比較理想的單詞是queen。

詞嵌入的一個顯著成果就是,可學習的類比關係的一般性。舉個例子,它能學會man對於woman相當於boy對於girl,因爲manwoman之間和kingqueen之間,還有boygirl之間的向量差在gender性別)這一維都是一樣的。

 

如何建立神經網絡來預測序列中的下一個單詞?如下圖模型

 

 

CBOW是從原始語句推測目標字詞;而Skip-Gram正好相反,是從目標字詞推測出原始語句。CBOW對小型數據庫比較合適,而Skip-Gram在大型語料中表現更好。 (下圖左邊爲CBOW,右邊爲Skip-Gram

 

 

情感分類任務就是看一段文本,然後分辨這個人是否喜歡他們在討論的這個東西,這是NLP中最重要的模塊之一,經常用在許多應用中(PS:例如,從用戶對某店鋪的評價留言信息,分析出是正面評價還負面評價,並給出最終的打分衡量數據)。 情感分類一個最大的挑戰就是可能標記的訓練集沒有那麼多。下圖是一個簡單的模型:

 

 

第三週 序列模型和注意力機制

目前,深度學習技術可以藉助seq2seq模型實現不同語言的互譯,以及識別圖片,給出圖片中物體的描述。如下圖,識別圖中貓,給出文字描述:

 

 

集束搜索算法能夠讓機器翻譯的記過更加貼近原意,而且語法也能夠儘量規整。

長度歸一化(Length normalization)是對集束搜索算法稍作調整的一種方式,幫助得到更好的結果。

 

當你使用RNN讀一個句子,於是另一個會輸出一個句子。我們要對其做一些改變,稱爲注意力模型(the Attention Model),並且這會使它工作得更好。注意力模型或者說注意力這種思想(The attention algorithm, the attention idea)已經是深度學習中最重要的思想之一,下圖是其運行模式:

 

注意力模型能夠讓一個神經網絡只注意到一部分的輸入句子,當它生成句子的時候,更像人類翻譯。模型如下圖:

 

 

 

參考資料:

1.https://blog.csdn.net/u013733326/article/details/80890454

2.http://www.ai-start.com

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章