ニューラルコンピューティングを理解する 第一版:2006/12/12 第二版:2007/11/12 Graduate School of Media and Governance Keio University Kensuke Naoe
動機・勉強会の趣旨 武藤研の中でもニューラルについてほとんど理解していない学生が多い 自分自身もそうであった 元々の興味は情報セキュリティ 問題解決の一つのツールとしてニューラルを使った 適切に問題設定をし,適切なモデルを使うと有用 みんなにもニューラルについて詳しくなってほしい・興味を持ってほしい
応用範囲 数学 物理学 化学 経済学 統計学 遺伝子工学 言語処理 画像処理(静止・動)・音声処理 セキュリティ 情報工学(通信・プロトコル) 認知科学(パターン処理・認識・分離) 問題設定(発見)>モデルを作り>問題を解く 結局ニューラルがというわけではなく,すべてのアルゴリズムのコアの部分は突き詰めていくとどれも似たようなものになっている.
Agenda 第一部 ニューラルネットワークとは 第二部 多層パーセプトロンモデル 第三部 自己組織化特徴マップモデル
ニューラルネットワーク ニューロン(神経細胞) ニューロンにより形成されたネットワークをモデル化したものをニューラルネットワークと呼ぶ 電気信号の入力と出力という単純な作業しか出来ない 有機的に接続されたネットワークを形成すると,様々な複雑な処理が可能 ニューロンにより形成されたネットワークをモデル化したものをニューラルネットワークと呼ぶ
optimization, self organization, supervised learning ニューラルネットワークモデル ニューロンのモデル バイナリモデル(Hopfield, McCulloch&Pitts) シグモイドモデル Radial Basis Functionモデル 競合ニューロン シナプス結合の形態 リカレントモデル 階層型パーセプトロン フィードフォワード フィードバック ニューロンと結合によるモデルの違い 状態遷移モデル Hopfield 連想記憶,最適化問題 Hebb則 競合学習モデル Self Organization Map 自己組織化マップ 教師なし学習 信号伝播モデル パーセプトロン (rosenblatt) 一般δルール Rummelhart 教師あり学習 最適化,自己組織化,学習 optimization, self organization, supervised learning
ニューラルネットワークへの誤解 ニューラルは使えない ニューラルは万能だ これらは全部誤解であると言いたい! アバウトすぎて使えない 毎回答えが違うなんてありえない ニューラルは万能だ ニューラル使えばなんでも解けちゃうよ これらは全部誤解であると言いたい! 問題に合わせたモデルを選択する事が重要 ニューラルの手法の得意な事・不得意な事がある ニューラルが取り扱いたい実際の問題として, 最適な配置問題,最適化 出力(システム)のダイナミクスを観察することで理解できることもある 特徴空間の分類問題. 特徴空間のクラスが最初からgiven or known 特徴空間がどのようにマップされるか分からない
出力のダイナミクスを観察する N-queen問題の場合
ニューラルでN-queen問題を解く
分類問題 あらかじめクラスが分かっている時(1) 分類問題 あらかじめクラスが分かっている時(1)
分類問題 あらかじめクラスが分かっている時(2) 分類問題 あらかじめクラスが分かっている時(2)
XOR問題をbackpropagation学習で解く
分類問題 クラスがいくつ存在するか分からない時(1) 分類問題 クラスがいくつ存在するか分からない時(1)
分類問題 クラスがいくつ存在するか分からない時(2) 分類問題 クラスがいくつ存在するか分からない時(2)
分類問題 クラスがいくつ存在するか分からない時(3) 分類問題 クラスがいくつ存在するか分からない時(3)
分類問題 クラスがいくつ存在するか分からない時(4) 分類問題 クラスがいくつ存在するか分からない時(4)
ニューラルで色の分類をしてみる
今回の勉強会で話すこと 信号伝播モデル 階層型パーセプトロンモデル 競合学習モデル 自己組織化特徴マップモデル
「多層パーセプトロンモデルと バックプロパゲーション学習」 を説明するスライド 「多層パーセプトロンモデルと バックプロパゲーション学習」 を説明するスライド Special thanks to Masato Aoba Keio University Graduate School of Media and Governance Kensuke Naoe
パーセプトロン限界説 Minskyのパーセプトロン限界説 非線形分離が出来ない Rummelhartが多層構造を持たせて,バックプロパゲーション学習を使えばXOR問題も解けることをしめした. このことから非線形分離問題を解けるバックプロパゲーション学習が広まり,ニューラルネットワークはまた脚光を浴び始めた. 直江持論: 特徴空間における非線形分離能力はバックプロパゲーションで得られる能力のほんの一部でしかない. むしろ非線形な関数近似能力が最大の利点だ!
ニューラルネットワークの種類と性質 (構造による違い) ニューラルネットワークの種類と性質 (構造による違い) リカレント型 Hopfieldモデル,武藤モデル など リカレント結合 出力のダイナミクスに特徴がある 組み合わせ最適化問題,連想記憶 階層型 多層パーセプトロン,Kohonenモデル,RBFネット など 層構造を持つ フィードフォワード フィードバック 入力に対して出力が一意に決まる 結合係数を学習 教師つき学習 自己組織化学習 Backpropagation学習 教師付き学習 パターン分離,関数近似 が得意 非線形なパターン分離が可能 通常は 3層で十分
3層パーセプトロン 3層構造 フィードフォワード型 ニューロンの入出力関数 Backpropagation 学習 出力層 中間層 (隠れ層) シグモイド関数 Backpropagation 学習 入力層
ネットワークの計算 ニューロンの入力値 前層のニューロン出力と結合係数の積和 yj j xj wNj w1j wij y1 yN yi
パーセプトロンの動作 フィードフォワードのしくみ 0.88 0.62 0.89 1.0 -1.0 2.0 2.0 0.5 0.67 0.18 結合係数(Wij)の値によって最終出力が変わる どのように結合係数を決めてやるか? → 学習させる
Backpropagation 学習 多層パーセプトロンの学習則 教師付き学習 教師信号との誤差を逆方向に伝播して結合係数を修正する 1.0 入力 信号 2.0 0.5 0.9 -0.8 1.9 1.3 -0.9 1.0 -1.0 2.0 出力 信号 0.67 誤差
バックプロパゲーションの説明(1/10) 二点のニューロンiとjで考えると i j :ネットワークの重みとする (結合係数)
バックプロパゲーションの説明(2/10) jユニットへの入力の総和( ) を入出力関数に代入= jユニットの出力の値 i1 j i2 を入出力関数に代入= jユニットの出力の値 i1 j i2 入力とは:前ユニットの出力 結合係数をかけたものの総和 i3 ・ i3 :前ユニット(iユニット)からjへの出力値
バックプロパゲーションの説明(3/10) 最終的なニューロンの出力値はそのユニットの入出力関数に依存する バックプロパゲーション学習ではシグモイド関数 シグモイド=S字 x y
バックプロパゲーションの説明(4/10) なぜシグモイドがいいのか 微分可能である 単調増加関数である 微分後の式を元の式だけで表現できる
バックプロパゲーションの説明(5/10) を微分してみる
バックプロパゲーションの説明(6/10) 教師値とネットワークの出力を比較してその誤差を最小化するようにネットワークの重みを更新していく=学習 つまり更新式: が求まれば学習できる この式のことを一般デルタルールと呼んだりする
バックプロパゲーションの説明(7/10) は学習係数と呼ばれる値 大きいほど学習が急激 小さいほど学習がなだらか 通常は0~1の値をとる 大きいほど学習が急激 小さいほど学習がなだらか 通常は0~1の値をとる はjユニットの誤差の値 しかし,jユニットが出力層のユニットなのか それ以外の層のユニットなのかで求め方が変わる
バックプロパゲーションの説明(8/10) i j k 入力層 中間層 出力層 出力層の場合: 出力層以外の場合:
バックプロパゲーションの説明(9/10) 前スライドの式の説明: はkユニットの目標値(教師値) 出力層以外の誤差は 上位の層の誤差が計算に影響されるので 上位の誤差それぞれとその間の重みをかけたものの 総和がそのユニットの誤差となる. 例えば中間層jユニットの場合 上位層kユニットの誤差の影響がある:
バックプロパゲーションの説明(10/10) = はニューロンiとjの間の結合係数 はニューロンiの出力値 はニューロンjへの入力総和 入出力関数がシグモイドなら 更新式は このとき 5. δの値はjが出力層かどうかで決まる jが出力層(k層)の場合 jがそれ以外の層の場合 まとめ: 以下の図のような 三層パーセプトロンの場合 教師値: = 出力層:k層 中間層:j層 入力層:i層 ヒント: シグモイド関数の微分は 自分自身で表す事が可能
課題 この図のネットワークでバックプロパゲーション学習させるときの重み係数の更新値 を全て求めよ ただし: この図のネットワークでバックプロパゲーション学習させるときの重み係数の更新値 を全て求めよ ただし: 入出力関数はシグモイド関数とする. iユニットの出力値はOiとする.
課題その2 XOR問題を解くニューラルネットワークを学習する X Y X xor Y 0 0 0 0 1 1 1 0 1 1 1 0
「Self-Organizing Map 自己組織化マップ」 を説明するスライド Special thanks to H.Kusumoto Keio University Graduate School of Media and Governance Kensuke Naoe
Self-Organizing Map (1) 自己組織化マップ T. Kohonen 1982年 教師なし学習 応用 遺伝子解析 音声認識 画像解析 ロボット制御
SOM(2) 入力データ(多次元) 『自己組織化マップ』T.Kohonen
SOM(3) SOMによる結果 『自己組織化マップ』T.Kohonen
Self-Organizing Map (4) 入力データ 多次元データ 表だけを見ていてもデータの特性を理解しづらい SOMによる結果 2次元空間上にマッピングする 似た特徴のデータは近い場所にマッピング 異なる特徴のデータは遠い場所にマッピング 視覚的に理解しやすい
SOM(5) アルゴリズム(1) X1, X2, X3, … , Xi, … , Xn :動物 入力データ X1, X2, X3, … , Xi, … , Xn :動物 Xi=(xi1, xi2, … , xik, … , xid):属性 マップ 格子状の2次元の空間を用意する データは格子点にマッピングされることになる マップの大きさはデータ量などから決める(m×m)
SOM(6) アルゴリズム(2) マップの格子点に重みベクトルWを置く 各Wに入力データと同じ次元数の要素を与える W(m,m)
SOM(7) アルゴリズム(3) 初期化 入力データ:4個 X1, X2, X3, X4 マップ:5×5 W(5,5)=(w(5,5)1,w(5,5)2, w(5,5)3) Wの初期値は任意
SOM(8) アルゴリズム(4) 探索 入力データを1つ持ってくる X1=(x11, x12, x13) Wの中からX1に値が最も近いものを探す Wwin 勝者ベクトルと呼ぶ
SOM(9) アルゴリズム(5) 学習 X1=(x11, x12, x13) Wwinの値をX1に近づける Wnew=Wold+α(X1-Wold) α:学習率係数
SOM(10) アルゴリズム(6) 学習 X1=(x11, x12, x13) WwinのそばにあるWの値もX1に少し近づける
SOM(10) アルゴリズム(6) 学習 このように「Wの値を変えること」を「学習」と呼ぶ X2,3,4に関しても同様に学習する この学習を繰りかえし行う
SOM(11) アルゴリズム(7) マッピング X4 X3 X2 X1 X4 X3 X2 X1 X1, X2, X3, X4に対して,それぞれ最も近いWを探し,そこにマッピングする X3 X4 X1 X2 X3 X4 似た特徴のデータは近くに 異なる特徴のデータ遠くに マッピングされる X1 X2
実問題への適用 SOMの利点 問題点もある ↓ ほとんどの多次元データを扱える シンプル(複雑な計算式がない) 結果が視覚的にわかりやすい 実問題ではデータ数が多い場合がある マップ上での表現 計算時間 ↓ 実問題への適用には様々な工夫が必要
SOMの問題点(1) 結果の表現方法 入力データ数が多い場合(数百~数万) マップ上に全てを表記するのは不可能 マップ上に全てを表記するのは不可能 動物の例題では16データしかない 『自己組織化マップ』T.Kohonen
SOMの問題点(2) 計算コスト SOMでは繰り返し学習(データ数×数回)が必要 データ数が多い場合(数百~数万)なるべく大きなマップを使いたい 入力ベクトルXに最も近い重みベクトルWを探す時に,Wの個数分の計算が必要になる ↓ 繰り返し学習の回数と,マップの大きさ(M×M)に比例して計算量が増える
課題 右の図の動物たちを 自己組織化特徴マップでクラスタリングしてみなさい