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

歡迎訪問 生活随笔!

生活随笔

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

循环神经网络

深度学习之循环神经网络(10)GRU简介

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

深度學(xué)習(xí)之循環(huán)神經(jīng)網(wǎng)絡(luò)(10)GRU簡介

  • 1. 復(fù)位門
  • 2. 更新門
  • 3. GRU使用方法

?LSTM具有更長的記憶能力,在大部分序列任務(wù)上面都取得了比基礎(chǔ)RNN模型更好的性能表現(xiàn),更重要的是,LSTM不容易出現(xiàn)梯度彌散現(xiàn)象。但是LSTM結(jié)構(gòu)相對(duì)較復(fù)雜,計(jì)算代價(jià)較高,模型參數(shù)量較大。因此科學(xué)家們嘗試簡化LSTM內(nèi)部的計(jì)算流程,特別是減少門控?cái)?shù)量。研究發(fā)現(xiàn),遺忘門是LSTM中最重要的門控 [1],甚至發(fā)現(xiàn)只有遺忘門的簡化版網(wǎng)絡(luò)在多個(gè)基準(zhǔn)數(shù)據(jù)集上面優(yōu)于標(biāo)準(zhǔn)LSTM網(wǎng)絡(luò)。在眾多的簡化版LSTM中, 門控循環(huán)網(wǎng)絡(luò)(Gated Recurrent Unit,簡稱GRU)是應(yīng)用最廣泛的RNN變種之一。GRU把內(nèi)部狀態(tài)向量和輸出向量合并,統(tǒng)一為狀態(tài)向量 h\boldsymbol hh,門控?cái)?shù)量也較少到2個(gè): 復(fù)位門(Reset Gate)和 更新門(Update Gate),如下圖所示:

GRU網(wǎng)絡(luò)結(jié)構(gòu)


?下面我們來分別介紹復(fù)位門和更新門的原理與功能。


[1] J. Westhuizen 和 J. Lasenby, “The unreasonable effectiveness of the forget gate,” CoRR, 卷 abs/1804.04849, 2018.


1. 復(fù)位門

?復(fù)位門用于控制上一個(gè)時(shí)間戳的狀態(tài)ht?1\boldsymbol h_{t-1}ht?1?進(jìn)入GRU的量。門控向量gr\boldsymbol g_rgr?由當(dāng)前時(shí)間戳輸入xt\boldsymbol x_txt?和上一時(shí)間戳狀態(tài)ht?1\boldsymbol h_{t-1}ht?1?變換得到,關(guān)系如下:
gr=σ(Wr[ht?1,xt]+br)\boldsymbol g_r=σ(\boldsymbol W_r [\boldsymbol h_{t-1},\boldsymbol x_t ]+\boldsymbol b_r)gr?=σ(Wr?[ht?1?,xt?]+br?)
其中Wr\boldsymbol W_rWr?br\boldsymbol b_rbr?為復(fù)位門的參數(shù),由反向傳播算法自動(dòng)優(yōu)化,σσσ為激活函數(shù),一般使用Sigmoid函數(shù)。門控向量gr=0\boldsymbol g_r=0gr?=0時(shí),新輸入h~t\tilde \boldsymbol h_th~t?全部來自于輸入xt\boldsymbol x_txt?,不接受ht?1\boldsymbol h_{t-1}ht?1?,此時(shí)相當(dāng)于復(fù)位ht?1\boldsymbol h_{t-1}ht?1?。當(dāng)gr=1\boldsymbol g_r=1gr?=1時(shí),ht?1h_{t-1}ht?1?和輸入xt\boldsymbol x_txt?共同產(chǎn)生新輸入h~t\tilde\boldsymbol h_th~t?,如下圖所示:

復(fù)位門

2. 更新門

?更新門用控制上一時(shí)間戳狀態(tài)ht?1\boldsymbol h_{t-1}ht?1?和新輸入h~t\tilde\boldsymbol h_th~t?對(duì)新狀態(tài)向量ht\boldsymbol h_tht?的影響程度。更新門控向量gz\boldsymbol g_zgz?
gz=σ(Wz[ht?1,xt]+bz)\boldsymbol g_z=σ(\boldsymbol W_z [\boldsymbol h_{t-1},\boldsymbol x_t ]+\boldsymbol b_z)gz?=σ(Wz?[ht?1?,xt?]+bz?)
得到,其中Wz\boldsymbol W_zWz?bz\boldsymbol b_zbz?為更新門的參數(shù),由反向傳播算法自動(dòng)優(yōu)化,σσσ為激活函數(shù),一般使用Sigmoid函數(shù)。gz\boldsymbol g_zgz?用于控制新輸入h~t\tilde\boldsymbol h_th~t?信號(hào),1?gz1-\boldsymbol g_z1?gz?用于控制狀態(tài)ht?1\boldsymbol h_{t-1}ht?1?信號(hào):
ht=(1?gz)ht?1+gzh~t\boldsymbol h_t=(1-\boldsymbol g_z ) \boldsymbol h_{t-1}+\boldsymbol g_z \tilde\boldsymbol h_tht?=(1?gz?)ht?1?+gz?h~t?

更新門


可以看到,h~t\tilde\boldsymbol h_th~t?ht?1\boldsymbol h_{t-1}ht?1?的更新量處于相互競爭、此消彼長的狀態(tài)。當(dāng)更新門gz=0\boldsymbol g_z=0gz?=0時(shí),ht\boldsymbol h_tht?全部來自上一時(shí)間戳狀態(tài)ht?1\boldsymbol h_{t-1}ht?1?;當(dāng)更新門gz=1\boldsymbol g_z=1gz?=1時(shí),ht\boldsymbol h_tht?全部來自新輸入h~t\tilde\boldsymbol h_th~t?


3. GRU使用方法

?同樣地,在TensorFlow中,也有Cell方式和層方式實(shí)現(xiàn)GRU網(wǎng)絡(luò)。GRUCell和GRU層的使用方法和之前的SimpleRNNCell、LSTMCell、SimpleRNN和LSTM非常類似。首先是GRUCell的使用,創(chuàng)建GRU Cell對(duì)象,并在時(shí)間軸上循環(huán)展開運(yùn)算。例如:

import tensorflow as tf from tensorflow.keras import layersx = tf.random.normal([2, 80, 100]) xt = x[:, 0, :] # 得到一個(gè)時(shí)間戳的輸入 # 初始化狀態(tài)向量,GRU只有一個(gè) h = [tf.zeros([2, 64])] cell = layers.GRUCell(64) # 新建GRU Cell,向量長度為64 # 在時(shí)間戳維度上解開,循環(huán)通過cell for xt in tf.unstack(x, axis=1):out, h = cell(xt, h) # 輸出形狀 print(out.shape)


運(yùn)行結(jié)果如下所示:

(2, 64)


?通過layers.GRU類可以方便創(chuàng)建一層GRU網(wǎng)絡(luò)層,通過Sequential容器可以堆疊多層GRU層的網(wǎng)絡(luò)。例如:

import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers, Sequentialx = tf.random.normal([2, 80, 100]) xt = x[:, 0, :] # 得到一個(gè)時(shí)間戳的輸入 # 初始化狀態(tài)向量,GRU只有一個(gè) h = [tf.zeros([2, 64])] net = keras.Sequential([layers.GRU(64, return_sequences=True),layers.GRU(64) ]) out = net(x) # 輸出形狀 print(out.shape)


運(yùn)行結(jié)果如下所示:

(2, 64)

總結(jié)

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

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