8. 標本サンプル数 :
4.1.1 k近傍法: ラベルなしデータ
M
1
M
1
M
1
Data Set : D = {x(1)
, x(2)
, · · · , x(N)
}
↑このデータは「異常標本を含まない」or
「異常標本があっても圧倒的少数」
であるとする。
新たに取得したデータ: x0
N
特徴量数 : M
← 判定対象
45. 今日のハイライト:確かめてみる
(n)
1 (A) ⌘
X
i2N (n)
d2
A(x(n)
, x(i)
)
M
1
1
M
M
M
行列Aで微分すると
=
X
i2N (n)
(x(n)
x(i)
)T
A(x(n)
x(i)
)
=
X
i2N (n)
x(n i)T
Ax(n i)
k近傍のデータk近傍のデータ
=
X
i2N (n)
MX
k=1
MX
l=1
aklx
(n i)
k x
(n i)
l
対称!
@
(n)
1 (A)
@akl
=
X
i2N (n)
x
(n i)
k x
(n i)
l =
X
i2N (n)
(x
(n)
k x
(i)
k )(x
(n)
l x
(i)
l )
46. X
i2N (n)
(x
(i)
k x
(n)
k )(x
(i)
l x
(n)
l )
なんとなく、共分散っぽいものに
見えてくる!
中心 中心
k近傍のデータ k近傍のデータ
今日のハイライト:確かめてみる
47. 今日のハイライト:確かめてみる
(A) ⌘
1
N
NX
n=1
h
(n)
1 (A) +
(n)
2 (A)
i
=
1
N
NX
n=1
(n)
1 (A) +
1
N
NX
n=1
(n)
2 (A)
目的の最小化関数を定義し直す
この時、最初の項の行列の微分を考えるとこのようになる
= 1(A) + 2(A)
@ 1(A)
@akl
=
1
N
NX
n=1
X
i2N (n)
(x
(i)
k x
(n)
k )(x
(i)
l x
(n)
l )
48. C(i,j)
⌘ (ei ej)(ei ej)T
@ 1(A)
@akl
=
1
N
NX
n=1
X
i2N (n)
(x
(i)
k x
(n)
k )(x
(i)
l x
(n)
l )
@ (A)
@A
=
1
N
XCXT
今日のハイライト:確かめてみる
49. (n)
2 (A) ⌘
X
j2N (n)
NX
l=1
I[y(l)
6= y(n)
]
h
1 + d2
A(x(n)
, x(j)
) d2
A(x(n)
, x(l)
)
i
+
行列Aで微分すると
@
(n)
2 (A)
@apq
=
X
j2N (n)
NX
l=1
I[y(l)
6= y(n)
]
d2
A(x(n)
, x(j)
)
@apq
@d2
A(x(n)
, x(l)
)
@apq +
=
X
j2N(n)
NX
l=1
I[y(l)
6= y(n)
]
h
(x(n)
p x(j)
p )(x(n)
q x(j)
q ) (x(n)
p x(l)
p )(x(n)
q x(l)
q )
i
+
同一ラベルのk近傍が対象 異ラベルの全てが対象
同 異 同 同 異 異 同 異
k
n
k
k
l系
j系
今日のハイライト:確かめてみる
50. Aの固有値分解
A U[ ]+UT
式(4.12), (4.13)により行列Aが更新されたら
は負の固有値を0で置き換える
ことを意味している
[ ]+
主成分分析で次元削減をしているのと
似たようなイメージ
A = U UT
のように固有値分解を行い、下記でAを更新する
52. アルゴリズム
A A ⌘
@ (A)
@A
… 最小化の更新式(A)
【反復】
A U[ ]+UT
A = U UT … 固有値計算
… 負の固有値除外
下記を実行して都度収束判定を行い、収束するまで
繰り返し実行する。収束したらその時の行列 を出力する。
ステップ幅ηは毎回値を更新する
A⇤