免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
【NLP】 深度學(xué)習(xí)NLP開篇-循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)

從這篇文章開始,有三AI-NLP專欄就要進(jìn)入深度學(xué)習(xí)了。本文會(huì)介紹自然語(yǔ)言處理早期標(biāo)志性的特征提取工具-循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。首先,會(huì)介紹RNN提出的由來;然后,詳細(xì)介紹RNN的模型結(jié)構(gòu),前向傳播和反向傳播的過程;最后,討論RNN的特點(diǎn)及其優(yōu)劣勢(shì)。

作者&編輯 | 小Dream哥

完整的NLP深度學(xué)習(xí)介紹,應(yīng)該從反向傳播(BP)開始,進(jìn)而介紹深度神經(jīng)網(wǎng)絡(luò)(DNN),卷積神經(jīng)網(wǎng)絡(luò)(CNN)也是必不可少的內(nèi)容。鑒于有三AI已經(jīng)發(fā)布了大量的CV相關(guān)的文章,其中必有相關(guān)的介紹。所以,在NLP專欄就暫不介紹相關(guān)的內(nèi)容了。如果有需要的同學(xué),可以留言提出來。

1 引言:RNN

對(duì)于一些序列輸入的信息,例如語(yǔ)音、語(yǔ)言等,不同時(shí)刻之間的輸入存在相互的影響,需要一種模型能夠“記憶”歷史輸入的信息,進(jìn)而對(duì)整個(gè)序列進(jìn)行完整的特征提取和表征。

循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)就是面對(duì)這樣的需求提出來的,它能夠“記憶”序列輸入的歷史信息,從而能夠較好的對(duì)整個(gè)序列進(jìn)行語(yǔ)義建模。

目前,RNN及其變種在NLP領(lǐng)域有著廣泛的應(yīng)用。語(yǔ)音識(shí)別、對(duì)話系統(tǒng)、機(jī)器翻譯、情感分析等等領(lǐng)域,在產(chǎn)業(yè)界,RNN及其變種都是最主要的特征提取工具。

關(guān)于RNN的特性,這里先不做太多理論上的說明,等介紹完其結(jié)構(gòu)、前向傳播和反向傳播后我們?cè)賮碛懻摗?/p>

基于篇幅的限制,本文會(huì)先介紹最基本的RNN模型結(jié)構(gòu)和原理,LSTM會(huì)在下一篇文章中做詳細(xì)的介紹。

2 RNN的結(jié)構(gòu)

如上圖所示,是RNN的結(jié)構(gòu)圖。相較于CNN繁雜的卷積運(yùn)算過程和復(fù)雜的網(wǎng)絡(luò)層次,RNN的模型結(jié)構(gòu)看上去相當(dāng)?shù)暮?jiǎn)潔。同樣的,RNN模型的結(jié)構(gòu)也分為輸入層(Input Layer)、隱藏層(Hidden Layer)和輸出層(Output Layer)。圖中的箭頭表示數(shù)據(jù)的流動(dòng),需要注意的是在隱藏層,有一個(gè)回流的箭頭,這是這個(gè)箭頭的作用,使得RNN具有了“記憶”的能力。

這樣看,同學(xué)們可能還無法看清楚數(shù)據(jù)在RNN模型內(nèi)到底是如何流動(dòng)的。我們將RNN模型的單元按時(shí)間展開,如下圖所示:

圖片來自:https://www.nature.com/articles/nature14539

可以看到,不同時(shí)刻的數(shù)據(jù)x_t與上一時(shí)刻的狀態(tài)s_(t-1),從輸入層輸入,經(jīng)過一系列運(yùn)算(激活函數(shù))之后,得到該時(shí)刻的狀態(tài)s_t,s_t再經(jīng)過矩陣運(yùn)算得到該時(shí)刻的輸出o_t,同時(shí)t時(shí)刻的狀態(tài)s_t會(huì)傳給下一時(shí)刻的輸入層。

通過這種方式,任意時(shí)刻的序列輸入都會(huì)包含前面所有時(shí)刻的狀態(tài)信息,就實(shí)現(xiàn)了“記憶”的目的,實(shí)際就是一種殘差的結(jié)構(gòu)。

需要注意的是,這里所有的RNN結(jié)構(gòu)單元是權(quán)重共享的,用大白話說,就是只有一個(gè)RNN單元。

下面我們來詳細(xì)看看數(shù)據(jù)的流動(dòng)過程,也就是RNN的正向傳播與反向傳播過程。

3 RNN的正向傳播

RNN的正向傳播過程,就是通過輸入數(shù)據(jù)x_t,求該時(shí)刻的RNN單元狀態(tài)(Cell State)s_t以及輸出o_t的過程。

我們先來看s_t

U和W是權(quán)重參數(shù),f是激活函數(shù),激活函數(shù)有sigmoid、relu以及tanh等。

o_t的計(jì)算過程為:

V是權(quán)重參數(shù),g是輸出函數(shù),因?yàn)橥ǔJ穷A(yù)測(cè)類別,所以一般是softmax。

4 RNN的反向傳播

下面我們基于RNN的正向傳播過程來介紹下RNN的反向傳播過程。RNN的反向傳播與DNN的反向傳播的基本理論是一致的。差別在于,因?yàn)镽NN是序列的輸入,因此其反向傳播是基于時(shí)間的,叫BPTT(Back PropagationThrough Time)。

與DNN一致,反向傳播的過程其實(shí)就是更新參數(shù)U,W,V的過程。知道反向傳播的同學(xué)應(yīng)該知道,更新,W,V其實(shí)就是求梯度。

用L_t表示t時(shí)刻的模型損失,則輸入完一個(gè)序列后的總損失值為:

我們先來看參數(shù)V的更新,根據(jù)偏導(dǎo)公式,

損失函數(shù)通常為交叉熵,因此,

再來看看W和U的更新,像DNN的反向傳播一樣,我們引入一個(gè)中間變量,暫稱之誤差delta,t時(shí)刻的誤差delta_t:

我們的目標(biāo)是要得到一個(gè)遞推公式,用delta_(t+1)來表示delta_t,注意這里激活函數(shù)用的是tanh函數(shù)。

最后時(shí)刻的誤差可以表示為:

這樣就可以通過delta_T一步一步得到所有時(shí)刻的誤差。

那么,怎么通過誤差得到W和U的梯度呢?

羅列了一大堆的公式,肯定有同學(xué)看花了眼。公式推導(dǎo)有不明白的地方,沒有關(guān)系,我們暫且先放下,后面再慢慢的思考,最重要的是理解反向傳播時(shí),梯度更新的思想和技巧。下面我?guī)е蠹铱偨Y(jié)一下這個(gè)過程,相信你能獲益匪淺。

1.正向傳播,求得所有時(shí)刻的x_t,o_t,s_t

2. 根據(jù)梯度公式,求V的梯度

3. 求得T時(shí)刻的誤差delta_T

4.根據(jù)誤差的遞推公式,求得所有時(shí)刻的誤差delta_1,delta_2,...,delta_T

5. 根據(jù)梯度公式,和上述誤差值求得W的梯度

6. 根據(jù)梯度公式,和上述誤差值求得U的梯度

7. 更新權(quán)重參數(shù)

總結(jié)

上文詳細(xì)講述了RNN的模型結(jié)構(gòu)及其正向和反向傳播過程。

RNN雖然理論上可以很漂亮的解決序列數(shù)據(jù)的訓(xùn)練,但是它也像DNN一樣有梯度消失的問題,當(dāng)序列很長(zhǎng)的時(shí)候問題尤其嚴(yán)重。雖然同選擇合適的激活函數(shù)等方法能夠一定程度的減輕該問題。但人們往往更青睞于使用RNN的變種。

因此,上面的RNN模型一般都沒有直接應(yīng)用的領(lǐng)域。在語(yǔ)音識(shí)別,對(duì)話系統(tǒng)以及機(jī)器翻譯等NLP領(lǐng)域?qū)嶋H應(yīng)用比較廣泛的是基于RNN模型的變種。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
「NLP」 NLP中應(yīng)用最廣泛的特征抽取模型-LSTM
循環(huán)神經(jīng)網(wǎng)絡(luò)
CS224d-Day 5: RNN快速入門
LSTM模型與前向反向傳播算法
一文詳解循環(huán)神經(jīng)網(wǎng)絡(luò)及股票預(yù)測(cè)實(shí)戰(zhàn)(完整Python代碼)
《Deep learning 中譯版第10章10.1~10.2》
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服