1

Я читаю о продукте квантовании из раздела II.A страницы 3 из PQ for NNS, который говорит:k * значения воспроизведения?

..all subquantizers имеют одинаковое конечное число к * значений воспроизводства. В этом случае число центроидов равно (k *)^m

где m - количество подвекторов.

Однако, я не получаю k * вообще! Я имею в виду, что в векторном квантовании мы привязываем каждый вектор к центроидам. В квантовании продукции мы назначаем каждый подвектор k центроидам. Как k * вступил в игру?

ответ

1

Я думаю, k* - это число центроидов в каждом подпространстве, а k - это количество центроидов во всем пространстве.

Например, если данные 2d, как (x, y), и мы рассматриваем каждое измерение как подпространство, и делать kmeans с сказать k*=3 соответственно, мы получим 3 центроиды в каждом подпространстве, {x1, x2, x3} и {y1, y2, y3}.

Тогда будет 3^2=9 возможно Центроиды во всем пространстве, которые *(x1, y1), (x1, y2), (x1, y3), (x2, y1) ...

Таким образом, мы можем получить большое количество центроиды (2^64 в на бумаге), используя небольшой объем памяти, потому что нам не нужно хранить все k*^m centorids, нам нужно хранить только k* центроидов в каждом подпространстве.

Редактировать:
В выше примере числе подпространств m=2, количество центроиды в каждом подпространстве k*=3, количество центроиды всех подпространств k=3^2, число измерений каждого подпространства D*=1, количество плавающих точек для хранения mD*k*=Dk*=6 ,


* декартово произведение х и у

+0

Таким образом, мы должны хранить 'м * к *' Центроиды в каждом подпространстве, верно? Или вы опустили это, так как «m = 1» в вашем примере (разве это не значение 'm' в вашем примере)? Спасибо за ответ. :) – gsamaras

+0

@gsamaras Я думаю, что это 'k *' для каждого подпространства, 'mk *' в общей сложности, как указано в нижней части страницы 3. Вместо этого мы сохраняем центрифуги m × k * всех субквантизаторов. – dontloo

+0

О, пропустил это, да, конечно, все, согласен! Я также предполагаю, что да, 'm = 1' в вашем примере. – gsamaras