1
DEEP LEARNING JP
[DL Papers]
http://deeplearning.jp/
“Training RNNs as Fast as CNNs”
Hiroki Kurotaki, Matsuo Lab
目目次次
• 概要
• 1 Introduction
• 2 Method
• 3 Related Works
• 4 Experiments
• 5 Conclusion
2
目目次次
• 概要
• 1 Introduction
• 2 Method
• 3 Related Works
• 4 Experiments
• 5 Conclusion
3
書書誌誌情情報報
• Training RNNs as Fast as CNNs
• Tao Lei, Yu Zhang
• 9/12/2017(v1: 9/8/2017)
• https://arxiv.org/abs/1709.02755v2
• https://github.com/taolei87/sru
• Arxiv Sanityで Last monthのtop hype #2 (329 tweets)
• 1st authorはICML, EMNLPなどに通している
– Deriving neural architectures from sequence and graph kernels
4
提提案案手手法法
• RNNのゲートに前の時間の情報を入れない
– 大幅な並列化が可能
• cuDNNで最適化されたLSTMに比べ、5-10x 速い
• PyTorch and CNTKでオープンソース公開
5
主主なな結結果果
• 平均実行時間の比較
• CuDNNのLSTM実装より10倍速い
6
目目次次
• 概要
• 1 Introduction
• 2 Method
• 3 Related Works
• 4 Experiments
• 5 Conclusion
7
11 IInnttrroodduuccttiioonn
• 深層学習の研究開発において、実行時間は大きな障害
• LSTMは並列化の恩恵を最大限に受け取れていない
– h_tがh_{t-1}に依存しているため、並列化が不可能
• 依存項をカットした、Simple Recurrent Unitを提案
• CUDAレベルで最適化した実装を公開した
– conv2dと同等の速度を達成した
8
目目次次
• 概要
• 1 Introduction
• 2 Method
• 3 Related Works
• 4 Experiments
• 5 Conclusion
9
22..11 SSRRUU iimmpplleemmeennttaattiioonn
• ベース:LSTM+頻出のテクニック二つ
– Highway connection
• 下のh’_tの式。r_tがreset gateと呼ばれるもの
– Variational dropout :
• 入力x_tに時間で変わらないマスク
• 細かいこと
– Forget gateは、i = 1-fとする
– h_tに普通のdropout
– g(・)は活性化関数
10
22..22 SSppeeeeddiinngg--uupp tthhee rreeccuurrrreennccee
• 従来のボトルネック
– 隠れ状態の各次元が、他を参照してしまい、並列化が不可能
– h_{t-1}の全体が計算されるまで待たないと、h_tを計算不可
• 提案: ゲートにおける時間t-1の参照をカット
– ボトルネックは(3)-(5)の行列計算のみ
11
22..33 CCUUDDAA lleevveell ooppttiimmiizzaattiioonn
• (3)-(5)式の行列演算は一つにまとめる
12
22..33 CCUUDDAA lleevveell ooppttiimmiizzaattiioonn
• 計算が並列化できるようになる
13
目目次次
• 概要
• 1 Introduction
• 2 Method
• 3 Related Works
• 4 Experiments
• 5 Conclusion
14
33 RReellaatteedd WWoorrkk
• 系列処理の効率化
– Recurrent convolution (RCNN) (Lei et al., 2015, 2016)
– kernel network (KNN) (Lei et al., 2017)
– Quasi-RNN (Bradbury et al., 2017)
• カットによる表現力の減少有無
– 単純化RNNのcapacityの調査(Balduzzi and Ghifary (2016))
– SRUやword-level CNNは、系列類似度関数→隠れ空間の埋め込み
(Lei et al. (2017))
15
目目次次
• 概要
• 1 Introduction
• 2 Method
• 3 Related Works
• 4 Experiments
• 5 Conclusion
16
44 EExxppeerriimmeennttss
• 提案手法のSRUを、先行研究やCuDNNのLSTM実装と比較
• SRUの、レイヤーを積み増すバージョンで、
良い精度と速度を出した
• 実装は4.5以外PyTorch、4.5はCNTK
17
44..11 CCllaassssiiffiiccaattiioonn
• データセット
– movie reviews (MR) (Pang and Lee, 2005)
– subjectivity data (SUBJ) (Pang and Lee, 2004)
– customer reviews (CR) (Hu and Liu, 2004)
– TREC questions (Li and Roth, 2002)
– opinion polarity from MPQA data (Wiebe et al., 2005)
– Stanford sentiment treebank (SST) (Socher et al., 2013)
• モデル、準備
– 2レイヤー、隠れ128次元
• SSTデータセットでは4レイヤー
– CNNでも比較
• (Convolutional neural networks for sentence classification)
18
44..11 CCllaassssiiffiiccaattiioonn
• 良い結果と速度が出た
19
44..11 CCllaassssiiffiiccaattiioonn
20
44..22 QQuueessttiioonn aannsswweerriinngg
• データセット
– Stanford Question Answering Dataset (SQuAD) (Rajpurkar et al.,
2016)
• wikipedia からの100,000 QAペア
• モデル、準備
– Document Reader model (Chen et al., 2017)
• LSTM版とSRU版を作って比較
– 50エポック、32バッチ、隠れ128次元、
– ドロップアウト 入力0.5、SRU0.2、LSTM0.3
21
44..22 QQuueessttiioonn aannsswweerriinngg
• LSTMは69.6%マッチ、78.9% F1スコア
• SRUは70.3%マッチ、79.5% F1スコア
• 6~10倍の高速化
22
44..33 LLaanngguuaaggee mmooddeelliinngg
• データセット
– Penn Treebank corpus (PTB)
• 1Mトークン、10k辞書
• truncated BPTTで学習
• モデル、前準備
– truncated BPTTが35エポック、バッチサイズ32、dropout0.75
– 300エポックの訓練
23
44..33 LLaanngguuaaggee mmooddeelliinngg
• Perplexitiesで先行研究やcuDNN LSTMを上回る
24
44..44 MMaacchhiinnee ttrraannssllaattiioonn
• データセット
– WMT’14 English→German translation
– 4Mの翻訳ペア
• モデル、前処理
– OpenNMTという翻訳システムをSRUに拡張した
– seq2seq w/ attention
• h_{t-1}は並列化を妨げるため、次の時間の入力には追加しない
– 15エポック、バッチ64、word embeddings size 500
– dropout rateを、よく使われるものより小さい0.1に落とした
25
44..44 MMaacchhiinnee ttrraannssllaattiioonn
• BLEUスコアで、元論文を上回る
26
44..55 SSppeeeecchh rreeccooggnniittiioonn
• データセット
– Switchboard-1 corpus (Godfrey et al., 1992)
• 4,870会話(300時間) 話者520人
• モデルなど
– MFCC、Kaldiを使用
– Computational Network Toolkit (CNTK)で実装
27
44..55 SSppeeeecchh rreeccooggnniittiioonn
• SOTAの結果
28
目目次次
• 概要
• 1 Introduction
• 2 Method
• 3 Related Works
• 4 Experiments
• 5 Conclusion
29
55 CCoonncclluussiioonn
• Simple Recurrent Unit (SRU)を提案
– ゲートのh_{t-1}参照項をカット
• 5つのタスクで性能を確認した
• 従来のCuDNNのLSTM実装などに比べ、最大10倍の高速化
– 精度も向上した
30
31

[DL輪読会]Training RNNs as Fast as CNNs