Introduction to Soft Computing (第12回~第13回) 佐藤 裕二
講義内容(第12回目) マックスネット ベクトル量子化 学習ベクトル量子化 自己組織化マップ(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) 但し,f(x)は
マックスネットの動作 マックスネットの動作では,eが小さいと収束は遅くなる.一方, eが大きすぎると全てのユニット値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)がある。
ボロノイ量子化器 ・ ボロノイ量子化器は、あるベクトルxRnを,ユークリッド距離が最も近いコードベクトル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であると判別される。 m1 m2 クラス1と判定 x m3 m4 m5 m6
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とおく. (3) 各i (i = 1, …, L2)について,次式で学習する. 但し,
講義内容(第13回目) ヘブ学習とデルタ則 (1) 教師付き学習におけるヘブ学習 (2) 教師付き学習におけるデルタ則 (3) 教師なし学習におけるヘブ学習 2. 対向伝播ネットワーク 3. ART (Adaptive Resonance Theory)
連想記憶 連想記憶には、欠損値や雑音に乱されたデータを修復することを目的として、入力データと同じデータ空間のものを出力する自己連想記憶 (autoassociative memory)と、異なるデータ空間のものを出力する異種連想記憶 (heteroassociative memory)がある。 一般に、教師なし学習は前者、教師付き学習は後者に対応する。 連想記憶の最も基礎的な学習方法として、ヘブ学習 (Hebbian learning)をあげることができる。ヘブ学習 は教師付き学習と教師なし学習の両方に適用できる連想記憶モデルの学習方法である。使えるデータは{0, 1}または{-1, 1}である。
連想記憶 教師付き学習におけるヘブ学習(別紙参照) 教師付き学習におけるデルタ則(別紙参照) 教師なし学習におけるヘブ学習(別紙参照)
対向伝播ネットワーク 対向伝播ネットワーク(counter propagation network)は,R. Hecht-Nielsenによって考案された多層型ネットワーク.教師付き学習(関数近似)を行うものであるが,それに加えてデータ圧縮,連想記憶の機能を持つ.
対向伝播ネットワーク すでに観測された入出力データの組 {(x(k),y(k)); k = 1, …, N}から入出力要素間の関係を学習し,n + m 次元のベクトルの一部欠けている値を残りの部分から得られる情報により推定する問題に使うのが対向伝播法の目的. xが完全でyが全て欠けている場合が関数値の推定.yが完全でxが全て欠けている場合が原像の推定問題.
対向伝播ネットワーク 対向伝播法では (1) 入力ベクトルから出力の推定 (2) 出力ベクトルから入力ベクトルの逆推定 対向伝播法では (1) 入力ベクトルから出力の推定 (2) 出力ベクトルから入力ベクトルの逆推定 (3) 一部の要素が欠損している入出力ベクトルの修復 などを行うことができる.(テキスト図7.1, 図7.2)
対向伝播ネットワーク 1. 対向伝播ネットワークの構造 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) とおく。この一部が欠けているベクトルと参照用ベクトルとの照合は によって行われる。ここで,zの欠けている要素は適当な値(0でよい) を入れておく。この最小値を与えるjを以下のようにおく。
対向伝播ネットワークの機能 zに対する連想出力としてr(J)をそのまま使うことものできるが, 各参照用ベクトル毎に出力用に別のベクトルを用意し,それにより 別の推定値o = [tT, uT]Tを出力することも可能。 下表は対向伝播ネットワークで構成されるルックアップテーブル。 学習後は提示されたデータzに対してユークリッド距離の最も近い 参照用ベクトルを探し,それに対応する出力用ベクトルを出力する。 表 対向伝播用ルックアップテーブル 参照用ベクトル 出力用ベクトル r(1) o(1) : : r(M) o(M)
対向伝播法のネットワーク 下図に対向伝播法のネットワークを示す。ここではx2とyが欠損している場合を想定している。このとき,データが埋まっている要素だけで各ユニットとの距離が計算され,第1ユニットが近かった場合,そこから出力ユニットに繋がっている重み係数が出力される。 推定値 入力(x2, yは欠損) x1 x1 x2 x2 x3 x3 x4 x4 y 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 (Adaptive Resonance Theory)
講義内容(第8回目) リカレントニューラルネットワークとは 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 を用いた学習例 ローレンツ軌道の学習