神經聯合模型

  神經聯合模型的訓練;

  輸入:雙語語料 C={x,y}1N網絡

  輸出:模型參數 Θ函數

 (1)使用對其工具對雙語語料進行對齊,得到 C={ x, y, a}1N ,其中 a 爲對齊矩陣。工具

 (2)隨機初始化神經網絡參數 Θ
學習

 (3)從雙語語料 C 中隨機採樣一個句對{xk,yk,ak},而且從 y中隨機採樣一個 n 元組(yik,yi-1k,......,yi-N+1k) spa

  經過對齊信息得到源語言句子中大小爲 M 的上下文窗口 Cik (Xai-(M+1)/2,....,Xai-1,Xai,....,Xai+(M+1)/2)翻譯

 (4)將 n 元組(yik,yi-1k,......,yi-N+1k) 和上下文窗口 Ci輸入神經網絡,計算損失 Likorm

 (5)使用損失函數 Lik  計算參數梯度 σik ,並使用梯度降低法更新模型參數 Θ = Θ - α σik ,其中 α 是學習率blog

 (6)若損失函數 L>ε 則重複步驟 (3)—(5)  繼承

語言模型:

  最先成功的語言模型是基於固定長度的序列的標記模型,成爲 n-gram 模型,一個n-gram  模型是一個包含 n 個標記的序列。ci

  基於n-gram 模型定義了一個條件機率,給定前 n-1 個標記後的第 n 個標記的條件機率,該模型使用這些條件分佈的乘積來定義較長序列的機率分佈:

             P(x1,...,xτ)= P(x1,...,xn-1)∏ τ t=n   P(xt | xt-n+1,....,xt-1

神經語言聯合模型:

  N元神經網絡語言模型講前邊 N-1 個詞轉換爲詞向量,而後輸入到神經網絡,通過若干線性層和非線性層來預測下一個詞,與N元神經網絡語言模型不一樣

  的地方在於神經網絡語言模型除了使用目標語言的前 N-1 個詞做爲輸入外,源語言句子的信息一樣做爲輸入來對下一個目標語言次進行預測。

   例如:

 

 

 

 

 

 

 

 

 

 

 

  (1)將 「 經濟、發展、變 」 經過詞向量-表映射爲對應的詞向量,並將這三個詞的詞向量進行拼接,而後做爲線性層的輸入。

  (2)拼接後的向量通過一個非線性層(通常採用雙正切函數 tanh )獲得特徵表示

  (3)基於學到的特徵表示,在通過一個線性層映射爲詞表大小的向量

  (4)最終使用 softmax 層得到詞 「 慢 」 做爲 「 經濟、發展、變 」 以後的第四個詞的機率 ( P(慢 |  經濟、發展、變 ))。

假設中文句子 y = { 在近幾年經濟發展變慢了 } 是從英文句子 x = { economic growth has slowed down in recent years } 得來:

  根據已知的對齊信息,中文 「 慢 」 對齊到英文句子的詞是 slowed ,則以 slowed 爲中心,取一個大小爲 m ( 假設爲5 ) 的窗口 { growth、 has 、slowed、 down、 in }

  此時語言模型和翻譯模型的聯合模型即是計算 P(慢 |  經濟、發展、變 、growth、 has 、slowed、 down、 in } 

  (1)若 y對齊到源語言的多個詞,則以這幾個詞爲中心當作源語言句子上下文窗口的中心。

  (2)若 yi 沒有對齊到源語言句子中的任何詞,則向前找一個距離最近的存在對齊關係的目標語言詞,繼承該次對應的源語言句子的上下層窗口。

softmax函數:

  softmax用於多分類過程當中,它將多個神經元的輸出,映射到(0,1)區間內,能夠當作機率來理解,從而來進行多分類,而這些值的累和爲1(知足機率的性質)。

熵:

  熵是一個不肯定性的測度,也就是說,咱們對於某件事情知道的越多,則熵就越小,咱們對其結果就越不感到意外。關於未知分佈最合理的推斷應該是符合已知知識最不

  肯定或最大隨機的推斷。

交叉熵:

  基於神經網絡的聯合模型一般使用交叉熵做爲損失函數。

 

 

 

 

 

 

 

 

 

 

 

一個隨機變量 ,爲用於近似的改路分佈,則隨機變量和模型之間的交叉熵定義爲:

交叉熵經常用於模型的選擇,若越小,則model越好。

相關文章
相關標籤/搜索