SlideShare a Scribd company logo
1 of 25
Download to read offline
ヘテロなクラスタ環境に適した
並列誤差逆伝搬アルゴリズム
鈴鹿工業高等専門学校 渥美 清隆
電気通信大学 佐々木 健吾
第106回ハイパフォーマンス
コンピューティング研究発表会
於 電気通信大学
研究の動機
 ニューラルネットワークの学習は並列化に向
いている。
 並列化アルゴリズムについては過去の研究も
あるが、能力が混在した並列計算機で効率良
く動作しないようだ。
 計算や通信の省略で、さらに速くならないだ
ろうか。
過去の研究
 Jim Torresen: Parallelization of
Backpropagation Training for Feed-
Forward Neural Networks, Ph D.
thesis,1996
 網羅的に書かれている。
 当時の実行可能な計算機について言及して
いる。
 並列計算のためのアルゴリズムの改変は基
本的にしない。
ニューラルネットワーク
中間層
入力層 出力層 入力層を除く各ノード
は入力値に重み付き和
をシグモイド関数にか
けた結果を出力する。
 入力に対する重みを適
切に学習することで、
所望の動作をさせるこ
とができる。
ニューラルネットワークの
学習の概要
 誤差逆伝搬法を考える。
 入力パターンと教師信号を併せた情報を複数
与えて学習する。
 上位層からの差分情報に基づいて微分方程式
を解き、差分が減るように重みを調整する。
 出力層から入力層に向けて各層毎に計算す
る。
 複数の入力パターンを同時に与えると学習を
高速化できる。(ブロック化)
ニューラルネットワークの
学習の並列化あれこれ
 ノード間接続辺を基準に負荷分散
 ノードを基準に負荷分散
 入力パターンを分割して学習し、後で合わせ
る方法
 各層毎の計算を利用したパイプライン
 OpenMPを利用した細粒度負荷分散
重み学習の性質
変化量
学習回数
仮定する並列計算機
 図のようなクラスタ
型並列計算機を仮定
 各ノードの性能はバ
ラついていても良い
が、HPLベンチマー
クによる性能が分っ
ている。
HUB
提案するアルゴリズムの特徴
 入力パターンのブロック化による巨大行列化
 行列乗算パッケージ(Atlas)の利用
 中間層、出力層のノードを基準に負荷分散
 中間層、出力層のノード数の粒度で、プロ
セッサへの負荷割当を調整可
 中間層の出力値の交換を一部省略
 出力層の出力値の集約で常識的でない計算
提案するアルゴリズムの流れ
 初期化、負荷分散量決定
 以下を繰返す
 前向き計算1(入力層-中間層)
 Gap回に1回、中間層出力値を交換
 前向き計算2(中間層-出力層)
 誤差評価し、一定値以下なら、繰返し終了
 後向き演算
 中間層が持つ重みの交換
 後処理
前向き演算の負荷分散
 赤と緑の二つに分散する。
プロセッサ1
プロセッサ2
ダミーノード
ダミーノード
前向き計算1,2
ダミーノード ダミーノード
前向き演算1 前向き演算2
Gap毎に中間層ノード出力値の交換
前向き計算2の負荷分散について
 前向き計算2の計算量は係数×中間層ノード
数×出力層ノード数×パターン数
 出力ノードを基準に負荷分散可能
 負荷分散すると、出力値の交換は省略不能
 出力値の量は、パターン数×出力層ノード数
前向き計算2の負荷分散はしないことにした。
評価の負荷分散
プロセッサ1の出力値を
使って誤差を集約
プロセッサ2の出力値を
使って誤差を集約
全ての誤差
を集約
注意: 出力値の交換はしない
後向き計算
後向き演算1
途中の通信は不要
計算後に中間層-出力層の重みのみ交換
後向き演算2
実験環境
 Pentimu4/2.8GHz, 512MByte / node
 GbE接続
 Debian GNU/Linux Sarge
 LAM-MPI, gcc 3.3.5, atlas-sse2 3.6.0
 Cでコーディング, 約750行
教師パターン
入力層10000
出力層5
パターン数625
1の領域ならば「10000」
2の領域ならば「01000」
3の領域ならば「00100」
4の領域ならば「00010」
5の領域ならば「00001」
....
...
..
1
0
0
分
割
100分割
1
2
3
4 5
領域は10000に
分割される
中間層
ノード30
 曲線によって5つの領域に分割
 ぼかしをつけた点をある領域に打ち, そこ
がどの領域かを判断
実験手順
 プロセッサ数は4,8,12,16,24,32とする。
 中間層出力値の交換タイミングを1回毎、5回
毎、10回毎、20回毎とする。
 上記24試行および、単一プロセッサによる試
行を行なう。
評価パラメータ
 Gap別速度向上率
 Gap別全体の時間に占める並列計算時間
 学習回数
 どの程度速度向上が期待できるのか?
 並列実行によるアルゴリズムの安定性は損な
われないか?
上記により以下を
判断する。
実行時間
秒
プロセッサ数
速度向上率
プロセッサ数
率
並列実行時間割合
プロセッサ数
率
学習回数
プロセッサ数
回数
考察
 どの程度速度向上が期待できるのか?
中間層のノード数/4くらいまでのプロセッサ
数なら期待しても良さそう。
プロセッサ数が多いとGapの効果も大きい。
Gapにより並列実行時間も向上する。
 並列実行によるアルゴリズムの安定性は損な
われないか?
相当まで分割しても損なわれないようだ。
元のアルゴリズムの頑健性が認められる。
課題
 安定性の評価の継続
 前向き計算2の高速化
 ソースプログラムの公開

More Related Content

More from Mocke Tech (6)

A trial investigation system for vulnerability on M2M network
A trial investigation system for vulnerability on M2M networkA trial investigation system for vulnerability on M2M network
A trial investigation system for vulnerability on M2M network
 
Making Portable Super Computer
Making Portable Super ComputerMaking Portable Super Computer
Making Portable Super Computer
 
Social Engineering
Social EngineeringSocial Engineering
Social Engineering
 
Online programming examination
Online programming examinationOnline programming examination
Online programming examination
 
無線ロータのセキュリティとセーフティ / Safety and security for remote control vibrators
無線ロータのセキュリティとセーフティ / Safety and security for remote control vibrators無線ロータのセキュリティとセーフティ / Safety and security for remote control vibrators
無線ロータのセキュリティとセーフティ / Safety and security for remote control vibrators
 
20190808.kuruma iotlt.can cable
20190808.kuruma iotlt.can cable20190808.kuruma iotlt.can cable
20190808.kuruma iotlt.can cable
 

ヘテロなクラスタ環境に適した 並列誤差逆伝搬アルゴリズム