Download - k*-Nearest Neighbors (NIPS & ICDM輪読会発表資料)
k*-Nearest Neighbors:From Global to Local
Anava, O. and Levy, K. (NIPS 2016)
17/02/11@NIPS & ICDM 2016論⽂輪読会
(株)リクルートコミュニケーションズ中⾕宙央
1
概要
2
1. 導⼊:k-NNとk*-NN
2. 問題定義と最適化問題
3. アルゴリズム
4. 数値実験
k最近傍法(k-NN)
3
f̂ (x0) =1
k
!
i∈Nk(x0)
yix0
学習データ
1.
2.
D = {(x1, y1), ..., (xn, yn)}学習データ
k
推定
(xi ∈ Rp, yi ∈ R)
近傍点の数
k-NNの疑問点
4
常に同じ を使ってよいか?k
平均値を推定値としてよいか?
分布が偏った学習データの例
提案⼿法: k*-NN
5
各⼊⼒ に対してx
データ点の重み
近接点の数を求めて推定
α1, ...,αn
k
ü 緩い仮定から最適化問題を導く
ü 計算量 のアルゴリズム
ü 代表的なメモリベース⼿法より⾼い精度
O(n log n)
6
1. 導⼊:k-NNとk*-NN
2. 問題定義と最適化問題
3. アルゴリズム
4. 数値実験
モデルの仮定(1)
7
yi = f (xi) + ϵi
1. はLipschitz連続f
|f (x)− f (x′)| ≤ Ld(x, x′)
※ は距離関数d(·, ·)
2. は独⽴なノイズϵi
E[ϵi | xi] = 0, |ϵi| ≤ b
⼀般的な回帰モデルを仮定:
モデルの仮定(2)
8
f̂ (x0) =1
k
!
i∈Nk(x0)
yi f̂ (x0) =n!
i=1
αiyi
k-NN
⎛
⎝
n∑
i=1
αi = 1, αi ≥ 0
⎞
⎠
解きたい問題 minα
!
!
!
!
!
!
n"
i=1
αiyi − f (x0)
!
!
!
!
!
!
⼀般化
は未知なので,⽬的関数を不等式で評価f
k*-NN
損失の評価
9
!
!
!
!
!
!
n"
i=1
αiyi − f (x0)
!
!
!
!
!
!
=
!
!
!
!
!
!
n"
i=1
αiϵi +n"
i=1
αi(f (xi)− f (x0))
!
!
!
!
!
!
≤
!
!
!
!
!
!
n"
i=1
αiϵi
!
!
!
!
!
!
+ L
n"
i=1
αid(xi, x0)
ノイズ項 推定値の偏り※ はLipschitz定数Lさらに不等式で評価
Hoeffdingの不等式による評価
10
Hoeffdingの不等式
X1, ..., Xn (Xi ∈ [ai, bi]) Sn =
n!
i=1
Xi
P (|Sn − E [Sn]| ≥ t) ≤ 2 exp
!
−2t2
"n
i=1(bi − ai)2
#
E[ϵi | xi] = 0
|ϵi| ≤ b
1− δ
独⽴な確率変数
モデルの仮定 と上の不等式より,
以上の確率で
!
!
!
!
!
n"
i=1
αiϵi
!
!
!
!
!
≤ b
#
2 log
$
2
δ
%
∥α∥2
Cとおく
=⇒
最適化問題
11
βi =L
Cd(xi, x0)
d(x1, x0) ≤ · · · ≤ d(xn, x0)
d(·, ·)※ は距離関数
minα
∥α∥2 +αTβ s.t.
n!
i=1
αi = 0, αi ≥ 0
以上まとめると, 以上の確率で!
!
!
!
!
n"
i=1
αiyi − f (x0)
!
!
!
!
!
≤ C ∥α∥2+L
n"
i=1
αid(xi, x0).
1− δ
次の凸最適化問題を解く
データのインデックスを取り直し,新たな変数を導⼊
12
1. 導⼊:k-NNとk*-NN
2. 問題定義と最適化問題
3. アルゴリズム
4. 数値実験
解き⽅
13
L = ∥a∥2+αTβ+λ
!
1−n"
i=1
αi
#
−n"
i=1
θiαi
∂L
∂αi
= 0
θiαi = 0
1. ラグランジアンを求める
2. 最適解は以下の条件を満たす
(相補性条件)
※ は新たな変数λ, θi⽬的関数
連⽴して解く
重み を求める
14
λ0
α∗i
!
∝ λ− βi if λ > βi
= 0 if λ ≤ βiα∗
i
α∗
i
n!
i=1
α∗
i = 1
βi距離 に⽐例して減少d(xi, x0)
※制約条件 に注意
ただし, は を満たす最⼤の
を求める
15
λ∗
1 =n!
i=1
(α∗i )2
∥α∗∥22=
!
α∗i >0
(λ− βi)2
λ∗=
1
k∗
⎛
⎜
⎝
k∗∑
i=1
βi +
√
√
√
√k∗ +
(
k∗∑
i=1
βi
)2
− k∗k∗∑
i=1
β2i
⎞
⎟
⎠
k∗
α∗
i > 0 i
の解より,次の2次⽅程式が求まるα∗
i
この⽅程式を解き考察すると,解が求まる
推定に使う近傍点の数
学習データ , 推定したい点
アルゴリズム
16
⼊⼒:
出⼒:
を求めるβ1 ≤ β2 ≤ ... ≤ βn
While λk > βk+1 ∧ k < n
k ← k + 1
λk ←1
k
⎛
⎜
⎝
k∑
i=1
βi +
√
√
√
√k +
(
k∑
i=1
βi
)2
− k
k∑
i=1
β2i
⎞
⎟
⎠
λ0 = β1 + 1, k = 0
f̂ (x0) =n!
i=1
αiyi αi
!
∝ λk − βi if i ≤ k
= 0 if i > k
D x0
1.
2.
17
1. 導⼊:k-NNとk*-NN
2. 問題定義と最適化問題
3. アルゴリズム
4. 数値実験
パラメータ による違い
18
L/C
L
C= 5
k*-NNによって推定した曲線の⽐較→⼩で滑らかに
L
C= 0.5
L/C
実データによる⽐較
19
k−NN Nadaraya-Watson
k*-NN
データセット1コンクリート軟度
3.4944 2.9154 2.8057
データセット2ヨットの抵抗
6.4643 5.2577 5.0418
※論⽂より抜粋
平均絶対誤差の⽐較
• NW推定量は (KはRBFカーネル)
• パラメータはCVで選ぶ• 8個のデータセットのうち,7個でk*-NNが誤差最⼩
f̂ (x0) =!
ni=1K(xi,x0)yi!ni=1K(xi,x0)
まとめ
20
k*-NNでは,
緩い仮定から損失の上界を求め,最適化問題に帰着
各⼊⼒に対し,適切なデータの重みを求めて推定