パターン認識論aito/patternrec/slides4.pdf · 制限付ボルツマンマシン...

Preview:

Citation preview

パターン認識論最終編伊藤 彰則

1

自己組織化マップ◦英語ではSelf Organizing Map (SOM)

◦(高次元)空間から構造を持ったユニットへの非線形写像を求める◦KL展開/PCAのような次元圧縮とクラスタリングを同時に行う

2

例◦色空間の写像

0 2 4 6 8

02

46

8

x

y

色空間の場合、実は次元を上げている(3次元→64次元)ことに注意

3

例◦色空間の写像◦元画像の色(3次元)を8x8のユニットに写像

◦ユニットの隣接関係と、特徴空間での点の近さに相関がある

0 2 4 6 8

02

46

8

x

y

4

自己組織化マップ◦数学的準備◦学習データ 𝑥1, … , 𝑥𝑁 ∈ 𝑅𝑛

◦ノード 𝑣 ∈ 𝑉

◦ノード重みベクトル 𝑚𝑣 ∈ 𝑅𝑛

◦データ間距離関数 𝑑 𝑥, 𝑦 = 𝑥 − 𝑦

◦ノード間類似度 ℎ(𝑢, 𝑣)

5

目的関数◦ノードに相互の関係がない場合の誤差関数

◦𝐸 = 𝑖 𝑑 𝑥𝑖 , 𝑚𝑐𝑖

2

◦𝑐𝑖 = argmin𝑣

𝑑(𝑥𝑖 , 𝑚𝑣)

◦「隣接ノードは似たような特徴を持つ」という制約を入れると◦𝐸 = 𝑖 𝑣 ℎ 𝑐𝑖 , 𝑣 𝑑 𝑥𝑖 , 𝑚𝑣

2

6

ノード間類似度◦「隣接するノードは最終的に同じような特徴を持つべき」という制約を表現

◦例(2次元配置)◦ 𝑣 = 𝑣𝑥, 𝑣𝑦 , 𝑢 = 𝑢𝑥, 𝑢𝑦

◦ ℎ 𝑢, 𝑣 = 1 𝑢𝑥 − 𝑣𝑥 ≤ 𝐾 and 𝑢𝑦 − 𝑣𝑦 ≤ 𝐾

0 otherwise◦ ℎ 𝑢, 𝑣 = exp(−𝜆 𝑢 − 𝑣 2)

7

学習データが順番に与えられる場合◦次の𝐸(𝑡)を逐次最小化する◦𝐸 𝑡 = 𝑣 ℎ 𝑐𝑖(𝑖), 𝑣 𝑑 𝑥𝑖 , 𝑚𝑣(𝑖)

2

◦逐次更新式◦𝑚𝑣 𝑖 + 1 = 𝑚𝑣 𝑖 − ℎ(𝑐𝑖 , 𝑣)𝛼(𝑖)(𝑥𝑖 −𝑚𝑣 𝑖 )

◦ 0 < 𝛼 𝑖 < 1は時間とともに減少する重み

◦入力に最も近い重みベクトルを持つノード(Best Matching Unit, BMU)とその近傍の重みだけを𝑥𝑖に少しずつ近づける

8

アルゴリズムすべてのノードの重みベクトルをランダムに初期化

For 𝑖 = 1…𝑁 do

𝑐𝑖 ← argmin𝑣

𝑥𝑖 −𝑚𝑣(𝑖)

𝑐𝑖およびその近傍のノード𝑣について

𝑚𝑣 𝑖 + 1 ← 𝑚𝑣 𝑖 − ℎ(𝑐𝑖 , 𝑣)𝛼(𝑖)(𝑥𝑖 −𝑚𝑣 𝑖 )

9

学習データが一度に与えられる場合(バッチ学習SOM)すべてのノードの重みベクトルを初期化

(学習データのKL展開の主成分を初期値とする)

Loop

𝑥𝑣 ← 𝑖 ℎ 𝑐𝑖,𝑣 𝑥𝑖

𝑖 ℎ(𝑐𝑖,𝑣)

すべてのノード𝑣について

𝑚𝑣 𝑖 + 1 ← 𝑚𝑣 𝑖 − 𝛼(𝑖)( 𝑥𝑣 −𝑚𝑣 𝑖 )

10

K-means法との関係◦バッチ学習SOMについて、近傍ノードを考慮しない(ℎ 𝑢, 𝑣 =1 𝑖𝑓 𝑢 = 𝑣) 場合には K-means法と同じになる◦「隣接するノードの重みは似ている」という制約をなくすと、各ノードの重みは独立になる

11

ユニットの配置◦だいたい1次元~3次元(それ以上であってもよい)

◦2次元でありがちな配置

0 2 4 6 8

02

46

8

x

y

2 4 6 8

24

68

x

y

12

0 5 10 15 20 25 30

0.6

1.4

x

y

ユニットの配置◦不均等な2次元配置

◦1次元5 10 15

0.5

1.5

2.5

3.5

x

y

13

深層学習(Deep Learning)◦多くの中間層を持つニューラルネットワーク

◦高い識別性能・近似性能を持つことから近年注目されている

14

復習:3層NN

1x

2x

3x

4x

1

)1(

11w)1(

1h )2(

11w)1(

1g)2(

1h)2(

1g

1

入力層 中間層 出力層

15

復習:3層NN◦第k層の第iユニットの入力と出力

x

k

i

k

i

j

k

j

k

ji

k

i

ii

exf

hfg

gwh

xg

1

1)(

)( )()(

)1()()(

)0(

1x

2x

3x

4x

1)1(

11w)1(

1h)1(

1g

(など)

16

復習:誤差逆伝搬学習(Back Propagation)◦重みの学習

◦出力層の誤差

◦中間層の誤差

)1()()()( l

i

l

j

l

ij

l

ij gww

)1()( )2()2()2()2(

jjjjj ggbg

)1( )1()1()2()2()1(

jj

k

jkkj ggw

17

復習:誤差逆伝搬学習(Back Propagation)

)2(

ih )( )2()2(

ii hfg

教師信号bi

ii bg )2()1()(

)()(

)2()2()2(

)2(')2()2(

iiii

iiii

ggbg

hfbg

)1(

ih)2(

1)2(

2)2(

3)2(

4

)1()(

)()(

)1()1()2()2(

)1(')2()2()1(

ii

k

ikk

i

k

ikki

ggw

hfw

18

Deep Neural Network◦中間層がたくさんあるNN

3層 7層

19

DNNはなぜよい(と思われる)のか◦任意の関数を近似する能力は3層NNで十分◦ただし中間層のユニット数がいくらでも多くてもよく、しかも学習ができれば

◦実際には難しい

20

DNNはなぜよい(と思われる)のか◦多層NNの場合◦非線形関数を重ねて使うことで、少ないユニット数で高い表現力が得られる(うまく学習できれば)

21

例◦次のようなデータの識別◦これは難しそう

-2 -1 0 1 2 3

-3-2

-10

1

data$x

da

ta$

y

22

例◦3層NNによる識別

N=3

-2 -1 0 1 2 3

-3-2

-10

1

data$x

da

ta$

y

-2 -1 0 1 2 3

-3-2

-10

1

data$x

da

ta$

y

N=5

-2 -1 0 1 2 3

-3-2

-10

1

data$x

da

ta$

y

N=10

23

多層にしたら◦ちょっと卑怯に◦中心からの距離と、距離からの識別を直列のNNでやったら?

-2 -1 0 1 2 3

-3-2

-10

1

data$x

da

ta$

y

この辺で特徴抽出をしている

24

結果◦中間層が実質5ユニットでこんな結果が得られる◦この例はデータの構造を人手で与えたが、実際は特徴が自動的に発見されることが期待される

-2 -1 0 1 2 3

-3-2

-10

1

data$xd

ata

$y

25

DNNの問題点◦Vanishing Gradient Problem◦NNの学習法(BP法)は最急降下法(Gradient descent)の一種◦各レイヤーの各ユニットで、誤差を最小にする方向に重みを変化させる

◦変化量を非線形関数の微係数と入力の誤差の総和に比例させる

◦ネットワークの層が深くなると、重みの学習が困難になる

26

Vanishing Gradient例◦例:6層NNの中間4層のアクティベーションの変化 [X. Glorot&Y. Bengio,

2010]

27

Vanishing Gradient

)1(

ih)2(

1)2(

2)2(

3)2(

4

𝜖𝑖(1)

= 𝑘𝜖𝑘

2𝑤𝑖𝑘

2𝑓′ ℎ𝑖

1 特定の部分以外では0に近い

𝑤𝑖𝑗(𝑙)

← 𝑤𝑖𝑗(𝑙)

− 𝜌𝜖𝑗𝑙𝑔𝑖(𝑙−1)

重みのアップデートが起きにくい

レイヤーが深くなるとだんだん小さくなる

28

対策◦深いネットワークを一度にBPで学習せず、1層ずつなんかの方法で学習してから(プリトレーニング)全体を学習し直す◦Autoencoderを使う方法

◦RBMを使う方法(Deep Belief Network)

29

Autoencoder◦自動的にデータの符号化器(encoder)を学習する

入力 教師信号=入力

出力の誤差が十分小さければ、この部分に入力の特徴が集積されている

30

Autoencoderによるプリトレーニング

第1段 第2段 第3段

BPで学習

31

制限付ボルツマンマシン(RBM)による初期化◦教師なし学習の一種RBMによって各レイヤーの初期化◦ボルツマンマシンとは

◦ボルツマンマシンとRBM

◦Deep Belief Network

32

ボルツマンマシン(Boltzmann Machine)◦ニューラルネットの一種◦0/1の値を取る複数のユニットと、その間の重み付き結合からなる

◦ユニットには「見える」ユニット(入力)と「見えない」ユニット(内部状態)が存在

◦「エネルギー」が定義される

33

ボルツマンマシン(Boltzmann Machine)◦ユニットの値 𝑠𝑖 ∈ {0,1}◦ユニット間結合 𝑤𝑖𝑗

◦𝑤𝑖𝑗 = 𝑤𝑗𝑖 , 𝑤𝑖𝑖= 0

◦ユニットのバイアス 𝜃𝑖◦エネルギー

𝐸 = −

𝑖<𝑗

𝑤𝑖𝑗𝑠𝑖𝑠𝑗 +

𝑖

𝜃𝑖𝑠𝑖

34

ボルツマンマシン(Boltzmann Machine)◦状態からエネルギー算出◦重みとバイアスが定義され、全ユニットの状態が決まればエネルギーがわかる

◦入力ユニットの状態を固定すると、全体のエネルギーが最小になるように隠れユニットの値が(確率的に)決まる

35

ボルツマンマシン(Boltzmann Machine)◦あるユニットが0と1の時のエネルギーの差◦Δ𝐸𝑖 = 𝑗𝑤𝑖𝑗𝑠𝑗 + 𝜃𝑖

◦これがボルツマン分布に従う

◦𝑃 𝑠𝑖 = 1 =1

1+exp −Δ𝐸𝑖𝑇

◦Tは「温度」

36

エネルギーの計算◦入力ユニットの値を固定すると、隠れユニットの値が「確率的に」決まる◦温度に依存

◦エネルギーを一意に決めることはできないが、最小値は存在(熱平衡)

◦熱平衡時のエネルギーは重みとバイアスによって決まる

37

ボルツマンマシンの学習◦学習用の入力を与えたときの熱平衡時のエネルギー期待値を最小にするように重み・バイアスを決める◦Positive, negative学習フェーズの繰り返しによる◦ Positive: 入力ユニットを固定し、隠れユニットの値と重みを調整

◦ Negative: 入力ユニットを含めた全ユニットの値と重みを調整

38

ボルツマンマシンの学習

問題点◦焼きなまし法(simulated annealing)を使うので遅い

◦ユニット数に対して指数的に時間がかかる

39

制限付きボルツマンマシン(RBM)◦入力ユニットと隠れユニットとの間の結合しかないボルツマンマシン◦同じ種類のユニット間結合はない

◦効率的な学習ができる

40

RBMの学習◦ Positiveフェーズ

◦ 入力ユニットを固定すると隠れユニットの確率が確定

◦ 隠れユニットの値をサンプリング

◦ Negativeフェーズ

◦ 隠れユニットを固定すると入力ユニットの確率が確定

◦ 入力ユニットの値をサンプリング

◦重みの学習

41

Deep Belief Network◦RBMによるプリトレーニング◦RBMの隠れユニットは一種の内部状態

◦入力の情報をよく表すはず

◦特徴量(の変換関数の初期値)として使える

◦1段ずつRBMを構築する

42

Deep Belief Network

RBMその1 RBMその2 RBMその3

43

DBNの学習

BP学習

44

活性化関数の工夫

シグモイド関数1

1+exp(−𝑥)

-10 -5 0 5 10

0.0

00

00

.00

05

0.0

01

00

.00

15

0.0

02

00

.00

25

x

sig

mo

id'(x)

元の関数 微分

-10 -5 0 5 10

0.0

0.2

0.4

0.6

0.8

1.0

x

sig

mo

id(x

)

45

活性化関数の工夫

tanh関数 tanh 𝑥 =𝑒𝑥−𝑒−𝑥

𝑒𝑥+𝑒−𝑥

元の関数 微分

-10 -5 0 5 10

-1.0

-0.5

0.0

0.5

1.0

x

tan

h(x

)

-10 -5 0 5 10

0.0

00

.02

0.0

40

.06

0.0

80

.10

x

tan

h'(x)

46

活性化関数の工夫

ランプ関数 max(0, 𝑥)

元の関数 微分

-10 -5 0 5 10

02

46

81

0

x

Re

LU

(x)

-10 -5 0 5 10

0.0

00

0.0

02

0.0

04

0.0

06

0.0

08

0.0

10

x

Re

LU

'(x)

47

活性化関数の工夫

ランプ関数 min(0, 𝑥)

元の関数

-10 -5 0 5 10

02

46

81

0

x

Re

LU

(x)

Rectified-Linear Unit (ReLU)

48

使用例

MNIST手書き数字DB認識◦中間2層(128-64), シグモイド出力

94%

74%

49

その他の活性化関数Leaky ReLU

𝑥 𝑥 ≥ 00.001𝑥 𝑥 < 0

SoftPlus

log(1 + 𝑒𝑥)

-10 -5 0 5 10

02

46

81

0

x

Le

aky R

eL

U

-10 -5 0 5 10

02

46

81

0

x

So

ftP

lus

50

出力層の活性化関数オリジナル:sigmoid◦0/1の出力を近似(識別向き)

0/1

0/1

0/1

各出力ユニットの出力は独立

51

出力層の活性化関数Softmax出力

◦𝑔𝑖 =exp ℎ𝑖

𝑗 exp ℎ𝑗

ih

j j

ii

h

hg

exp

exp

どれかの出力だけが1に近くなるそれ以外は0に近い総和は1(確率近似)

52

Softmaxと誤差逆伝播

◦𝜕𝑔𝑖

𝜕ℎ𝑗=

exp ℎ𝑖 𝛿𝑖𝑗−exp ℎ𝑗

𝑗 exp ℎ𝑗2 = 𝑔𝑖(𝛿𝑖𝑗 − 𝑔𝑗)

◦ヤコビ行列 J =𝜕𝑔𝑖

𝜕ℎ𝑗

◦誤差ベクトル 𝒆◦入力側での誤差 𝝐 = J𝒆

53

Softmaxと誤差逆伝播◦シグモイド出力◦𝜖𝑖 = 𝑔𝑖 − 𝑏𝑖 𝑔𝑖 1 − 𝑔𝑖

◦Softmax出力

◦𝜖𝑖 = 𝑔𝑖 𝑗 𝑔𝑗 − 𝑏𝑗 (𝛿𝑖𝑗 − 𝑔𝑗)◦ある出力ユニットの逆伝播誤差に他の出力ユニットが影響

+ih

)( ii hfg

ib

)()( 'iiii hfbg

54

コスト関数出力側で小さくしたいもの◦これまでは二乗誤差を考えた

◦𝐿 = 𝑖 𝐿𝑖

◦𝐿𝑖 =1

𝑛 𝑘 𝑔𝑖

𝑘 − 𝑏𝑖𝑘

2

◦出力が(0,1)の場合にはこれ以外のコスト関数もありうる

55

クロスエントロピー

出力のエントロピーを最小化◦𝐿 = 𝑖 𝐿𝑖◦ 𝐿𝑖 = −

1

𝑛 𝑘 𝑏𝑖

(𝑘)log 𝑔𝑖

(𝑘)+ 1 − 𝑏𝑖

(𝑘)log 1 − 𝑔𝑖

(𝑘)

◦𝑏𝑖(𝑘)

= 1のときは前半のみ

◦𝑏𝑖(𝑘)

= 0のときは後半のみ

56

コストの比較

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

x

Co

st

二乗誤差 クロスエントロピー

b=1 b=0 b=1 b=0

0.0 0.2 0.4 0.6 0.8 1.0

01

23

4

x

Co

st

57

コストと誤差◦二乗誤差の場合◦出力側 𝑔𝑖 − 𝑏𝑖

◦二乗コスト𝐿 =1

2𝑔𝑖 − 𝑏𝑖

2

◦𝜕𝐿

𝜕𝑔𝑖= 𝑔𝑖 − 𝑏𝑖

◦クロスエントロピーの場合◦コスト L = 𝑏𝑖 log 𝑔𝑖 + 1 − 𝑏𝑖 log(1 − 𝑔𝑖)

◦𝜕𝐿

𝜕𝑔𝑖=

𝑏𝑖

𝑔𝑖−

1−𝑏𝑖

1−𝑔𝑖=

𝑏𝑖−𝑏𝑖𝑔𝑖−𝑔𝑖+𝑏𝑖𝑔𝑖

𝑔𝑖 1−𝑔𝑖=

𝑏𝑖−𝑔𝑖

𝑔𝑖(1−𝑔𝑖)

+ih

)( ii hfg

ib

)()( 'iiii hfbg

58

コストと誤差◦二乗誤差の場合

◦𝜖𝑖 =𝜕𝐿

𝜕𝑔𝑖𝑓′ ℎ𝑖 = 𝑏𝑖 − 𝑔𝑖 𝑔𝑖(1 − 𝑔𝑖)

◦クロスエントロピーの場合

◦𝜖𝑖 =𝜕𝐿

𝜕𝑔𝑖𝑓′ ℎ𝑖 =

𝑏𝑖−𝑔𝑖

𝑔𝑖 1−𝑔𝑖𝑔𝑖 1 − 𝑔𝑖

= 𝑏𝑖 − 𝑔𝑖

+ih

)( ii hfg

ib

iii bg

59

バッチ学習◦いつ重みを更新するか?◦1サンプルごと

◦元のBPの式に従って係数を更新

◦全サンプルの平均◦係数更新量を全サンプルで平均してすべての学習サンプルに対して1回だけ係数を更新

60

バッチ学習◦ミニバッチ

◦少ないサンプルごとに更新量を平均して係数を更新

61

ミニバッチの利点◦数十サンプル程度をまとめて更新◦1サンプルごと更新よりも高速

◦全サンプル更新よりも局所最適解に陥りにくい◦確率的最急降下法 (SGD)

62

学習係数の問題◦重みの学習◦更新は学習係数の影響を強く受ける

63

)1()()()( l

i

l

j

l

ij

l

ij gww

ji𝑤𝑖𝑗

(𝑙)

第𝑙 − 1層 第𝑙層

出力𝑔𝑖(𝑙−1)

誤差𝜖𝑗(𝑙)

MNISTの学習曲線例

学習アルゴリズムの改良◦通常

◦𝒘(𝑡) ← 𝒘(𝑡 − 1) − 𝜌𝜖 𝑡 𝒈(t)

◦AdaGrad◦ 𝑟 𝑡 ← 𝑟 𝑡 − 1 + 𝜖 𝑡 𝒈 𝑡 2

◦𝒘(𝑡) ← 𝒘(𝑡 − 1) −𝜌𝜖 𝑡 𝒈(t)

𝑟+𝑒

◦RMSProp◦ 𝑟 𝑡 ← 𝛾𝑟 𝑡 − 1 + (1 − 𝛾) 𝜖 𝑡 𝒈 𝑡 2

◦𝒘(𝑡) ← 𝒘(𝑡 − 1) −𝜌𝜖 𝑡 𝒈(t)

𝑟+𝑒

64

徐々に学習係数を小さくする

学習アルゴリズムの改良◦AdaDelta

◦ 𝑟 𝑡 ← 𝛾𝑟 𝑡 − 1 + (1 − 𝛾) 𝜖 𝑡 𝒈 𝑡 2

◦𝒗 ←𝑠(𝑡)+𝑒

𝑟(𝑡)+𝑒𝜖 𝑡 𝒈(𝑡)

◦𝒘 𝑡 ← 𝒘 𝑡 − 1 − 𝜌𝒗

◦ 𝑠 𝑡 ← 𝛾𝑠 𝑡 − 1 + 1 − 𝛾 𝒗 2

65

学習アルゴリズムの改良◦Adam

◦𝒗 𝑡 ← 𝛽𝒗 𝑡 − 1 + (1 − 𝛽)𝜖 𝑡 𝒈(𝑡)

◦ 𝑟 𝑡 ← 𝛾𝑟 𝑡 − 1 + (1 − 𝛾) 𝜖 𝑡 𝒈 𝑡 2

◦𝒘 𝑡 ← 𝒘 𝑡 − 1 −𝜌

𝑡

1−𝛾𝑡+𝑒

𝒗

1−𝛽𝑡

66

学習アルゴリズム比較

タスク:MNIST手書き数字認識

◦学習係数0.01

67

0 10 20 30 40 50

0.0

00

.05

0.1

00

.15

0.2

0

Epoch

Err

or

sgd

adagrad

adadelta

adam

rmsprop

70

80

90

100

adadelta adagrad adam rmsprop sgd

method

accura

cy

Dropout学習◦過学習を防ぐテクニック◦学習を行う係数をランダムに決める◦アンサンブル学習に似ている

68

Convolutional DNN (CNN)◦画像の認識に有効◦下の方では一部のユニット間の結合だけを持つ[Fukushima+ 1983]

• 最初のレイヤーでは低次元特徴(線、角、点など)を検出

• 上位レイヤーではそれらを組み合わせた「図形」に反応するユニットが学習される

69

Convolutional NN◦畳み込み(Convolution)層の構造◦ある隠れユニットは前の層におけるその周辺のユニットとだけ結合する

◦ユニットは数種類に限られ、同じユニットは異なる場所でも重みを共有する

70

Convolutional NN◦畳み込み(Convolution)層の構造

71

Convolutional NN◦プーリング層の構造

◦畳み込み出力をまとめる(2次元では2x2)

72

直前の層の値の最大値を出力する (Max pooling)または平均値を出力する(Average pooling)

画像の場合は1回のプーリングでサイズが縦横半分ずつになる

カラー画像の場合◦チャネルが複数ある→3次元(テンソル)

73

画像(3次元)

畳み込み

チャネル×畳み込みユニットの種類

プーリング

複数の畳み込み◦異なる畳み込み(畳み込み領域の違いなど)と統合

74

畳み込み

Depthconcat

Convolutional Neural Networkの例

75

Convolutionlayer

Poolinglayer

Convolutionlayer

Poolinglayer Convolution

layer Full connectionlayer

Outputlayer

Feature extraction Recognition

CNN developed by Google(GoogLeNet)

全体像

76

CNN developed by Google(GoogLeNet)

前段

77

CNN developed by Google(GoogLeNet)

中段1

78

CNN developed by Google(GoogLeNet)

中段2

79

CNN developed by Google(GoogLeNet)

最終段

80

古い方法との比較◦SIFT+BoFによる画像認識

81

Feature Classifier

CatDogFlowerDesk

CatDogFlowerDesk

クラシックな方法特徴抽出◦画像から特徴点を抽出

◦ベクトル量子化によるコード化

◦特徴量コードのヒストグラム(Bag-of-Feature, BoF)

識別◦BoFを特徴量とした識別(SVMなど)

82

特徴点抽出◦画像中から特徴的に変化する部分を抽出

83

http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html

代表的な特徴点抽出法• SIFT (Scale Invariant Feature Transform)• SURF (Speed Up Robust Feature)

Scale Invariant Feature Transform (SIFT)◦代表的な特徴点抽出法◦異なる解像度の画像間の差を計算◦空間-スケールの空間での極値を検出

84http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html

BoF特徴量◦複数の特徴点を固定長の特徴量に変換

85http://www.sccs.swarthmore.edu/users/09/btomasi1/tagging-products.html

識別

86

Image DB BoF

Input image

BoF

Classsi-fier

SVMk-NNNNet

Most similar class

クラシックな方法とCNNタスク クラシック NN

特徴点検出

SIFTなど

異なるスケールの画像の差分

CNN

異なる大きさの畳み込みの統合

特徴量の統合

VQ+ヒストグラム プーリングDepthConcat

識別器 SVM, k-NN等 DNN (全結合)

学習 処理ブロックごと 全体

87

時間的な依存関係の導入◦NNに時間の概念を導入

◦入力層にはベクトルが時間とともに入力されると仮定

88

1 2 3 4 ……… t 1 2 3 4 ……… t

時刻tの出力は時刻tの入力にのみ

依存する

Time Delay Neural Network (TDNN)◦時刻tの前後のフレームを利用

89

1 2 3 4 ……… t

1

2

3

2

3

4

3

4

5

t-1

t

t+1

Recurrent Neural Network (RNN)◦過去の出力を入力にフィードバック

90

1 2 3 4 ……… t 1 2 3 4 ……… t

Elman型ネットワーク

Recurrent Neural Network (RNN)◦過去の出力を入力にフィードバック

91

1 2 3 4 ……… t 1 2 3 4 ……… t

Jordan型ネットワーク

RNNの学習◦Backpropagation Through Time(BPTT)

92

1 2 3 4 ……… t 1 2 3 4 ……… t

RNNの学習

93

t 1 2 3 4 ……… t

t-1

t-2

重みを共有

無限に続くが実際には適当なところで打ち切る

RNNとLSTM◦Long Short Term Memory◦1つの層に複雑な内部構造

94

通常のRNN

Ctx x

xFt

It Ot LSTM

Ct

LSTMの内部構造

95

Ctx x

xFt

It Ot

それぞれの丸はベクトルの記憶・演算

LSTMの内部構造

96

Ctx x

xFt

It Ot

現在の状態を記憶する

入力の積和に非線形演算

LSTMの内部構造

97

Ctx x

xFt

It Ot

入力と記憶の積和から「どのくらい記憶を出力するか」

を計算

入力と記憶の積和から「どのくらい入力を覚えるか」を計算

入力と記憶の積和から「どのくらい記憶を忘れるか」を計算

LSTMの利点◦過去の記憶をどのくらい保持するかを制御できる◦タスクによってどのくらい前の入力が現在の出力に影響するかが違う

◦単純なRNNでは最近の入力によってどれくらい前からの影響を考慮するかを変えることができなかった

98

例:LSTM言語モデル◦過去の単語列から次に来る単語の確率を予測する◦入力:現在の単語のone-hot vector

◦出力:各単語の出現確率予測値

99Sundermeyer, Schlüter, Ney: LSTM Neural Networks for Language Modeling. Proc. Interspeech, 2012.

Recommended