• 検索結果がありません。

階層型ニューラルネットの学習

N/A
N/A
Protected

Academic year: 2021

シェア "階層型ニューラルネットの学習"

Copied!
5
0
0

読み込み中.... (全文を見る)

全文

(1)

ニューラルネットワークの学習アルゴリズム

1

階層型ニューラルネットの学習

階層型ニューラルネットの学習データは,

X =

x11 x12 · · · x1p x21 x22 · · · x2p ... ... . .. ... xn1 xn2 · · · xnp

, y=

y1 y2 ... yn

(1)

と与えられ,学習誤差は E=

n i=1

[yi− {v0+

q k=1

vkψ(wk0+

j=1

wkjxij)}]2 (2)

と定義される.

一方,学習すべき重みパラメータは隠れ層ユニット数: qとすると,

重みパラメータ行列:

W

q×(1+p)

=

w10 w11 w12 · · · w1p

w20 w21 w22 · · · w2p

... ... ... . .. ... wq0 wq1 wq2 · · · wqp

. (3)

重みパラメータ行列:

v

(1+q)×1=

v0

v1

... vq

. (4)

である. 最急降下法や他の非線形最適化アルゴリズムを用いて学習するには,各重みパラメータの偏微分 係数

∂E

∂wkj

, k= 1,2,· · ·, q, j= 0,1,2,· · · , p,

∂E

∂vk

, k= 0,1,2,· · ·, q

を計算する必要がある. 最適化アルゴリズムではこれらの偏微分係数を繰り返し計算する必要があるた ,これらを効率的に計算できることが望ましい. 階層型ニューラルネットにおいては,偏微分係数の計 算を効率的に行う誤差逆伝播法 (back-propagation) と呼ばれる方法が使われる. 以下では誤差逆伝 播法について学ぼう.

2

誤差逆伝播法

2.1 中間変数の導入

誤差逆伝播法の導出にあたり以下のような変数を導入する:

i番目の学習データに対する学習誤差をei, i= 1,2,· · ·, n,とする;

(2)

i番目の学習データに対する予測値をyˆi, i= 1,2,· · ·, n,とする;

i番目の学習データに対するk番目の隠れ層ユニットからの出力値をzik, i = 1,2,· · · , n, k = 1,2,· · ·, q,とする;

i番目の学習データに対するk番目の隠れ層ユニットへの入力値をuik, i = 1,2,· · ·, n, k = 1,2,· · ·, q,とする;

1 は階層型ニューラルネットにおける上記の中間変数を模式化したものである.

Figure 1: 学習誤差の計算

2.1.1 順方向計算

学習データ((xi1, xi2,· · · , xip), yi),の学習誤差ei を計算するプロセスを順方向計算(forward compu- tatioin)と呼ぶ. 順方向計算の計算の流れは,

xij −→(4a)−→ uik −→(4b)−→ zik −→(4c)−→ yˆi −→(4d)−→ei (5) と表される. 順方向計算の各プロセスは

uik=wk0+

p j=1

wkjxij, k= 1,2,· · ·, q, (6a)

zik=ψ(uik), k= 1,2,· · ·, q, (6b)

ˆ

yi=v0+

q k=1

vkzik (6c)

ei= (yiyˆi)2 (6d)

と定式化される.

(3)

2.1.2 逆方向計算

順方向計算では(3)のように計算をすすめたが,その逆に,

∂ei

yˆi −→ yˆi

∂zik −→ ∂zik

∂uik −→ ∂uik

∂xij

(7)

と計算を進めるプロセスを逆方向計算(backward computation)という. 逆方向計算の各プロセスは

∂ei

∂ˆyi

=2(yiyˆi) (8a)

yˆi

∂zik

=vk, k= 1,2,· · · , q, (8b)

∂zik

∂uik =ψ(uik), k= 1,2,· · ·, q, (8c)

∂uik

∂xij

=wkj, k= 1,2,· · ·, q, j = 1,2,· · ·, p, (8d)

と計算される. 以上の順方向計算および逆方向計算より,微分計算の連鎖率 (chain rule)を用いて,

∂E

∂v0

=

n i=1

∂ei

yˆi · yˆi

∂v0

(9a)

=

n i=1

(2(yiyˆi))·1 (9b)

= 2

n i=1

(yiyˆi), (9c)

∂E

∂vk

=

n i=1

∂ei

yˆi · ∂ˆyi

∂vk

(10a)

=

n i=1

(2(yiyˆi))·zik (10b)

= 2

n i=1

(yiyˆi)zik, (10c)

∂E

∂wk0

=

n i=1

∂ei

yˆi · yˆi

∂zik · ∂zik

∂uik · ∂uik

∂wk0

(11a)

=

n i=1

(2(yiyˆi))·vk·ψ(uik)·1 (11b)

= 2

n i=1

(yiyˆi)vkψ(uik) (11c)

= 2

n i=1

(yiyˆi)vkψ(uik)(1ψ(uik)). (11d)

(4)

∂E

∂wkj =

i=1

∂ei

yˆi · ∂ˆyi

∂zik · ∂zik

∂uik · ∂uik

∂wkj (12a)

=

n i=1

(2(yiyˆi))·vk·ψ(uik)·xij (12b)

= 2

n i=1

(yiyˆi)vkψ(uik)xij (12c)

= 2

n i=1

(yiyˆi)vkψ(uik)(1ψ(uik))xij. (12d) と微分係数が計算できる.

3

階層型ニューラルネットにおけるモデル選択

以前に学んだ最近傍回帰分析,多項式回帰分析, RBFネットワークなどではモデル選択が必要であった.

階層型ニューラルネットにおいてもモデル選択は不可欠である.

3.1 隠れ層ユニット数

階層型ニューラルネットでは隠れ層のユニット数によりモデルの自由度が変化する. 隠れ層ユニット数q を小さくし過ぎると未学習になり,大きくし過ぎるすると過学習となるため,適切な数を選択する必要が ある. 2 はオートバイ衝突実験データに階層型ニューラルネットを適用した例である. 隠れ層ユニッ ト数をq= 1,2,5,10個とした場合が示されている.

4

階層型ニューラルネットの学習アルゴリズム

階層型ニューラルネットの学習アルゴリズムを整理しよう. まず,学習ステップtにおける階層型ニュー ラルネットのパラメータを

W(t)

q×(1+p)

=

w10(t) w11(t) w12(t) · · · w1p(t) w20(t) w21(t) w22(t) · · · w2p(t)

... ... ... . .. ... wq0(t) wq1(t) wq2(t) · · · wqp(t)

, v(t)

(1+q)×1

=

v0(t) v1(t) v2(t)

... vq(t)

(13)

と表す. また,W(t),v(t)における学習誤差をE(t),その勾配ベクトルの対応するものをそれぞれdW(t), dv(t)と表す.

アルゴリズムの骨子は以下のようになる:

入力:

入力データ行列,出力データベクトル:

X =

x11 x12 · · · x1p

x21 x22 · · · x2p

... ... . .. ... xn1 xn2 · · · xnp

, (14)

y=

y1 y2 ... yn

, (15)

(5)

-150 -100 -50 0 50 100

0 10 20 30 40 50 60

Output Y

Input X

-150 -100 -50 0 50 100

0 10 20 30 40 50 60

Output Y

Input X

隠れ層ユニット数q= 1 隠れ層ユニット数q= 2

-150 -100 -50 0 50 100

0 10 20 30 40 50 60

Output Y

Input X

-150 -100 -50 0 50 100

0 10 20 30 40 50 60

Output Y

Input X

隠れ層ユニット数q= 5 隠れ層ユニット数q= 10

Figure 2: さまざまな隠れ層ユニット数における階層型ニューラルネット

隠れ層ユニット数: q, 初期学習率: α, 学習減衰率: δ, 最大学習ステップ: T.

ステップ1: t= 0とする. パラメータW(0),v(0)を初期化する. また,E(1) =とする.

ステップ2: パラメータW(t),v(t), における学習誤差E(t)および勾配ベクトルdW(t), dv(t) 求める.

ステップ3: 学習誤差の減少率が

E(t1)E(t)

E(t1) +E(t) < ε (16)

ならば終了する. ここで,εは小さな正数(例えばε= 108)である.

ステップ4: パラメータを

W(t+ 1) W(t) α

1 +δtdW(t), (17)

v(t+ 1) v(t) α

1 +δtdv(t) (18)

と更新する. t=T ならば終了する. t < T ならばtをインクリメントしてステップ2に戻る.

出力: 最適な重みパラメータW,v.

参照

関連したドキュメント

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

一階算術(自然数論)に議論を限定する。ひとたび一階算術に身を置くと、そこに算術的 階層の存在とその厳密性

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

The complexity of dynamic languages and dynamic optimization problems. Lipschitz continuous ordinary differential equations are

この分厚い貝層は、ハマグリとマガキの純貝層によって形成されることや、周辺に居住域が未確

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

本論文での分析は、叙述関係の Subject であれば、 Predicate に対して分配される ことが可能というものである。そして o

それに対して現行民法では︑要素の錯誤が発生した場合には錯誤による無効を承認している︒ここでいう要素の錯