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

SOM の並列学習法とその問題点

ドキュメント内 JAIST Repository (ページ 82-85)

HOST

Pattern 0 Pattern 1

5.2 SOM の並列学習法とその問題点

5.2.1 Obermayer

による並列学習法

Obermayerら[17]は,ニューロン数約16千,入力パターンが900次元という大規模 なSOMを,Thinking Machines社製超並列計算機CM-2と自作のトランスピュータにより 並列実行する手法を提案した.

脳内のニューロン間に見られる側抑制を実現するために同一層内の結合を設けると計算 量がさらに増加するため,SOMでは通常最大活性値を出力しているノードからの距離に反 比例した係数を重み更新時に用いる.Obermayerらはより生物の脳に近く,かつ計算量を 削減するため競合層を興奮性,抑制性の係数を持つ2層とした.Obermayerらによる2層 モデルを図5.1に示す.

5.1を格子網を持つCM-2,リング網を持つトランスピュータ上へ実装し,それぞれ細 粒度,粗粒度処理として双方の性能を比較している.CM-2では,競合層の1ユニットを

CM上の1PEに割り当て,トランスピュータではPE数が少ないため,競合層を分割して 実装している.Obermayerはこれらの手法により,入力次元数と競合層のユニット数にほ ぼ比例する処理時間でSOMを実行できることを報告している.

5.2.2 Chwan

による並列化

Chwanら[19]は,直鎖網上と2次元トーラス網上へのSOMの実装について述べている.

直鎖網上へは,競合層の2次元配列で垂直位置が重なるユニットを同一PEに割り当てて いる.学習パターンは各PEに入力された後,PE上でのローカルウィナーが決定される.

PEはローカルウィナーのユニット番号をローテーションし,グローバルウィナーが決 定される.その後,グローバルウィナーの近傍が決定され,近傍内に位置するユニットを 持つPEが重みを更新する.

2次元トーラス網上への実装は競合層をブロックに分割し,各ブロックをトーラス網上 のPEに割り当てる.直鎖網への実装時と同じく,入力パターンが全PEに与えられた後,

PEは担当するエリア内でのローカルウィナーを決定する.各PEでのローカルウィナー から,競合層でのグローバルウィナーを決めて近傍を計算し,近傍内のユニットを持つPE により重みを更新する.

Chwanによるこの手法は,同一 PEに異なったエリアの競合層が割り当てられるため,

PEの利用効率が良好であるという利点がある.たとえば直鎖網では,近傍の直径がPE数 より大きければ,すべてのPEがビジー状態となる.しかし,学習終盤になり近傍直径が 小さくなると,アイド ルとなるPEが増えるという問題がある.

5.2.3 Myklebust

による並列化

Myklebustら[18]は,5.2.1節や5.2.2 節のモデルがいわゆるユニット並列モデルである ことを指摘した.ユニット並列モデルは3章で示したように,特殊な場合を除いて通信量 などの問題のため効率の良い並列化手法とは言えない.そこでMyklebustはユニット並列 モデルと学習セット並列を組み合わせてSOMを並列化する手法を提案している.

MyklebustはRENNSという演算ユニット,通信マネージャ,メモリを持つモジュール

16個を2次元トーラス網に接続した並列計算機を用い,その性能について評価している.

トーラス網への実装は図5.2に示すような形に行う.ネットワークのコピー一つに複数のモ ジュールを割り当て,各コピーの中ではユニット並列モデルを用いている.また,同時に ユニット並列モデル,学習セット並列モデルも単独に実装し,それぞれの学習速度を報告 している.

Myklebustらは,ユニット並列モデルよりも学習セット並列モデルやそれらを組み合わ

せたモデルの方が高速に学習が可能であることを報告している.しかし,3.2.2節で用いた

Original Competitive Layer Copy 0 Copy 1 Copy 2

Learning Set Torus Network

5.2: Myklebustによるユニット並列と学習セット並列を組み合わせた実装

ような重みのバッチ更新を用いるとトポグラフィックマップが生成されず,少数の学習パ ターンを処理した後に重みの更新操作が必要であると報告している.

5.2.4

従来の並列化手法の問題点

ユニット並列モデルを主体にしたObermayerChwanのモデル,およびユニット並列モ デルと学習セット並列モデルを組み合わせたMyklebustのモデルについて概説した.

ユニット並列モデルでは,5.2.2節で述べたように学習が進むにつれて重み更新を行うユ ニット数が減少するため,競合層を分割するモデルでは学習後半のPEの使用効率が悪化 し,負荷が不均一になるという問題がある.図5.3に,入力層221,競合層10210SOM に,ランダムに発生させた100 個の学習パターンを入力して15000回の学習を行ったとき の,各競合層ユニットの重み更新回数を示す.

5.3から分かるように,ウィナー,あるいは近傍ユニットとして重み更新を行った回数 が最も多いユニットは,約145,000回,最も少かったユニットは約54,000回であり,約2.6 倍の開きがある.したがって,Obermayerの並列モデルのような競合層分割によるユニッ ト並列学習手法では,これがそのままPE間の処理時間の差となり並列化効率が低下してし まう.また,Chwanらの実装では,1つのPEが複数のユニットを担当するため学習初期で 近傍が大きいときの負荷は均一化されるが,学習が進んで近傍が小さくなるとObermayer

20000 40000 60000 80000 100000 120000 140000

0 20 40 60 80 100

Times of weight update

Competitive unit number

5.3: 競合層ユニットの重み更新回数

によるモデルと同様の問題が発生する.また,ウィナーの競合層上での位置がPE間の境 界に近く,近傍関数や学習率関数を距離の関数としている場合には,PE間通信が余分に 発生するという問題がある.Myklebustによる並列化手法についても,競合層分割による ノード 並列を基本にしているため,PE間の負荷が不均一という問題は解決されていない.

また,競合層のサイズが大きい大規模SOMでは,PE間の通信が大幅に増加するために十 分な高速化を行うことができないという問題もある.

以上の問題点を踏まえ,原理的に負荷の不均一が発生せず,大きな競合層を用いる大規 模SOMを高速に学習させる入力層分割法を次節で提案し,その評価を行う.

ドキュメント内 JAIST Repository (ページ 82-85)