|
SOMに入力ベクトルが与えられると
入力ベクトルに最も近い参照ベクトルを持つユニットが勝者ユニットとなります.
このときマップ上で勝者ユニットの近くに位置するユニットほど
入力ベクトルに対して強く学習する権利を獲得し,
その強さに応じて参照ベクトルを入力ベクトルへと近づけるように学習します.
このときの学習の強さは勝者ユニットが一番強く,
マップ上での位置が勝者ユニットから離れていくほど弱くなります.
このような参照ベクトルの更新を色々な入力ベクトルに対して繰り返していくと,
ベクトル空間上での入力ベクトル同士の関係性を保存したマップを得ることができます.
また,SOMの学習法には大きく分けてOnline-LearningとBatch-Learningがあります.
それぞれにメリットとデメリットがあるので場合によって使い分けが必要です.
<Online-Learning>
SOMには入力ベクトルが1つずつ与えられ,そのつど参照ベクトルの更新を行います.
適時入力されたデータのみに対して学習を行えばよいので,
Batch-Learningと比べて1回の学習にかかる時間的なコストや
メモリ容量などの点において優れています.
また学習初期にデータが揃っておらず,
データを収集しながら学習を行う場合にOnline-Learningは適しています.
一方で,1回の学習で1個のデータに対してのみ学習を行うので,
学習で更新されるマップには特定のデータの影響が強く残ります.
そのためOnline-Learningで得られるマップには偏りが生じることがあります.
<Batch-Learning>
用意された入力ベクトルの集合を一度に与えて学習を行います.
1回の学習で全ての入力ベクトルが考慮された形で参照ベクトルの更新を行うため,
安定した学習が期待でき,バランスのとれたマップを獲得することができます.
しかしこの場合には,入力データが全て揃っていることが前提となっているため,
学習時にデータが揃えられない場合にはBatch-Learningは適していません.
また入力データを全て記憶しておかなければならないので,
使用メモリ量などの点においてOnline-Learningに劣ります.
|