Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
第2回

!
プログラマのための数学LT会
20170719 

!
根上 春
自己紹介
薬学から応用数学へ転向

!
グラフ理論と機械学習を用いた創薬手法について研究

!
!
!
プログラミングはほぼ独学なので、この機会にぜひいろ
んな方とお知り合いになりたい!

!
グラフマイニングの高速アルゴリズムに興味あり

!...
今日のおはなし
行列は、データ分析の様々な場面で用いられる

!
その行列の持つ性質を知るために重要な、行列の
固有値、固有ベクトルについて解説する

!
定義は分かるけれども、どんな意味を持つのか?
を3つのケースを例にざっくりと解説する

!
まとめ
!
行列の固有値・固有ベクトルは行列の特徴を表す

!
行列として何を考えるかによって様々なデータ分
析に適用できる

線形変換

グラフのラプラシアン

!
固有値・固有ベクトルの計算は、精度や速度の観
点で課題があり各課題を解決する...
数学を応用するプロセス
数学の知見を得る 現実の課題を

把握する
変数を・定数に具体的な対象を代入
アルゴリズムを実装する
※個人の感想です
本日の発表の構成
行列の知識を得る どんな課題が

解けるのか知る
どのように解くかを知る
実装上の問題点を知る
行列とは
行列とは、要素を長方形にならべてまとめたもの
(横にn個、縦にm個。n, mは正整数。今日はn×n
のn次正方行列のみ扱う。)

!
行列のi行j列にある要素のことを(i,j)-成分という

!
足し算と掛け算の計算のルールが定められ...
行列に定められる足し算
行列同士の足し算は、同じ位置にある数同士を足
して行う

縦横の数はそれぞれ一致している必要がある

引き算の場合も同様である
a11 ! a1m
! !
an1 ! anm
⎛
⎝
⎜
⎜
⎜
⎞
⎠
⎟
⎟
⎟
+
...
c11 ! c1l
! !
cn1 ! cnl
⎛
⎝
⎜
⎜
⎜
⎞
⎠
⎟
⎟
⎟
=
a11 ! a1m
! !
an1 ! anm
⎛
⎝
⎜
⎜
⎜
⎞
⎠
⎟
⎟
⎟
×
b11 ! b1l
! !
bm1 ! bml
⎛
⎝
⎜
...
!
n次正方行列Aの固有値λとその固有ベクトルxは
次のように定まる ※λは複素数、X≠0

!
!
!
!
!
!
!
!
!
!
!
固有値とは、重複を許してn個ある

!
!
!
!
a11 ! a1n
! !
an1 ! ann
⎛
⎝...
!
固有値は、特性方程式

!
!
!
!
!
を解くことで求められる(必要十分)

個々のλの値ごとにベクトルXを求める

I はn次の単位行列、det(B)は行列Bの行列式を表す

!
!
!
!
!
!
行列の固有値・固有ベクトル
det...
!
!
!
!
!
!
!
!
 の固有値と固有ベクトルを求める

!
!
!
A =
8 1
4 5
⎛
⎝⎜
⎞
⎠⎟
例)2次元のとき
!
!
!
!
!
!


より、

!
!
!
!
!
!
Ax − λx =
8 1
4 5
⎛
⎝⎜
⎞
⎠⎟
x1
x2
⎛
⎝
⎜
⎞
⎠
⎟ − λ
x1
x2
⎛
⎝
⎜
⎞
⎠
⎟ =
0
0
⎛
⎝⎜
⎞
⎠⎟
x1
x2
⎛...
!
!
!
!
!
!
!
より、

!
!
!
!
を解く。

!
2次元のとき
8 1
4 5
⎛
⎝⎜
⎞
⎠⎟ − λ
1 0
0 1
⎛
⎝⎜
⎞
⎠⎟
⎧
⎨
⎪
⎩⎪
⎫
⎬
⎪
⎭⎪
x1
x2
⎛
⎝
⎜
⎞
⎠
⎟ =
0
...
!
!
!
!
!
!
!
!
!
!
!
!
2次元のとき
det
8 1
4 5
⎛
⎝⎜
⎞
⎠⎟ − λ
1 0
0 1
⎛
⎝⎜
⎞
⎠⎟
⎛
⎝
⎜
⎞
⎠
⎟
= det
8 − λ 1
4 5 − λ
⎛
⎝⎜
⎞
⎠⎟
⎛
⎝...
のとき

!
!
!
!
!
	 	 	 	 	 を解くと、

!
!
!
!
!
(tは任意の定数。t≠0)λ=9のときは省略
2次元のとき
λ = 4
8 − 4 1
4 5 − 4
⎛
⎝⎜
⎞
⎠⎟
x1
x2
⎛
⎝
⎜
⎞
⎠
⎟ ...
様々な行列を考えると、その固有値・固有ベクト
ルは様々な性質を持つ

!
解きたい課題に応じて、何を行列とするのか、固
有値・固有ベクトルは何を意味するのか、を考え
ることが重要

!
というお話をします
これだけではよくわからないので…
本日の発表の構成
行列の知識を得る どんな課題が

解けるのか知る
どのように解くかを知る
実装上の問題点を知る
画像処理(線形変換)

!
!
データの次元圧縮

!
!
ネットワーク構造を持つデータの

クラスタリング

!
…など
どんな課題が解けるのか
!
!
!
データの次元圧縮

!
!
ネットワーク構造を持つデータの

クラスタリング

!
…など
画像処理(線形変換)
どんな課題が解けるのか
!
!
!
!
!
!
!
!
!
!
!
!
!
!
線形変換を表す行列を利用して、画像の回転や射影
を行うことができる

画像の回転・射影
https://codeiq.jp/magazine/2015/07/25421/
詳しくはプログラ...
固有値・固有ベクトルとは、線形変換によって向き
が変わらないベクトル(大きさは固有値倍になる。)
!
!
!
!
!
!
!
!
!
!
!
画像の回転・射影
引用:https://codeiq.jp/magazine/2015/07/2542...
「固有ベクトルを基底に取ることができれば、

変換はとても簡単に表せる(特に固有ベクトルで基底が取れれ
ば、行列は変倍変換の形になる)」と佐野氏

!
!
!
!
!
!
!
!
!
!
!
!
!
!
画像の回転・射影
引用:https://...
画像の回転・射影
引用:https://codeiq.jp/magazine/2015/07/25421/
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Ax = λx
線形変換を

表す行列 座標軸
λxから

Aを求める
画像処理(線形変換)

!
!
!
!
!
ネットワーク構造を持つデータの

クラスタリング

!
…など
どんな課題が解けるのか
データの次元圧縮
!
データの持つ情報を落とさずに、
データの次元を落とすために、分
散が最大になる軸を探したい

!
分散共分散行列Σを考える

!
!
!
!
!
!
!
	 	 :確率変数iの分散

!
	 	 :確率変数i, jの共分散

データの次元圧...
!
!
Σの固有ベクトル Xi に対応する固
有値 λi は式変形によって各ベクト
ルに対応する分散とみなせ、この
分散が大きくなる固有ベクトルを
用いて次元の圧縮ができる

!
主成分分析などで用いられる

!
!
!
!
!
!
!
データ...
線形変換(回転・射影)
https://codeiq.jp/magazine/2015/07/25421/
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Ax = λx
分散共分散
行列
適切な

座標軸
Aから

λ最大のxを
...
画像処理(線形変換)

!
!
データの次元圧縮

!
!
!
!
…など
どんな課題が解けるのか
ネットワーク構造を持つデータの

クラスタリング
ネットワークのクラスタリング
A
B
C
D
?
世の中は様々なつながりで満ちている
ネットワークのクラスタリング
A
B
C
D
?
そのネットワークのクラスタを知りたい

と思う状況はしばしば起こる
!
ネットワークを表す行列1

(隣接行列A)
A
B
C
D
ネットワークを構成するメンバーを1からnまで順に番号付
け、n次正方行列を次の様に定める。 は、iとjのつながり
の重みとする。

		 	 	 	 

		 	 	 	 	 	 i-...
ネットワークを表す行列1

(重み付き隣接行列のバリエーション)
A
B
C
D
1
50
50
100 A
B
C
D
0 100 0 0
1 0 0 0
0 0 0 50
0 0 50 0
⎛
⎝
⎜
⎜
⎜
⎜
⎞
⎠
⎟
⎟
⎟
⎟
A...
ネットワークを表す行列2

(次数行列D)
A
B
C
D
各メンバー i の重み付き次数  を次のように定め
る	 	 	 	 

!
!
!
!
	 

Di = wij
j=1
n
∑
Di
A
B
C
D
1 0 0 0
0 1 0 0...
グラフのラプラシアン

(エッジの重みが1の場合)
ラプラシアン行列Lを、

次数行列D-隣接行列Aと定義する
A
C
D
B
1 0 0 −1
0 1 −1 0
0 −1 1 0
−1 0 0 1
⎛
⎝
⎜
⎜
⎜
⎜
⎞
⎠
⎟
⎟
⎟
...
グラフのラプラシアン

(エッジの重みが1の場合)
対角成分は、つながっている辺の数

リンクがある場合:−1

それ以外:0

今回は簡単のためエッジの重みが均等でない場合を考えています。
A
C
D
B
1 0 0 −1
0 1 −1 0
...
スペクトラルクラスタリング
先程の行列の固有値・固有ベクトルを求
めると、λ=0となる場合がある

!
!
!
!
!
!
!
1 0 0 −1
0 1 −1 0
0 −1 1 0
−1 0 0 1
⎛
⎝
⎜
⎜
⎜
⎜
⎞
⎠
⎟
⎟
⎟
...
スペクトラルクラスタリング
!
!
!
!
!
!
!
!
を解くと、

!
固有ベクトルとして 

t(1,0,0,1), s(0,1,1,0)が取れる

x1 − x4 = 0
x2 − x3 = 0
−x2 + x3 = 0
−x1 + ...
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Ax = λx
グラフの

ラプラシアン
各グループ
を構成する
要素
Aから

メンバーの

部分集合を表すxを
求める
スペクトラルクラスタリング
固有値問題を解くことでグラフの分...
本日の発表の構成
行列の知識を得る どんな課題が

解けるのか知る
どのように解くかを知る
実装上の問題点を知る
実装上の課題
理論上、固有値は以下の特性方程式を解くことで
求められる

!
det(X) はXの行列式のこと

対角成分にλがn回出てくるので、この特性方程
式はn次方程式となる。

五次以上の代数方程式は代数的な一般解が存在し
ない

プロ...
まとめ
!
行列の固有値・固有ベクトルは行列の特徴を表す

!
行列として何を考えるかによって様々なデータ分
析に適用できる

線形変換

グラフのラプラシアン

!
固有値・固有ベクトルの計算は、精度や速度の観
点で課題があり各課題を解決する...
Upcoming SlideShare
Loading in …5
×

第2回プログラマのための数学LT会

1,135 views

Published on

Lightening talk about the application of eigenvalue and eigenvector for programmers.

Published in: Technology
  • Be the first to comment

第2回プログラマのための数学LT会

  1. 1. 第2回 ! プログラマのための数学LT会 20170719  ! 根上 春
  2. 2. 自己紹介 薬学から応用数学へ転向 ! グラフ理論と機械学習を用いた創薬手法について研究 ! ! ! プログラミングはほぼ独学なので、この機会にぜひいろ んな方とお知り合いになりたい! ! グラフマイニングの高速アルゴリズムに興味あり ! 親知らずは抜かずに砕いて取りました
  3. 3. 今日のおはなし 行列は、データ分析の様々な場面で用いられる ! その行列の持つ性質を知るために重要な、行列の 固有値、固有ベクトルについて解説する ! 定義は分かるけれども、どんな意味を持つのか? を3つのケースを例にざっくりと解説する !
  4. 4. まとめ ! 行列の固有値・固有ベクトルは行列の特徴を表す ! 行列として何を考えるかによって様々なデータ分 析に適用できる 線形変換 グラフのラプラシアン ! 固有値・固有ベクトルの計算は、精度や速度の観 点で課題があり各課題を解決するアルゴリズムが 作られている 

  5. 5. 数学を応用するプロセス 数学の知見を得る 現実の課題を
 把握する 変数を・定数に具体的な対象を代入 アルゴリズムを実装する ※個人の感想です
  6. 6. 本日の発表の構成 行列の知識を得る どんな課題が
 解けるのか知る どのように解くかを知る 実装上の問題点を知る
  7. 7. 行列とは 行列とは、要素を長方形にならべてまとめたもの (横にn個、縦にm個。n, mは正整数。今日はn×n のn次正方行列のみ扱う。) ! 行列のi行j列にある要素のことを(i,j)-成分という ! 足し算と掛け算の計算のルールが定められている a11 ! a1m ! aij ! an1 ! anm ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ 横向きに上から→ 1行 2行 ↓縦向きに左から 1列2列…
  8. 8. 行列に定められる足し算 行列同士の足し算は、同じ位置にある数同士を足 して行う 縦横の数はそれぞれ一致している必要がある 引き算の場合も同様である a11 ! a1m ! ! an1 ! anm ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ + b11 ! b1m ! ! bn1 ! bnm ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ = a11 + b11 ! a1m + b1m ! ! an1 + bn1 ! anm + bnm ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟
  9. 9. c11 ! c1l ! ! cn1 ! cnl ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ = a11 ! a1m ! ! an1 ! anm ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ × b11 ! b1l ! ! bm1 ! bml ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ 行列に定められる掛け算 行列同士のかけ算は、答えの行列の(i,j)-成分が次 の式を満たすように行う ! cij = aik ⋅bkj k=1 m ∑
  10. 10. ! n次正方行列Aの固有値λとその固有ベクトルxは 次のように定まる ※λは複素数、X≠0 ! ! ! ! ! ! ! ! ! ! ! 固有値とは、重複を許してn個ある ! ! ! ! a11 ! a1n ! ! an1 ! ann ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ x1 ! xn ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ = λ x1 ! xn ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ 行列の固有値・固有ベクトル A⋅x = λ ⋅x
  11. 11. ! 固有値は、特性方程式 ! ! ! ! ! を解くことで求められる(必要十分) 個々のλの値ごとにベクトルXを求める
 I はn次の単位行列、det(B)は行列Bの行列式を表す ! ! ! ! ! ! 行列の固有値・固有ベクトル det(A − λI) = 0 (λ1,x1),!,(λn,xn )
  12. 12. ! ! ! ! ! ! ! !  の固有値と固有ベクトルを求める ! ! ! A = 8 1 4 5 ⎛ ⎝⎜ ⎞ ⎠⎟ 例)2次元のとき
  13. 13. ! ! ! ! ! ! より、 ! ! ! ! ! ! Ax − λx = 8 1 4 5 ⎛ ⎝⎜ ⎞ ⎠⎟ x1 x2 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ − λ x1 x2 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = 0 0 ⎛ ⎝⎜ ⎞ ⎠⎟ x1 x2 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ ≠ 0 0 ⎛ ⎝⎜ ⎞ ⎠⎟ 2次元のとき 8 1 4 5 ⎛ ⎝⎜ ⎞ ⎠⎟ − λ 1 0 0 1 ⎛ ⎝⎜ ⎞ ⎠⎟ ⎧ ⎨ ⎪ ⎩⎪ ⎫ ⎬ ⎪ ⎭⎪ x1 x2 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = 0 0 ⎛ ⎝⎜ ⎞ ⎠⎟
  14. 14. ! ! ! ! ! ! ! より、 ! ! ! ! を解く。 ! 2次元のとき 8 1 4 5 ⎛ ⎝⎜ ⎞ ⎠⎟ − λ 1 0 0 1 ⎛ ⎝⎜ ⎞ ⎠⎟ ⎧ ⎨ ⎪ ⎩⎪ ⎫ ⎬ ⎪ ⎭⎪ x1 x2 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = 0 0 ⎛ ⎝⎜ ⎞ ⎠⎟ det 8 1 4 5 ⎛ ⎝⎜ ⎞ ⎠⎟ − λ 1 0 0 1 ⎛ ⎝⎜ ⎞ ⎠⎟ ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = 0
  15. 15. ! ! ! ! ! ! ! ! ! ! ! ! 2次元のとき det 8 1 4 5 ⎛ ⎝⎜ ⎞ ⎠⎟ − λ 1 0 0 1 ⎛ ⎝⎜ ⎞ ⎠⎟ ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = det 8 − λ 1 4 5 − λ ⎛ ⎝⎜ ⎞ ⎠⎟ ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = (8 − λ)(5 − λ)−1× 4 = (λ − 4)(λ − 9) = 0 λ = 4,9
  16. 16. のとき ! ! ! ! ! を解くと、 ! ! ! ! ! (tは任意の定数。t≠0)λ=9のときは省略 2次元のとき λ = 4 8 − 4 1 4 5 − 4 ⎛ ⎝⎜ ⎞ ⎠⎟ x1 x2 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = 0 0 ⎛ ⎝⎜ ⎞ ⎠⎟ 4x1 + x2 = 0 t −1 4 ⎛ ⎝⎜ ⎞ ⎠⎟
  17. 17. 様々な行列を考えると、その固有値・固有ベクト ルは様々な性質を持つ ! 解きたい課題に応じて、何を行列とするのか、固 有値・固有ベクトルは何を意味するのか、を考え ることが重要 ! というお話をします これだけではよくわからないので…
  18. 18. 本日の発表の構成 行列の知識を得る どんな課題が
 解けるのか知る どのように解くかを知る 実装上の問題点を知る
  19. 19. 画像処理(線形変換) ! ! データの次元圧縮 ! ! ネットワーク構造を持つデータの
 クラスタリング ! …など どんな課題が解けるのか
  20. 20. ! ! ! データの次元圧縮 ! ! ネットワーク構造を持つデータの
 クラスタリング ! …など 画像処理(線形変換) どんな課題が解けるのか
  21. 21. ! ! ! ! ! ! ! ! ! ! ! ! ! ! 線形変換を表す行列を利用して、画像の回転や射影 を行うことができる 画像の回転・射影 https://codeiq.jp/magazine/2015/07/25421/ 詳しくはプログラマのための数学勉強会2
 佐野さんの講演資料をご参照ください。
  22. 22. 固有値・固有ベクトルとは、線形変換によって向き が変わらないベクトル(大きさは固有値倍になる。) ! ! ! ! ! ! ! ! ! ! ! 画像の回転・射影 引用:https://codeiq.jp/magazine/2015/07/25421/
  23. 23. 「固有ベクトルを基底に取ることができれば、
 変換はとても簡単に表せる(特に固有ベクトルで基底が取れれ ば、行列は変倍変換の形になる)」と佐野氏 ! ! ! ! ! ! ! ! ! ! ! ! ! ! 画像の回転・射影 引用:https://codeiq.jp/magazine/2015/07/25421/
  24. 24. 画像の回転・射影 引用:https://codeiq.jp/magazine/2015/07/25421/ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! Ax = λx 線形変換を
 表す行列 座標軸 λxから
 Aを求める
  25. 25. 画像処理(線形変換) ! ! ! ! ! ネットワーク構造を持つデータの
 クラスタリング ! …など どんな課題が解けるのか データの次元圧縮
  26. 26. ! データの持つ情報を落とさずに、 データの次元を落とすために、分 散が最大になる軸を探したい ! 分散共分散行列Σを考える ! ! ! ! ! ! ! :確率変数iの分散 ! :確率変数i, jの共分散 データの次元圧縮 = σ1 2 ! σ1n ! " ! σ1n ! σn 2 ⎛ ⎝ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ∑ σi 2 σ1n
  27. 27. ! ! Σの固有ベクトル Xi に対応する固 有値 λi は式変形によって各ベクト ルに対応する分散とみなせ、この 分散が大きくなる固有ベクトルを 用いて次元の圧縮ができる ! 主成分分析などで用いられる ! ! ! ! ! ! ! データの次元圧縮
  28. 28. 線形変換(回転・射影) https://codeiq.jp/magazine/2015/07/25421/ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! Ax = λx 分散共分散 行列 適切な
 座標軸 Aから λ最大のxを を求める
  29. 29. 画像処理(線形変換) ! ! データの次元圧縮 ! ! ! ! …など どんな課題が解けるのか ネットワーク構造を持つデータの
 クラスタリング
  30. 30. ネットワークのクラスタリング A B C D ? 世の中は様々なつながりで満ちている
  31. 31. ネットワークのクラスタリング A B C D ? そのネットワークのクラスタを知りたい
 と思う状況はしばしば起こる !
  32. 32. ネットワークを表す行列1
 (隣接行列A) A B C D ネットワークを構成するメンバーを1からnまで順に番号付 け、n次正方行列を次の様に定める。 は、iとjのつながり の重みとする。 i-jの間につながりがあるとき i-jの間につながりがないとき ! aij = wij 0 ⎧ ⎨ ⎪ ⎩⎪ wij A B C D 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ A B C D
  33. 33. ネットワークを表す行列1
 (重み付き隣接行列のバリエーション) A B C D 1 50 50 100 A B C D 0 100 0 0 1 0 0 0 0 0 0 50 0 0 50 0 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ A B C D 1 2 3 4 5 6 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ 1 2 3 4 5 6
  34. 34. ネットワークを表す行列2
 (次数行列D) A B C D 各メンバー i の重み付き次数  を次のように定め る ! ! ! ! Di = wij j=1 n ∑ Di A B C D 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ A B C D
  35. 35. グラフのラプラシアン
 (エッジの重みが1の場合) ラプラシアン行列Lを、
 次数行列D-隣接行列Aと定義する A C D B 1 0 0 −1 0 1 −1 0 0 −1 1 0 −1 0 0 1 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ A B C D A B C D 次数 隣接
  36. 36. グラフのラプラシアン
 (エッジの重みが1の場合) 対角成分は、つながっている辺の数 リンクがある場合:−1 それ以外:0
 今回は簡単のためエッジの重みが均等でない場合を考えています。 A C D B 1 0 0 −1 0 1 −1 0 0 −1 1 0 −1 0 0 1 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ A B C D A B C D 詳しい解説はこちらなど:http://www.math.ucsd.edu/~fan/research/cb/ch1.pdf
  37. 37. スペクトラルクラスタリング 先程の行列の固有値・固有ベクトルを求 めると、λ=0となる場合がある ! ! ! ! ! ! ! 1 0 0 −1 0 1 −1 0 0 −1 1 0 −1 0 0 1 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ x1 x2 x3 x4 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ ⎟ = 0 × x1 x2 x3 x4 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ ⎟ = 0 0 0 0 ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ 詳しい解説はこちらなど:http://www.cs.cmu.edu/~aarti/Class/10701/readings/Luxburg06_TR.pdf
  38. 38. スペクトラルクラスタリング ! ! ! ! ! ! ! ! を解くと、 ! 固有ベクトルとして t(1,0,0,1), s(0,1,1,0)が取れる
 x1 − x4 = 0 x2 − x3 = 0 −x2 + x3 = 0 −x1 + x4 = 0 ⎧ ⎨ ⎪ ⎪ ⎩ ⎪ ⎪ x1 − x4 = 0,x2 − x3 = 0 詳しい解説はこちらなど:http://www.cs.cmu.edu/~aarti/Class/10701/readings/Luxburg06_TR.pdf
  39. 39. ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! Ax = λx グラフの
 ラプラシアン 各グループ を構成する 要素 Aから
 メンバーの
 部分集合を表すxを 求める スペクトラルクラスタリング 固有値問題を解くことでグラフの分割、 即ちデータのクラスタリングができる※ ! 固有値0に対応する固有ベクトルが連結 部分グラフの頂点集合(各クラスタを形 成するメンバーの集合)を示している。 ! ! 最近では、ラプラシアン行列を使わず deep learningと合わせたアルゴリズム も開発されている ! ! Deep Spectral Clustering Learning MT Law (2017) ICML ! Similarity matrixの固有値計算から ! http://www.cs.toronto.edu/~law/publications/ ICML/2017/final_version.pdf ※厳密に分割できることは応用上少ないので、様々な工夫がなされている
 (次元圧縮してKmeans)
  40. 40. 本日の発表の構成 行列の知識を得る どんな課題が
 解けるのか知る どのように解くかを知る 実装上の問題点を知る
  41. 41. 実装上の課題 理論上、固有値は以下の特性方程式を解くことで 求められる ! det(X) はXの行列式のこと 対角成分にλがn回出てくるので、この特性方程 式はn次方程式となる。 五次以上の代数方程式は代数的な一般解が存在し ない プログラマのための数学勉強会3 辻さん https://codeiq.jp/magazine/2015/07/25424/ 行列の性質に合わせた高速アルゴリズムが開発さ れている べき乗法・Arnoldi法 det(A − λI) = 0
  42. 42. まとめ ! 行列の固有値・固有ベクトルは行列の特徴を表す ! 行列として何を考えるかによって様々なデータ分 析に適用できる 線形変換 グラフのラプラシアン ! 固有値・固有ベクトルの計算は、精度や速度の観 点で課題があり各課題を解決するアルゴリズムが 作られている 


×