2017.08.10
NAIST  ⾃自然⾔言語処理理学研究室  D1
[担当:Chap.10.3-‐‑‒10.9]  Kondo  Masayoshi  
夏の集中勉強会-‐‑‒本読み@2017-‐‑‒松本Lab
DEEP  LEARNING
Ian  Goodfellow,  Yoshua  Benjio  and  Aaron  Curville
-‐‑‒-‐‑‒:はじめに
【本論論】:原書に忠実な内容(事実表記)
【追記】:プレゼン内容に追加・補⾜足したい内容(解釈表記)
部分的に補⾜足したい内容がある場合:  このような緑四⾓角で囲む  +  緑⽂文字  で表記
10.3  Bidirectional  RNNs
10.4  Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence
        Architectures
10.5  Deep  Recurrent  Networks
10.6  Recursive  Neural  Networks
10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies
10.8  Echo  State  Networks
10.9  Leaky  Units  and  Other  Strategies  
                for  Multiple  Time  Scales
Chap.10  
>  10.3  -‐‑‒  10.9
10.3  Bidirectional  RNNs
10.4  Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence
        Architectures
10.5  Deep  Recurrent  Networks
10.6  Recursive  Neural  Networks
10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies
10.8  Echo  State  Networks
10.9  Leaky  Units  and  Other  Strategies  
                for  Multiple  Time  Scales
Chap.10  
>  10.3  -‐‑‒  10.9
多くの応⽤用:⼊入⼒力力の全体が分かっている状態で時刻tの出⼒力力ytを予測したい.
【⾳音声認識識】:現在の⾳音声  を  ⾳音素  として正しく翻訳する場合
•  調⾳音結合により、次のいくつかの⾳音素に依存する可能性.
•  近接単語間の⾔言語的な依存性により、次のいくつかの単語に依存する
可能性.
現時刻の⾳音として尤もらしい2つの単語訳がある場合:
曖昧性を解消するために、遠い未来もしくは過去をみるべきなのかもしれない.
Chap  10.3  [1]  :  Bidirectional  RNNs
全てのRNNは、「因果」の構造を備える.
  ­−  時刻tの状態  :  時刻t-‐‑‒1までの過去の情報  +  現時刻tの⼊入⼒力力を反映
  ­−  モデルに依っては、過去の出⼒力力  を⽤用いることもできる.
Chap  10.3  [2]  :  Bidirectional  RNNs
Bidirectional  RNNは、前述の必要性から発案されたモデル.
⼊入⼒力力系列列全体が既知の時に、求めたい対象(⽬目的)に対して⼊入⼒力力系列列の隣隣接間
の情報が(研究対象の性質から)有⽤用である場合に、それを活⽤用したい気持ち.
Bidirectional  RNN:⾮非常に⼤大きな成功
•  Handwriting                        -‐‑‒  [Graves,  2012]
•  Speech  recognition  -‐‑‒  [Graves  et  al.,2008]
                                [Graves  and  Schmidhuber,  2009]
•  Bioinformatics                -‐‑‒  [Baldiet  al.  ,1999]
Bidirectional  RNNの構造
前向き⽅方向(Forward)のRNN 逆向き⽅方向(Backward)のRNN
出⼒力力  :  (系列列の)過去と未来に依存した値
•  固定窓を必要としない
•  時刻tが周囲の情報に敏感
Bidirectional  RNNの⼆二次元拡張
Chap  10.3  [3]  :  Bidirectional  RNNs
画像処理理において、上下左右の4つのRNNを組み合せる.
an  image
  RNN  を画像に適⽤用することは、
  ・原則的に、コストがより⾼高い.
  ・特徴量量間の⻑⾧長距離離の近接相互作⽤用を
    考慮できる.
CNN  を⽤用いることに⽐比べると・・・:
RNNのforward  propagetionは、Convolutionでボトムアップに⼊入⼒力力を
各層へ処理理した後、再帰的処理理を⾏行行い、近接相互作⽤用が組み込まれた
特徴量量マップを得ること、と等価なものとして記述できる.
10.3  Bidirectional  RNNs
10.4  Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence
        Architectures
10.5  Deep  Recurrent  Networks
10.6  Recursive  Neural  Networks
10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies
10.8  Echo  State  Networks
10.9  Leaky  Units  and  Other  Strategies  
                for  Multiple  Time  Scales
Chap.10  
>  10.3  -‐‑‒  10.9
Chap  10.4  [1]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
図10.5  :  
  RNNが⼊入⼒力力系列列を固定⻑⾧長ベクトルにどのように写像するか
図10.9  :  
  RNNが固定⻑⾧長ベクトルを系列列にどのように写像するか
図10.3  /  10.4  /  10.10  /  10.11  :
  RNNが⼊入⼒力力系列列を同じ⻑⾧長さの出⼒力力系列列にどのように写像するか
次のような図を⾒見見て⾏行行きたい.
Chap  10.4  [1]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
図10.5  :  
  RNNが⼊入⼒力力系列列を固定⻑⾧長ベクトルにどのように写像するか
図10.9  :  
  RNNが固定⻑⾧長ベクトルを系列列にどのように写像するか
図10.3  /  10.4  /  10.10  /  10.11  :
  RNNが⼊入⼒力力系列列を同じ⻑⾧長さの出⼒力力系列列にどのように写像するか
次のような図を⾒見見て⾏行行きたい.
Chap  10.4  [2]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
【Fig.10.5】最終時刻でひとつの出⼒力力を⾏行行うRNNの時間展開図
Chap  10.4  [1]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
図10.5  :  
  RNNが⼊入⼒力力系列列を固定⻑⾧長ベクトルにどのように写像するか
図10.9  :  
  RNNが固定⻑⾧長ベクトルを系列列にどのように写像するか
図10.3  /  10.4  /  10.10  /  10.11  :
  RNNが⼊入⼒力力系列列を同じ⻑⾧長さの出⼒力力系列列にどのように写像するか
次のような図を⾒見見て⾏行行きたい.
Chap  10.4  [3]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
【Fig.10.9】1つの固定⻑⾧長ベクトルから出⼒力力系列列の分布への
              写像を⾏行行うRNN
Chap  10.4  [1]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
図10.5  :  
  RNNが⼊入⼒力力系列列を固定⻑⾧長ベクトルにどのように写像するか
図10.9  :  
  RNNが固定⻑⾧長ベクトルを系列列にどのように写像するか
図10.3  /  10.4  /  10.10  /  10.11  :
  RNNが⼊入⼒力力系列列を同じ⻑⾧長さの出⼒力力系列列にどのように写像するか
次のような図を⾒見見て⾏行行きたい.
Chap  10.4  [4]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
【Fig.10.3】⼊入⼒力力から対応する出⼒力力への写像を⾏行行うRNNと
              その訓練Lossの計算⼿手続き
Chap  10.4  [5]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
【Fig.10.4】出⼒力力から隠れ層への再帰処理理のあるRNN
Chap  10.4  [6]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
【Fig.10.10】条件付きRNNが可変⻑⾧長系列列xを同じ⻑⾧長さの系列列y
              へ写像を⾏行行う図
Chap  10.4  [7]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
【Fig.10.11】
  典型的な双⽅方向RNN:
  ⼊入⼒力力系列列xから出⼒力力系列列yへの写像を学習と
  と時刻t毎のLoss
Chap  10.4  [8]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
【議論論】⼊入出⼒力力で系列列の⻑⾧長さが異異なる場合にRNNに写像を学習させる⽅方法
コンテクスト(context:C)  :  RNNへの⼊入⼒力力.
•  このコンテクストCのrepresentationが欲しい.
•  コンテクストCは、ひとつのベクトル、または、⼊入⼒力力系列列をうまく圧縮
したベクトルの系列列を想定.
⾳音声認識識、機械翻訳、QAシステムでは、⼀一般的に⼊入出⼒力力系列列が必ずしも
同じ系列列ではない.
【Encoder-‐‑‒Decoder  /  Sequence-‐‑‒to-‐‑‒Sequence  Architecture】
•  Cho  et  al(2014a)  と  Sutskever(2014)  によって独⽴立立に発案.
•  機械翻訳タスクへの適⽤用で最⾼高精度度を達成.
アイデア:⾮非常に単純
1.  EncoderまたはReader、Input-‐‑‒RNNは、⼊入⼒力力系列列を読み込む.
2.  DecoderまたはWriter、Output-‐‑‒RNNは、固定⻑⾧長ベクトルに基づいて
出⼒力力系列列を⽣生成.
Chap  10.4  [9]  : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
【Encoder-‐‑‒Decoder  /  Sequence-‐‑‒to-‐‑‒Sequence  Architecture】
アイデア:⾮非常に単純
1.  EncoderまたはReader、Input-‐‑‒RNNは、⼊入⼒力力系列列を読み込む.
2.  DecoderまたはWriter、Output-‐‑‒RNNは、固定⻑⾧長ベクトルに基づいて
出⼒力力系列列を⽣生成.
【Innovation】:  可変⻑⾧長の系列列データを取り扱うことができる!
【従来】⼊入⼒力力系列列と出⼒力力系列列の⻑⾧長さは同⼀一.
•  2つのRNNは訓練データに含まれる全⼊入出⼒力力ペア(x,y)に対して、同時
にlogPの平均を最⼤大化.
•  エンコーダーRNNの最後の状態hnxは⼊入⼒力力系列列の表現Cとして⽤用いられ、
デコーダーRNNに⼊入⼒力力となる.
Seq2Seqの構造:
Encoderは、Decoderの隠れ層と同じサイズでなければならない、という
制限も必要ない.
•  Cをひとつの固定⻑⾧長ベクトルではなく、可変⻑⾧長系列列へ組替え.
•  attention  mechanismの導⼊入:系列列C要素と出⼒力力系列列要素を繋ぐ
ことを学習.
改
善
Seq2Seqの限界
【2015年年:  Bahdanauによる機械翻訳タスクでの報告】
⾮非常に⻑⾧長い系列列に対して、エンコーダーRNNによって作られる
コンテクストCの出⼒力力の次元が⼩小さすぎる時に発⽣生.
Chap  10.4  [10]  :Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures
もし、コンテクストCがひとつのベクトルであれば、デコーダRNNは
ベクトルから系列列への変換を⾏行行うRNN.(10.2.4で説明)
ベクトルから系列列への変換を⾏行行うRNNへ⼊入⼒力力を与える⽅方法は、少なくとも
2つ.(注:デコーダー側の話をしている)
    (1)  ⼊入⼒力力をRNNの初期状態とすること.
    (2)  ⼊入⼒力力を各時間ステップの隠れユニットに与えること.
10.3  Bidirectional  RNNs
10.4  Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence
        Architectures
10.5  Deep  Recurrent  Networks
10.6  Recursive  Neural  Networks
10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies
10.8  Echo  State  Networks
10.9  Leaky  Units  and  Other  Strategies  
                for  Multiple  Time  Scales
Chap.10  
>  10.3  -‐‑‒  10.9
RNNの計算:3つのブロックとその変換⼿手続きに分解
Chap  10.5  [1]  :  Deep  Recurrent  Networks
1.  ⼊入⼒力力            から  隠れ状態      へ
2.  以前の隠れ状態  から  次の隠れ状態  へ
3.  隠れ状態        から  出⼒力力          へ
【疑問】この⼿手続きを深くすることに意味あるの?
【実験検証】:意味アリ.[Graves  et  al,  2013.]  /  [Pascanu  et  al,  2014a.]
実験検証により、⼗十分な深さがあれば、モデルは望む写像を学習する.
•  Schmidhuber  (1992)
•  EL  Hihi  and  Bengio(1992)
•  Jeager(2007a)
ー  参考  :  深いRNNに関する初期研究
⼀一般的に、浅い構造は最適化しやすく、特別に深くすることは時刻tから
時刻t+1への短いパスをより⻑⾧長いものにする.
Graves  et  al.(2013):RNNの状態を複数の層に分けること重要な利利点  
                      を⽰示した.
[]
Pascanu  et  al.(2014):MLPを、前述の3つのブロックに分割
Chap  10.5  [2]  :  Deep  Recurrent  Networks
•  表現の可⽤用性を考えると、3つのブロックに⼗十分な容量量を割当てたい
•  深くすることで最適化が困難になり、学習できなくなる可能性
【例例】:普通のRNNに状態から状態への遷移を⾏行行う隠れ層(MLP)を1つ付加
【普通のRNN】 【隠れ層  追加】
普通のRNNと⽐比較して、2つの異異なる
時間ステップ変数間の最も短いパスの
⻑⾧長さが2倍
Pascanu  et  al(2014)による議論論:
隠れ層から隠れ層へのパスにスキップ
コネクションを⽤用いることで緩和
10.3  Bidirectional  RNNs
10.4  Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence
        Architectures
10.5  Deep  Recurrent  Networks
10.6  Recursive  Neural  Networks
10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies
10.8  Echo  State  Networks
10.9  Leaky  Units  and  Other  Strategies  
                for  Multiple  Time  Scales
Chap.10  
>  10.3  -‐‑‒  10.9
-‐‑‒  Recursive  Neural  Network  の  強み  と  応⽤用  について
【強み】
  ⻑⾧長さτの系列列データに対して、⾮非線形の合成積回数の計算量量が  O(τ)  から  
  O(log  τ)  へ抑えられ、これにより⻑⾧長期の依存関係を扱いやすくなる.
Chap  10.6  [1]  :  Recursive  Neural  Network
【  Recursive  Neural  Network  (りかーしぶ  にゅーらる  ねっとわーく)  】
Recurrent  Neural  Network  は、⼊入⼒力力に鎖状の系列列データを取扱うが、
Recursive  Neural  Network  は、⼊入⼒力力に深い⽊木構造のデータを取扱う.
1990年年  :  Pollack  
発案
2011年年  :  Bottou  
因果学習への応⽤用
【応⽤用】:  ⾃自然⾔言語処理理分野では・・・
  ⾔言語系列列  を⼊入⼒力力とする場合に  パースツリーの構造  を⼊入⼒力力にできる.
  (単純な離離散系列列の⼊入⼒力力  →  データ構造を情報に組み込んだ⼊入⼒力力)
応⽤用分野  :  ⾃自然⾔言語処理理・コンピュータビジョン  等で利利⽤用
Chap  10.6  [2]  :  Recursive  Neural  Network
Recursive  Neural  Network  の  課題
(与えられるデータに対して)、最も「良良い⽊木構造」とはどのようなものか?
Recursive  Neural  Network  は、予め⽊木構造を定めておく必要がある
Bottou  の提⾔言
理理想的には、どのような⼊入⼒力力が与えられたとしても、それに
対して適切切な⽊木構造を発⾒見見・推論論し、モデル⾃自らがそれを獲
得できることが望ましい.
【回答】
•  データに依存しない⽊木構造:平衡⼆二分⽊木
•  いくつかの応⽤用領領域:外部の⼿手法により、適切切な⽊木構造を暗に獲得.
-‐‑‒-‐‑‒:  2011年年のBottou  の論論⽂文  について
【Abstract】
ʻ‘reasoningʼ’の尤もらしい定義とは、ʼ’新しい質問に答えるために前もって得た知識識
を代数的に操作することʼ’とできるのではないだろうか.この定義には、⼀一次論論理理推
論論や確率率率的推論論を含める.また、これには巨⼤大な学習機構の構築の際に⼀一般に⽤用い
られるような素朴な操作も含まれる.例例えば、適切切なラベル付き学習データを⽤用い
て最初に⽂文字分割器を訓練し、独⽴立立⽂文字式別器、⾔言語モデルを訓練することで、
我々は視覚⽂文字認識識機構を構築することができる.これらのモデルを適切切に結合し、
最終的な仕組みにファインチューニングすることは、モデル空間内の代数的操作と
して⾒見見なせそうだ.この最終的なモデルは、新しい質問に解答する:つまり、⽂文章
の画像を計算機が読解可能な⽂文章へと変換するのである.
  このような意⾒見見は、次の2つの間の概念念的連続性を⽰示唆するものである.それは、
論論理理的推論論や確率率率的推論論といった代数的に豊かな推論論、と訓練可能な学習機構の単
純な結合といった素朴な操作である.したがって、機械学習機構と洗練されたʼ’万能
なʼ’推論論機構との間の溝を埋めようとする代わりに、我々は、訓練可能な機構(仕組
み)に対して適応可能な操作の集合を代数的構造豊かなものにし、徹底的に推論論能⼒力力
を構築する.
From  machine  learning  to  machine  resoning.
[Essay,  MS  Research  :  Leon  Bottou,  2013]
Recursive  Networkの変種(亜種)
Frasconi(1993)  :  
  データ          :⽊木構造  
  ⼊入⼒力力/ターゲット:⽊木の個々のノード
Chap  10.6  [3]  :  Recursive  Neural  Network
10.3  Bidirectional  RNNs
10.4  Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence
        Architectures
10.5  Deep  Recurrent  Networks
10.6  Recursive  Neural  Networks
10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies
10.8  Echo  State  Networks
10.9  Leaky  Units  and  Other  Strategies  
                for  Multiple  Time  Scales
Chap.10  
>  10.3  -‐‑‒  10.9
Chap  10.7  [1]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies
【Recurrent  Neural  Networkの課題】
⻑⾧長距離離にある項(データ)間の依存関係を学習させたい.
<  根本的な問題  >
勾配の伝搬が繰り返される間に、勾配が発散・消失してしまう.
Recurrent  Neural  Network  の動作:
  時系列列データに対して、各時間ステップで同じ関数の繰り返し適⽤用が
  なされる.(活性化関数の合成積)
活性化関数の繰り返し適⽤用は、異異常な⾮非線形挙動を引き起こしやすい.
Chap  10.7  [2]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies
【Fig.10.15】⾮非線形関数の適応回数とその挙動
h(t)
= QT
Λt
Qh(0)
関数の合成操作
Chap  10.7  [3]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies
⾏行行列列の乗算演算と はいくつかの点で似ている.
リカレントニューラルネットによる
【Thinking】:  ⾮非線形の活性化関数と⼊入⼒力力xの無い超簡単なRNNを想定.  
h(t)
= WT
h(t−1)
h(t)
= Wt
( )
T
h(0)
W = QΛQT
今、⾏行行列列W  が固有値分解出来ると仮定すると、直⾏行行⾏行行列列Q  を⽤用いて
再帰関係が、固有値のべき乗  により与えられる
Chap  10.7  [4]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies
h(t)
= QT
Λt
Qh(0)
再帰関係  が、固有値のべき乗  により与えられる
固有値  が、
  ・1  未満        →  0  へ収束
  ・1  より⼤大きい  →  ∞  へ発散  
[例例]  W  が  スカラー値  の場合で考えてみたい.
→  乗算値Wt  は、Wの⼤大きさに応じて  発散  or  収束  .
各時間ステップtで異異なる重みW(t)  を⽤用いた⾮非再帰型ニューラルネットを
考えてみる.
W(0)   W(1)   W(2)  
W(3)   W(t-‐‑‒1)  
W(t)  
t
Chap  10.7  [5]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies
各時間ステップtで異異なる重みW(t)  を⽤用いた⾮非再帰型ニューラルネットを
考えてみる.
W(0)   W(1)   W(2)  
W(3)   W(t-‐‑‒1)  
W(t)  
t
各W(t)  が、平均0・分散v  のランダム⾏行行列列として与えられる場合:
積算値(                                    )  の分散  ∝  O(v(n))h(t)
= W(t)
h(0)
t
∏ ココが発散・収束
の振る舞いを与えている.
望ましい分散v*  を定めたい場合:
個々の重みの分散を          と定めるのが良良い.v = v*n
⾮非常に深いFFNNだとしても、適切切にスケールサイズを選択することで、
勾配消失・発散問題を回避可能.(Sussilio,  2014)
Chap  10.7  [6]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies
【RNNの勾配消失・発散  問題】:個々の研究者により独⽴立立して提起
当初:
  パラメータを勾配が発散・消失しない領領域に留留めておくと簡単に回避する
  ことが可能であると思われていた.
⼩小さな変化に対してもRNNが安定的に記憶できるようにするためには、
パラメータを勾配が消失するような空間に取らざるを得ない.
                                                  (Bengio,  1993)
Q.  なぜ「勾配の消失・発散問題」を考える必要があるのか?
Ans.  現実世界のデータには⻑⾧長期系列列のものが多くあり、⻑⾧長期系列列
                特有の性質を、分析内容に応じて扱う必要があるため.
            (⻑⾧長期系列列のデータをうまく扱えるようになりたいから.)
系列列データ内の⻑⾧長距離離間の関係に対する学習の難しさを考えている.
Chap  10.7  [6*-‐‑‒1]  :  ⻑⾧長距離離間の関係に対する学習の難しさ.
W(t)   W(t+L)  
W(t+(L+ΔL))  
t
flu_̲gt+L
flu_̲gt+(L+ΔL)
⻑⾧長距離離関係の勾配  と  短距離離関係の勾配
flu_ gt+(L+ΔL)
~ δt+(L+ΔL)
wt'
t'=t+1
t+(L+ΔL)
∏
#
$
%
&
'
( f ' ht'
( )
t'=t+1
t+(L+ΔL)
∏
#
$
%
&
'
(
RΔgrad =
flu_ gt+(L+ΔL)
flu_ gt+L
~
δt+(L+ΔL)
δt+L
⋅wΔL
αf (h)
各勾配に対する  勾配  と  誤差項  の関係について
今、⼀一次元の空間で考える.各時刻ステップでwが同⼀一であると仮定.
gradの⽐比率率率をRΔgrad、f(h)の⽐比率率率をα  f(h)  と定めると、
flu_ gt+L
~ δt+L
wt'
t'=t+1
t+L
∏
"
#
$
%
&
' f ' ht'
( )
t'=t+1
t+L
∏
"
#
$
%
&
'
Chap  10.7  [6*-‐‑‒2]  :  ⻑⾧長距離離間の関係に対する学習の難しさ.
•  もし、wΔL・αf(h)  が定数であれば、⻑⾧長距離離と短距離離の項のそれぞれの
影響は、それぞれの距離離の誤差の⼤大きさに⽐比例例(距離離に依らない.)
•  wΔL  を固定して、αf(h)に注⽬目すると、
-‐‑‒    常に  fʼ’(h)  >  1  :  ΔL→∞でαは∞発散、RΔgradは発散.
-‐‑‒    常に  fʼ’(h)  <  1  :  ΔL→∞でαは0漸近、RΔgradは収束.
-‐‑‒    常に  fʼ’(h)  =  1  :  α=const.RΔgradはfʼ’(h)に依存しない.
-‐‑‒    これより、常にfʼ’(h)≒1であればαは有限な値としてみなして
          RΔgradも有限な値となりそうだが・・・
αf (h) = f '(ht'
)
t'=t+L
t+(L+ΔL)
∏
数式から分かること
•  wΔL  に注⽬目すると、w<1の時、距離離差ΔLが⼤大きくなるにつれて⻑⾧長距離離にある
項の与える影響は指数的に減衰していくことが分かる.
RΔgrad =
flu_gt+(L+ΔL)
flu_gt+L
~
δt+(L+ΔL)
δt+L
⋅wΔL
αf (h)
モデルが⻑⾧長距離離の依存関係を表現することができる場合は、どのような場合
であっても、
< at
(a <1,t >=1)短距離離の関係に関する勾配
⻑⾧長距離離の関係に関する勾配
⻑⾧長距離離の関係に関する勾配は、短距離離の関係に関する勾配よりも指数的に
⼩小さなスケールとなる.
Chap  10.7  [7]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies
【実験】(Bengio,  1994)
•  捉えるべき依存関係の間隔が⼤大きくなるにつれて、勾配に基づく最適化法
は困難.
•  ⻑⾧長さが⾼高々10~∼20程度度の系列列に対しても、SGDを⽤用いた伝統的なRNNの
訓練の成功する確率率率は急速に0へと向かった.
•  ⻑⾧長距離離にある⼤大きな刺刺激も、伝搬距離離が⼤大きくなるにつれて減衰し⼩小さくなる
ために、短距離離にある⼩小さな刺刺激に隠されてしまう.
•  ⻑⾧長距離離の依存関係を学習するには、⾮非常に時間がかかる.
RNNをDynamical  systems(動的システム)とみなして深く取り扱う話
[Pascanu  er  al.  2013]  のレビュー
Chap  10.7  [8]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies
•  Doya  1993
•  Bengio  et  al.  1994
•  Siegelmann  and  Sontag  1995
ー  この章の残りの節では・・・  
  ⻑⾧長期の依存性を学習することの難しさを低減させるために提案されている
  様々な⼿手法について議論論を⾏行行う.
⻑⾧長期の依存性の学習問題:未だ深層学習における主要な挑戦的課題の⼀一つ
10.3  Bidirectional  RNNs
10.4  Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence
        Architectures
10.5  Deep  Recurrent  Networks
10.6  Recursive  Neural  Networks
10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies
10.8  Echo  State  Networks
10.9  Leaky  Units  and  Other  Strategies  
                for  Multiple  Time  Scales
Chap.10  
>  10.3  -‐‑‒  10.9
【  Reservoir  Computing  】:
Echo  State  Network  (ESN)
Liquid  State  Machines
•  隠れ層のパラメータが固定
•  出⼒力力層のパラメータのみを学習
•  活性化関数は連続関数
•  隠れ層のパラメータが固定
•  出⼒力力層のパラメータのみを学習
•  活性化関数は離離散関数(バイナリー)
Input  Layer
Output  Layer
X
Y
Reservoir  Layer
Chap  10.8  [1]  :  Echo  State  Networks
RNNで最も困難な学習パラメータ:再帰部(隠れ層)・⼊入⼒力力部(⼊入⼒力力層)
この難しさを回避したい  :  出⼒力力部の重みのみを学習すればよくね?
固定
•  任意⻑⾧長の系列列(時刻tまでの⼊入⼒力力系列列)
から固定⻑⾧長のベクトル(隠れ状態h(t))
への写像
•  活性化関数は線形変換
Chap  10.8  [2]  :  Echo  State  Networks
Reservoir  ComputingなRNNって、カーネルマシンと似てることない?
⼊入
⼒力力
層
・
隠
れ
層
(
固
定
パ
ラ
メ
ー
タ
)
出
⼒力力
層
(
学
習
パ
ラ
メ
ー
タ
)
⼊入
⼒力力
系
列列
出
⼒力力
系
列列
イメージ図
出⼒力力部の重みの関数の凸化問題
Ex.)  モデル構成が、出⼒力力層ユニットから⽬目的出⼒力力への線形回帰
              となっている場合
⽬目的関数:平均⼆二乗誤差
⼿手続き:凸化最適化の話に帰着し、簡単な学習アルゴリズム
        により最適解が求まる
Chap  10.8  [3]  :  Echo  State  Networks
⼗十分な系列列情報をリカレントニューラルネットで表現可能とするに
は、⼀一体どのように⼊入⼒力力部と再帰部の重みを設定すれば良良いのか?
【重要な問題】
上記の問題について
解析的な⽴立立場から考察を⾏行行う.
Chap  10:  数学的な準備  ー  線形代数(1)
【ヤコビ⾏行行列列  と  固有値・固有ベクトル】
ヤコビ⾏行行列列  (Jacobian:  関数⾏行行列列)  
•  多変数ベクトル値関数に対する勾配(接線の傾き)を表す計量量(⾏行行列列)
•  重積分の変数変換(座標変換)  なんかで良良く出現
固有値・固有ベクトル  (eigenvalue・eigenvector)
【関数⾏行行列列】:  隠れ層の重み⾏行行列列(正⽅方⾏行行列列)
【変数】    :  隠れ層に⼊入ってくる(⾼高次元)特徴量量ベクトル
を満たす、零零でないベクトルx  と  スカラーλ  が存在するとき、
x  をAの  固有ベクトル(右固有ベクトル)、λ  をAの  固有値  と定義.
Ax = λx
有限次元線形空間V  上の線形変換A  に対して、以下の⽅方程式
Chap  10:  数学的な準備  ー  線形代数(2)
【ヤコビ⾏行行列列  と  固有値・固有ベクトル】
固有値・固有ベクトル  -‐‑‒  具体的な性質を考えてみる
Ax = λx
•  固有ベクトルx  (≠0)に⾏行行列列Aをかけると、λ倍に伸縮した
元のベクトルxになる.
•  つまり、回転せずに同⽅方向にλ倍(λが負数なら逆⽅方向)に伸
縮する操作とみなすことができる.
•  ⼀一般的に適当なベクトルxに⾏行行列列Aをn回掛けたAnxを求める
のは厳しいが、xが固有ベクトルであればλnxとなり定数の
n乗倍で簡単に求められる.
•  また、適当なベクトルzに対しても固有ベクトルの線形結合
で表現出来る場合は、簡単に  Anz  を求めることができる.
スペクトル半径  は、⾏行行列列の等⽐比列列の収束性  と密接に関係
【スペクトル半径  (spectral  radius)】
複素正⽅方⾏行行列列や線形位相空間上の有界線形作⽤用素の固有値の
絶対値の最⼩小上界のこと.(固有値の絶対値の中で⼀一番⼤大きいもの.)
ρ(A):= max
i
λi( )
複素正⽅方⾏行行列列Aに対して、複素数  λ1,  ...  ,λsをその固有値とする
とき、Aのスペクトル半径  ρ(A)  は以下のように定義:
Chap  10:  数学的な準備  ー  線形代数(3)
lim
k→∞
Ak
= 0 を満たすときに限り、ρ(A) <1. である.
これを⽤用いて次のことが導かれる.任意の⾏行行列列ノルム  ||・||  について
    ρ(A)  <  1  ならば  ||  A  ||  →  0  (ノルムの連続性により)
    ρ(A)  >  1  ならば  ||  A  ||  →  ∞(ノルムの同値性により)
【アイデア】状態間遷移関数のヤコビ⾏行行列列の固有値を1に近づける.
    ・リカレントネットワークで重要な性質:ヤコビ⾏行行列列の固有値の分布
                                                  (8.2.5章で説明)
    ・特に重要:ヤコビ⾏行行列列のスペクトル半径  (固有値の絶対値の最⼤大値)
Chap  10.8  [4]  :  Echo  State  Networks
【スペクトル半径の効果検証】
    ・時刻tに対して変化しないヤコビ⾏行行列列Jのバックプロパゲーションを考える.
    ・ネットワークは、(純粋な)線形変換から構成.
    ・ヤコビ⾏行行列列Jは、固有値λ  に対応する  固有ベクトルv  を備えている.
初めの
勾配ベクトル
g
1回⽬目のBackprop
勾配ベクトル
n回⽬目のBackprop
勾配ベクトル
Jg Jng
勾配のズレ:Δgrad λに固有値の中で最⼤大のもの
を選択すると、摂動の⼤大きさ
も最⼤大のとなるΔgrad  =  Jn(g+δv)  –  Jng  =  δJnv  ≦  δ|λ|n
Chap  10.8  [5]  :  Echo  State  Networks
【スペクトル半径の効果検証】
初めの
勾配ベクトル
g
1回⽬目のBackprop
勾配ベクトル
n回⽬目のBackprop
勾配ベクトル
Jg Jng
初めの
勾配ベクトル
g+δv
1回⽬目のBackprop
勾配ベクトル
n回⽬目のBackprop
勾配ベクトル
J(g+δv) Jn(g+δv)
勾配ベクトル  に僅かに  固有ベクトル  を加えた場合を考える
勾配のズレ:Δgrad
Δgrad  =  Jn(g+δv)  –  Jng  =  δJnv  ≦  δ|λ|n
Chap  10.8  [6]  :  Echo  State  Networks
λに固有値の中で最⼤大のもの
を選択すると、摂動の⼤大きさ
も最⼤大のとなる
•  |λ|が1よりも⼤大きいとき、乖離離の⼤大きさ(δ|λ|n)は指数的に⼤大きくなる.
•  |λ|が1よりも⼩小さいとき、乖離離の⼤大きさ(δ|λ|n)は指数的に⼩小さくなる.
ここまでは各時間ステップで同じヤコビ⾏行行列列・RNNは線形変換のみで構成の話.
⾮非線形性を備えたRNNで考えると・・・
⾮非線形の乖離離:多くのタイムステップで0へと漸近.⼤大きなスペクトル半径
              から⽣生じる発散を抑制しやすくする.
•  バックプロパゲーションを⾏行行列列積の繰り返しとして述べた.
•  ⾮非線形ではないネットワークのフォワードプロパゲーション
  (前向き情報伝搬)についても同様に議論論できる.
エコーステートネットワークの最新の研究
  単位量量(unity:1)よりも⼤大きなスペクトル半径を⽤用いることを主張
Chap  10.8  [7]  :  Echo  State  Networks
縮退  と  減衰  の話
(1)  線形写像W  +  L2ノルム  →  hは減衰
Wによるhtの写像ht+1は⼤大きくなろうとするが、L2ノルムの効果によっ
て拡⼤大傾向が抑制.⼀一定の範囲内での⼤大きさしかとれず、Wの繰返し積
によって、その⼤大きさが徐々に⼩小さいものになりがちになる、という話.
(1)のような写像のことを  contractive(縮退)  という.
スペクトル半径が1よりも⼩小さい:htからht+1への写像はcontractive.
hの変化:各時間ステップ後に、徐々に⼩小さなものになる.
上記の話から、有限精度度(int32型のような)で状態ベクトルを保存しようと
すると、ネットワークは過去の情報を必ず忘却する.
ここで・・・
•  WとJは必ずしも対称にはならない.
•  虚部を含んだ虚数の固有値や固有ベクトルを備えることもあり得る.
(同じヤコビ⾏行行列列が逐次的に適⽤用された場合は、振動的挙動を起こす
可能性のあるものも含まれる.)
ベクトルと⾏行行列列の積を計算する際に、このように複素数の基底で表現される
係数の値(複素数の絶対値)が⼤大きくなったとしても実数のときと同じ.
•  1よりも⼤大きな固有値は発散.(逐次的に適⽤用されれば指数的に増⼤大)
•  逆に⼩小さければ固有値は減衰.(逐次的に適⽤用されれば指数的に減少)
htやバックプロパゲーション時に注⽬目すべきhtの⼩小さな変動値が実数であった
としても、複素数の基底で表現出来ることがある.
Chap  10.8  [8]  :  Echo  State  Networks
ヤコビ⾏行行列列の話  から分かったこと
•  htの⼩小さな変化がフォワード1ステップでどのように伝搬するか
•  バックプロパゲーション時にht+1の勾配がバックワード1ステップで
どのように伝搬するか
•  時間に対して情報は前向きに伝搬するが発散はしない.
•  なぜなら、tanhのような⾮非線形なものに通すことで安定効果が発揮
されるから.
⾮非線形な写像を備えたRNNの場合
ヤコビ⾏行行列列は、⾮非線形な写像を⽤用いることで各時間ステップで変化できる
ようになる
ダイナミクス(動的な変化)はより複雑なものとなる
Chap  10.8  [9]  :  Echo  State  Networks
ʻ‘純粋な線形ʼ’とʼ’⾮非線形ʼ’の場合の違い:
  ⾮非線形な(tanhのような)圧縮を⽤用いることで再帰的なダイナミクス
  (動きの⾃自由度度)を限定できる.
エコーステートネットワークの戦略略:
  単純に、スペクトル半径を適当に3とかになるように重みを固定.
Chap  10.8  [10]  :  Echo  State  Networks
エコーステートネットワークの戦略略:
最近では  :  訓練済みリカレントネットワークの重みを初期値に⽤用いる
•  ⻑⾧長期依存性を学習することを助ける.
•  1.2の初期スペクトル半径と8.2章のスパース性のある初期化枠組み
を合わせることで良良い性能となる.
10.3  Bidirectional  RNNs
10.4  Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence
        Architectures
10.5  Deep  Recurrent  Networks
10.6  Recursive  Neural  Networks
10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies
10.8  Echo  State  Networks
10.9  Leaky  Units  and  Other  Strategies  
                for  Multiple  Time  Scales
Chap.10  
>  10.3  -‐‑‒  10.9
Chap  10.9  [1]  :
Leaky  Units  and  Other  Strategies  
for  Multiple  Time  Scales
⻑⾧長期の依存性(関係性)を扱う⽅方法
[アイデア]  Mutiple  Time  Scale
[仕組み]  Leaky  Units
h(t)   h(t+1)   h(t+2)   W(T-‐‑‒1)  
W(T)  
t
・・・
ー  複数の時間スケールで演算を実⾏行行するモデル  を作ってみる.
適当に良良い(良良い粒粒度度)の接続:細かな情報・詳細の演算
⻑⾧長い距離離の接続            :遠い過去から現在までの情報を効率率率的に伝搬
細かな時間スケール  と  粗い時間スケール  の両⽅方を⽤用いる可変的な戦略略
※  時間スキップするような接続⽅方法  を加えることも含む
•  異異なる時間の信号を統合
•  細かな時間スケールのモデリングに使われるコネクションのいくつか
を取り除く
⻑⾧長距離離の時間スケールでの学習を実現するために
遠い過去の変数  から  現在の変数  までを直接繋ぐ
Chap  10.9  [2]  :
Leaky  Units  and  Other  Strategies  
for  Multiple  Time  Scales
【元ネタ】1996年年:Linらの研究
【由来】      1988年年:LangとHintonの研究  
                      ー  FFNNに遅延機構を組み込むアイデア
【スキップコネクション】
【問題】タイムステップが進むに応じて、勾配は指数的に消失(収束)もしく
        は発散  (Chap:8.2.5)
【1996年年  Linらの研究】dの時間遅れ機構  による再帰的接続を導⼊入
•  勾配は指数的に減少するが、それはτより⼩小さなτ/dの関数で表現.
•  遅延と単純な時刻間の接続の両⽅方があるとはいえ、勾配は未だτで
指数的に発散する可能性がある.
全ての⻑⾧長期依存性をこのような⽅方法でうまく表現出来るとは限らないが、
このような⽅方法で⻑⾧長期依存性を獲得できる学習アルゴリズムを得ることができる
Chap  10.9  [3]  :
Leaky  Units  and  Other  Strategies  
for  Multiple  Time  Scales
微分の積が1に近づいて⾏行行くようなパスを得る⽅方法:
  ー  線形の⾃自⼰己結合とこのような結合に1に近い重みを備えたユニット  
      というものがある.
•  aが1に近づく場合:移動平均は⻑⾧長期間の過去の情報を記憶.
•  aが0に近づく場合:過去に関する情報は急速に忘却.
•  線形の⾃自⼰己結合を備えた隠れユニットは、移動平均に似た振る舞いをする.
【Leaky  Unit】
何らかの値v(t)  による  移動平均μ(t)  について考えてみる.
          更更新:μ(t)  =  a*μ(t-‐‑‒1)  +  (1-‐‑‒a)*v(t)
パラメータa:μ(t-‐‑‒1)  から  μ(t)  への  線形の⾃自⼰己結合の例例
ht
= f (Wht−1
+Uxt
) ht
= 1−
1
τ
"
#
$
%
&
'⋅ht−1
+
1
τ
⋅ f (Wht−1
+Uxt
)
普通のRNNユニット Leaky  Unitを備えたRNNユニット
【Skip  Connection】
d時間ステップ毎に
スキップコネクトを⾏行行う
ユニットがd時間ステップからの値
による影響をより早く受けつつ、
学習することが可能
Chap  10.9  [4]  :
Leaky  Units  and  Other  Strategies  
for  Multiple  Time  Scales
ht
= f (Wht−1
+Uxt
) ht
= 1−
1
τ
"
#
$
%
&
'⋅ht−1
+
1
τ
⋅ f (Wht−1
+Uxt
)
普通のRNNユニット Leaky  Unitを備えたRNNユニット
τが1に近い:現在の隠れ層の特徴量量よりも過去から伝搬される特徴量量を優遇
τが0に近い:過去から伝搬される特徴量量よりも現在の隠れ層の特徴量量を優遇
τが1に近いと、より遠くの過去の情報を考慮できそう.
【Leaky  Units】
「重みが1に近い線形の⾃自⼰己結合を⽤用いること」は、(Skip  Connection同
様に)過去からの値を⽤用いることができる確実な⽅方法のひとつ.
Chap  10.9  [5]  :
Leaky  Units  and  Other  Strategies  
for  Multiple  Time  Scales
Skip  Connection  と  Leaky  Units
Skip  Connectionのint型の(整数の)スキップ⻑⾧長を調節することよりも
線形の⾃自⼰己結合によるアプローチにより実数のαを調節することの⽅方が
スムーズで柔軟性のあるものとなる.
アイデアの初出
他のNNへの適⽤用  :  エコーステートネットワーク
•  1992年年の  Mozer
•  1996年年の  El  Eihi  /  Benjio
Leakyユニットは、エコーステートネットワークの⽂文脈においても
有⽤用であることが知られている  (2007年年  Jaegerらの研究).
1.  予め⼿手動決め、定数とみなす:初回に⼀一度度、適当な分布からサンプリング.
2.  時間に対して⾃自由な変数として、それらを学習:⻑⾧長期依存性の考慮を⽀支援.
                                      (1992年年  Mozer,  2013年年  Pascanu)
【Leaky  Unitによる時間定数の設定】  :  2つの基本的な戦略略
Chap  10.9  [6]  :
Leaky  Units  and  Other  Strategies  
for  Multiple  Time  Scales
10.9.3  Removing  Connections
•  RNNの状態を複数の時間スケールで構築.
•  遅延スケールの⽅方で⻑⾧長距離離間をより簡単に情報を伝搬することができる.
【Skip  Connection】
伝搬リンク(⽮矢印)を新たに追加する形式のモデリング
【Removing  Connection】
ある⻑⾧長さのリンクを取り除き、より距離離の離離れたリンク
を新しく追加する形式のモデリング
Chap  10.9  [7]  :
Leaky  Units  and  Other  Strategies  
for  Multiple  Time  Scales
【⻑⾧長期の依存性を取り扱う⽅方法まとめ】
再帰ユニットをリーキーユニットに変更更
それぞれ異異なる固定された時間スケールに対応する異異なる
ユニットのグループを作る
予め設定として異異なる時間伝搬を⾏行行うリンクをユニット間に接続した
モデルを作っておく、ということを述べている気がする.
それぞれのユニットグループに対して、異異なる頻度度と違う時間で明⽰示的
かつ離離散的にアップデートを実⾏行行すること
[El  HihiとBengio,  1996]、[Koutnik,2014]  らのアプローチ

Deep Learning

  • 1.
    2017.08.10 NAIST  ⾃自然⾔言語処理理学研究室  D1 [担当:Chap.10.3-‐‑‒10.9] Kondo  Masayoshi   夏の集中勉強会-‐‑‒本読み@2017-‐‑‒松本Lab DEEP  LEARNING Ian  Goodfellow,  Yoshua  Benjio  and  Aaron  Curville
  • 2.
  • 3.
    10.3  Bidirectional  RNNs 10.4 Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence         Architectures 10.5  Deep  Recurrent  Networks 10.6  Recursive  Neural  Networks 10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies 10.8  Echo  State  Networks 10.9  Leaky  Units  and  Other  Strategies                  for  Multiple  Time  Scales Chap.10   >  10.3  -‐‑‒  10.9
  • 4.
    10.3  Bidirectional  RNNs 10.4 Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence         Architectures 10.5  Deep  Recurrent  Networks 10.6  Recursive  Neural  Networks 10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies 10.8  Echo  State  Networks 10.9  Leaky  Units  and  Other  Strategies                  for  Multiple  Time  Scales Chap.10   >  10.3  -‐‑‒  10.9
  • 5.
    多くの応⽤用:⼊入⼒力力の全体が分かっている状態で時刻tの出⼒力力ytを予測したい. 【⾳音声認識識】:現在の⾳音声  を  ⾳音素 として正しく翻訳する場合 •  調⾳音結合により、次のいくつかの⾳音素に依存する可能性. •  近接単語間の⾔言語的な依存性により、次のいくつかの単語に依存する 可能性. 現時刻の⾳音として尤もらしい2つの単語訳がある場合: 曖昧性を解消するために、遠い未来もしくは過去をみるべきなのかもしれない. Chap  10.3  [1]  :  Bidirectional  RNNs 全てのRNNは、「因果」の構造を備える.  ­−  時刻tの状態  :  時刻t-‐‑‒1までの過去の情報  +  現時刻tの⼊入⼒力力を反映  ­−  モデルに依っては、過去の出⼒力力  を⽤用いることもできる.
  • 6.
    Chap  10.3  [2] :  Bidirectional  RNNs Bidirectional  RNNは、前述の必要性から発案されたモデル. ⼊入⼒力力系列列全体が既知の時に、求めたい対象(⽬目的)に対して⼊入⼒力力系列列の隣隣接間 の情報が(研究対象の性質から)有⽤用である場合に、それを活⽤用したい気持ち. Bidirectional  RNN:⾮非常に⼤大きな成功 •  Handwriting                        -‐‑‒  [Graves,  2012] •  Speech  recognition  -‐‑‒  [Graves  et  al.,2008]                                 [Graves  and  Schmidhuber,  2009] •  Bioinformatics                -‐‑‒  [Baldiet  al.  ,1999] Bidirectional  RNNの構造 前向き⽅方向(Forward)のRNN 逆向き⽅方向(Backward)のRNN 出⼒力力  :  (系列列の)過去と未来に依存した値 •  固定窓を必要としない •  時刻tが周囲の情報に敏感
  • 7.
    Bidirectional  RNNの⼆二次元拡張 Chap  10.3 [3]  :  Bidirectional  RNNs 画像処理理において、上下左右の4つのRNNを組み合せる. an  image  RNN  を画像に適⽤用することは、   ・原則的に、コストがより⾼高い.   ・特徴量量間の⻑⾧長距離離の近接相互作⽤用を     考慮できる. CNN  を⽤用いることに⽐比べると・・・: RNNのforward  propagetionは、Convolutionでボトムアップに⼊入⼒力力を 各層へ処理理した後、再帰的処理理を⾏行行い、近接相互作⽤用が組み込まれた 特徴量量マップを得ること、と等価なものとして記述できる.
  • 8.
    10.3  Bidirectional  RNNs 10.4 Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence         Architectures 10.5  Deep  Recurrent  Networks 10.6  Recursive  Neural  Networks 10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies 10.8  Echo  State  Networks 10.9  Leaky  Units  and  Other  Strategies                  for  Multiple  Time  Scales Chap.10   >  10.3  -‐‑‒  10.9
  • 9.
    Chap  10.4  [1] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 図10.5  :     RNNが⼊入⼒力力系列列を固定⻑⾧長ベクトルにどのように写像するか 図10.9  :     RNNが固定⻑⾧長ベクトルを系列列にどのように写像するか 図10.3  /  10.4  /  10.10  /  10.11  :   RNNが⼊入⼒力力系列列を同じ⻑⾧長さの出⼒力力系列列にどのように写像するか 次のような図を⾒見見て⾏行行きたい.
  • 10.
    Chap  10.4  [1] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 図10.5  :     RNNが⼊入⼒力力系列列を固定⻑⾧長ベクトルにどのように写像するか 図10.9  :     RNNが固定⻑⾧長ベクトルを系列列にどのように写像するか 図10.3  /  10.4  /  10.10  /  10.11  :   RNNが⼊入⼒力力系列列を同じ⻑⾧長さの出⼒力力系列列にどのように写像するか 次のような図を⾒見見て⾏行行きたい.
  • 11.
    Chap  10.4  [2] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 【Fig.10.5】最終時刻でひとつの出⼒力力を⾏行行うRNNの時間展開図
  • 12.
    Chap  10.4  [1] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 図10.5  :     RNNが⼊入⼒力力系列列を固定⻑⾧長ベクトルにどのように写像するか 図10.9  :     RNNが固定⻑⾧長ベクトルを系列列にどのように写像するか 図10.3  /  10.4  /  10.10  /  10.11  :   RNNが⼊入⼒力力系列列を同じ⻑⾧長さの出⼒力力系列列にどのように写像するか 次のような図を⾒見見て⾏行行きたい.
  • 13.
    Chap  10.4  [3] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 【Fig.10.9】1つの固定⻑⾧長ベクトルから出⼒力力系列列の分布への               写像を⾏行行うRNN
  • 14.
    Chap  10.4  [1] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 図10.5  :     RNNが⼊入⼒力力系列列を固定⻑⾧長ベクトルにどのように写像するか 図10.9  :     RNNが固定⻑⾧長ベクトルを系列列にどのように写像するか 図10.3  /  10.4  /  10.10  /  10.11  :   RNNが⼊入⼒力力系列列を同じ⻑⾧長さの出⼒力力系列列にどのように写像するか 次のような図を⾒見見て⾏行行きたい.
  • 15.
    Chap  10.4  [4] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 【Fig.10.3】⼊入⼒力力から対応する出⼒力力への写像を⾏行行うRNNと               その訓練Lossの計算⼿手続き
  • 16.
    Chap  10.4  [5] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 【Fig.10.4】出⼒力力から隠れ層への再帰処理理のあるRNN
  • 17.
    Chap  10.4  [6] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 【Fig.10.10】条件付きRNNが可変⻑⾧長系列列xを同じ⻑⾧長さの系列列y               へ写像を⾏行行う図
  • 18.
    Chap  10.4  [7] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 【Fig.10.11】   典型的な双⽅方向RNN:   ⼊入⼒力力系列列xから出⼒力力系列列yへの写像を学習と   と時刻t毎のLoss
  • 19.
    Chap  10.4  [8] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 【議論論】⼊入出⼒力力で系列列の⻑⾧長さが異異なる場合にRNNに写像を学習させる⽅方法 コンテクスト(context:C)  :  RNNへの⼊入⼒力力. •  このコンテクストCのrepresentationが欲しい. •  コンテクストCは、ひとつのベクトル、または、⼊入⼒力力系列列をうまく圧縮 したベクトルの系列列を想定. ⾳音声認識識、機械翻訳、QAシステムでは、⼀一般的に⼊入出⼒力力系列列が必ずしも 同じ系列列ではない. 【Encoder-‐‑‒Decoder  /  Sequence-‐‑‒to-‐‑‒Sequence  Architecture】 •  Cho  et  al(2014a)  と  Sutskever(2014)  によって独⽴立立に発案. •  機械翻訳タスクへの適⽤用で最⾼高精度度を達成. アイデア:⾮非常に単純 1.  EncoderまたはReader、Input-‐‑‒RNNは、⼊入⼒力力系列列を読み込む. 2.  DecoderまたはWriter、Output-‐‑‒RNNは、固定⻑⾧長ベクトルに基づいて 出⼒力力系列列を⽣生成.
  • 20.
    Chap  10.4  [9] : Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures 【Encoder-‐‑‒Decoder  /  Sequence-‐‑‒to-‐‑‒Sequence  Architecture】 アイデア:⾮非常に単純 1.  EncoderまたはReader、Input-‐‑‒RNNは、⼊入⼒力力系列列を読み込む. 2.  DecoderまたはWriter、Output-‐‑‒RNNは、固定⻑⾧長ベクトルに基づいて 出⼒力力系列列を⽣生成. 【Innovation】:  可変⻑⾧長の系列列データを取り扱うことができる! 【従来】⼊入⼒力力系列列と出⼒力力系列列の⻑⾧長さは同⼀一. •  2つのRNNは訓練データに含まれる全⼊入出⼒力力ペア(x,y)に対して、同時 にlogPの平均を最⼤大化. •  エンコーダーRNNの最後の状態hnxは⼊入⼒力力系列列の表現Cとして⽤用いられ、 デコーダーRNNに⼊入⼒力力となる. Seq2Seqの構造: Encoderは、Decoderの隠れ層と同じサイズでなければならない、という 制限も必要ない.
  • 21.
    •  Cをひとつの固定⻑⾧長ベクトルではなく、可変⻑⾧長系列列へ組替え. •  attention mechanismの導⼊入:系列列C要素と出⼒力力系列列要素を繋ぐ ことを学習. 改 善 Seq2Seqの限界 【2015年年:  Bahdanauによる機械翻訳タスクでの報告】 ⾮非常に⻑⾧長い系列列に対して、エンコーダーRNNによって作られる コンテクストCの出⼒力力の次元が⼩小さすぎる時に発⽣生. Chap  10.4  [10]  :Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence  Architectures もし、コンテクストCがひとつのベクトルであれば、デコーダRNNは ベクトルから系列列への変換を⾏行行うRNN.(10.2.4で説明) ベクトルから系列列への変換を⾏行行うRNNへ⼊入⼒力力を与える⽅方法は、少なくとも 2つ.(注:デコーダー側の話をしている)     (1)  ⼊入⼒力力をRNNの初期状態とすること.     (2)  ⼊入⼒力力を各時間ステップの隠れユニットに与えること.
  • 22.
    10.3  Bidirectional  RNNs 10.4 Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence         Architectures 10.5  Deep  Recurrent  Networks 10.6  Recursive  Neural  Networks 10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies 10.8  Echo  State  Networks 10.9  Leaky  Units  and  Other  Strategies                  for  Multiple  Time  Scales Chap.10   >  10.3  -‐‑‒  10.9
  • 23.
    RNNの計算:3つのブロックとその変換⼿手続きに分解 Chap  10.5  [1] :  Deep  Recurrent  Networks 1.  ⼊入⼒力力            から  隠れ状態      へ 2.  以前の隠れ状態  から  次の隠れ状態  へ 3.  隠れ状態        から  出⼒力力          へ 【疑問】この⼿手続きを深くすることに意味あるの? 【実験検証】:意味アリ.[Graves  et  al,  2013.]  /  [Pascanu  et  al,  2014a.] 実験検証により、⼗十分な深さがあれば、モデルは望む写像を学習する. •  Schmidhuber  (1992) •  EL  Hihi  and  Bengio(1992) •  Jeager(2007a) ー  参考  :  深いRNNに関する初期研究
  • 24.
    ⼀一般的に、浅い構造は最適化しやすく、特別に深くすることは時刻tから 時刻t+1への短いパスをより⻑⾧長いものにする. Graves  et  al.(2013):RNNの状態を複数の層に分けること重要な利利点                         を⽰示した. [] Pascanu et  al.(2014):MLPを、前述の3つのブロックに分割 Chap  10.5  [2]  :  Deep  Recurrent  Networks •  表現の可⽤用性を考えると、3つのブロックに⼗十分な容量量を割当てたい •  深くすることで最適化が困難になり、学習できなくなる可能性 【例例】:普通のRNNに状態から状態への遷移を⾏行行う隠れ層(MLP)を1つ付加 【普通のRNN】 【隠れ層  追加】 普通のRNNと⽐比較して、2つの異異なる 時間ステップ変数間の最も短いパスの ⻑⾧長さが2倍 Pascanu  et  al(2014)による議論論: 隠れ層から隠れ層へのパスにスキップ コネクションを⽤用いることで緩和
  • 25.
    10.3  Bidirectional  RNNs 10.4 Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence         Architectures 10.5  Deep  Recurrent  Networks 10.6  Recursive  Neural  Networks 10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies 10.8  Echo  State  Networks 10.9  Leaky  Units  and  Other  Strategies                  for  Multiple  Time  Scales Chap.10   >  10.3  -‐‑‒  10.9
  • 26.
    -‐‑‒  Recursive  Neural Network  の  強み  と  応⽤用  について 【強み】   ⻑⾧長さτの系列列データに対して、⾮非線形の合成積回数の計算量量が  O(τ)  から     O(log  τ)  へ抑えられ、これにより⻑⾧長期の依存関係を扱いやすくなる. Chap  10.6  [1]  :  Recursive  Neural  Network 【  Recursive  Neural  Network  (りかーしぶ  にゅーらる  ねっとわーく)  】 Recurrent  Neural  Network  は、⼊入⼒力力に鎖状の系列列データを取扱うが、 Recursive  Neural  Network  は、⼊入⼒力力に深い⽊木構造のデータを取扱う. 1990年年  :  Pollack   発案 2011年年  :  Bottou   因果学習への応⽤用 【応⽤用】:  ⾃自然⾔言語処理理分野では・・・   ⾔言語系列列  を⼊入⼒力力とする場合に  パースツリーの構造  を⼊入⼒力力にできる.   (単純な離離散系列列の⼊入⼒力力  →  データ構造を情報に組み込んだ⼊入⼒力力) 応⽤用分野  :  ⾃自然⾔言語処理理・コンピュータビジョン  等で利利⽤用
  • 27.
    Chap  10.6  [2] :  Recursive  Neural  Network Recursive  Neural  Network  の  課題 (与えられるデータに対して)、最も「良良い⽊木構造」とはどのようなものか? Recursive  Neural  Network  は、予め⽊木構造を定めておく必要がある Bottou  の提⾔言 理理想的には、どのような⼊入⼒力力が与えられたとしても、それに 対して適切切な⽊木構造を発⾒見見・推論論し、モデル⾃自らがそれを獲 得できることが望ましい. 【回答】 •  データに依存しない⽊木構造:平衡⼆二分⽊木 •  いくつかの応⽤用領領域:外部の⼿手法により、適切切な⽊木構造を暗に獲得.
  • 28.
    -‐‑‒-‐‑‒:  2011年年のBottou  の論論⽂文 について 【Abstract】 ʻ‘reasoningʼ’の尤もらしい定義とは、ʼ’新しい質問に答えるために前もって得た知識識 を代数的に操作することʼ’とできるのではないだろうか.この定義には、⼀一次論論理理推 論論や確率率率的推論論を含める.また、これには巨⼤大な学習機構の構築の際に⼀一般に⽤用い られるような素朴な操作も含まれる.例例えば、適切切なラベル付き学習データを⽤用い て最初に⽂文字分割器を訓練し、独⽴立立⽂文字式別器、⾔言語モデルを訓練することで、 我々は視覚⽂文字認識識機構を構築することができる.これらのモデルを適切切に結合し、 最終的な仕組みにファインチューニングすることは、モデル空間内の代数的操作と して⾒見見なせそうだ.この最終的なモデルは、新しい質問に解答する:つまり、⽂文章 の画像を計算機が読解可能な⽂文章へと変換するのである.   このような意⾒見見は、次の2つの間の概念念的連続性を⽰示唆するものである.それは、 論論理理的推論論や確率率率的推論論といった代数的に豊かな推論論、と訓練可能な学習機構の単 純な結合といった素朴な操作である.したがって、機械学習機構と洗練されたʼ’万能 なʼ’推論論機構との間の溝を埋めようとする代わりに、我々は、訓練可能な機構(仕組 み)に対して適応可能な操作の集合を代数的構造豊かなものにし、徹底的に推論論能⼒力力 を構築する. From  machine  learning  to  machine  resoning. [Essay,  MS  Research  :  Leon  Bottou,  2013]
  • 29.
    Recursive  Networkの変種(亜種) Frasconi(1993)  :    データ          :⽊木構造     ⼊入⼒力力/ターゲット:⽊木の個々のノード Chap  10.6  [3]  :  Recursive  Neural  Network
  • 30.
    10.3  Bidirectional  RNNs 10.4 Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence         Architectures 10.5  Deep  Recurrent  Networks 10.6  Recursive  Neural  Networks 10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies 10.8  Echo  State  Networks 10.9  Leaky  Units  and  Other  Strategies                  for  Multiple  Time  Scales Chap.10   >  10.3  -‐‑‒  10.9
  • 31.
    Chap  10.7  [1] :  The  Challenge  of  Long-‐‑‒Term  Dependencies 【Recurrent  Neural  Networkの課題】 ⻑⾧長距離離にある項(データ)間の依存関係を学習させたい. <  根本的な問題  > 勾配の伝搬が繰り返される間に、勾配が発散・消失してしまう. Recurrent  Neural  Network  の動作:   時系列列データに対して、各時間ステップで同じ関数の繰り返し適⽤用が   なされる.(活性化関数の合成積) 活性化関数の繰り返し適⽤用は、異異常な⾮非線形挙動を引き起こしやすい.
  • 32.
    Chap  10.7  [2] :  The  Challenge  of  Long-‐‑‒Term  Dependencies 【Fig.10.15】⾮非線形関数の適応回数とその挙動
  • 33.
    h(t) = QT Λt Qh(0) 関数の合成操作 Chap  10.7 [3]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies ⾏行行列列の乗算演算と はいくつかの点で似ている. リカレントニューラルネットによる 【Thinking】:  ⾮非線形の活性化関数と⼊入⼒力力xの無い超簡単なRNNを想定.   h(t) = WT h(t−1) h(t) = Wt ( ) T h(0) W = QΛQT 今、⾏行行列列W  が固有値分解出来ると仮定すると、直⾏行行⾏行行列列Q  を⽤用いて 再帰関係が、固有値のべき乗  により与えられる
  • 34.
    Chap  10.7  [4] :  The  Challenge  of  Long-‐‑‒Term  Dependencies h(t) = QT Λt Qh(0) 再帰関係  が、固有値のべき乗  により与えられる 固有値  が、   ・1  未満        →  0  へ収束   ・1  より⼤大きい  →  ∞  へ発散   [例例]  W  が  スカラー値  の場合で考えてみたい. →  乗算値Wt  は、Wの⼤大きさに応じて  発散  or  収束  . 各時間ステップtで異異なる重みW(t)  を⽤用いた⾮非再帰型ニューラルネットを 考えてみる. W(0)   W(1)   W(2)   W(3)   W(t-‐‑‒1)   W(t)   t
  • 35.
    Chap  10.7  [5] :  The  Challenge  of  Long-‐‑‒Term  Dependencies 各時間ステップtで異異なる重みW(t)  を⽤用いた⾮非再帰型ニューラルネットを 考えてみる. W(0)   W(1)   W(2)   W(3)   W(t-‐‑‒1)   W(t)   t 各W(t)  が、平均0・分散v  のランダム⾏行行列列として与えられる場合: 積算値(                                    )  の分散  ∝  O(v(n))h(t) = W(t) h(0) t ∏ ココが発散・収束 の振る舞いを与えている. 望ましい分散v*  を定めたい場合: 個々の重みの分散を          と定めるのが良良い.v = v*n ⾮非常に深いFFNNだとしても、適切切にスケールサイズを選択することで、 勾配消失・発散問題を回避可能.(Sussilio,  2014)
  • 36.
    Chap  10.7  [6] :  The  Challenge  of  Long-‐‑‒Term  Dependencies 【RNNの勾配消失・発散  問題】:個々の研究者により独⽴立立して提起 当初:   パラメータを勾配が発散・消失しない領領域に留留めておくと簡単に回避する   ことが可能であると思われていた. ⼩小さな変化に対してもRNNが安定的に記憶できるようにするためには、 パラメータを勾配が消失するような空間に取らざるを得ない.                                                   (Bengio,  1993) Q.  なぜ「勾配の消失・発散問題」を考える必要があるのか? Ans.  現実世界のデータには⻑⾧長期系列列のものが多くあり、⻑⾧長期系列列                特有の性質を、分析内容に応じて扱う必要があるため.            (⻑⾧長期系列列のデータをうまく扱えるようになりたいから.) 系列列データ内の⻑⾧長距離離間の関係に対する学習の難しさを考えている.
  • 37.
    Chap  10.7  [6*-‐‑‒1] :  ⻑⾧長距離離間の関係に対する学習の難しさ. W(t)   W(t+L)   W(t+(L+ΔL))   t flu_̲gt+L flu_̲gt+(L+ΔL) ⻑⾧長距離離関係の勾配  と  短距離離関係の勾配 flu_ gt+(L+ΔL) ~ δt+(L+ΔL) wt' t'=t+1 t+(L+ΔL) ∏ # $ % & ' ( f ' ht' ( ) t'=t+1 t+(L+ΔL) ∏ # $ % & ' ( RΔgrad = flu_ gt+(L+ΔL) flu_ gt+L ~ δt+(L+ΔL) δt+L ⋅wΔL αf (h) 各勾配に対する  勾配  と  誤差項  の関係について 今、⼀一次元の空間で考える.各時刻ステップでwが同⼀一であると仮定. gradの⽐比率率率をRΔgrad、f(h)の⽐比率率率をα  f(h)  と定めると、 flu_ gt+L ~ δt+L wt' t'=t+1 t+L ∏ " # $ % & ' f ' ht' ( ) t'=t+1 t+L ∏ " # $ % & '
  • 38.
    Chap  10.7  [6*-‐‑‒2] :  ⻑⾧長距離離間の関係に対する学習の難しさ. •  もし、wΔL・αf(h)  が定数であれば、⻑⾧長距離離と短距離離の項のそれぞれの 影響は、それぞれの距離離の誤差の⼤大きさに⽐比例例(距離離に依らない.) •  wΔL  を固定して、αf(h)に注⽬目すると、 -‐‑‒   常に  fʼ’(h)  >  1  :  ΔL→∞でαは∞発散、RΔgradは発散. -‐‑‒   常に  fʼ’(h)  <  1  :  ΔL→∞でαは0漸近、RΔgradは収束. -‐‑‒   常に  fʼ’(h)  =  1  :  α=const.RΔgradはfʼ’(h)に依存しない. -‐‑‒   これより、常にfʼ’(h)≒1であればαは有限な値としてみなして          RΔgradも有限な値となりそうだが・・・ αf (h) = f '(ht' ) t'=t+L t+(L+ΔL) ∏ 数式から分かること •  wΔL  に注⽬目すると、w<1の時、距離離差ΔLが⼤大きくなるにつれて⻑⾧長距離離にある 項の与える影響は指数的に減衰していくことが分かる. RΔgrad = flu_gt+(L+ΔL) flu_gt+L ~ δt+(L+ΔL) δt+L ⋅wΔL αf (h)
  • 39.
    モデルが⻑⾧長距離離の依存関係を表現することができる場合は、どのような場合 であっても、 < at (a <1,t>=1)短距離離の関係に関する勾配 ⻑⾧長距離離の関係に関する勾配 ⻑⾧長距離離の関係に関する勾配は、短距離離の関係に関する勾配よりも指数的に ⼩小さなスケールとなる. Chap  10.7  [7]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies 【実験】(Bengio,  1994) •  捉えるべき依存関係の間隔が⼤大きくなるにつれて、勾配に基づく最適化法 は困難. •  ⻑⾧長さが⾼高々10~∼20程度度の系列列に対しても、SGDを⽤用いた伝統的なRNNの 訓練の成功する確率率率は急速に0へと向かった. •  ⻑⾧長距離離にある⼤大きな刺刺激も、伝搬距離離が⼤大きくなるにつれて減衰し⼩小さくなる ために、短距離離にある⼩小さな刺刺激に隠されてしまう. •  ⻑⾧長距離離の依存関係を学習するには、⾮非常に時間がかかる.
  • 40.
    RNNをDynamical  systems(動的システム)とみなして深く取り扱う話 [Pascanu  er al.  2013]  のレビュー Chap  10.7  [8]  :  The  Challenge  of  Long-‐‑‒Term  Dependencies •  Doya  1993 •  Bengio  et  al.  1994 •  Siegelmann  and  Sontag  1995 ー  この章の残りの節では・・・     ⻑⾧長期の依存性を学習することの難しさを低減させるために提案されている   様々な⼿手法について議論論を⾏行行う. ⻑⾧長期の依存性の学習問題:未だ深層学習における主要な挑戦的課題の⼀一つ
  • 41.
    10.3  Bidirectional  RNNs 10.4 Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence         Architectures 10.5  Deep  Recurrent  Networks 10.6  Recursive  Neural  Networks 10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies 10.8  Echo  State  Networks 10.9  Leaky  Units  and  Other  Strategies                  for  Multiple  Time  Scales Chap.10   >  10.3  -‐‑‒  10.9
  • 42.
    【  Reservoir  Computing 】: Echo  State  Network  (ESN) Liquid  State  Machines •  隠れ層のパラメータが固定 •  出⼒力力層のパラメータのみを学習 •  活性化関数は連続関数 •  隠れ層のパラメータが固定 •  出⼒力力層のパラメータのみを学習 •  活性化関数は離離散関数(バイナリー) Input  Layer Output  Layer X Y Reservoir  Layer Chap  10.8  [1]  :  Echo  State  Networks RNNで最も困難な学習パラメータ:再帰部(隠れ層)・⼊入⼒力力部(⼊入⼒力力層) この難しさを回避したい  :  出⼒力力部の重みのみを学習すればよくね? 固定
  • 43.
    •  任意⻑⾧長の系列列(時刻tまでの⼊入⼒力力系列列) から固定⻑⾧長のベクトル(隠れ状態h(t)) への写像 •  活性化関数は線形変換 Chap 10.8  [2]  :  Echo  State  Networks Reservoir  ComputingなRNNって、カーネルマシンと似てることない? ⼊入 ⼒力力 層 ・ 隠 れ 層 ( 固 定 パ ラ メ ー タ ) 出 ⼒力力 層 ( 学 習 パ ラ メ ー タ ) ⼊入 ⼒力力 系 列列 出 ⼒力力 系 列列 イメージ図 出⼒力力部の重みの関数の凸化問題 Ex.)  モデル構成が、出⼒力力層ユニットから⽬目的出⼒力力への線形回帰              となっている場合 ⽬目的関数:平均⼆二乗誤差 ⼿手続き:凸化最適化の話に帰着し、簡単な学習アルゴリズム         により最適解が求まる
  • 44.
    Chap  10.8  [3] :  Echo  State  Networks ⼗十分な系列列情報をリカレントニューラルネットで表現可能とするに は、⼀一体どのように⼊入⼒力力部と再帰部の重みを設定すれば良良いのか? 【重要な問題】 上記の問題について 解析的な⽴立立場から考察を⾏行行う.
  • 45.
    Chap  10:  数学的な準備 ー  線形代数(1) 【ヤコビ⾏行行列列  と  固有値・固有ベクトル】 ヤコビ⾏行行列列  (Jacobian:  関数⾏行行列列)   •  多変数ベクトル値関数に対する勾配(接線の傾き)を表す計量量(⾏行行列列) •  重積分の変数変換(座標変換)  なんかで良良く出現 固有値・固有ベクトル  (eigenvalue・eigenvector) 【関数⾏行行列列】:  隠れ層の重み⾏行行列列(正⽅方⾏行行列列) 【変数】    :  隠れ層に⼊入ってくる(⾼高次元)特徴量量ベクトル を満たす、零零でないベクトルx  と  スカラーλ  が存在するとき、 x  をAの  固有ベクトル(右固有ベクトル)、λ  をAの  固有値  と定義. Ax = λx 有限次元線形空間V  上の線形変換A  に対して、以下の⽅方程式
  • 46.
    Chap  10:  数学的な準備 ー  線形代数(2) 【ヤコビ⾏行行列列  と  固有値・固有ベクトル】 固有値・固有ベクトル  -‐‑‒  具体的な性質を考えてみる Ax = λx •  固有ベクトルx  (≠0)に⾏行行列列Aをかけると、λ倍に伸縮した 元のベクトルxになる. •  つまり、回転せずに同⽅方向にλ倍(λが負数なら逆⽅方向)に伸 縮する操作とみなすことができる. •  ⼀一般的に適当なベクトルxに⾏行行列列Aをn回掛けたAnxを求める のは厳しいが、xが固有ベクトルであればλnxとなり定数の n乗倍で簡単に求められる. •  また、適当なベクトルzに対しても固有ベクトルの線形結合 で表現出来る場合は、簡単に  Anz  を求めることができる.
  • 47.
    スペクトル半径  は、⾏行行列列の等⽐比列列の収束性  と密接に関係 【スペクトル半径 (spectral  radius)】 複素正⽅方⾏行行列列や線形位相空間上の有界線形作⽤用素の固有値の 絶対値の最⼩小上界のこと.(固有値の絶対値の中で⼀一番⼤大きいもの.) ρ(A):= max i λi( ) 複素正⽅方⾏行行列列Aに対して、複素数  λ1,  ...  ,λsをその固有値とする とき、Aのスペクトル半径  ρ(A)  は以下のように定義: Chap  10:  数学的な準備  ー  線形代数(3) lim k→∞ Ak = 0 を満たすときに限り、ρ(A) <1. である. これを⽤用いて次のことが導かれる.任意の⾏行行列列ノルム  ||・||  について     ρ(A)  <  1  ならば  ||  A  ||  →  0  (ノルムの連続性により)     ρ(A)  >  1  ならば  ||  A  ||  →  ∞(ノルムの同値性により)
  • 48.
    【アイデア】状態間遷移関数のヤコビ⾏行行列列の固有値を1に近づける.     ・リカレントネットワークで重要な性質:ヤコビ⾏行行列列の固有値の分布                                                   (8.2.5章で説明)     ・特に重要:ヤコビ⾏行行列列のスペクトル半径  (固有値の絶対値の最⼤大値) Chap  10.8 [4]  :  Echo  State  Networks 【スペクトル半径の効果検証】    ・時刻tに対して変化しないヤコビ⾏行行列列Jのバックプロパゲーションを考える.    ・ネットワークは、(純粋な)線形変換から構成.    ・ヤコビ⾏行行列列Jは、固有値λ  に対応する  固有ベクトルv  を備えている. 初めの 勾配ベクトル g 1回⽬目のBackprop 勾配ベクトル n回⽬目のBackprop 勾配ベクトル Jg Jng
  • 49.
    勾配のズレ:Δgrad λに固有値の中で最⼤大のもの を選択すると、摂動の⼤大きさ も最⼤大のとなるΔgrad  = Jn(g+δv)  –  Jng  =  δJnv  ≦  δ|λ|n Chap  10.8  [5]  :  Echo  State  Networks 【スペクトル半径の効果検証】 初めの 勾配ベクトル g 1回⽬目のBackprop 勾配ベクトル n回⽬目のBackprop 勾配ベクトル Jg Jng 初めの 勾配ベクトル g+δv 1回⽬目のBackprop 勾配ベクトル n回⽬目のBackprop 勾配ベクトル J(g+δv) Jn(g+δv) 勾配ベクトル  に僅かに  固有ベクトル  を加えた場合を考える
  • 50.
    勾配のズレ:Δgrad Δgrad  =  Jn(g+δv) –  Jng  =  δJnv  ≦  δ|λ|n Chap  10.8  [6]  :  Echo  State  Networks λに固有値の中で最⼤大のもの を選択すると、摂動の⼤大きさ も最⼤大のとなる •  |λ|が1よりも⼤大きいとき、乖離離の⼤大きさ(δ|λ|n)は指数的に⼤大きくなる. •  |λ|が1よりも⼩小さいとき、乖離離の⼤大きさ(δ|λ|n)は指数的に⼩小さくなる. ここまでは各時間ステップで同じヤコビ⾏行行列列・RNNは線形変換のみで構成の話. ⾮非線形性を備えたRNNで考えると・・・ ⾮非線形の乖離離:多くのタイムステップで0へと漸近.⼤大きなスペクトル半径               から⽣生じる発散を抑制しやすくする. •  バックプロパゲーションを⾏行行列列積の繰り返しとして述べた. •  ⾮非線形ではないネットワークのフォワードプロパゲーション   (前向き情報伝搬)についても同様に議論論できる. エコーステートネットワークの最新の研究   単位量量(unity:1)よりも⼤大きなスペクトル半径を⽤用いることを主張
  • 51.
    Chap  10.8  [7] :  Echo  State  Networks 縮退  と  減衰  の話 (1)  線形写像W  +  L2ノルム  →  hは減衰 Wによるhtの写像ht+1は⼤大きくなろうとするが、L2ノルムの効果によっ て拡⼤大傾向が抑制.⼀一定の範囲内での⼤大きさしかとれず、Wの繰返し積 によって、その⼤大きさが徐々に⼩小さいものになりがちになる、という話. (1)のような写像のことを  contractive(縮退)  という. スペクトル半径が1よりも⼩小さい:htからht+1への写像はcontractive. hの変化:各時間ステップ後に、徐々に⼩小さなものになる. 上記の話から、有限精度度(int32型のような)で状態ベクトルを保存しようと すると、ネットワークは過去の情報を必ず忘却する.
  • 52.
    ここで・・・ •  WとJは必ずしも対称にはならない. •  虚部を含んだ虚数の固有値や固有ベクトルを備えることもあり得る. (同じヤコビ⾏行行列列が逐次的に適⽤用された場合は、振動的挙動を起こす 可能性のあるものも含まれる.) ベクトルと⾏行行列列の積を計算する際に、このように複素数の基底で表現される 係数の値(複素数の絶対値)が⼤大きくなったとしても実数のときと同じ. • 1よりも⼤大きな固有値は発散.(逐次的に適⽤用されれば指数的に増⼤大) •  逆に⼩小さければ固有値は減衰.(逐次的に適⽤用されれば指数的に減少) htやバックプロパゲーション時に注⽬目すべきhtの⼩小さな変動値が実数であった としても、複素数の基底で表現出来ることがある. Chap  10.8  [8]  :  Echo  State  Networks ヤコビ⾏行行列列の話  から分かったこと •  htの⼩小さな変化がフォワード1ステップでどのように伝搬するか •  バックプロパゲーション時にht+1の勾配がバックワード1ステップで どのように伝搬するか
  • 53.
    •  時間に対して情報は前向きに伝搬するが発散はしない. •  なぜなら、tanhのような⾮非線形なものに通すことで安定効果が発揮 されるから. ⾮非線形な写像を備えたRNNの場合 ヤコビ⾏行行列列は、⾮非線形な写像を⽤用いることで各時間ステップで変化できる ようになる ダイナミクス(動的な変化)はより複雑なものとなる Chap 10.8  [9]  :  Echo  State  Networks ʻ‘純粋な線形ʼ’とʼ’⾮非線形ʼ’の場合の違い:   ⾮非線形な(tanhのような)圧縮を⽤用いることで再帰的なダイナミクス   (動きの⾃自由度度)を限定できる. エコーステートネットワークの戦略略:   単純に、スペクトル半径を適当に3とかになるように重みを固定.
  • 54.
    Chap  10.8  [10] :  Echo  State  Networks エコーステートネットワークの戦略略: 最近では  :  訓練済みリカレントネットワークの重みを初期値に⽤用いる •  ⻑⾧長期依存性を学習することを助ける. •  1.2の初期スペクトル半径と8.2章のスパース性のある初期化枠組み を合わせることで良良い性能となる.
  • 55.
    10.3  Bidirectional  RNNs 10.4 Encoder-‐‑‒Decoder  Sequence-‐‑‒to-‐‑‒Sequence         Architectures 10.5  Deep  Recurrent  Networks 10.6  Recursive  Neural  Networks 10.7  The  Challenge  of  Long-‐‑‒Term  Dependencies 10.8  Echo  State  Networks 10.9  Leaky  Units  and  Other  Strategies                  for  Multiple  Time  Scales Chap.10   >  10.3  -‐‑‒  10.9
  • 56.
    Chap  10.9  [1] : Leaky  Units  and  Other  Strategies   for  Multiple  Time  Scales ⻑⾧長期の依存性(関係性)を扱う⽅方法 [アイデア]  Mutiple  Time  Scale [仕組み]  Leaky  Units h(t)   h(t+1)   h(t+2)   W(T-‐‑‒1)   W(T)   t ・・・ ー  複数の時間スケールで演算を実⾏行行するモデル  を作ってみる. 適当に良良い(良良い粒粒度度)の接続:細かな情報・詳細の演算 ⻑⾧長い距離離の接続            :遠い過去から現在までの情報を効率率率的に伝搬 細かな時間スケール  と  粗い時間スケール  の両⽅方を⽤用いる可変的な戦略略 ※  時間スキップするような接続⽅方法  を加えることも含む •  異異なる時間の信号を統合 •  細かな時間スケールのモデリングに使われるコネクションのいくつか を取り除く
  • 57.
    ⻑⾧長距離離の時間スケールでの学習を実現するために 遠い過去の変数  から  現在の変数 までを直接繋ぐ Chap  10.9  [2]  : Leaky  Units  and  Other  Strategies   for  Multiple  Time  Scales 【元ネタ】1996年年:Linらの研究 【由来】      1988年年:LangとHintonの研究                         ー  FFNNに遅延機構を組み込むアイデア 【スキップコネクション】 【問題】タイムステップが進むに応じて、勾配は指数的に消失(収束)もしく         は発散  (Chap:8.2.5) 【1996年年  Linらの研究】dの時間遅れ機構  による再帰的接続を導⼊入 •  勾配は指数的に減少するが、それはτより⼩小さなτ/dの関数で表現. •  遅延と単純な時刻間の接続の両⽅方があるとはいえ、勾配は未だτで 指数的に発散する可能性がある. 全ての⻑⾧長期依存性をこのような⽅方法でうまく表現出来るとは限らないが、 このような⽅方法で⻑⾧長期依存性を獲得できる学習アルゴリズムを得ることができる
  • 58.
    Chap  10.9  [3] : Leaky  Units  and  Other  Strategies   for  Multiple  Time  Scales 微分の積が1に近づいて⾏行行くようなパスを得る⽅方法:   ー  線形の⾃自⼰己結合とこのような結合に1に近い重みを備えたユニット         というものがある. •  aが1に近づく場合:移動平均は⻑⾧長期間の過去の情報を記憶. •  aが0に近づく場合:過去に関する情報は急速に忘却. •  線形の⾃自⼰己結合を備えた隠れユニットは、移動平均に似た振る舞いをする. 【Leaky  Unit】 何らかの値v(t)  による  移動平均μ(t)  について考えてみる.           更更新:μ(t)  =  a*μ(t-‐‑‒1)  +  (1-‐‑‒a)*v(t) パラメータa:μ(t-‐‑‒1)  から  μ(t)  への  線形の⾃自⼰己結合の例例 ht = f (Wht−1 +Uxt ) ht = 1− 1 τ " # $ % & '⋅ht−1 + 1 τ ⋅ f (Wht−1 +Uxt ) 普通のRNNユニット Leaky  Unitを備えたRNNユニット
  • 59.
    【Skip  Connection】 d時間ステップ毎に スキップコネクトを⾏行行う ユニットがd時間ステップからの値 による影響をより早く受けつつ、 学習することが可能 Chap  10.9 [4]  : Leaky  Units  and  Other  Strategies   for  Multiple  Time  Scales ht = f (Wht−1 +Uxt ) ht = 1− 1 τ " # $ % & '⋅ht−1 + 1 τ ⋅ f (Wht−1 +Uxt ) 普通のRNNユニット Leaky  Unitを備えたRNNユニット τが1に近い:現在の隠れ層の特徴量量よりも過去から伝搬される特徴量量を優遇 τが0に近い:過去から伝搬される特徴量量よりも現在の隠れ層の特徴量量を優遇 τが1に近いと、より遠くの過去の情報を考慮できそう. 【Leaky  Units】 「重みが1に近い線形の⾃自⼰己結合を⽤用いること」は、(Skip  Connection同 様に)過去からの値を⽤用いることができる確実な⽅方法のひとつ.
  • 60.
    Chap  10.9  [5] : Leaky  Units  and  Other  Strategies   for  Multiple  Time  Scales Skip  Connection  と  Leaky  Units Skip  Connectionのint型の(整数の)スキップ⻑⾧長を調節することよりも 線形の⾃自⼰己結合によるアプローチにより実数のαを調節することの⽅方が スムーズで柔軟性のあるものとなる. アイデアの初出 他のNNへの適⽤用  :  エコーステートネットワーク •  1992年年の  Mozer •  1996年年の  El  Eihi  /  Benjio Leakyユニットは、エコーステートネットワークの⽂文脈においても 有⽤用であることが知られている  (2007年年  Jaegerらの研究). 1.  予め⼿手動決め、定数とみなす:初回に⼀一度度、適当な分布からサンプリング. 2.  時間に対して⾃自由な変数として、それらを学習:⻑⾧長期依存性の考慮を⽀支援.                                       (1992年年  Mozer,  2013年年  Pascanu) 【Leaky  Unitによる時間定数の設定】  :  2つの基本的な戦略略
  • 61.
    Chap  10.9  [6] : Leaky  Units  and  Other  Strategies   for  Multiple  Time  Scales 10.9.3  Removing  Connections •  RNNの状態を複数の時間スケールで構築. •  遅延スケールの⽅方で⻑⾧長距離離間をより簡単に情報を伝搬することができる. 【Skip  Connection】 伝搬リンク(⽮矢印)を新たに追加する形式のモデリング 【Removing  Connection】 ある⻑⾧長さのリンクを取り除き、より距離離の離離れたリンク を新しく追加する形式のモデリング
  • 62.
    Chap  10.9  [7] : Leaky  Units  and  Other  Strategies   for  Multiple  Time  Scales 【⻑⾧長期の依存性を取り扱う⽅方法まとめ】 再帰ユニットをリーキーユニットに変更更 それぞれ異異なる固定された時間スケールに対応する異異なる ユニットのグループを作る 予め設定として異異なる時間伝搬を⾏行行うリンクをユニット間に接続した モデルを作っておく、ということを述べている気がする. それぞれのユニットグループに対して、異異なる頻度度と違う時間で明⽰示的 かつ離離散的にアップデートを実⾏行行すること [El  HihiとBengio,  1996]、[Koutnik,2014]  らのアプローチ