SRU介紹

1.背景介紹

    RNN模型在機器翻譯,語言模型,問答系統中取得了非凡的成就,由於RNN的結構,當前的層輸入爲前一層的輸出,所有RNN比較適合時間序列問題,但也正是由於這種串行結構,限制了RNN模型的訓練速度,與CNN相比,RNN並不能進行並行化處理。而SRU網絡結構的提出就是爲了解決這個問題,SRU(simple recurrent units)將大部分運算放到進行並行處理,只是將有具有小量運算的步驟進行串行。

2.SRU介紹

    SRU算法主要是將運算操作最多的去除時間上的依賴關係,並進行並行化處理,下圖將SRU結構與傳統的RNN進行了對比。
這裏寫圖片描述

     另外,與其它的算法相比:
這裏寫圖片描述

2.1 SRU網絡結構

    SRU基礎結構包含了一個單一的forget gate,假定輸入Xt和時間t,需要計算線性的轉換˜xt 和forget gate ft,則:
這裏寫圖片描述

    上面的計算僅僅依靠Xt,因此,能夠進行並行化處理。
     forget gate中包含internal state Ct,則計算output state ht:
這裏寫圖片描述

其中g表示激活函數。
因此,整個SRU網絡結構的計算結構:

這裏寫圖片描述

其中,f表示forget gate,r表示 reset gate,h表示output state,c表示internal state。x表示輸入。

2.2 CUDA-LEVEL optimization

綜合上面的公式:
這裏寫圖片描述
其中,n表示sequence length,U ∈ Rn×3d,d是hidden state size,k表示mibi-batcj的大小,U是一個(n,k,3d)的張量。
因此,Mini-batch版本的算法爲:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章