7. アルゴリズム - Notations
#cluster:
#sample:
feature vectors (N D-dimensional vectors):
cluster centers:
assignment function:
#codeword:
#subvector:
PQ coded feature vector:
histogram:
K
N
X = {x ∈
n R }
D
n=1
N
{μ ∈
k R }
D
k=1
K
a(n)
L
M
x
ˉ
h
8. アルゴリズム - 背景
直積量子化(Product quantization for encoding)
入力ベクトルをショートコードにエンコードする(詳細は参考文献18参照)
次元の入力ベクトル を 個の離散サブベクトルに分割
各 次元のサブベクトルに対して事前に学習した 個のコードワードの
中から最も近いコードワードを決定しそのインデックス( を記
録
は 個の整数のタプルである としてエンコードされる(式(2))
x ↦ =
x
ˉ [ , … , ] ∈
x
ˉ1
x
ˉM T
{1, … , L} (2)
M
D x ∈ RD
M
D/M L
{1, 2, … , L}
x M ( )
x
ˉ
9. アルゴリズム - 背景
個目の のサブベクトルは に量子化される
エンコードはk-means使ってる
code
は bitで表現される
各コードを バイトで表現するために に設定される事が多い
1byte = 8bit
データの次元数やサンプルサイズによる制限あり
各 毎に距離を計算
各 は 次元にコードされているので距離行列は
ここで は部分空間 の 番目と 番目の コードワードの間の二乗距離
これで と の間の距離が簡単に求められる
つまり
m x x
ˉm
x
ˉ Mlog
L
2
M L = 256
m(∈ {1, … , M})
m L A ∈
m
RL×L
A
i,j
m
m i j L
x
1 x
2
d(x
, x
) ∼
1 2 d
(
,
)
SD x
ˉ1 x
ˉ2
10. アルゴリズム - 背景
まとめると式(3)
d
(
,
) =
SD x
ˉ1 x
ˉ2
2
d
(
,
) =
m=1
∑
M
SD
m
x
ˉ1
m
x
ˉ2
m 2
A
(3)
m=1
∑
M
,
x
ˉ1
m
x
ˉ2
m
m
二乗距離はルックアップテーブルを用いて結果の和をとることで効率的に計算す
ることができる
この計算コストは のみ
O(M)
11. アルゴリズム - PQK-MEANS CLUSTERING
定式化(これを最小化する)
E(
, … ,
) =
μ
ˉ1 μ
ˉK d
(
,
) (4)
N
1
n=1
∑
N
SD x
ˉn μ
ˉa(n)
ここで
=
x
ˉn [
, … ,
] ∈
x
ˉn
1
x
ˉn
M T
{1, … , L}M
=
μ
ˉk [
, … ,
] ∈
μ
ˉk
1
μ
ˉk
M T
{1, … , L}M
Assignment stepとUpdate stepを繰り返すのはバニラk-meansと同じ
12. アルゴリズム - PQK-MEANS CLUSTERING
Assignment step
a(n) = argmin
d (
,
) (5)
k∈{1,…,K} SD x
ˉn μ
ˉk
2
式(5)を計算するにはPQ linear scan[18]とPQTable[23]の2つの方法が存在する
PQ linear scanは各 に対して 個の中心 のうち最も近いものを式(3)を
用いて線形に取り出すだけ
計算コストは
PQTableはハッシュテーブルベースのルックアップテーブル作って引いてくる
クラスタ数( )が小さい場合PQTableのハッシュ化の計算コストはPQ linear scanの
場合よりも大きくなる
この論文ではPQ linear scanとPQTable両方の手法を数回評価し速い方を選択して
実験結果としてる(他の手法でもフェアに同じように評価)
x
ˉn K {
}
μ
ˉk k=1
K
O(KM)
K
14. アルゴリズム - PQK-MEANS CLUSTERING
Update step
ナイーブ法
定義
←
μ
ˉk
m
argmin d
(
, l) (6)
l∈{1,…,L}
n=1
∑
N
k
SD
m
x
ˉn
m 2
ここで ,
計算コストは
{
}
x
ˉn n=1
N
k
N ∼
k N/K
O(LN
)
k
15. アルゴリズム - PQK-MEANS CLUSTERING
Update step
スパース投票法
ヒストグラム( )を計算することで式(6)の計算を効率的
にやる
は 内でコード の出現頻度
ヒストグラムを計算するコストは
そして式(6)がこうなる
←
μ
ˉk
m
argmin
v
, where [v
, … , v
] =
l∈{1,…,L} l 1 L
⊤
A h (8)
m
式(8)の計算コストは
h = [h
, … , h
] ∈
1 L
⊤
NL
h
l {
}
x
ˉn
m
n=1
N
k
l
O(N
)
k
O(L )
2