在第 9.3 節(jié)中,我們描述了馬爾可夫模型和 n-grams 用于語言建模,其中 token 的條件概率xt在時(shí)間步t只取決于 n?1以前的令牌。如果我們想在時(shí)間步長之前合并標(biāo)記的可能影響t?(n?1)在xt, 我們需要增加n. 然而,模型參數(shù)的數(shù)量也會隨之呈指數(shù)增長,因?yàn)槲覀冃枰鎯?|V|n詞匯集的數(shù)字 V. 因此,而不是建模 P(xt∣xt?1,…,xt?n+1)最好使用潛在變量模型:
在哪里ht?1是一個(gè)隱藏狀態(tài),存儲序列信息到時(shí)間步長t?1. 一般來說,任何時(shí)間步的隱藏狀態(tài)t可以根據(jù)當(dāng)前輸入計(jì)算xt和之前的隱藏狀態(tài)ht?1:
為了足夠強(qiáng)大的功能f在(9.4.2)中,潛變量模型不是近似值。畢竟, ht可以簡單地存儲到目前為止觀察到的所有數(shù)據(jù)。但是,它可能會使計(jì)算和存儲都變得昂貴。
回想一下,我們在第 5 節(jié)中討論了帶有隱藏單元的隱藏層 。值得注意的是,隱藏層和隱藏狀態(tài)指的是兩個(gè)截然不同的概念。如前所述,隱藏層是在從輸入到輸出的路徑上從視圖中隱藏的層。從技術(shù)上講,隱藏狀態(tài)是我們在給定步驟所做的任何事情的輸入,它們只能通過查看先前時(shí)間步驟的數(shù)據(jù)來計(jì)算。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN) 是具有隱藏狀態(tài)的神經(jīng)網(wǎng)絡(luò)。在介紹 RNN 模型之前,我們首先重溫一下5.1 節(jié)介紹的 MLP 模型。
import tensorflow as tf
from d2l import tensorflow as d2l
9.4.1. 沒有隱藏狀態(tài)的神經(jīng)網(wǎng)絡(luò)
讓我們看一下具有單個(gè)隱藏層的 MLP。令隱藏層的激活函數(shù)為?. 給定一小批示例X∈Rn×d批量大小 n和d輸入,隱藏層輸出 H∈Rn×h計(jì)算為
在(9.4.3)中,我們有權(quán)重參數(shù) Wxh∈Rd×h, 偏置參數(shù) bh∈R1×h, 以及隱藏單元的數(shù)量h, 對于隱藏層。因此, 在求和期間應(yīng)用廣播(參見第 2.1.4 節(jié))。接下來,隱藏層輸出
評論
查看更多