Weight Kernel k-Means
データのベクトル a j 番目のクラスタ πj
特徴空間への写像 φ(a) πj の重心 mi =
x∈πj
w(x)φ(x)
x∈πj
w(x)
データ a の重み w(a)
データ a とクラスタ πj の重心 mi との距離
(φ(a) − mi)
2
= φ(a) · φ(a) − 2
x∈πj
w(x)φ(a) · φ(x)
x∈πj
w(x)
+
x,y∈πj
w(x)w(y)φ(x) · φ(y)
x∈πj
w(x)
2
内積 φ(x) · φ(y) はカーネル関数 K(x, y) に置き換えられる(=カーネルトリック)
重心も重心との距離もカーネル関数のみで計算できるので、k-Means はできる
元々の Spectral clustering
”On Spectral Clustering: Analysis and an algorithm”, A. Ng, M. Jordan, Y. Weiss, NIPS 2001
1. n × n の類似度行列 A がある
• Ai,j (i ̸= j) はデータ i とデータ j の類似度
• Ai,i = 0
2. Di,i が A の i 行の合計であるような対角行列 D を考える
3. L = D−1/2
AD−1/2
を計算する
4. L の固有値・固有ベクトルのうち、固有値が大きい k 個のベクトルから n × k 行列の X を作る
5. Yi,j = Xi,j/ j X
1/2
i,j
2
と、X を正規化した n × k 行列 Y を作る
6. Y を使って k-Means する










”Multiclass Spectral Clustering”, S. Yu, J. Shi, IEEE Computer Vision 2003
V 頂点(データ)の集合
W 類似度行列(非負&対称行列)
Γk
V {V1, · · · , Vk}:データの k 個クラスタリング
V = ∪k
i=1Vi Vi ∩ Vj = ∅ (i ̸= j)
links(A, B) = i∈A,j∈B W(i, j) A から B への類似度和
degree(A) = links(A, V) A の類似度和(度数)
linkratio(A, B) = links(A,B)
degree(A) 正規化した links
knassoc(Γk
V ) = 1
k
k
i=1 linkratio(Vi, Vi) アソシエーション
kncuts(Γk
V ) = 1
k
k
i=1 linkratio(Vi, VVi) カット
knassoc(Γk
V ) + kncuts(Γk
V ) = 1 kncats の最小化 ⇒ knassoc の最大化
Xl = (X(1, l), · · · , X(n, l)) X(i, l) は、データ i がクラスタ l に含まれてたら 1、含まれてなかったら 0
X = [X1, · · · , Xk] n × k 分割行列
1d 全部の値が 1 である d 次元ベクトル
Diag(a) ベクトル a から対角行列を作る関数
D = Diag(W1n) 度数行列(対角成分は、各データへの類似度の和)
links(Vl, Vl) = XT
l WXl links を行列の計算に変換
degree(Vl) = XT
l DXl degree を行列の計算に変換
ってことは、この問題は以下になる(PNCX)。
maximize ε(X) =
1
k
k
l=1
XT
l WXl
XT
l DXl
subject to X ∈ {0, 1}
n×k
X1k = 1n
今、Z = f(X) = X(XT
DX)−1/2
という行列を考える。
この行列は以下の特徴を持つ。(D が対角行列なので)
ZT
DZ = (XT
DX)−1/2
XT
DX(XT
DX)−1/2
= Ik
すると、PNCX は以下の PNCZ に変形できる。
maximize ε(Z) =
1
k
tr(ZT
WZ)
subject to ZT
DZ = Ik
このトレースへの変換が非常に重要だと思うのだが、こ
れが載っていると思われる論文(P. Chan, D. Schlag, Y.
Zien. ”Spectral k-way ratio-cut partitioning and cluster-
ing”. IEEE Computer-aided Design of Integrated Circuits
and Systems, 1994)が有料で読めない。
グラフ理論の教科書とかには書いてあるのかなぁ。
P = D−1
W となる正規化重み行列 P を考える。P は正規
化された実対称行列(確率行列)なので、すべて正の実数で
ある固有値を持ち、その最大値は 1 である。
対角成分に P の固有値を置いた行列を S、固有ベクトルを並
べた行列を V とする。固有値固有ベクトルの定義 PV = V S
から、式を変形していくと、以下が得られる。( ¯V = D1/2
V )
D−1/2
WD−1/2
= ¯V S ¯V −T ¯V T ¯V = In
PNCX に V を代入した場合が、最も ε(V ) が大きくなるの
は明らか。ってことは、P の固有値の大きい順に k 個足した
ものが PNCX の最大値である。
となると、以下の手順で最適な分割 ˜X∗
が求められる。
Z∗
= [V1, · · · , Vk]
X = f−1
(Z) = Diag(diag−1/2
(ZZT
))Z
˜X∗
= f−1
(Z∗
)R
1. P = D−1
W を固有値分解して、固有値が大きい top k
個のベクトルで Z∗
(n × k 行列)を作る
2. X から Z を作った変換の逆変換 f−1
を考える(diag
は対角成分だけ強引に足し合わせる関数)
3. RT
R = Ik となる任意の行列 R をとって、Z∗
に f−1
かます
















ユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリング

ユークリッド距離以外の距離で教師無しクラスタリング

  • 1.
  • 2.
  • 3.
  • 7.
  • 8.
  • 9.
  • 14.
  • 17.
    Weight Kernel k-Means データのベクトルa j 番目のクラスタ πj 特徴空間への写像 φ(a) πj の重心 mi = x∈πj w(x)φ(x) x∈πj w(x) データ a の重み w(a) データ a とクラスタ πj の重心 mi との距離 (φ(a) − mi) 2 = φ(a) · φ(a) − 2 x∈πj w(x)φ(a) · φ(x) x∈πj w(x) + x,y∈πj w(x)w(y)φ(x) · φ(y) x∈πj w(x) 2 内積 φ(x) · φ(y) はカーネル関数 K(x, y) に置き換えられる(=カーネルトリック) 重心も重心との距離もカーネル関数のみで計算できるので、k-Means はできる
  • 19.
    元々の Spectral clustering ”OnSpectral Clustering: Analysis and an algorithm”, A. Ng, M. Jordan, Y. Weiss, NIPS 2001 1. n × n の類似度行列 A がある • Ai,j (i ̸= j) はデータ i とデータ j の類似度 • Ai,i = 0 2. Di,i が A の i 行の合計であるような対角行列 D を考える 3. L = D−1/2 AD−1/2 を計算する 4. L の固有値・固有ベクトルのうち、固有値が大きい k 個のベクトルから n × k 行列の X を作る 5. Yi,j = Xi,j/ j X 1/2 i,j 2 と、X を正規化した n × k 行列 Y を作る 6. Y を使って k-Means する
  • 21.
  • 22.
  • 25.
    ”Multiclass Spectral Clustering”,S. Yu, J. Shi, IEEE Computer Vision 2003 V 頂点(データ)の集合 W 類似度行列(非負&対称行列) Γk V {V1, · · · , Vk}:データの k 個クラスタリング V = ∪k i=1Vi Vi ∩ Vj = ∅ (i ̸= j) links(A, B) = i∈A,j∈B W(i, j) A から B への類似度和 degree(A) = links(A, V) A の類似度和(度数) linkratio(A, B) = links(A,B) degree(A) 正規化した links knassoc(Γk V ) = 1 k k i=1 linkratio(Vi, Vi) アソシエーション kncuts(Γk V ) = 1 k k i=1 linkratio(Vi, VVi) カット knassoc(Γk V ) + kncuts(Γk V ) = 1 kncats の最小化 ⇒ knassoc の最大化 Xl = (X(1, l), · · · , X(n, l)) X(i, l) は、データ i がクラスタ l に含まれてたら 1、含まれてなかったら 0 X = [X1, · · · , Xk] n × k 分割行列 1d 全部の値が 1 である d 次元ベクトル Diag(a) ベクトル a から対角行列を作る関数 D = Diag(W1n) 度数行列(対角成分は、各データへの類似度の和) links(Vl, Vl) = XT l WXl links を行列の計算に変換 degree(Vl) = XT l DXl degree を行列の計算に変換
  • 26.
    ってことは、この問題は以下になる(PNCX)。 maximize ε(X) = 1 k k l=1 XT lWXl XT l DXl subject to X ∈ {0, 1} n×k X1k = 1n 今、Z = f(X) = X(XT DX)−1/2 という行列を考える。 この行列は以下の特徴を持つ。(D が対角行列なので) ZT DZ = (XT DX)−1/2 XT DX(XT DX)−1/2 = Ik すると、PNCX は以下の PNCZ に変形できる。 maximize ε(Z) = 1 k tr(ZT WZ) subject to ZT DZ = Ik このトレースへの変換が非常に重要だと思うのだが、こ れが載っていると思われる論文(P. Chan, D. Schlag, Y. Zien. ”Spectral k-way ratio-cut partitioning and cluster- ing”. IEEE Computer-aided Design of Integrated Circuits and Systems, 1994)が有料で読めない。 グラフ理論の教科書とかには書いてあるのかなぁ。 P = D−1 W となる正規化重み行列 P を考える。P は正規 化された実対称行列(確率行列)なので、すべて正の実数で ある固有値を持ち、その最大値は 1 である。 対角成分に P の固有値を置いた行列を S、固有ベクトルを並 べた行列を V とする。固有値固有ベクトルの定義 PV = V S から、式を変形していくと、以下が得られる。( ¯V = D1/2 V ) D−1/2 WD−1/2 = ¯V S ¯V −T ¯V T ¯V = In PNCX に V を代入した場合が、最も ε(V ) が大きくなるの は明らか。ってことは、P の固有値の大きい順に k 個足した ものが PNCX の最大値である。 となると、以下の手順で最適な分割 ˜X∗ が求められる。 Z∗ = [V1, · · · , Vk] X = f−1 (Z) = Diag(diag−1/2 (ZZT ))Z ˜X∗ = f−1 (Z∗ )R 1. P = D−1 W を固有値分解して、固有値が大きい top k 個のベクトルで Z∗ (n × k 行列)を作る 2. X から Z を作った変換の逆変換 f−1 を考える(diag は対角成分だけ強引に足し合わせる関数) 3. RT R = Ik となる任意の行列 R をとって、Z∗ に f−1 かます
  • 27.
  • 28.
  • 29.