インテリジェントコンピューティング

Introduction to Soft Computing
(第12回~第13回)
佐藤
裕二
講義内容(第12回目)
1.
2.
3.
4.
マックスネット
ベクトル量子化
学習ベクトル量子化
自己組織化マップ(SOM)
競合学習
・ 競合学習とは,提示されたデータ1つ1つ
に対してネットワーク全体が学習するのでは
なく,そのデータに最も近いユニットや重み
だけが選択的に学習を行う方法.
・
このような選択的学習原理を勝者丸取り
(winner-take-all)という.勝者のみでなく,
その周辺にあるユニットも準勝者として同時
に学習することも行われる.
マックスネット
・ 図6.1にハミングネットを示す.ハミング
ネットは,任意の2進数よりなる入力ベクト
ルが,予め与えられたm個の2進数サンプル
データのいずれにハミング距離が最も近いか
を示す機能を持ったネットワーク.ハミング
ネットは,マッチング部とマックスネットか
ら構成される.マッチング部ではサンプル
データ s(1), …, s(m) と検査データ u との内積
を求める.得られた内積はマックスネットの
初期値として与えられ,マックスネットでは
最大値以外は0に収束するため,最大値を検
出できる.
マックスネットの動作
手順1 xi(0) = Ai, i = 1, …, mとする.t = 0とおく.
手順2 1つを除いて全て0に収束するまで,あるいは最
大繰り返し数に達していないとき次の(1), (2)を繰り
返し実行する.
(1) t = t+1 


(2) xi t   f xi t  1  
x j t  1, i  1,..., m


j

i



 x, if x  0
f ( x)  
0, if x  0
但し,f(x)は
マックスネットの動作
• マックスネットの動作では,が小さいと収束は遅く
なる.一方, が大きすぎると全てのユニット値xi(t)
が0となって正しい結果が得られないことがある.
• 最大値が複数あるときは最大値以外の数Ajに対応す
るxjはすぐに0に収束し,最大数Aiに対応するxiは同時
にゆっくりと0に収束する.しかし,僅かでも差があ
ればそのようなことは起らず,1つだけを除き0に収
束する.
競合学習 (1)
ベクトル量子化 (vector quantization)
・
ベクトル量子化は、連続量のベクトル、あるいは取り得る値
の非常に多いベクトルを比較的少ない個数の代表ベクトルで近
似することでデータ圧縮を行うこと。
・
入力空間をp個の領域{D1,…, Dp}に分割し、各領域Di内ではベ
クトルは類似しているとみなし、各々の領域にコードベクトル
と呼ばれる1つの代表ベクトルwiを持たせる。コードベクトル
全体の集合{w1,…, wp}をコードブックと呼ぶ。
・
代表的なベクトル量子化器(vector quantizer)として、ボロノイ
量子化器(Voronoi quantizer)がある。
ボロノイ量子化器
・
ボロノイ量子化器は、あるベクトルxRnを,ユークリッド距
離が最も近いコードベクトルwiとして量子化するもの.同じベ
クトルに量子化される領域の境界は,下図のように,区分的に
超平面となる.
競合学習 (2)
学習ベクトル量子化 (learning vector quantization: LVQ)
• 学習ベクトル量子化の目的は、任意のベクトルxがクラスC1, …,
Cのいずれに属するかを決定するパターン認識のためにコード
ブック{m1, m2, …, mk}を学習すること。コードブックの各コー
ドベクトルはいずれのクラスを表現するか、予め決めておく。
• LVQでは、あるデータxがどのクラスかを識別するのに多数ある
コードベクトル{m1, m2, …, mk}の中でxにユークリッド距離の最
も近いmiを探し出し、 miの属するクラスをxのクラスと判定す
る。そのようなコードブックを形成するために、各クラスごと
に予め複数個のコードベクトルを用意し、競合学習の原理で学
習して移動させる。
LVQによるクラス判定
• 下図では、斜線の引いてある3個のコードベクトルを学習後の
クラス1のコードベクトル、残り3個を同じく学習後のクラス
2のコードベクトルとするとき、入力ベクトルxに最も類似した
コードベクトルがm2であればxはクラス1であると判別される。
x
m1
m2
m3
m4
m5
m6
クラス1と判定
SOM (Self Organizing Map)
• SOMは,T. Kohonenにより開発された教師な
し学習方法であり,高次元データを1次ある
いは2次程度の低次元空間に写像する.
• クラスタリング(テキスト参照)
k 平均アルゴリズム
• 手順1 (初期化)
m1, …, mkに最初のk個の学習データを割り当てる.
すなわち,mt(k) = x(t) , t = 1, 2, …, k
• 手順2 (繰り返し)
t = k+1, k+2, …, N に対して次の(1), (2)の計算を行う.
(1) (xに最も近いコードベクトルの検出)
(2) (コードベクトルの更新)
それまで同じクラスタのデータと判定されたデー
タの中心にコードベクトルを移す.
SOMの定義
• クラスタリングにおいて,miのiは特に
意味を持たない単純なラベルとしての
番号.
• 一方,SOMでは,iを1次元アレイ状の
番号と対応させるものを1次元SOM,2
次元配列と対応させるものを2次元SOM
という.
SOMの学習アルゴリズム
• SOMを学習するには通常数千回以上のデータ
提示回数が必要.学習ベクトルが少ない場合
には,繰り返し提示を行って学習する.
SOMの学習アルゴリズム
1.初期化 m1, …, mLの値をランダムに与える.t = 0.
2.繰り返し t = 1, 2, …, Nとして以下の操作を繰り返
す.
(1) ベクトルx(t)と各miの内積2を求める.
xT(t) mi, i = 1, …, L2
(2) 最も内積の大きい値を与えるiを求め,それをjと
おく.
1
mi t   mi t 21   ri  r j xt   mi t 1
(3) 各i (i
= 1, …, L )について,次式で学習する.
t

2 

p
, etc.
 p   exp 
2
 2 t  


但し,

講義内容(第13回目)
1. ヘブ学習とデルタ則
(1) 教師付き学習におけるヘブ学習
(2) 教師付き学習におけるデルタ則
(3) 教師なし学習におけるヘブ学習
2. 対向伝播ネットワーク
3. ART (Adaptive Resonance Theory)
連想記憶
• 連想記憶には、欠損値や雑音に乱されたデータを修復すること
を目的として、入力データと同じデータ空間のものを出力する
自己連想記憶 (autoassociative memory)と、異なるデータ空間の
ものを出力する異種連想記憶 (heteroassociative memory)がある。
• 一般に、教師なし学習は前者、教師付き学習は後者に対応する。
• 連想記憶の最も基礎的な学習方法として、ヘブ学習 (Hebbian
learning)をあげることができる。ヘブ学習 は教師付き学習と教
師なし学習の両方に適用できる連想記憶モデルの学習方法であ
る。使えるデータは{0, 1}または{-1, 1}である。
連想記憶
1. 教師付き学習におけるヘブ学習(別紙参
照)
2. 教師付き学習におけるデルタ則(別紙参
照)
3. 教師なし学習におけるヘブ学習(別紙参
照)
対向伝播ネットワーク
•
対向伝播ネットワーク(counter propagation
network)は,R. Hecht-Nielsenによって考案
された多層型ネットワーク.教師付き学習
(関数近似)を行うものであるが,それに
加えてデータ圧縮,連想記憶の機能を持つ.
対向伝播ネットワーク
•
•
すでに観測された入出力データの組
{(x(k),y(k)); k = 1, …, N}から入出力要素間の
関係を学習し,n + m 次元のベクトルの一部
欠けている値を残りの部分から得られる情
報により推定する問題に使うのが対向伝播
法の目的.
xが完全でyが全て欠けている場合が関数値
の推定.yが完全でxが全て欠けている場合
が原像の推定問題.
対向伝播ネットワーク
対向伝播法では
(1) 入力ベクトルから出力の推定
(2) 出力ベクトルから入力ベクトルの逆推定
(3) 一部の要素が欠損している入出力ベクト
ルの修復
などを行うことができる.(テキスト図7.1, 図
7.2)
対向伝播ネットワーク
1. 対向伝播ネットワークの構造
入力x,出力yにマッチングさせるためのM組の参照
用ベクトル (v(1), w(1)), …, (v(M), w(M)) を用意して
おく.入出力の組を1つのベクトル z = (xT, yT)T にま
とめ,参照用ベクトルr(j) = (vT(j), wT(j))T (j = 1, …,
M) も同じく1つのベクトルにまとめると,zを用い
てrを逐次的に学習する.学習方法は k 平均法と同
様.
2. 対向伝播ネットワークの機能
3. 対向伝播ネットワークの学習アルゴリズム
4. 対向伝播ネットワークの適用例(テキスト参照)
対向伝播ネットワークの機能
• 学習された対抗伝播ネットワークの使い方を以下に示す。

m+n次元入出力ベクトルzび対応させてI
{0, 1}m+nを
Ii =1, ziに値があるとき
0, その要素が与えられないとき
(i = 1, 2, …, m+n)
とおく。この一部が欠けているベクトルと参照用ベクトルとの照
合は m n
I i zi  ri  j 2 , j  1,2,..., M

i 1
によって行われる。ここで,zの欠けている要素は適当な値(0で
m n
よい)
J  arg min
I i zi  ri  j 2
を入れておく。この最小値を与えるjを以下のようにおく。
j

i 1
対向伝播ネットワークの機能
• zに対する連想出力としてr(J)をそのまま使うことものできるが,
各参照用ベクトル毎に出力用に別のベクトルを用意し,それによ
り
別の推定値o = [tT, uT]Tを出力することも可能。
下表は対向伝播ネットワークで構成されるルックアップテーブ
ル。
学習後は提示されたデータzに対してユークリッド距離の最も近い
参照用ベクトルを探し,それに対応する出力用ベクトルを出力す
る。
表 対向伝播用ルックアップテーブル
参照用ベクトル
出力用ベクトル
r(1)
o(1)
:
:
r(M)
o(M)
対向伝播法のネットワーク
• 下図に対向伝播法のネットワークを示す。ここではx2とyが欠損
している場合を想定している。このとき,データが埋まってい
る要素だけで各ユニットとの距離が計算され,第1ユニットが近
かった場合,そこから出力ユニットに繋がっている重み係数が
出力される。
推定値
入力(x2, yは欠損)
x1
x
1
x
2
x3
x4
y
x2
x3
x4
y
対向伝播法のネットワークの学習アルゴリズム
• 手順1(重みの初期化)
参照用ベクトルr(j)および出力用ベクトルo(j) (j = 1, …, M)を
ランダムに与える。
• 手順2(繰り返し)
(1) k = k + 1
(2) 各学習ベクトルの組z(k)について(i)-(iii)を行う。
(i) z(k)とr(j), j = 1, …, Mの距離の最小値を与えるものを勝利ユ
ニットJとする。
(ii) Jに対して,参照用ベクトルの重みを更新する。また,出
力用ベクトルを更新する。
(3) 学習係数αを減少させる。
(4) 終了条件をチェックし,満たされなければ繰り返す。
ART (Adaptive Resonance Theory)
•
ARTは認知科学の分野で研究されてきた記
憶に関する研究をもとに,適応共鳴理論と
名付けられた人間の認知情報処理のモデル.
ARTは基本的に教師なし学習法であるが,
記憶,クラスタリング,連想などを総合的
に行うのに応用することができる.入力ベ
クトルとして2値のみを考慮したART1,実
数を扱うように設計されたART2,実数・整
数の混在データを扱うART3など複数のバー
ジョンが提案されている.
ART (Adaptive Resonance Theory)
•
一般にニューラルネットワークなどでの学
習では,新しい情報を学習すうと過去の記
憶が失われ,過去の記憶の保持を重視する
と新しい記憶の学習が困難になる安定性 - 可
塑性ジレンマが問題であると指摘されてい
るが,ARTはその点を解決することを主眼
として設計されている.ここで安定性とは,
新しい記憶を行うときに過去の記憶を失わ
ないことを意味している.
ART (Adaptive Resonance Theory)
1. ART1(テキスト参照)
2. ファジイART(テキスト参照)
講義内容(第8回目)
1.
2.
3.
4.
5.
6.
リカレントニューラルネットワークとは
BPTT (Back Propagation Through Time)法
EBPTT法 (EpochごとBPTT法)
RTRL (Real Time Recurrent Learning)法
BPTT法とRTRL法の計算量とメモリ
応用例
リカレントニューラルネットワーク
• リカレントニューラルネットワークは、フィードフォワードの
階層型ネットワークに時間遅れのあるフィードバックループを
付加したネットワーク。
• 階層型ネットワークの時空間への一般化とみなされ、時空間情
報の取扱いを可能にすることができる。
• リカレントニューラルネットワークは、相互結合型ネットワー
クともみなされる点ではホップフィールドモデルと同じである
が、相互の結合が対称であるホップフィールドモデルに対して、
リカレントニューラルネットワークにおけるユニット間の結合
は非対称に一般化されている。
リカレントニューラルネットワーク
• 非対称なフィードバック結合のあるリカレントニューラルネッ
トワークにおいては、階層型ネットワークのような多層構造の
概念は明確にはならないので、ネットワークを構成するユニッ
トは入力ユニット、出力ユニットおよび隠れユニットと呼ばれ
る3種類のユニットに分類される。
• 入力ユニットは全ての出力ユニットと隠れユニットに結合され、
出力ユニットと隠れユニットはそれぞれお互いが結合されてい
る。また、しきい値の学習を行うために、通常は、入力ユニッ
トの中には常に1を出力する仮想的なユニットが含まれている
と仮定する。
EBPTT 法
• リカレントニューラルネットワークに対して,離散
時間 t0, t0+1, …, t1-1 において,それぞれ入力xi(t0),
xi(t0+1), …, xi(t1-1) を与え,時刻 t0+1, …, t1-1, t1 におい
て,それぞれ教師信号 di(t0+1), …, di(t1-1), di(t1) を与
えたときの学習法を考える.このときネットワーク
全体の誤差関数は,各時刻における誤差の総和J(t0,
t1)で与えられるので,J(t0, t1)を極小化するような学習
則の導出を試みる.このような学習法は,時刻t0から
t1までのエポック (epoch) と呼ばれる各時間区間内に
おけるネットワークの出力と教師信号との誤差の総
和を極小化するような結合荷重を求めることになる
ので,エポックごとのBPTT法と呼んでいる.
BPTT を用いた学習例
• ローレンツ軌道の学習