7. 再帰型ニューラルネット
7章概要
⾳声やテキストなどの系列データを扱えることで、データ間の依存関係(⽂脈)
を学習できるネットワーク、再帰型ニューラルネットワークを考える。
RNNは内部に有向(閉路)をもつネットワークで、情報を⼀時的に保管できる。
この中間層のユニットをLSTMと呼ばれるユニットに置き換えることで、さらなる
機能向上を図ることができる。LSTMは⼊⼒・出⼒・忘却ゲートをもつ機構。
また、⼊⼒と出⼒で系列⻑が違う場合は隠れマルコフモデルやコネクショニスト
分類法などの⼿法によって分類を⾏う。
7. 再帰型ニューラルネット
系列データとは、個々の要素が順序付きの集まり
𝒙", 𝒙$, 𝒙%, ⋯ , 𝒙'
として与えられるデータ。⾳声やテキストなど。系列の⻑さTは⼀般に可変。
⼀般に、系列データを扱う問題の多くは事前に⼊⼒されたデータ間の
依存関係(⽂脈)を学習することで解決を⾏う。系列データを扱う問題の例として、
⽂章が途中まで与えられたときに次の単語を予測する問題や、発話を記録した
⾳声信号から話者が発した⾳素を推定する問題などがあげられる。
学習には再帰型ニューラルネット(Recurrent Neural Network)を⽤いる。
また、RNNは単語間の依存関係を学習し単語の予測をする問題では⾔語モデルとも
呼ばれている。
・系列データ
7. 再帰型ニューラルネット
・再帰型ニューラルネットワーク(RNN)
RNNは内部に(有向)閉路をもつニューラルネットの総称で、この構造によって
情報を⼀時的に記憶し、振る舞いを動的に変化させることを可能にしている。
ここで、中間層のユニットの出⼒が⾃分⾃⾝に戻される「帰還路」をもつシンプル
なRNNを考える。
i
j
k
W
𝑾)*+𝑾,-
⼊,
𝑥,
+
中/
𝑢/
+
出1
𝑦1
+
𝑧/
+
𝑣1
+
7. 再帰型ニューラルネット
RNNの出⼒層、誤差関数は順伝播型と同様に設計される。そのため、誤差関数は
𝐸 𝒘 = − 9 9 9 𝑑-1
+
𝑙𝑜𝑔𝑦1
+
(𝒙-; 𝒘)
1+-
と⽰される。ここで、はn番⽬のサンプルの時刻tでの⽬標出⼒である。
また、系列の⻑さはサンプルごとに違っていても構わない。
系列データの全体が⼀括して与えられる際、その系列データを逆向きにRNNに
⼊⼒することも出来る。このように逆向きの⼊⼒をとるRNNと順向きの⼊⼒を
とるRNNの出⼒層を統合したものを双⽅向性RNNといい、順向きだけのRNNより
性能がいいと⾔われている。
7. 再帰型ニューラルネット
また、各⼊出⼒は以下の式で表せる
𝑢/
+
= 9 𝑤/,
(,-)
𝑥,
+
,
+ 9 𝑤//D 𝑧/D
+E"
/D
𝑧/
+
= 𝑓 𝑢/
+
𝑣1
+
= 9 𝑤1/
()*+)
𝑧/
+
/
𝑦1
+
= 𝑓()*+)(𝑣1
+
)
このとき、バイアスは常に1を出⼒する特別なユニットを1つ下の層に⽤意し、
これと各ユニットとの結合重みをバイアスとする⼿法をとる。
また、重みは時刻tに関係なく、順伝播計算中は定数である。
7. 再帰型ニューラルネット
・RNNの逆伝播計算
学習には順伝播型と同様に確率的勾配降下法が使われる。誤差の微分を計算する
⽅法として主にメモリ効率の良いRTRL法と計算速度の速くシンプルなBPTT法の
2つが知られている。ここでは、BPTT法について解説する。
BPTT法ではRNNを以下の図のように時間⽅向に展開することで順伝播型ネットと
することで誤差逆伝播計算を⾏う。
𝑥G
𝑧G
𝑦G
W
𝑾)*+
𝑾,-
𝑥"
𝑧"
𝑦"
W
𝑾)*+
𝑾,-
𝑥$
𝑧$
𝑦$
W
𝑾)*+
𝑾,-
𝑥%
𝑧%
𝑦%
𝑾)*+
𝑾,-
・・・
𝑥+
𝑧G
𝑦+
W
𝑾)*+
𝑾,-
7. 再帰型ニューラルネット
通常の順伝播型ネットワークでの第𝑙 + 1層から第𝑙層へのデルタは
𝛿/
(J)
= 9 𝑤1/
(JK")
𝛿1
(JK")
𝑓L(𝑢/
(J)
)
1
で表される。(fは問題に即した活性化関数)RNNに適⽤するために
時刻tの出⼒層のユニットkにおけるデルタを
𝛿1
)*+,+
≡
𝜕𝐸
𝜕𝑣1
+
と表し、中間層のユニットjにおけるデルタを
𝛿/
+
≡
𝜕𝐸
𝜕𝑢/
+
と表すことで、中間層のユニットjのデルタは
𝛿/
+
= 9 𝑤1/
)*+
𝛿1
)*+,+
1
+ 9 𝑤/D/ 𝛿/D
+K"
/D
𝑓L(𝑢/
+
)
と計算できる。これをTから1つずつtを⼩さくしながら繰り返し計算することで
各時刻におけるデルタを計算することができる。
ただし、𝑡 = 𝑇 + 1におけるデルタはまだ計算できないため、0とする。
7. 再帰型ニューラルネット
また、出⼒層のデルタ𝛿1
)*+,+
は、順伝播時に求めた出⼒𝑦Gと⽬標出⼒𝑑Gから
誤差関数により計算される。
これにより、誤差Eの各層の重みによる微分は次のように計算される。
𝜕𝐸
𝜕𝑤/,
,-
= 9
𝜕𝐸
𝜕𝑢/
+
𝜕𝑢/
+
𝜕𝑤/,
,-
'
+Q"
= 9 𝛿/
+
𝑥,
+
'
+Q"
𝜕𝐸
𝜕𝑤//D
= 9
𝜕𝐸
𝜕𝑢/
+
𝜕𝑢/
+
𝜕𝑤//D
'
+Q"
= 9 𝛿/
+
𝑧/
+E"
'
+Q"
𝜕𝐸
𝜕𝑤1/
)*+ = 9
𝜕𝐸
𝜕𝑣1
+
𝜕𝑣1
+
𝜕𝑤1/
)*+
'
+Q"
= 9 𝛿/
+
𝑧/
+
'
+Q"
7. 再帰型ニューラルネット
・⻑、短期記憶(LSTM)
系列データの⽂脈を捉えて推定を⾏う際、どれだけ現時刻から遠い過去の⼊⼒を
出⼒に反映できるかは重要な問題である。理論上は過去の全⼊⼒が反映される
はずだが、実際には10時刻分程度だと⾔われている。これは、逆伝播計算時に
深い層を扱うために勾配消失問題と同じ原因で⽣じており、⾔い換えると
基本的なRNNでは短期的な記憶しか実現できないと⾔える。
そこで⻑期にわたる記憶を実現するために提案されたのが
⻑・短期記憶(Long Short-Term Memory)である。LSTMでは、基本的なRNNの
中間層の各ユニットをメモリユニットと呼ぶ要素で置き換えた構造を持つ。
7. 再帰型ニューラルネット
メモリユニットは左図のようなメモリセルa
とその他5つのユニットで構成される。
メモリセルaは状態𝑠/
+
を保持し、これを
1時刻隔ててメモリセル⾃⾝に帰還する
ことで記憶を実現している。
ユニットc,d,fの出⼒が0〜1のゲートの値を
⽰しており、各ゲートではゲートの値と状
態が掛けられている。
ユニットbでは外部からの⼊⼒を受け取り、
⼊⼒ゲートを経てメモリセルへ伝えられる。
ユニットeではメモリセルからの⼊⼒を受け
取り、出⼒ゲートを経て外部へ出⼒する。
7. 再帰型ニューラルネット
ゲートを経るときにゲートの値が1に近ければ状態がそのまま伝達され、0に近ければ
リセットされる。そのために、ゲートの値の計算に⽤いる活性化関数はロジスティック
シグモイド関数が⽤いられる。上記の機構を式で表すと、メモリセルは
𝑠/
+
= 𝑔/
S,+
𝑠/
+E"
+ 𝑔/
T,+
𝑓(𝑢/
+
)
と表される。第2項は元のRNNと同様に
𝑢/
+
= 9 𝑤/,
(,-)
𝑥,
+
,
+ 9 𝑤//D 𝑧/D
+E"
/D
として受け取る。また、各ゲートの値は以下のように⽰される。
𝑔/
S,+
= 𝑓 𝑢/
S,+
= 𝑓 9 𝑤/,
S,,-
𝑥,
+
,
+ 9 𝑤//D
S
𝑧/D
+E"
/D
+ 𝑤/
S
𝑠/
+E"
𝑔/
T,+
= 𝑓 𝑢/
T,+
= 𝑓 9 𝑤/,
T,,-
𝑥,
+
,
+ 9 𝑤//D
T
𝑧/D
+E"
/D
+ 𝑤/
T
𝑠/
+E"
𝑔/
U,+
= 𝑓 𝑢/
U,+
= 𝑓 9 𝑤/,
U,,-
𝑥,
+
,
+ 9 𝑤//D
U
𝑧/D
+E"
/D
+ 𝑤/
U
𝑠/
+E"
7. 再帰型ニューラルネット
LSTMも普通のRNNと同様に勾配降下法による学習が可能。また、勾配計算も
同様に誤差逆伝播法により⾏う。各ユニットのデルタは以下。
𝜖/
+
= 9 𝑤1/
)*+
𝛿1
)*+,+
1
+ 9 𝑤/D/ 𝛿/L
+K"
/L
𝑎: 𝛿/
YZJJ,+
= 𝛿[/
+
+ 𝑔/
S,+K"
𝛿/
YZJJ,+K"
+ 𝑤/
S
𝛿/
T,+K"
+ 𝑤/
T
𝛿/
S,+K"
+ 𝑤/
U
𝛿/
U,+
𝑏: 𝛿/
+
= 𝑔/
T,+
𝑓L 𝑢/
+
𝛿/
YZJJ,+K"
𝑐: 𝛿/
T,+
= 𝑓L 𝑢/
T,+
𝑓(𝑢/
+
)𝛿/
YZJJ,+
𝑑: 𝛿/
U,+
= 𝑓L 𝑢/
U,+
𝑓 𝑠/
+
𝜖/
+
𝑒: 𝛿[/
+
= 𝑔/
S,+K"
𝑓L 𝑠/
+
𝜖/
+
𝑓: 𝛿/
S,+
= 𝑓L 𝑢/
S,+
𝑠/
+E"
𝛿/
YZJJ,+
・LSTMの逆伝播計算
7. 再帰型ニューラルネット
RNNでは各時刻につき1つの⼊⼒をとり1つの出⼒を返すが、この動作は
⼊⼒系列と異なる⻑さの系列を推定する場合に適していない。
そこで選ばれる⽅法として主に隠れマルコフモデル(Hidden Markov Model)と
コネクショニスト時系列分類法(ConnectionistTemporal Classification)の2つが
ある。
HMMでは内部状態を隠れ変数として持ち、これが時刻とともに確率的に変化
するマルコフモデルである。この観測を時間順に並べたものを系列データとして
考える。各内部状態と観測された特徴量の関係を混合正規分布モデルなどで表現
し、訓練データを⽤いてパラメータを決定する。
・⼊出⼒間で系列⻑が違う時
・隠れマルコフモデル
7. 再帰型ニューラルネット
⼊出⼒で系列⻑の違う場合の分類をHMMを⽤いずにニューラルネットだけで解
決しようとするのがCTC法である。認識対象となるラベルに「空⽩」を表すラベ
ルを加えた集合L‘を考える。ここで、真のラベル系列Iを考えると、この系列の冗
⻑な表現は無限にある。このような冗⻑な系列πとその元になる系列lとは
𝐼 = 𝐵(𝜋)
の関係で⽰される。また、1つのラベル系列に対してこれを与える冗⻑な系列の
集合を𝐵E" 𝐼 = {𝜋|𝐵 𝜋 = 1}と書き、この集合の要素をIに対するパスと呼ぶ。
CTCで⽤いるRNNは出⼒層が 𝐿′ 個のユニットからなり、活性化関数はソフトマッ
クスである。ここで、⼊⼒系列Xに対して1つのパスが正解である確率は
𝑝 𝜋 𝑋 = i 𝑦jk
+
'
+Q"
と表せる。
・コネクショニスト時系列分類法(CTC)
7. 再帰型ニューラルネット
CTCでは、以下の式を最⼤にするIを推定する系列とする。
𝑝 𝐼 𝑋 = 9 𝑝 𝜋 𝑋
j∈mno T
しかし、実際には計算量が膨⼤になるために前進、後退法と呼ばれる⼿法を
⽤いて効率化を図る
※詳細は→https://www.slideshare.net/mobile/shuheisowa/ss-71447076

深層学習(講談社)のまとめ 第7章