SlideShare a Scribd company logo
1 of 18
本日のアジェンダ


自己組織化マップとは



自己組織化マップのアルゴリズム



データ解析
 パッケージkohonen

1
自己組織化マップとは
自己組織化マップは、高次元データを2次元平面上へ非線形射影するデータ解析法であり、
多次元尺度法・クラスター分析法として用いられている。位相を考慮しつつ低次元空間に
写像する。

引用:マインドウェア総研
引用:九州工業大学

2
自己組織化マップのアルゴリズム(もっとも基本/2次元の場合)
(1) マップの縦横の大きさ・トポロジーを決める。
(2) マップを乱数によって初期化する
(3) 入力

に最も近いマップ上のユニット

(4) 選択した

を選択する。

とその近傍のユニットを更新する。

縦サイズ

横サイズ

6角形のSOM

入力列

四角のSOM

3
自己組織化マップのアルゴリズム(図解)
各ユニットのベクトルを色にたとえてアルゴリズムを例示する。簡単のため、ランダムに
初期化されたマップのうち、3色に注目してマップが更新される様子を図示する。
入力列からランダムにマップ上にユ
ニットを配置する。
入力列
入力列から1つ選択し、最も近いユ
ニットを選択する。近傍のユニット
の値を更新する。
入力列

入力列

同様に、入力列から1つ選択し、最も
近いユニットと、その近傍を更新す
る。このとき、少しずつ範囲と更新
割合を減らす。

以下同様に既定の回数まで繰り返す

入力列
4
データ解析
実際にRを用いて、データirisをSOM上にプロットする。手順は(1)SOMの作成、(2)データを
SOM上にプロットの2段階。irisデータのうち4つのアヤメの特徴からアヤメをクラスタリン
グし、品種の判別を試みる。

Mapping plot
1
1

1
11

11
1

2
2
2
22
2
2

1

Petal.Length
Petal.Width

(1)作成したSOM

2
22

2

2
2

2
2

2

2
2
2

2
22

2
2

3

3
3

2
33

2
2
2

3

3

2
3
3

3
3
3

3
3
3

3

3

3
3

3 3
3
3
2
3
3
2
2
3
3

2
2

333
33

3
3
3

3

2

2

2
2
2

Sepal.Length
Sepal.Width

22

1
1

2
22

2
2

1
1
1

11
1
11
11 1
11

1
111

11
1
1
1
1

11
1

1
11
1

1

1
1
1

3

3
3
3

33
3
3

3
3
33

(2)SOMへのプロット

5
データ解析(SOMの作成)
somgridでSOMのサイズ・形状を指定。SOM関数でSOMを作成しplotで作成したSOMを図示する
。傾向の似たユニットが近くに配置されていることがわかる。

Sepal.Length
Sepal.Width

Petal.Length
Petal.Width

somgrid(xdim=8, ydim=6, topo=“hexagonal”)
som(as.matrix(iris[,1:4]),…)
plot(….type=“codes”…)

6
データ解析(データをSOMへプロットする)
作成したSOMに対して、データをプロットしていく。大体近いところに同じ品種がプロット
されていることがわかる。

Mapping plot
1
1

1
11

11
1

2
2
2
22
2
2

1
2

2
2

2
2

2
2
2
2

2
22

2
2

3

3
3

2
33

2
2
2

3

3

2
3
3

3
3
3

3
3
3

3

3

3
3

3 3
3
3
2
3
3
2
2
3
3

2
2

333
33

3
3
3

3

2

2

2
2
2

2
22

22

1
1

2
22

2
2

1
1
1

11
1
11
11 1
11

1
111

11
1
1
1
1

11
1

1
11
1

1

1
1
1

3

作成したSOMの
一番近いところに
配置

3
3

3

33
3
3

3
3
33

somgrid(xdim=8, ydim=6, topo=“hexagonal”)
som(as.matrix(iris[,1:4]),…)
plot(….type=“mapping”…)
7
データ解析(元のデータとの比較)
元のirisは4次元空間上にあるデータだったが、SOMによって二次元空間に落とし込むこと
ができたことがわかる。
3.0

4.0

0.5

1.5

2.5
6.5

2.0

3.5

4.5

Sepal.Length

7

2.0

Sepal.Width

5

Mapping plot

2.0

1

3

Petal.Length

0.5

3.0
2.0
1.0

Species
6.0

7.5

1

3

5

7

1.0

2.0

11
1

3.0

11
1

2
2
2
22
2
2

1
2

2
2

2
2

2
2
2
2

2
22

2
2

3

3
3

2
33

2
2
2

3

3

2
3
3

3
3
3

3
3
3

3

3

3
3

3 3
3
3
2
3
3
2
2
3
3

2
2

333
33

3
3
3

3

2

2

2
2
2

2
22

22

1
1
1

1
1

2
22

2
2

1
1
1

11
1
11
11 1
11

1
111

1
1
1

11
1

1
1
11

1

4.5

1
1

1
11

Petal.Width

3

3
3
3

33
3
3

3
3
33
8
実際の分析に使うときに留意すべきこと
実際の分析にあたっては、ここまで説明していなかった点で、結果に影響がでる留意すべ
き点があります。
ここについて、
もう一歩踏み込
んでみます。

• 用途に応じた、オンラインSOM/バッチSOMの選択
• SOMのサイズの選び方
• マップの初期値の選び方
• Rのデフォルトは、入力値からのランダム選択
です
• 主成分分析を使った合理的な選択方法がある
ようです。
• マップ更新時の学習半径・学習率の選び方
• 値の設定で、結果が大きく変わる
9
オンラインSOM / オフラインSOM
Kohonenの自己組織化マップは、データを入力するごとにユニットを更新するためマップが
データの順序に依存してしまう。これに対してバッチ自己組織化マップが提案されている
。

オンラインSOM

データ

利点

• 1つずつ入力
• 入力された順に学習

• データを収集しながら
学習可能

使用メモ
リ

• データを1つずつ読み込む
ため省メモリ

学習時間

• 逐次更新のため1回の学習
時間が短い

バッチSOM
• 一括で入力
• すべてのデータを一気に
学習
• 順序によらない学習法の
ため安定した結果が得ら
れる。
• 学習率(アルファ)が不
要
• すべてのデータを読み込
むためメモリ使用量が多
い
• すべてのデータを利用す
るため更新時間が長い
10
オンラインSOMは入力順序に依存してしまう場合がある
オンラインSOMは、初期のころのほうが更新範囲が広く、ステップが進むにつれて更新範囲
が狭くなっていく。オンラインSOMだと入力列の順序によってマップが変わってしまう。マ
ーケティングなど順序に意味がない分析では、バッチSOMの方がよい。

ステップ`(t)が進むにつ
れ
更新範囲が狭く、
割合も小さくなる

11
オンラインSOMのデータ順序による結果の差
RのclassパッケージのSOM関数(オンラインSOM)に対して、順序を変えたirisデータを入
力し、結果を図示した。マップの様子が順序で異なることがわかる
※わざと大きな学習率(アルファ)を指定しているので変な出力です。

irisデータを花弁の長さの昇順でソート

irisデータを花弁の長さの降順でソート

コマンド
model <- SOM(liris, grid =
layer, alpha=seq(10,0,len=rlen), radii=seq(4,1,len=rlen), init
=init)
12
バッチSOMの順序による結果の差
RのclassパッケージのbatchSOM関数(バッチSOM)に対して、順序を変えたirisデータを入
力し、結果を図示した。マップが安定して得られていることがわかる。

irisデータを花弁の長さの昇順でソート

irisデータを花弁の長さの降順でソート

コマンド
model <- batchSOM(liris, grid =
layer, radii=seq(4,1,len=rlen), init=init)
13
まだ時間が余っていたら・・・・
SOMは高次元データを低次元空間に落とし込むだけでなく、NP問題を効率的に解くことにも
利用されている。

そのほかのSOMの例。低次元への
マップ以外の使い方。
http://www.brain.kyutech.ac.jp/~fur
ukawa/note/som/som.html

14
SOMまとめ

SOMのポイント
• 高次元データを低次元空間に落とし込む
• 位相を考慮した写像
• NP問題など、計算量が膨大な問題の近似解を求めるのにも利用
可

SOMの検討事項(結果に影響する)
•
•
•
•

マップのサイズの決め方
学習半径・学習率の決め方
マップの初期状態の決め方
オンライン学習/バッチ学習の使い分け

実際の応用に合わ
せて検討する必要
あり。

15
Q&A

Q&A

16
References

• 九州工科大学、古川研究室
http://www.brain.kyutech.ac.jp/~furukawa/note/som/so
m.html
• 同志社大学
http://www1.doshisha.ac.jp/~mjin/R/30/30.html
• WikiPedia
http://en.wikipedia.org/wiki/Self-organizing_map
• マインドウェア総研
http://www.mindware-jp.com/basic/somward.html
• 新潟大学
• http://bioinfo.ie.niigatau.ac.jp/?SOM%E3%81%A8%E3%81%AF#oed7b8fd
17
Appendix

• 添付:som_kohonen.R
教科書の自己組織化マップコード
• 添付:som_online_batch.R
オンラインSOMとバッチSOMの比較用のRコード

18

More Related Content

What's hot

グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
shima o
 
Tokyor35 人工データの発生
Tokyor35 人工データの発生Tokyor35 人工データの発生
Tokyor35 人工データの発生
Yohei Sato
 

What's hot (20)

グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
協力ゲーム理論でXAI (説明可能なAI) を目指すSHAP (Shapley Additive exPlanation)
 
Stanでガウス過程
Stanでガウス過程Stanでガウス過程
Stanでガウス過程
 
Chapter2.3.6
Chapter2.3.6Chapter2.3.6
Chapter2.3.6
 
Stanの便利な事後処理関数
Stanの便利な事後処理関数Stanの便利な事後処理関数
Stanの便利な事後処理関数
 
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
 
動的輪郭モデル
動的輪郭モデル動的輪郭モデル
動的輪郭モデル
 
Stanとdlmによる状態空間モデル
Stanとdlmによる状態空間モデルStanとdlmによる状態空間モデル
Stanとdlmによる状態空間モデル
 
Tokyor35 人工データの発生
Tokyor35 人工データの発生Tokyor35 人工データの発生
Tokyor35 人工データの発生
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
 
[DL輪読会]GANとエネルギーベースモデル
[DL輪読会]GANとエネルギーベースモデル[DL輪読会]GANとエネルギーベースモデル
[DL輪読会]GANとエネルギーベースモデル
 
10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
 
よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 
PRML輪読#2
PRML輪読#2PRML輪読#2
PRML輪読#2
 
PRML 8.2 条件付き独立性
PRML 8.2 条件付き独立性PRML 8.2 条件付き独立性
PRML 8.2 条件付き独立性
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
 

Viewers also liked

はじめての自己組織化
はじめての自己組織化はじめての自己組織化
はじめての自己組織化
Yoshinori Ueda
 
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
Hokuto Kagaya
 
Tokyo r 11_self_organizing_map
Tokyo r 11_self_organizing_mapTokyo r 11_self_organizing_map
Tokyo r 11_self_organizing_map
osamu morimoto
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半
Ohsawa Goodfellow
 

Viewers also liked (6)

Somの分かり易い解説
Somの分かり易い解説Somの分かり易い解説
Somの分かり易い解説
 
はじめての自己組織化
はじめての自己組織化はじめての自己組織化
はじめての自己組織化
 
続・わかりやすいパターン認識_3章
続・わかりやすいパターン認識_3章続・わかりやすいパターン認識_3章
続・わかりやすいパターン認識_3章
 
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
 
Tokyo r 11_self_organizing_map
Tokyo r 11_self_organizing_mapTokyo r 11_self_organizing_map
Tokyo r 11_self_organizing_map
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半
 

More from Jun Harada

Lab seminar20100604
Lab seminar20100604Lab seminar20100604
Lab seminar20100604
Jun Harada
 

More from Jun Harada (15)

決算が読めるようになるゼミ第5回_Slack_原田惇
決算が読めるようになるゼミ第5回_Slack_原田惇決算が読めるようになるゼミ第5回_Slack_原田惇
決算が読めるようになるゼミ第5回_Slack_原田惇
 
mybo concept v1.00
mybo concept v1.00mybo concept v1.00
mybo concept v1.00
 
IoT x オープンイノベーション MERC丸の内院生ラウンジ
IoT x オープンイノベーション MERC丸の内院生ラウンジIoT x オープンイノベーション MERC丸の内院生ラウンジ
IoT x オープンイノベーション MERC丸の内院生ラウンジ
 
ロボット技術が、意外な製品・サービスに変わる - ロボット技術の応用事例
ロボット技術が、意外な製品・サービスに変わる - ロボット技術の応用事例ロボット技術が、意外な製品・サービスに変わる - ロボット技術の応用事例
ロボット技術が、意外な製品・サービスに変わる - ロボット技術の応用事例
 
(途中案)本当に役立つプログラミング力を鍛える講座
(途中案)本当に役立つプログラミング力を鍛える講座(途中案)本当に役立つプログラミング力を鍛える講座
(途中案)本当に役立つプログラミング力を鍛える講座
 
コミュニケーションロボット開発から拡販までの色々
コミュニケーションロボット開発から拡販までの色々コミュニケーションロボット開発から拡販までの色々
コミュニケーションロボット開発から拡販までの色々
 
ユカイ工学 Qooboのご紹介
ユカイ工学 Qooboのご紹介ユカイ工学 Qooboのご紹介
ユカイ工学 Qooboのご紹介
 
2017-12-06 tsumugu4 人工知能特集
2017-12-06 tsumugu4 人工知能特集2017-12-06 tsumugu4 人工知能特集
2017-12-06 tsumugu4 人工知能特集
 
IoT Business in Japan
IoT Business in JapanIoT Business in Japan
IoT Business in Japan
 
東京研修プログラム
東京研修プログラム東京研修プログラム
東京研修プログラム
 
20170606 東京システムハウス様 ロボティクス思考塾_1.00
20170606 東京システムハウス様 ロボティクス思考塾_1.0020170606 東京システムハウス様 ロボティクス思考塾_1.00
20170606 東京システムハウス様 ロボティクス思考塾_1.00
 
西大和中学校様むけ、ミエタ社ワークショップ
西大和中学校様むけ、ミエタ社ワークショップ西大和中学校様むけ、ミエタ社ワークショップ
西大和中学校様むけ、ミエタ社ワークショップ
 
IoT・ロボット製品の実現に向けたアプローチの実例
IoT・ロボット製品の実現に向けたアプローチの実例IoT・ロボット製品の実現に向けたアプローチの実例
IoT・ロボット製品の実現に向けたアプローチの実例
 
Lab seminar20100604
Lab seminar20100604Lab seminar20100604
Lab seminar20100604
 
test
testtest
test
 

【勉強会】自己組織化マップ(SOM)