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

深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデルMasahiro Suzuki
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギーHiroshi Shimizu
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習Hidekazu Tanaka
 
情報幾何勉強会 EMアルゴリズム
情報幾何勉強会 EMアルゴリズム 情報幾何勉強会 EMアルゴリズム
情報幾何勉強会 EMアルゴリズム Shinagawa Seitaro
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -tmtm otm
 
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learningベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learningssuserca2822
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Satoshi Kato
 
幾何を使った統計のはなし
幾何を使った統計のはなし幾何を使った統計のはなし
幾何を使った統計のはなしToru Imai
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)Takao Yamanaka
 
カルマンフィルタ入門
カルマンフィルタ入門カルマンフィルタ入門
カルマンフィルタ入門Yasunori Nihei
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Yamato OKAMOTO
 
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリングNewman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリングAtsushi KOMIYA
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布Nagayoshi Yamashita
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明Satoshi Hara
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)Kota Matsui
 

What's hot (20)

深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギー
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習
 
AdaFace(CVPR2022)
AdaFace(CVPR2022)AdaFace(CVPR2022)
AdaFace(CVPR2022)
 
情報幾何勉強会 EMアルゴリズム
情報幾何勉強会 EMアルゴリズム 情報幾何勉強会 EMアルゴリズム
情報幾何勉強会 EMアルゴリズム
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
 
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learningベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
 
幾何を使った統計のはなし
幾何を使った統計のはなし幾何を使った統計のはなし
幾何を使った統計のはなし
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
カルマンフィルタ入門
カルマンフィルタ入門カルマンフィルタ入門
カルマンフィルタ入門
 
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM) 一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)
 
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリングNewman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリング
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 

More from Jun Harada

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