優拓 Paper Note ep.11: Training RNNs as Fast as CNNs

Chu Po-Hsien
YOCTOL.AI
Published in
4 min readOct 24, 2017

編按:在優拓每週一次的 Seminar,Data Team 的大夥會輪流分享最近看過的一篇印象深刻的論文。這一系列文章就是將會議上討論的內容整理出來,分享給優拓以外的同好。本系列的前一篇請見:

Training RNNs as Fast as CNNs》by Tao Lei, Yu Zhang
註:以下的圖皆截自這篇論文

GRU、LSTM 原始的實作,運算速度是相當慢的,主要原因是一些內部的 Gate 運算依賴於前一個狀態,比如說 Forget Gate:

中間的 h 必須經由不斷迭代來求得,因此,不管是 forward 還是 backward,運算過程都得按照順序來一個個算,無法平行化。

這篇由 ASAAP 的研究員上個月發布在 Arxiv 上,並公開程式碼的論文,刻意將這些 gate 對過去狀態的相依性拿掉。以上面提到的 Forget Gate 為例,他們將它改成:

只是一個簡單的修改,就達到 10x 以上的加速。

看點

作者們提出的 Simple Recurrent Unit (SRU) 速度飛快,和 cuDNN 的 LSTM 以及 CNN 比較:

幾個文字分類及語音辨識的準確度,和原先的 GRU 或 LSTM 比起來,差不多或甚至更好。

演算法

這篇論文提出的 SRU,讓前一個 hidden state 完全不接到下一個時間的 gate ,運算過程如下:

其中,前三條運算量龐大,但可以平行化。合併前三條的矩陣乘法,然後使用 GPU 加速:

便能獲得相當可觀的效能。

缺點

在 machine translation 上,BLEU 輸 LSTM,即便參數量差不多。筆者猜測,在 seq2seq 類型的任務上,SRU 在 decode 時,各個 gate 少了 hidden state 的提示,只依賴前一個 decode 出來的字,無法有效更新 hidden state。 也許加上 attention mechanism 便能大大改善這個問題。

優拓資訊 (Yoctol Info Inc.)

At YOCTOL, We AI Your Business by Bot.

優拓為新銳 AI 團隊,利用自行研發的機器人框架、自然語意理解、網路爬蟲、推薦引擎,為企業提供全方位的商務機器人解決方案,不僅可以即時回應顧客的客服需求,也能主動推播個人化商品推薦,提昇企業經營效能。

若您有相關業務需求或是任何建議、疑問,都歡迎寄信至 service@yoctol.com,我們將盡速與您聯繫,期待您的來信!

--

--

Chu Po-Hsien
YOCTOL.AI

Data Team Lead @Yoctol 專注於機器學習的應用以及產品設計,偶爾幫忙開發開源機器學習套件。