マナティ

詳解 ディープラーニング

第4回 Backpropagation Through Time(BPTT)

リカレントニューラルネットワークの誤差を求める際には時間軸で展開するとイメージしやすいです。誤差が時間をさかのぼって逆伝播するBackpropagation Through Time(BPTT)について解説します。

72424_ext_06_0.jpg

電子書籍『詳解 ディープラーニング』をマナティで発売中!
(上の書籍画像をクリックすると購入サイトに移動できます)

 リカレントニューラルネットワークの誤差を求める際、気を付けなければならない点が1つあります。一般的なニューラルネットワークでは、例えば誤差関数を2 乗誤差関数として考える場合、式

4-01.png

式4-01

4-02.png

式4-02

と同様、誤差 eh(t), eo(t) は、

4-03.png

式4-03

4-04.png

式4-04

で与えられることになります。これらの式自体は正しいのですが、リカレントニューラルネットワークでは、ネットワークの順伝播で時刻 t – 1 における隠れ層の出力 h(t – 1) を考えたため、逆伝播の際も t – 1 における誤差を考える必要があります。

 リカレントニューラルネットワークのモデルを時間軸で展開するとイメージしやすいかもしれません。例えば下の図は時刻 t – 2 の入力 x(t – 2) まで展開したものになりますが、誤差 eh(t) は eh(t – 1) に逆伝播し、さらに eh(t – 1) は eh(t – 2) に逆伝播します。このように、順伝播の際は h(t) が h(t – 1) の再帰関係式で表されたのと同様、逆伝播の際は eh(t – 1) を eh(t) の式で表す必要があります。このとき、誤差は時間をさかのぼって逆伝播していることになるので、これを Backpropagation Through Time と呼び、BPTT と略記します。

4-05.png

図 時間をさかのぼって展開したニューラルネットワーク

 BPTT という手法の名前は付いていますが、考えるべきは eh(t – 1) を eh(t) の式で表すことです。 t – 1 における誤差は、

4-06.png

式4-05

なので、再帰関係式を求めると、

4-07.png

式4-06

4-08.png

式4-07

4-09.png

式4-08

が得られます。よって、再帰的に eh(tz – 1) と eh(tz) は

4-10.png

式4-09

の関係で表すことができます。これによりすべての勾配が計算できることが分かり、各パラメータの更新式は、

4-11.png

式4-10

4-12.png

式4-11

4-13.png

式4-12

4-14.png

式4-13

4-15.png

式4-14

となります。この 𝜏 がどれくらいの過去までさかのぼって時間依存性を見るかを表すパラメータなので、理想的には 𝜏 → +∞ とすべきです。しかし、現実には勾配が消失(あるいは爆発)してしまうことを防ぐため、せいぜい 𝜏 = 10 ~ 100 くらいに設定するのが一般的です

※すなわち、より長期にまたがる時間依存性はここで考えるアプローチでは学習できないことになります。この問題を解決するための手法は次回の記事で扱います。

著者プロフィール

巣籠悠輔(著者)
Gunosy、READYFOR創業メンバー、電通・Google NY支社に勤務後、株式会社情報医療の創業に参加。医療分野での人工知能活用を目指す。著書に『Deep Learning Javaプログラミング 深層学習の理論と実装』(インプレス刊、Packet Publishing:Java Deep Learning Essentials)がある。