日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

深度学习之循环神经网络(2)循环神经网络原理

發(fā)布時間:2023/12/15 循环神经网络 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习之循环神经网络(2)循环神经网络原理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

深度學(xué)習(xí)之循環(huán)神經(jīng)網(wǎng)絡(luò)(2)循環(huán)神經(jīng)網(wǎng)絡(luò)原理

  • 1. 全連接層
  • 2. 共享權(quán)值
  • 3. 全局語義
  • 4. 循環(huán)神經(jīng)網(wǎng)絡(luò)

?現(xiàn)在我們來考慮如何吃力序列信號,以文本序列為例,考慮一個句子:

“I dislike this boring movie”

通過Embedding層,可以將它轉(zhuǎn)換為shape為 [b,s,n][b,s,n][b,s,n]的張量, bbb為句子數(shù)量, sss為句子長度,n為向量長度。上述句子可以表示為shape為 [1,5,10][1,5,10][1,5,10]的張量,其中5代表句子單詞長度,10表示詞向量長度。

?接下來逐步探索能夠處理序列信號的網(wǎng)絡(luò)模型,為了便于表達,我們以情感分類任務(wù)為例,如下圖所示。情感分類任務(wù)通過分析給出的文本序列,提煉出文本數(shù)據(jù)表達的整體語義特征,從而預(yù)測輸入文本的感情類型: 正面評價或者負(fù)面評價。從分類角度來看,情感分類問題就是一個簡單的二分類問題,與圖片分類不一樣的是,由于輸入是文本序列,傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)并不能取得很好的效果。那么什么類型的網(wǎng)絡(luò)擅長處理序列數(shù)據(jù)呢?

情感分類任務(wù)

1. 全連接層

?首先我們想到的是,對于每個詞向量,分別使用一個全連接層網(wǎng)絡(luò)
o=σ(Wtxt+bt)\boldsymbol o=σ(\boldsymbol W_t \boldsymbol x_t+\boldsymbol b_t)o=σ(Wt?xt?+bt?)
提取語義特征,如下圖所示,各個單詞的詞向量通過sss個全連接層分類網(wǎng)絡(luò)1提取每個單詞的特征,所有單詞的特征合并,并通過分類網(wǎng)絡(luò)2輸出序列的類別概率分布,對于長度為sss的句子來說,至少需要sss個全網(wǎng)絡(luò)層。

全連接神經(jīng)網(wǎng)絡(luò)方案


這種方案的缺點有:

  • 網(wǎng)絡(luò)參數(shù)量是相當(dāng)可觀的,內(nèi)存占用和計算代價較高,同時由于每個序列的長度sss并不相同,網(wǎng)絡(luò)結(jié)構(gòu)是動態(tài)變化的;
  • 每個全連接層子網(wǎng)絡(luò)Wi\boldsymbol W_iWi?bi\boldsymbol b_ibi?只能感受當(dāng)前詞向量的輸入,并不能感知之前和之后的語境信息,導(dǎo)致句子整體語義的缺失,每個子網(wǎng)絡(luò)只能根據(jù)自己的輸入來提取高層特征,有如管中窺豹。

2. 共享權(quán)值

?在介紹卷積神經(jīng)網(wǎng)絡(luò)時,我們就比較過,卷積神經(jīng)網(wǎng)絡(luò)之所以在處理局部相關(guān)數(shù)據(jù)時優(yōu)于全連接網(wǎng)絡(luò),是因為它充分利用了權(quán)值共享的思想,大大減少了網(wǎng)絡(luò)的參數(shù)量,使得網(wǎng)絡(luò)訓(xùn)練起來更加高效。那么,我們在處理序列信號的問題上,能否借鑒權(quán)值共享的思想呢?

?如下圖方案所示,sss個全連接層的網(wǎng)絡(luò)并沒有實現(xiàn)權(quán)值共享。我們嘗試將這s個網(wǎng)絡(luò)層參數(shù)共享,這樣其實相當(dāng)于使用一個全連接網(wǎng)絡(luò)來提取所有單詞的特征信息,如下圖所示:

共享權(quán)值神經(jīng)網(wǎng)絡(luò)方案


?通過權(quán)值共享后,參數(shù)量大大減少,網(wǎng)絡(luò)訓(xùn)練變得更加穩(wěn)定高效。但是。這種網(wǎng)絡(luò)結(jié)構(gòu)并沒有考慮序列之間的先后順序,將詞向量打亂次序仍然能獲得相同的輸出,無法獲取有效的全局語義信息。

3. 全局語義

?如何賦予網(wǎng)絡(luò)提取整體語義特征的能力呢?或者說,如何能夠讓網(wǎng)絡(luò)能夠按序提取詞向量的語義信息,并積累成整個句子的全局語義信息呢?我們想到了內(nèi)存(Memory)機制。如果網(wǎng)絡(luò)能夠提供一個單獨的內(nèi)存變量,每次提取詞向量的特征并刷新內(nèi)存變量,直至最后一個輸入完成,此時的內(nèi)存變量即存儲了所有序列的語義特征,并且由于輸入序列之間的先后順序,使得內(nèi)存變量內(nèi)容與序列順序緊密關(guān)聯(lián)。

循環(huán)神經(jīng)網(wǎng)絡(luò)(未添加偏置)


?我們將上述Memory機制實現(xiàn)為一個狀態(tài)張量h\boldsymbol hh,如上圖所示,除了原來的Wxh\boldsymbol W_{xh}Wxh?參數(shù)共享外,這里額外增加了一個Whh\boldsymbol W_{hh}Whh?參數(shù),每個時間戳t上狀態(tài)張量h\boldsymbol hh刷新機制為:
ht=σ(Wxhxt+Whhht?1+b)\boldsymbol h_t=σ(\boldsymbol W_{xh} \boldsymbol x_t+\boldsymbol W_{hh} \boldsymbol h_{t-1}+\boldsymbol b)ht?=σ(Wxh?xt?+Whh?ht?1?+b)
其中狀態(tài)張量h0\boldsymbol h_0h0?為初始的內(nèi)存狀態(tài),可以初始化為全0,經(jīng)過sss個詞向量的輸入后得到網(wǎng)絡(luò)最終的狀態(tài)張量hs\boldsymbol h_shs?hs\boldsymbol h_shs?較好地代表了句子的全局語義信息,基于hs\boldsymbol h_shs?通過某個全連接層分類器即可完成情感分類任務(wù)。


4. 循環(huán)神經(jīng)網(wǎng)絡(luò)

?通過一步步地探索,我們最終提出了一種“新型”的網(wǎng)絡(luò)結(jié)構(gòu),如下圖所示,在每個時間戳ttt,網(wǎng)絡(luò)層接受當(dāng)前時間戳的輸入xt\boldsymbol x_txt?和上一個時間戳的網(wǎng)絡(luò)狀態(tài)向量ht?1\boldsymbol h_{t-1}ht?1?,經(jīng)過
ht=fθ(ht?1,xt)\boldsymbol h_t=f_θ (\boldsymbol h_{t-1},\boldsymbol x_t)ht?=fθ?(ht?1?,xt?)
變換后得到當(dāng)前時間戳的新狀態(tài)向量ht\boldsymbol h_tht?,并寫入內(nèi)存狀態(tài)中,其中fθf_θfθ?代表了網(wǎng)絡(luò)的運算邏輯,θθθ為網(wǎng)絡(luò)參數(shù)集。在每個時間戳上,網(wǎng)絡(luò)層均有輸出產(chǎn)生ot\boldsymbol o_tot?ot=g?(ht)\boldsymbol o_t=g_\text{\o} (\boldsymbol h_t)ot?=g??(ht?),即將網(wǎng)絡(luò)的狀態(tài)向量變換后輸出。

展開的RNN模型


?上述網(wǎng)絡(luò)結(jié)構(gòu)在時間戳上折疊,如下圖所示,網(wǎng)絡(luò)循環(huán)接受序列的每個特征向量xt\boldsymbol x_txt?,并刷新內(nèi)部狀態(tài)向量ht\boldsymbol h_tht?,同時形成輸出ot\boldsymbol o_tot?。對于這種網(wǎng)絡(luò)結(jié)構(gòu),我們把它叫做循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,簡稱RNN)。

折疊的RNN模型


?更特別地,如果使用張量Wxh\boldsymbol W_{xh}Wxh?Whh\boldsymbol W_{hh}Whh?和偏置b\boldsymbol bb來參數(shù)化fθf_θfθ?網(wǎng)絡(luò),并按照
ht=σ(Wxhxt+Whhht?1+b)\boldsymbol h_t=σ(\boldsymbol W_{xh} \boldsymbol x_t+\boldsymbol W_{hh} \boldsymbol h_{t-1}+\boldsymbol b)ht?=σ(Wxh?xt?+Whh?ht?1?+b)
方式更新內(nèi)存狀態(tài),我們把這種網(wǎng)絡(luò)叫做基本的循環(huán)神經(jīng)網(wǎng)絡(luò),如無特殊說明,一般說的循環(huán)神經(jīng)網(wǎng)絡(luò)即指這種實現(xiàn)。在循環(huán)神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)更多地采用tanh\text{tanh}tanh函數(shù),并且可以選擇不使用偏置b來進一步減少參數(shù)量。狀態(tài)向量ht\boldsymbol h_tht?可以直接用作輸出,即ot=ht\boldsymbol o_t=\boldsymbol h_tot?=ht?,也可以對ht\boldsymbol h_tht?做一個簡單的線性變換ot=Whoht\boldsymbol o_t=\boldsymbol W_{ho} \boldsymbol h_tot?=Who?ht?后得到每個時間戳上的網(wǎng)絡(luò)輸出ot\boldsymbol o_tot?

總結(jié)

以上是生活随笔為你收集整理的深度学习之循环神经网络(2)循环神经网络原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。