動手學pytorch 語言模型

2022-08-21 00:52:51 字數 2762 閱讀 1832

假設序列\(w_1, w_2, \ldots, w_t\)中的每個詞是依次生成的,我們有

\[\begin

p(w_1, w_2, \ldots, w_t)

&= \prod_^t p(w_t \mid w_1, \ldots, w_)\\

&= p(w_1)p(w_2 \mid w_1) \cdots p(w_t \mid w_1w_2\cdots w_)

\end

\]例如,一段含有4個詞的文字序列的概率

\[p(w_1, w_2, w_3, w_4) = p(w_1) p(w_2 \mid w_1) p(w_3 \mid w_1, w_2) p(w_4 \mid w_1, w_2, w_3).

\]語言模型的引數就是詞的概率以及給定前幾個詞情況下的條件概率。設訓練資料集為乙個大型文字語料庫,如維基百科的所有條目,詞的概率可以通過該詞在訓練資料集中的相對詞頻來計算,例如,\(w_1\)的概率可以計算為:

\[\hat p(w_1) = \frac

\]其中\(n(w_1)\)為語料庫中以\(w_1\)作為第乙個詞的文字的數量,\(n\)為語料庫中文字的總數量。

類似的,給定\(w_1\)情況下,\(w_2\)的條件概率可以計算為:

\[\hat p(w_2 \mid w_1) = \frac

\]其中\(n(w_1, w_2)\)為語料庫中以\(w_1\)作為第乙個詞,\(w_2\)作為第二個詞的文字的數量。

序列長度增加,計算和儲存多個詞共同出現的概率的複雜度會呈指數級增加。\(n\)元語法通過馬爾可夫假設簡化模型,馬爾科夫假設是指乙個詞的出現只與前面\(n\)個詞相關,即\(n\)階馬爾可夫鏈(markov chain of order \(n\)),如果\(n=1\),那麼有\(p(w_3 \mid w_1, w_2) = p(w_3 \mid w_2)\)。基於\(n-1\)階馬爾可夫鏈,我們可以將語言模型改寫為

\[p(w_1, w_2, \ldots, w_t) = \prod_^t p(w_t \mid w_, \ldots, w_) .

\]以上也叫\(n\)元語法(\(n\)-grams),它是基於\(n - 1\)階馬爾可夫鏈的概率語言模型。例如,當\(n=2\)時,含有4個詞的文字序列的概率就可以改寫為:

\[\begin

p(w_1, w_2, w_3, w_4)

&= p(w_1) p(w_2 \mid w_1) p(w_3 \mid w_1, w_2) p(w_4 \mid w_1, w_2, w_3)\\

&= p(w_1) p(w_2 \mid w_1) p(w_3 \mid w_2) p(w_4 \mid w_3)

\end

\]當\(n\)分別為1、2和3時,我們將其分別稱作一元語法(unigram)、二元語法(bigram)和三元語法(trigram)。例如,長度為4的序列\(w_1, w_2, w_3, w_4\)在一元語法、二元語法和三元語法中的概率分別為

\[\begin

p(w_1, w_2, w_3, w_4) &= p(w_1) p(w_2) p(w_3) p(w_4) ,\\

p(w_1, w_2, w_3, w_4) &= p(w_1) p(w_2 \mid w_1) p(w_3 \mid w_2) p(w_4 \mid w_3) ,\\

p(w_1, w_2, w_3, w_4) &= p(w_1) p(w_2 \mid w_1) p(w_3 \mid w_1, w_2) p(w_4 \mid w_2, w_3) .

\end

\]當\(n\)較小時,\(n\)元語法往往並不準確。例如,在一元語法中,由三個詞組成的句子「你走先」和「你先走」的概率是一樣的。然而,當\(n\)較大時,\(n\)元語法需要計算並儲存大量的詞頻和多詞相鄰頻率。

相鄰的兩個隨機小批量在原始序列上的位置不一定相毗鄰。

在相鄰取樣中,相鄰的兩個隨機小批量在原始序列上的位置相毗鄰。

x: tensor([[ 0,  1,  2,  3,  4,  5],

[15, 16, 17, 18, 19, 20]]),

y: tensor([[ 1, 2, 3, 4, 5, 6],

[16, 17, 18, 19, 20, 21]])

x: tensor([[ 6, 7, 8, 9, 10, 11],

[21, 22, 23, 24, 25, 26]]),

y: tensor([[ 7, 8, 9, 10, 11, 12],

[22, 23, 24, 25, 26, 27]])

動手學深度學習 語言模型

語言模型 一段自然語言文字可以看作是乙個離散時間序列,給定乙個長度為t tt的詞的序列 1,2,t,omega omega 1 2 t 語言模型的目標就是評估該序列是否合理,即計算該序列的概率。假設序列的每個詞是依次生成的,則 p 1,2 t t 1tp t 1,t 1 p 1 p 2 1 p t ...

Pytorch 動手學深度學習(二)

學習安排如下 task03 過擬合 欠擬合及其解決方案 梯度消失 梯度 迴圈神經網路高階 1天 task04 機器翻譯及相關技術 注意力機制與seq2seq模型 transformer 1天 task05 卷積神經網路基礎 lenet 卷積神經網路高階 1天 梯度消失部分,主要是協變數偏移 標籤偏移...

RNN 《動手學深度學習pytorch》

rnn存在的問題 梯度較容易出現衰減或 bptt 改進 gru 控迴圈神經 絡 捕捉時間序列中時間步距離較 的依賴關係 長短期記憶long short term memory 遺忘門 控制上一時間步的記憶細胞 輸入門 控制當前時間步的輸入 輸出門 控制從記憶細胞到隱藏狀態 記憶細胞 種特殊的隱藏狀態...