hessian-free optimization for learning deep multidimensional recurrent neural networks

104
Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks NIPS2015 読読読 @Kotaro_Setoyama 2016.1.20

Upload: kotaro-setoyama

Post on 20-Jan-2017

78 views

Category:

Science


4 download

TRANSCRIPT

Page 1: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hessian-free Optimization for Learning Deep Multidimensional

Recurrent Neural NetworksNIPS2015 読み会

@Kotaro_Setoyama2016.1.20

Page 2: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

自己紹介

(www.pcl.cs.waseda.ac.jp/)

早稲田大学基幹理工学部情報理工学科 4 年小林研究室所属(音声合成: Text-to-Speech )PFI でバイト中(音声認識: Speech-to-Text )Twitter : @Kotaro_Setoyama

瀬戸山 幸大郎( Kotaro Setoyama )

Page 3: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Agenda▪ Introduction

▪ MDRNN(Multidimensional Recurrent Neural Network)

▪ Hessian-free for MDRNN

▪ CTC(Connectionist Temporal Classification)

▪ Experiments

▪ Conclusion

Page 4: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Introduction画像 ,音声 ,動画など

▪ MDRNN は多次元データを学習するのに効率が良い. → CTC と組み合わせることで state-of-the-art の性能を実現 → RNN との違いは hidden 層の帰還路が複数本▪ 層が 5 層以上の最適化手法は未知だった. → DNN の発展具合と比較すると貧弱

Page 5: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Introduction

▪ MDRNN は多次元データを学習するのに効率が良い. → CTC と組み合わせることで state-of-the-art の性能を実現 → RNN との違いは hidden 層の帰還路が複数本▪ 層が 5 層以上の最適化手法は未知だった. → DNN の発展具合と比較すると貧弱

画像 ,音声 ,動画など

二次近似の最適化手法であるHessian-free を用いれば学習できる!

Page 6: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Introduction

▪ Hessian-free は損失関数を二次近似して最適化する.▪ Hessian を求めずに最適化できる.

テーラー展開

:元の損失関数:二次近似損失関数:へシアン(直接計算しない):解の更新幅

速い!

Page 7: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Introduction

Hessian-free は以下のような極値を持つ損失関数に対しても頑強

Page 8: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Introduction…さらに

MDRNN の出力に CTC を用いて入出力長の異なるデータを学習させたい.

n n i p s u u_ _

入出力長が同じだと“nn_ _ipsuu” と出力される.“nips”と出力させたい.

Page 9: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Introduction…しかし

CTC は非凸関数→ Hessian-free で学習できない.

Page 10: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Introduction…しかし

CTC は非凸関数→ Hessian-free で学習できない.

凸部と非凸部を分離して凸関数に近似する!

Page 11: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Introduction

この論文の成果1. 5 層以上の MDRNN を Hessian-free を用いて学習できるようになった.2. CTC を凸近似することで MDRNN に組み込んで入出力長の異なるデータを扱えるようになった.

Page 12: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Introduction

この論文の成果1. 5 層以上の MDRNN を Hessian-free を用いて学習できるようになった.2. CTC を凸近似することで MDRNN に組み込んで入出力長の異なるデータを扱えるようになった.特に手書き文字認識で,精度が大きく向上した.

Page 13: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNN

Page 14: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNN

▪ 通常の RNN で手書き文字などを学習させられるか?→ 画素の数値ベクトルを 1 つの長いベクトルにして入力→ 手書き文字の特徴を縦・横方向から捉えられないか?

Page 15: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNN

▪ MDRNN では多次元の系列 / 非系列データを扱える.→ CNN のように次元をうまく捉えたい.→ RNN の帰還路の数をデータの次元数に合わせて増やす.

▪ 通常の RNN で手書き文字などを学習させられるか?→ 画素の数値ベクトルを 1 つの長いベクトルにして入力→ 手書き文字の特徴を縦・横方向から捉えられないか?

Page 16: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNNhidden layer

Input layer

(i,j-1)

(i-1,j) (i,j)

(i,j)

(i,j)

(0,0) x1

x2

▪ hidden layer の 1 点は各軸に沿った1 ステップ前の点と input layer から入力を受ける.▪ 点は、画像を学習する場合は 1 ピクセル分の RGB の数値ベクトルになる.ピクセルの集合でも,他の特徴ベクトルでも良い.

Page 17: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNN

hidden layer

Input layer

(0,0)

Forward Pass

Page 18: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNN

hidden layer

Input layer

(0,0)

Input layer

hidden layer

(0,1)(0,0)

Forward Pass

Page 19: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNN

hidden layer

Input layer

(i,j-1)(i-1,j-1)(i,j-2)

Forward Pass

Page 20: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNN

hidden layer

Input layer

(i,j-1)(i-1,j-1)(i,j-2)

Input layer

hidden layer(i,j-1)

(i,j)(i-1,j)

Forward Pass

Page 21: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNNBackward Pass

hidden layer

output layer

(i+1,j)(i,j)(i,j+1)

▪ 準伝播も逆伝播も通常のRNN と変わらず,多次元になっただけ.▪ 出力層は実際はこのような形になっていない(後述)

Page 22: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

MDRNN

Backward Pass

Forward Pass

: 出力層の活性化関数: 次元数

Page 23: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Multidirectional Network

▪ 順向きとの RNN と逆向きの RNN を組み合わせて双方向 RNN(bidirectional RNN) が作れる. → データを逆向きにも学習する.▪ これを MDRNN に拡張する. → 隠れ層の数を 倍にする. → 学習方向が 倍になる.

Page 24: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Multidirectional Network

(0,0)

(0,0) (0,0)

(0,0)x1

x1 x1

x1

x2

x2

x2

x2 (i,j)

layer1context

layer3context

layer2context

layer4context

手書き文字を学習する場合, 4 方向から学習を行う.

この手法を Multidirectional Network という.

Page 25: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Multidimensional LSTM

▪ 中間層の LSTM も Multidimensional にする.

Cell

Output GateInput Gate

Forget Gate

Long Short-Term Memory

Page 26: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Multidimensional LSTM

▪ 通常の LSTM はメモリセルは 1 つの忘却ゲートを持つ. → MDLSTM は忘却ゲートの数を複数個にする. → メモリセルの保持する変数も複数になる.▪ 入力ゲート,出力ゲートに入るメモリセルの変数は同じ不重みで足し合わされる.これ以上の詳細は参考文献を参照[AlexGraves.Supervisedsequencelabellingwithrecurrentneuralnetworks,volume385.Springer,2012. ]

Page 27: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hierarchical Subsampling Networks最終的な構造

Page 28: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hierarchical Subsampling Networks手書き文字の情報は右のようにして伝播し,最後は 1次元の出力になる.

Page 29: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Learning MDRNN

d-dimensional MDRNN with M inputs and K output入力ベクトル系列 :出力ベクトル系列 : 時間 :T各次元の長さ :すべての重みとバイアス : パラメータ数 :N

learning phase入力層から出力層 損失関数生成学習全体のフローは            という合成関数で表せる.

Page 30: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Learning MDRNN

d-dimensional MDRNN with M inputs and K output入力ベクトル系列 :出力ベクトル系列 : 時間 :T

ex)2 次元手書き数字の場合d=2             T: 画像上のシフト回数M: ピクセルの数値ベクトル T1: 縦のブロック数K:9 ( 0〜 9 ) T2: 横のブロック数

各次元の長さ :すべての重みとバイアス : パラメータ数 :N

Page 31: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hessian-free

Page 32: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hessian-free for MDRNN

Hessian-free のポイントは 2 つ1. 二次近似した損失関数のヘシアン G をどう求めるか?

(再掲): 元の損失関数  :ヘシアン: 二次近似損失関数

2. 行列 × ベクトルの計算を効率良く行うには?▪ HF は最急降下法ではなく共役勾配法 (CG) を使う. → 収束が早い▪ CG はヘシアン × ベクトルを計算する必要がある.

Page 33: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hessian-free for MDRNN

Hessian-free のポイントは 2 つ1. 二次近似した損失関数のヘシアン G をどう求めるか?

G は Generalized Gauss-Newton matrix(GGN)で近似できる!が,

CG でベクトルと掛け合わせるので, G を直接求めることはしない.

Page 34: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hessian-free for MDRNN

Hessian-free のポイントは 2 つ2. 行列 × ベクトルの計算を効率良く行うには?共役勾配法

の二次形式もとで,アルゴリズム

ヘシアン × ベクトルが必要

Page 35: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hessian-free for MDRNN

Hessian-free のポイントは 2 つ2. 行列 × ベクトルの計算を効率良く行うには?共役勾配法

の二次形式もとで,アルゴリズム

ヘシアン × ベクトルが必要

ヘシアンを GGN で表せば,ベクトルとの積は簡単になる!

Page 36: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

d-dimensional MDRNN with M inputs and K output入力ベクトル系列 :出力ベクトル系列 : 時間 :T各次元の長さ :すべての重みとバイアス : パラメータ数 :N

learning phase入力層から出力層 損失関数生成学習全体のフローは            という合成関数で表せる.

再掲

Page 37: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Learning MDRNN

ヤコビアン,ヘシアンも使う

Page 38: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

の におけるヘシアン

chain rule を使って微分していく.[James Martens and Ilya Sutskever. Training deep and recurrent networks with Hessian-free optimization. In Neural Networks: Tricks of the Trade, pages 479–535. Springer, 2012. ]

参考文献

Page 39: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

はベクトル の 番目の要素求まったヘシアンは不定値である.

Page 40: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

はベクトル の 番目の要素求まったヘシアンは不定値である.

実数値関数 f に凸性を持たせるにはヘシアンが任意の点で半正定値であることが必要(行列の定値性)

Page 41: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

はベクトル の 番目の要素

損失関数が凸になるには不定値ではダメ.

求まったヘシアンは不定値である.実数値関数 f に凸性を持たせるにはヘシアンが任意の点で半正定値であることが必要(行列の定値性)

Page 42: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

求まったヘシアンは使えない?

Page 43: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

求まったヘシアンは使えない?

に置き換えられる.Generalized Gauss-Newtion matrix

は   か   がすべての i に対して線形の範囲にあるとき第二項を無視して

Page 44: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

求まったヘシアンは使えない?

に置き換えられる.Generalized Gauss-Newtion matrix

という損失関数を持つ NN を例に考える.

は   か   がすべての i に対して線形の範囲にあるとき第二項を無視して

Page 45: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

Page 46: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

二乗和誤差関数を最小化する最適な関数は目標データの条件付き平均である.は平均 0 の確率変数になる.

Page 47: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

二乗和誤差関数を最小化する最適な関数は目標データの条件付き平均である.は平均 0 の確率変数になる.すなわち第二項は無視できて,

Levenberg-Marquardt 近似

Page 48: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

Levenberg-Marquardt 近似で求めたヘシアンはが単位行列の時に対応

Page 49: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

がヘシアンの代わりに使えることはわかったを半正定値にするには?

Page 50: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

がヘシアンの代わりに使えることはわかった.を半正定値にするには?

→ L が凸関数であることが必要→ 交差エントロピーを用いる ( 出力層はソフトマックス )

Page 51: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

がヘシアンの代わりに使えることはわかった.を半正定値にするには?

→ L が凸関数であることが必要→ 交差エントロピーを用いる ( 出力層はソフトマックス )

GGN はある条件下でヘシアンを近似でき,出力層にソフトマックス関数を用いることで は半正定値になるので, も半正定値になり,結果,合成関数   が凸になる.

まとめ

Page 52: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

しかし GGN は計算しない!

Page 53: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hessian-free for MDRNN

Hessian-free のポイントは 2 つ1. 二次近似した損失関数のヘシアン G をどう求めるか?

再掲

: 元の損失関数  :ヘシアン: 二次近似損失関数

2. 行列 × ベクトルの計算を効率良く行うには?▪ HF は最急降下法ではなく共役勾配法 (CG) を使う. → 収束が早い▪ CG はヘシアン × ベクトルを計算する必要がある.

Page 54: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

GGN はベクトルとの積で考える.は任意のベクトル

前から順番にかけていく.

Page 55: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

GGN はベクトルとの積で考える.は任意のベクトル

前から順番にかけていく.まずは

これは方向微分と呼ばれるもの

Page 56: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

方向微分の性質

1.和2.定数倍3.積4.連鎖律

Page 57: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

を と置き  を展開すると,方向微分の性質が使える.LSTM を持つ MDRNN にもこの性質は使える.詳細は論文の appendix A を参照.

Page 58: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

次は に をかける. 直接計算する!

Page 59: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

次は に をかける. 直接計算する!ところが,

出力層は CTC なので, の次元は最大→ 計算コストがかかり過ぎる.

Page 60: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

次は に をかける 直接計算する!ところが,

出力層は CTC なので, の次元は最大→ 計算コストがかかり過ぎる.でも,

全体の損失関数が時間毎の独立した損失関数の合計で表されるなら,計算量は減る.

Page 61: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

が     の行列であれば, の 個の対角行列のヘシアンの和で表せる.

この時 GGN は

: 時刻 t のときのヤコビアン

Page 62: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

最後にに をかける.

これは back propagation で求まる.詳細は論文参照

以上のようにして GGN を求めることなくGGN× ベクトルを計算する.

Page 63: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hessian-freeHessian-free まとめポイントは,

1. 関数全体が凸になりかつ 2.GGN を直接求めないので,収束が速くなる.

GGN はある条件下でヘシアンを近似でき,出力層にソフトマックス関数を用いることで は半正定値になるので, も半正定値になり,結果,合成関数   が凸になる.

Page 64: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

Page 65: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

n n i p s u u_ _

入出力長が同じだと“nn_ _ipsuu” と出力される“nips”と出力させたい.

CTC

再掲

Page 66: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

▪ CTC は入出力長の異なる系列データを学習できるCTC

パラメータ ={a,b,c} :学習対象の音素 ={_,a,b,c} :空白文字を追加 =‘cbab’ :真のラベル系列

:冗長な系列 (‘c _ b _ _ a a b’ など ):冗長な系列から真の系列への写像

→ 冗長な系列すべての集合:真のラベルの文字間に空白を挿入

Page 67: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

▪ CTC は入出力長の異なる系列データを学習できるCTC

1. あるラベルに写像される 1 つの冗長なパスの確率を計算2.そのラベルに写像されるすべてのパスの確率を足す. ▪ forward backward method を使う.→ 入力を与えれらた時のラベルの条件付き確率が求まる.3.負の対数尤度をとって損失関数とし,最小化する. ▪ forward backward method を使う.

アルゴリズム

Page 68: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC ={a,b,c} :学習対象の音素 ={_,a,b,c} :空白文字を追加 =‘cbab’ :真のラベル系列

:冗長な系列 (‘c _ b _ _ a a b’ など ):冗長な系列から真の系列への写像

→ 冗長な系列すべての集合

ラベルが’ cbab’ で表される長さ t=8 の冗長な系列を図示するとどうなるか?

:真のラベルの文字間に空白を挿入

Page 69: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

1 2 3 4 5 6 7 81

2

3

4

5

6

7

8

9

t

s

I’

c

b

a

b

_

_

_

_

_

カラー付きは文字,白は空白I’ は文字の間に空白を挿入した列

Page 70: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

▪ CTC は入出力長の異なる系列データを学習できる.CTC

1. あるラベルに写像される 1 つの冗長なパスの確率を計算2.そのラベルに写像されるすべてのパスの確率を足す. ▪ forward backward method を使う.→ 入力を与えれらた時のラベルの条件付き確率が求まる.3.負の対数尤度をとって損失関数とし,最小化する. ▪ forward backward method を使う.

アルゴリズム

Page 71: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTCCTC を RNN に適用する▪ 出力層は  個のユニット▪ 活性化関数はソフトマックス関数▪ 出力 はその時刻の正解ラベルが である確率

Page 72: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTCCTC を RNN に適用する▪ 出力層は  個のユニット▪ 活性化関数はソフトマックス関数▪ 出力 はその時刻の正解ラベルが である確率入力系列       に対し,1 つのパス       が正解である確率

Page 73: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

▪ CTC は入出力長の異なる系列データを学習できる.CTC

1. あるラベルに写像される 1 つの冗長なパスの確率を計算2.そのラベルに写像されるすべてのパスの確率を足す. ▪ forward backward method を使う.→ 入力を与えれらた時のラベルの条件付き確率が求まる.3.負の対数尤度をとって損失関数とし,最小化する. ▪ forward backward method を使う.

アルゴリズム

Page 74: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTCCTC を RNN に適用する.

あらゆるパス      について左を加算

これは愚直に計算すると計算量大forward backward method を使う!

Page 75: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

1 2 3 4 5 6 7 81

2

3

4

5

6

7

8

9

t

s

1 つのノードに着目とおく.

Page 76: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

1 2 3 4 5 6 7 81

2

3

4

5

6

7

8

9

t

s

このノードを通過するパスの集合を考える.

Page 77: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTCforward backward method内の s番目のラベル を時刻 に通過するパス の集合前半のパス : 後半のパス :

: すべての前半パス  に関する確率   の和: すべての後半パス  に関する確率   の和

Page 78: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

すべてのパスは t=1 において s=1 か s=2 から出発あるいは

t > 1 では  を使って, が空白 or     の場合,と計算できる.

それ以外ではと計算できる.

Page 79: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

以上の計算を t=2 から t=T まで繰り返す.も同様の計算を逆向きに行えば計算できる.

が求まると,のように計算できる.

Page 80: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

▪ CTC は入出力長の異なる系列データを学習できる.CTC

1. あるラベルに写像される 1 つの冗長なパスの確率を計算2.そのラベルに写像されるすべてのパスの確率を足す. ▪ forward backward method を使う.→ 入力を与えれらた時のラベルの条件付き確率が求まる.3.負の対数尤度をとって損失関数とし,最小化する. ▪ forward backward method を使う

アルゴリズム

Page 81: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

d を正解ラベルとして与えられた時,

勾配は BPTT 法で計算する.

Page 82: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

d を正解ラベルとして与えられた時,

この後は BPTT で勾配を求めて学習を行っていくが,詳細は文献を参照.[Alex Graves, Santiago Ferna ́ndez, Faustino Gomez, and Ju ̈rgen Schmidhuber. Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks. In Proceedings of the 23rd International Conference on Machine Learning, pages 369–376, 2006. ]

Page 83: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

整理すると

入力列を MDRNN の出力 a で置き換えた.

I=z とした.

Page 84: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

それぞれ代入すると

   はソフトマックス関数なので,損失関数は凸になりそうだが, が対数関数なので    の分母が凸関数にならない.CTC の損失関数は非凸な関数である!

Page 85: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Hessian-freeHessian-free まとめポイントは,

1. 関数全体が凸になりかつ 2.GGN を直接求めないので,収束が速くなる.

GGN はある条件下でヘシアンを近似でき,出力層にソフトマックス関数を用いることで は半正定値になるので, も半正定値になり,結果,合成関数   が凸になる.

再掲

Page 86: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

わかりやすく書きなおす.非凸部を  ,凸部を  とおく.

:

:

最終的に凸部と非凸部の合成関数になる.

Page 87: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

GGN はとりあえず GGN を考える

Page 88: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

が     の行列であれば, の 個の対角行列のヘシアンの和で表せる.

この時 GGN は

: 時刻 t のときのヤコビアン

再掲

Page 89: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

GGN は

という対角行列にはなるが,次元は   になり,そのまま計算するのは困難.

とりあえず GGN を考えるは

Page 90: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

GGN はは対角行列にはなるが,次元は   になり,

そのまま計算するのは困難.

に着目すると,  を取り除いてもヘシアンは変わらない.を新たに定義

とりあえず GGN を考える

Page 91: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

と の GGN は同じなので,

のヘシアンを考えて良い.と は後述する理由により,等しくなる.実際

Page 92: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

と の GGN は同じなので,

のヘシアンを考えて良い.

という簡単な形になって,ヘシアンは直接計算できる.

と は後述する理由により,等しくなる.実際

Page 93: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

   : はそれぞれのブロックが半正定値なので,全体も半正定値になる.ヘシアンが半正定値かどうかを考えずに議論してきたが,結果的に半正定値になり,凸になることがわかった!

Page 94: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

1.      は半正定値でない.2.        は半正定値だが,計算コストがかかる.3.    は半正定値かつ計算コストがかからない.

これまでの流れ

CTC を出力層に持つ MDRNN を Hessian-free 最適化しようと GNN を考えたら計算量大. GNN ではなく単純にヘシアンを 2階微分して求めたらうまくいった.

Page 95: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

と が同じになる理由

Page 96: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Generalized Gauss-Newton matrix

求まったヘシアンは使えない?

に置き換えられる.Generalized Gauss-Newtion matrix

は   か   がすべての i に対して線形の範囲にあるとき第二項を無視して

再掲

Page 97: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

と が同じになる理由なので,

すべての i で, が必要

Page 98: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

と が同じになる理由なので,

すべての i で, が必要いま考えたいラベルを I をすると,もし,複数あるパスのうち,ほとんど 1 つのパスしか通らない時,

線形写像

Page 99: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

線形写像この時, が成立し,

= となる.

Page 100: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

CTC

ポイントは,1.CTC のパスは複数パターンあるが,ほとんどの場合同じ経路をたどる.その時,非凸部は凸関数に近似できるので,凸な損失関数の GNN を考えられる.2. しかし GNN は計算コストが大きい.そこでヘシアンを近似せずにそのまま計算すると,簡単にヘシアンが求まる.

CTC まとめ

Page 101: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Experiment

CTC を出力関数に持つ MDRNN の性能を手書き文字認識,音素認識において SGD と比較した.

▪ 手書き文字認識のデータセットは IFN/ENIT のアラビア文字の画像 25955枚 ( 学習 )▪ 音素認識のデータセットは TIMIT のコーパス 3696

sentences( 学習 )

パラメータのセットアップ,その他の工夫した手法などに関しては論文の 5.2 を参照

Page 102: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Result

手書き文字認識

▪ HF の性能は層数に関わらず SGD を凌駕している.▪ NETWORKS の A^B は, LSTM のセル数が A 個,隠れ層数が B であることを表している.

Page 103: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Result

音素認識

▪ 性能は phoneme error rate(PER) で算出した. PER はedit distance で求められる.▪ 他の手法と比較できるぐらいの性能は出たが,ほぼ同じ → 過学習が原因

Page 104: Hessian-free Optimization for Learning Deep Multidimensional Recurrent Neural Networks

Conclusion

この論文の成果1. 5 層以上の MDRNN を Hessian-free を用いて学習できるようになった.2. CTC を凸近似することで MDRNN に組み込んで入出力長の異なるデータを扱えるようになった.