ニューラルコンピューティングを理解する

54
1/ 42 ニニニニニニニニニニニニニニニニニニニ ニニ 一: 2006/12/12 ニニニ2007/11/12 Graduate School of Media and Governance Keio University Kensuke Naoe

Upload: aurelia-hensley

Post on 30-Dec-2015

27 views

Category:

Documents


2 download

DESCRIPTION

ニューラルコンピューティングを理解する. 第一版: 2006/12/12 第二版: 2007/11/12 Graduate School of Media and Governance Keio University Kensuke Naoe. 動機・勉強会の趣旨. 武藤研の中でもニューラルについてほとんど理解していない学生が多い 自分自身もそうであった 元々の興味は情報セキュリティ 問題解決の一つのツールとしてニューラルを使った 適切に問題設定をし,適切なモデルを使うと有用 みんなにもニューラルについて詳しくなってほしい・興味を持ってほしい. 応用範囲. 数学 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ニューラルコンピューティングを理解する

1/42

ニューラルコンピューティングを理解する

第一版: 2006/12/12第二版: 2007/11/12

Graduate School of Media and GovernanceKeio University

Kensuke Naoe

Page 2: ニューラルコンピューティングを理解する

2/54

動機・勉強会の趣旨

ه 武藤研の中でもニューラルについてほとんど理解していない学生が多い

ه 自分自身もそうであったه 元々の興味は情報セキュリティه 問題解決の一つのツールとしてニューラルを使っ

た適切に問題設定をし,適切なモデルを使うと有用ى

ه みんなにもニューラルについて詳しくなってほしい・興味を持ってほしい

Page 3: ニューラルコンピューティングを理解する

3/54

応用範囲

ه 数学ه 物理学ه 化学ه 経済学ه 統計学ه 遺伝子工学ه 言語処理ه 画像処理(静止・動)・音声処理ه セキュリティه 情報工学(通信・プロトコル)ه 認知科学(パターン処理・認識・分離)

ه 問題設定(発見)>モデルを作り>問題を解くه 結局ニューラルがというわけではなく,すべてのアルゴリズムのコアの部

分は突き詰めていくとどれも似たようなものになっている.

Page 4: ニューラルコンピューティングを理解する

4/54

Agenda

ه 第一部 ニューラルネットワークとはه 第二部 多層パーセプトロンモデルه 第三部 自己組織化特徴マップモデル

Page 5: ニューラルコンピューティングを理解する

5/54

ニューラルネットワーク

ه ニューロン(神経細胞)ه 電気信号の入力と出力という単純な作業し

か出来ないه 有機的に接続されたネットワークを形成す

ると,様々な複雑な処理が可能ه ニューロンにより形成されたネット

ワークをモデル化したものをニューラルネットワークと呼ぶ

Page 6: ニューラルコンピューティングを理解する

6/54

ニューラルネットワークモデル

ه ニューロンのモデルه バイナリモデル (Hopfield, McCulloch&Pitts)ه シグモイドモデルه Radial Basis Function モデルه 競合ニューロン

ه シナプス結合の形態ه リカレントモデルه 階層型パーセプトロン

ى フィードフォワードى フィードバック

ه ニューロンと結合によるモデルの違いه 状態遷移モデル

ى Hopfield  連想記憶,最適化問題  Hebb 則ه 競合学習モデル

ى Self Organization Map  自己組織化マップ ي 教師なし学習

ه 信号伝播モデルى パーセプトロン  (rosenblatt)

ي 一般 δ ルール Rummelhart  教師あり学習

最適化,自己組織化,学習optimization, self organization, supervised learning

Page 7: ニューラルコンピューティングを理解する

7/54

ニューラルネットワークへの誤解

ه ニューラルは使えないه アバウトすぎて使えないه 毎回答えが違うなんてありえない

ه ニューラルは万能だه ニューラル使えばなんでも解けちゃうよ

ه これらは全部誤解であると言いたい!

ه 問題に合わせたモデルを選択する事が重要ه ニューラルの手法の得意な事・不得意な事があるه ニューラルが取り扱いたい実際の問題として,

ه 最適な配置問題,最適化ى 出力(システム)のダイナミクスを観察することで理解できることもある

ه 特徴空間の分類問題 .ى 特徴空間のクラスが最初から given or knownى 特徴空間がどのようにマップされるか分からない

Page 8: ニューラルコンピューティングを理解する

8/54

   出力のダイナミクスを観察する      N-queen 問題の場合

Page 9: ニューラルコンピューティングを理解する

9/54

ニューラルで N-queen 問題を解く

Page 10: ニューラルコンピューティングを理解する

10/54

分類問題 あらかじめクラスが分かっている時(1)

Page 11: ニューラルコンピューティングを理解する

11/54

分類問題 あらかじめクラスが分かっている時(2)

Page 12: ニューラルコンピューティングを理解する

12/54

XOR 問題を backpropagation 学習で解く

Page 13: ニューラルコンピューティングを理解する

13/54

分類問題 クラスがいくつ存在するか分からない時(1)

Page 14: ニューラルコンピューティングを理解する

14/54

分類問題 クラスがいくつ存在するか分からない時(2)

Page 15: ニューラルコンピューティングを理解する

15/54

分類問題 クラスがいくつ存在するか分からない時(3)

Page 16: ニューラルコンピューティングを理解する

16/54

分類問題 クラスがいくつ存在するか分からない時(4)

Page 17: ニューラルコンピューティングを理解する

17/54

ニューラルで色の分類をしてみる

Page 18: ニューラルコンピューティングを理解する

18/54

今回の勉強会で話すこと

ه 信号伝播モデルه 階層型パーセプトロンモデル

ه 競合学習モデルه 自己組織化特徴マップモデル

Page 19: ニューラルコンピューティングを理解する

19/42

「多層パーセプトロンモデルと バックプロパゲーション学習」     を説明するスライド

Special thanks to Masato Aoba

Keio University

Graduate School of Media and Governance

Kensuke Naoe

Page 20: ニューラルコンピューティングを理解する

20/54

パーセプトロン限界説

ه Minsky のパーセプトロン限界説ه 非線形分離が出来ない

ه Rummelhart が多層構造を持たせて,バックプロパゲーション学習を使えば XOR 問題も解けることをしめした.ه このことから非線形分離問題を解けるバックプロパゲー

ション学習が広まり,ニューラルネットワークはまた脚光を浴び始めた.

ه 直江持論:ى 特徴空間における非線形分離能力はバックプロパゲーション

で得られる能力のほんの一部でしかない.!むしろ非線形な関数近似能力が最大の利点だى

Page 21: ニューラルコンピューティングを理解する

21/54

ه リカレント型ه Hopfield モデル,武藤モデル などه リカレント結合ه 出力のダイナミクスに特徴があるه 組み合わせ最適化問題,連想記憶

ه 階層型ه 多層パーセプトロン, Kohonen モデル, RBF ネット などه 層構造を持つ

ى フィードフォワードى フィードバック

ه 入力に対して出力が一意に決まるه 結合係数を学習

ى 教師つき学習ى 自己組織化学習

   ニューラルネットワークの種類と性質             (構造による違い)

•Backpropagation学習•教師付き学習

•パターン分離,関数近似 が得意•非線形なパターン分離が可能

通常は3 層で十分

Page 22: ニューラルコンピューティングを理解する

22/54

3 層パーセプトロン

ه 3 層構造ه フィードフォワード型

ه ニューロンの入出力関数ه シグモイド関数

ه Backpropagation 学習 x1 xi xM

i

j

k

jkw

ijw

入力層

中間層(隠れ層)

出力層

Page 23: ニューラルコンピューティングを理解する

23/54

ネットワークの計算

ه ニューロンの入力値ه 前層のニューロン出力と結合係数の積和

jxj

yj

y1 yi yN

w1j wijwNj

N

iiijj ywx

1

Page 24: ニューラルコンピューティングを理解する

24/54

パーセプトロンの動作フィードフォワードのしくみ

1.0

-1.0

2.0

-1.0

1.0

-1.0

2.0

0.5

89.012.2exp1

1

y

62.05.0exp1

1

y

88.00.2exp1

1

y

0.88

0.62

12.2

62.00.288.00.1

x

50.1

62.00.188.00.1

x

18.050.1exp1

1

y

0.89

0.18 71.0

18.00.189.00.1

x

67.071.0exp1

1

y

0.67

ه 結合係数 (Wij) の値によって最終出力が変わるه どのように結合係数を決めてやるか?ه → 学習させる

Page 25: ニューラルコンピューティングを理解する

25/54

Backpropagation 学習ه 多層パーセプトロンの学習則ه 教師付き学習ه 教師信号との誤差を逆方向に伝播して結

合係数を修正する

入力信号

2.0

0.5

出力信号0.67

教師信号1.0

誤差

1.0

-1.0

2.0-1.0

1.0

-1.0

0.9

-0.8

1.9-0.8

1.3

-0.9

Page 26: ニューラルコンピューティングを理解する

26/54

バックプロパゲーションの説明( 1/10 )

ه 二点のニューロン i と j で考えると

i j

:ネットワークの重みとする(結合係数)

Page 27: ニューラルコンピューティングを理解する

27/54

バックプロパゲーションの説明( 2/10 )

i1 j

i2

i3

i3

・・・

jユニットへの入力の総和(   ) を入出力関数に代入=       jユニットの出力の値

入力とは:前ユニットの出力      結合係数をかけたものの総和

:前ユニット( iユニット)から j への出力値

Page 28: ニューラルコンピューティングを理解する

28/54

バックプロパゲーションの説明( 3/10 )

ه 最終的なニューロンの出力値はそのユニットの入出力関数に依存するه バックプロパゲーション学習ではシグモイ

ド関数ه シグモイド= S字

xy

exp1

1x y

Page 29: ニューラルコンピューティングを理解する

29/54

バックプロパゲーションの説明( 4/10 )

ه なぜシグモイドがいいのか微分可能であるهه 単調増加関数である微分後の式を元の式だけで表現できるه

Page 30: ニューラルコンピューティングを理解する

30/54

バックプロパゲーションの説明( 5/10 )

を微分してみる

Page 31: ニューラルコンピューティングを理解する

31/54

バックプロパゲーションの説明( 6/10 )

ه 教師値とネットワークの出力を比較してその誤差を最小化するようにネットワークの重みを更新していく=学習

つまり更新式: が求まれば学習できる

この式のことを一般デルタルールと呼んだりする

Page 32: ニューラルコンピューティングを理解する

32/54

バックプロパゲーションの説明( 7/10 )

は学習係数と呼ばれる値 大きいほど学習が急激 小さいほど学習がなだらか 通常は0~1の値をとる

は jユニットの誤差の値 しかし, jユニットが出力層のユニットなのか それ以外の層のユニットなのかで求め方が変わる

Page 33: ニューラルコンピューティングを理解する

33/54

バックプロパゲーションの説明( 8/10 )

i j k

入力層        中間層        出力層

出力層の場合:

出力層以外の場合:

Page 34: ニューラルコンピューティングを理解する

34/54

バックプロパゲーションの説明( 9/10 )

は kユニットの目標値(教師値)

前スライドの式の説明:

出力層以外の誤差は 上位の層の誤差が計算に影響されるので 上位の誤差それぞれとその間の重みをかけたものの 総和がそのユニットの誤差となる.  例えば中間層 jユニットの場合 上位層 kユニットの誤差の影響がある:

Page 35: ニューラルコンピューティングを理解する

35/54

1.  はニューロン i と j の間の結合係数

2.  はニューロン i の出力値

3.  はニューロン j への入力総和

入出力関数がシグモイドなら

         

4.  更新式は

      このとき 

5.  δ の値は j が出力層かどうかで決まる

   j が出力層 (k 層 ) の場合

   j がそれ以外の層の場合

バックプロパゲーションの説明( 10/10 )

教師値:

出力層: k層

中間層: j 層

入力層: i 層

ヒント:シグモイド関数の微分は自分自身で表す事が可能

まとめ:以下の図のような三層パーセプトロンの場合

Page 36: ニューラルコンピューティングを理解する

36/54

課題

ه この図のネットワークでバックプロパゲーション学習させるときの重み係数の更新値     を全て求めよ

ه ただし:ه 入出力関数はシグモイド関数とする.ه iユニットの出力値は Oi とする.

Page 37: ニューラルコンピューティングを理解する

37/54

課題その2

ه XOR 問題を解くニューラルネットワークを学習する

X Y X xor Y

0 0 0

0 1 1

1 0 1

1 1 0

Page 38: ニューラルコンピューティングを理解する

38/42

「 Self-Organizing Map   自己組織化マップ」     を説明するスライド

Special thanks to H.Kusumoto

Keio University

Graduate School of Media and Governance

Kensuke Naoe

Page 39: ニューラルコンピューティングを理解する

39/54

Self-Organizing Map (1)

ه 自己組織化マップه T. Kohonen 1982年ه 教師なし学習ه 応用

ه 遺伝子解析ه 音声認識ه 画像解析ه ロボット制御

Page 40: ニューラルコンピューティングを理解する

40/54

SOM (2) 入力データ(多次元)

『自己組織化マップ』 T.Kohonen

Page 41: ニューラルコンピューティングを理解する

41/54

SOM (3)  SOM による結果

『自己組織化マップ』 T.Kohonen

Page 42: ニューラルコンピューティングを理解する

42/54

Self-Organizing Map (4)

ه 入力データه 多次元データ表だけを見ていてもデータの特性を理解しづらいه

ه SOM による結果ه 2次元空間上にマッピングするه 似た特徴のデータは近い場所にマッピング異なる特徴のデータは遠い場所にマッピングه視覚的に理解しやすいه

Page 43: ニューラルコンピューティングを理解する

43/54

SOM (5) アルゴリズム(1)

ه 入力データ

X1, X2, X3, … , Xi, … , Xnه   : 動物

)=Xiه xi1, xi2, … , xik, … , xid ):属性ه マップ

格子状のه 2次元の空間を用意するه データは格子点にマッピングされることになるه マップの大きさはデータ量などから決める

( m×m )

Page 44: ニューラルコンピューティングを理解する

44/54

SOM (6) アルゴリズム(2)

ه マップの格子点に重みベクトル W を置く

ه 各W に入力データと同じ次元数の要素を与える

W(1,1)

W(1,2)

W(m,m)

Page 45: ニューラルコンピューティングを理解する

45/54

SOM (7) アルゴリズム(3) 初期化

ه 入力データ: 4個  X1, X2, X3, X4

ه データの属性:3次元  X1=(x11, x12, x13)

ه マップ: 5×5 W(5,5)=(w(5,5)1,w(5,5)2, w(5,5)3)

W の初期値は任意

Page 46: ニューラルコンピューティングを理解する

46/54

SOM (8) アルゴリズム(4) 探索

ه 入力データを 1 つ持ってくる

X1=(x11, x12, x13)

W の中から X1 に値が最も近いものを探す

Wwin  勝者ベクトルと呼ぶ

Page 47: ニューラルコンピューティングを理解する

47/54

SOM (9) アルゴリズム(5) 学習

X1=(x11, x12, x13)

Wwin の値を X1 に近づける

Wnew=Wold+α(X1-Wold)

α :学習率係数

Page 48: ニューラルコンピューティングを理解する

48/54

SOM (10) アルゴリズム(6) 学習

X1=(x11, x12, x13)

Wwin のそばにある W の値もX1 に少し近づける

Wwin から離れるに従って

X1 に近づける割合を減らす

Page 49: ニューラルコンピューティングを理解する

49/54

SOM (10) アルゴリズム(6) 学習

ه このように「Wの値を変えること」を「学習」と呼ぶ

ه X2,3,4 に関しても同様に学習する

ه この学習を繰りかえし行う

Page 50: ニューラルコンピューティングを理解する

50/54

SOM (11) アルゴリズム(7)    マッピング

ه X1 , X2 , X3 , X4 に対して,それぞれ最も近い W を探し,そこにマッピングする

似た特徴のデータは近くに

異なる特徴のデータ遠くに

マッピングされる

X1X2

X3X4

X1X2

X3X4

Page 51: ニューラルコンピューティングを理解する

51/54

実問題への適用

ه SOM の利点ه ほとんどの多次元データを扱えるه シンプル(複雑な計算式がない)ه 結果が視覚的にわかりやすい

ه 問題点もあるه 実問題ではデータ数が多い場合がある

マップ上での表現ى計算時間ى

    ↓ه 実問題への適用には様々な工夫が必要

Page 52: ニューラルコンピューティングを理解する

52/54

SOM の問題点(1)            結果の表現方法ه 入力データ数が多い場合(数百~数万) マップ上に全てを表記するのは不可能

『自己組織化マップ』 T.Kohonen

動物の例題では16 データしかない

Page 53: ニューラルコンピューティングを理解する

53/54

SOM の問題点(2) 計算コスト

ه SOM では繰り返し学習(データ数 × 数回)が必要

ه データ数が多い場合(数百~数万)なるべく大きなマップを使いたいه 入力ベクトル X に最も近い重みベクトル W を探

す時に, W の個数分の計算が必要になる

ه 繰り返し学習の回数と,マップの大きさ( M×M )に比例して計算量が増える

Page 54: ニューラルコンピューティングを理解する

54/54

課題

右の図の動物たちを

自己組織化特徴マップでクラスタリングしてみなさい