Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Deeplearning勉強会20160220

DeepLearning勉強会 2016/2/20
Chapter 10.1-10.6

Deeplearning勉強会20160220

  1. 1. DeepLearning勉強会 Chapter  10  Sequence  Modeling:   Recurrent  and  Recursive  Nets 10.1-­‐10.6 2016/2/20 リクルートテクノロジーズ 坪坂正志
  2. 2. 今日話す内容 • 系列データに対するNeural  networkモデルについて • 教科書の10.1-­‐10.6まで • 10.1  Unfolding  Computational  Graphs • 10.2  Recurrent  Neural  Networks • 10.3  Bidirectional  RNNs • 10.4  Encoder-­‐Decoder  Sequence-­‐to-­‐Sequence  Architectures • 10.5  Deep  Recurrent  Networks • 10.6  Recursive  Neural  Networks • 10.1,10.2はRNNの基礎,  10.3-­‐10.6がRNNの構造を変えたバージョンにつ いての話 • 10.7以降は次回発表します (内容としてはLSTMなどの単純なRNNでは扱 うことができない長期依存の情報の保存について)
  3. 3. 系列データについて • 前章までのデータと違い、入力を固定長ではなく文字列や音素列の ような可変長のデータを扱う • また以降では一つの入力ベクトルの系列𝒙(#)  ( 𝑡 = 1, …, 𝜏)に対する 操作のみ考える • 実際はmini-­‐batchなどを用いる場合は長さが違うベクトル系列のデータを扱 うがその部分のインデックスについては割愛
  4. 4. 固定長によるアプローチ • 入力データを適当なwindowサイズで区切ってつなげたデータを入力 とするneural  networkを考える Bengio+,  A  neural  probabilistic  language  model  ,   JMLR  2003より
  5. 5. 固定長によるモデルの限界 • データの入れ替えに弱い • “I  went  to  Nepal  in  2009”と”In  2009,  I  went  to  Nepal”は文の意味は同じなの に固定長モデルでは全く別の入力となる • windowサイズを短くすれば対応できるがその場合非常に短距離の文脈し かみないことになる • 出力が1個などの場合には対応できない • 例えば文全体の極性を判定したいなどの場合は出力は系列の最後に一つ のみとなるが、この場合固定長モデルでは対応できない
  6. 6. 再帰的な表現 • 現在のシステムの状態を一個前のシステムの状態として書き現わす • 𝑠(#) = 𝑓(𝑠 #./ ; 𝜃) • 3番目の状態の式は • 𝑠(2) = 𝑓 𝑠 3 ; 𝜃 = 𝑓(𝑓(𝑠 / ; 𝜃); 𝜃) • と表される
  7. 7. 入力・隠れ層の導入 • 前ページの再帰的な式に入力および隠れ層を導入すると • ℎ(#) = 𝑓(ℎ #./ , 𝑥 # ; 𝜃) • と書ける • ここでℎ(#) の意味は時刻tまでの系列についての情報を保存する役割を担ってい る • また下の右図は再帰を展開して一つのネットワークとしてみたものになっている • ネットワークサイズは入力長に対して変化する
  8. 8. 再帰的な表現のメリット • 任意の系列長のデータについて適用できる • パラメータ数の削減 • どの時刻においても同一の関数fと同一のパラメータθを使うので保存しなけ ればならないパラメータの数が系列長に依存しない
  9. 9. 10.2  Recurrenct Neural  networks • 本章では主に右図のような入力と一 個前の隠れ層から現在の隠れ層の 値が決まり、隠れ層の値から出力が 決まるようなRNNの形状を主に扱う • 他の形式としては出力部分がなく、最 後に一つだけあるようなものも考えら れる • 例えば文章のポジティブ判定など
  10. 10. RNNの式 • RNNの式は上のように表される • W,U,Vなどのパラメータは時刻に依存しない • また損失関数は各時刻での損失の和の形で書く
  11. 11. 並列性について • 勾配の計算は出力の値が前のグラフの 値に依存するのでback  propagationには O(τ)かかる • これについては依存関係があるので並 列化することは難しい • 一つの解決策としては右の図のような隠 れ層間の依存を排除し、出力層のみに 依存するモデルを考えることである • これによって一般性は失われるが、訓練 時には各ステップごとに独立に計算する ことが可能 • 訓練時には出力の部分の正解は与えられて いるため
  12. 12. 出力が次の入力になる場合 • いままでの単語から次の単語を予測するような問 題においては時刻tの出力が時刻t+1の入力となる • この場合訓練時には正解ラベルをそのまま使い、 テスト時には出力層の値を使うというteacher   forcingという方法がとられる • 訓練時には出力層を無視して、正解ラベルをつかって いるため • 図では隠れ層間の連結が書いてないが別にあっても問 題ない • この場合問題としてはテスト時は自動生成された 入力となるため、訓練データの分布と大きく異なる 可能性があることである
  13. 13. Scheduled  sampling • teacher  forcingの欠点を補うために、次の入力に真のラベル値とモ デルからサンプルされたデータをまぜるScheduled  samplingという方 法が提案されている (Bengio+2015) • http://arxiv.org/abs/1506.03099
  14. 14. 勾配の計算について • 展開したネットワークは通常のNeural  netなのでBack-­‐propagationし てやることによってパラメータの勾配が計算できる • 展開したネットワークに対するBPをBPTT  (Back-­‐propagation  through   time)と呼ぶ
  15. 15. 具体的な式について • 各パラメータについての勾配は以下の式のようになる • (10.10)より時刻tの隠れ層についての勾配は時刻t+1の値に依存すること がわかる • またパラメータの勾配は全時刻についての総和となっている
  16. 16. 生成モデルとしてみた場合 • 目的関数のところを対数尤度とした場合 • log 𝑝(𝑦(#) | 𝑥(/) ,… , 𝑥 # )を最大化することに相当する • また出力層が次の時刻にコネクションがある場合 • log 𝑝(𝑦(#) | 𝑥(/) ,… , 𝑥 # , 𝑦 / , … , 𝑦(#./) )を最大化してることになる • ナイーブにモデル化すると𝑂(𝑘> )のパラメータが必要となるが、RNN では系列長に依存しないパラメータでモデルが表現できる
  17. 17. RNNのグラフィカルモデル • 左の図はRNNの隠れ層込みでのグラフィカルモデルを表している • 右の図はRNNの条件付き独立性をyについてのみ見たときの図で、 過去の履歴が全て現在の出力に影響していることがわかる
  18. 18. モデルからのサンプリング • モデルから系列をサンプリングするためには出力する系列をどこで 停止させるかというのを決める必要がある • これについては主に3つの方法がある 1. 出力が離散の場合EOFのような終端を表すシンボルが出力されたら終了と する 2. 余分なベルヌーイ分布に従う出力層を用意しておき、その出力に応じて終 了するかどうかを決定する 3. 系列長の長さ𝜏もモデルに追加して系列長の長さを先にサンプリングして からサンプリングされた長さ分だけ出力を行う
  19. 19. 系列以外の入力 • 入力は系列ではないが出力は系列とい う場合がある • 例えば画像に対するキャプション生成など がある • その場合は入力は固定長のベクトルでど の隠れ層に対しても共通の入力となる
  20. 20. 出力に対する依存モデル • いままでは入力で条件付けた時、出力の条件付き独立性を仮定し ていたが、一個前の出力を現在の隠れ層への入力に加えることによ り任意の𝑃(𝑦|𝑥)を表現できる
  21. 21. 10.3  Bidirectional  RNNs • 今までのRNNは過去と現在の入力𝑥(/) , … , 𝑥(#) を使って 𝑦(#) を推定していた • しかし音声入力や自然言語処理などのアプリケーション では後の入力も現在の出力を推定するのに利用できる • このため,  RNNに𝑔(#) という過去に向うRNNを追加した Bidirectional  RNNモデルが存在する • モデル自体は1997年に提案され(Schuster  and  Paliwal 1997)、文字認識や音声認識などの分野で成功している
  22. 22. ReNet • 2015年にBidirectional  RNNを拡張して4方向を 考え、CNNのconvolution+poolingの代わりに縦 と横方向のRNNを使うモデルが提案されている • http://arxiv.org/abs/1505.00393
  23. 23. 10.4  Encoder-­‐Decoder  Sequence-­‐to-­‐ Sequence  Architectures • 機械翻訳などの応用においては入力と 出力の長さが同じとは限らない • 例えば入力が日本語で出力が英語など • Encoder-­‐Decoderと呼ばれるアーキテク チャーでは入力をEncoder部分で読み Context  Cを出力する • DecoderをCに条件づけられたもとで出力 を行う • Cは固定長のベクトルが用いられるが、こ こにも可変長の系列を用いることが可能 • http://arxiv.org/abs/1409.0473
  24. 24. 10.5  Deep  recurrent  networks • これまでのRNNは • 時刻tの入力=>時刻tの隠れ層 • 時刻tの隠れ層=>時刻t+1の隠れ層 • 時刻tの隠れ層=>時刻tの出力 • と入力=>出力の部分だけをみると1層のニューラルネットワークになっている • 下の図のように単純なRNN以外に層を追加したネットワークを考えることができ る • http://arxiv.org/abs/1312.6026
  25. 25. 10.6  Recurrsive neural  networks • RNNのような鎖構造を考えるのではなく、入 力の上に木構造を考え、同一パラメータによ る変換処理をかけて、一番上で固定長の出 力を得るようなRecurrsive neural  networksと いう構造もある • Recurrent  networksに対する利点として系列 長が大きい入力に対しても木の深さは対数 オーダーのため長距離の依存関係をとらえ ることができる • また木の構造については単純に完全二分木 を使うほかに係り受け解析器によって得られ た係り受け構造を使うなどがある

×