Ml 13

26
Instance based learning И. Куралёнок, Н. Поваров Яндекс СПб, 2013 И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 1 из 26

description

 

Transcript of Ml 13

Page 1: Ml 13

Instance based learning

И. Куралёнок, Н. Поваров

Яндекс

СПб, 2013

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 1 из 26

Page 2: Ml 13

Содержание

1 Принцип локальности2 k-ближайших соседей

kNNМетоды прототипирования

3 Лирическое отступление: проклятье размерности4 Адаптивные соседи5 Поиск k-ближайших соседей

kd-treeLocality-Sensitive Hashing

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 2 из 26

Page 3: Ml 13

Принцип локальности(совсем не физика)Близкие точки похожи!

что значит близки?lq, косинусная мера, Mahalanobis distance,KL-divergence, более хитрые преобразования,Metric Learning etc.что значит похожи?близкие значения целевой функции, возможностипростой аппроксимации, схожее распределение,etc.что значит точки?точки из learn, центройды классов, прочиепрототипные точки.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 3 из 26

Page 4: Ml 13

Алгоритм k-NN

1 Вычислим значения факторов из интересующейнас точки.

2 Найдём k ближайших соседей по выбранной мереиз learn’а.

3 Аггрегируем значения искомой характеристикидля найденных точек (попробуем провестиотдельный семинар).

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 4 из 26

Page 5: Ml 13

Параметры k-NN

Сколько точек выбрать?ничего лучше подбора по validate или crossfoldvalidation не придумалиКак искать соседей?см. вторую частьСпособ агрегации.голосовалка, усреднение, моделированиераспределения

Далее речь пойдет про мульти-классификацию на Kклассов.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 5 из 26

Page 6: Ml 13

Сколько точек выбрать I

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 6 из 26

Page 7: Ml 13

Сколько точек выбрать II

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 7 из 26

Page 8: Ml 13

Свойства k-NN

Очень часто работает!Простота реализации и наглядность.Ничего не требует на стадии обучения.Известная оценка сверху эффективности приотсутствии bias’а в learn’е.

BE = 1− p(x |k∗)E =

∑Ki=1 p(x |k)(1− p(x |k))

BE ≤ E ≤ 2BE

Часто требователен на фазе решения (!)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 8 из 26

Page 9: Ml 13

Основные способы прототипирования

Может много точек и не надо? Будет быстрееработать, глаже границы.Как выбрать прототипные точки:

выбрать рандомно;покластеризовать каждый класс(напримерk-means’ами) и назначить центроидыпрототипами;выбрать как-нибудь точки и подвигать ихподальше от границ классов.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 9 из 26

Page 10: Ml 13

Learning Vector Quantization

1 построить вашим любимым методом прототипныеточки;

2 до сходимости уменьшая ε (learning rate):1 Случайно, равномерно выберем точку x из learn’а с

возвращением2 Найдём ближайший прототип

прототип нужного класса: подвинем его ближеmt+1

j = mtj + ε(x −mt

j )"чужой"прототип: подвинем его подальше

mt+1j = mt

j − ε(x −mtj )

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 10 из 26

Page 11: Ml 13

Проклятье размерностиЧто происходит с расстояниями когда размерностьувеличивается?Проведем простой опыт: будем равномерно выбиратьточки из кубика [0, 1]n ⊂ R.Оказывается, что при увеличении n:

Точки все ближе “жмутся” к краюУглы между точками выравниваютсяОкрестности все чаще упираются в границыДля того, чтобы пространство было плотным надослишком много точек

⇒ Большая размерность — зло для kNN и не толькодля него!

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 11 из 26

Page 12: Ml 13

Discriminant Adaptive Nearest-Neighbor(DANN)Идея: а давайте в расстоянии учитывать локальную топологию вискомой точке Выберем много ближайших соседей (напримерm=50):

T = mΣ =∑m

i=1(xi − µ(x))(xi − µ(x))T

=∑K

k=1

∑i∈Ik (xi − µk(x))(xi − µk(x))T

+∑K

k=1(µk(x)− µ(x))(µk(x)− µ(x))T

= W + B

Пересчитаем все расстояния для k-NN:

D(x , x0) = (x − x0)TD(x − x0)

D = W− 12 (W− 1

2BW− 12 + εE )W− 1

2

Заметим, что ранги матриц, которые мы используем не болееm. Получается очень точный, но крайне медленный метод.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 12 из 26

Page 13: Ml 13

DANN результат

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 13 из 26

Page 14: Ml 13

Поиск ближайших соседей

Это область на годовой курс, так что за поллекции мыничего не успеем :).

Линейный поискРазбиение пространстваЧувствительное к локальности хеширование (LSH)Кластерный/Пожатый поискДеревья в пространстве меньшей размерности

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 14 из 26

Page 15: Ml 13

kd-дерево

Идея: разложим множество по поторому будем искатьв бинарное дерево с простыми условиями иконкретными точками в узлах. Будем надеяться направило треугольника (не подходит для cosine(!))Некоторые свойства:

Один из самых простых способов поискаближайших соседейРаботает только в малых размерностяхЗатратные алгоритмы перестроения (если нужнадинамика смотрим R-деревья)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 15 из 26

Page 16: Ml 13

kd-дерево: построение

1 По циклу, или рандомно выбираем ось.2 Ищем точку, разбивающую множество на как

можно более равные части.3 Повторяем 1-2 для каждого из получившихся

подмножеств

Сложность: O(n log n)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 16 из 26

Page 17: Ml 13

kd-дерево: построение (в картинках)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 17 из 26

Page 18: Ml 13

kd-дерево: поиск1 Бежим по бинарному дереву поиска2 Когда добежали, сохраняем листовую точку как x̄

- текущую лучшую3 Бежим обратно вверх по дереву:

1 если текущая точка лучше то теперь она x̄ ;2 сравниваем расстояние от точки-запроса до

гиперплоскости текущего уровняпересекает: не повезло, бежим в поддеревоне пересекает: повезло, бежим наверх

4 Повторяем 1-3 для каждого из получившихсяподмножеств пока делятся

Сложность сильно зависит от множества: в лучшемслучае O(log n), в худшем O(nN1− 1

n ) Классическийпример проклятия размерности.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 18 из 26

Page 19: Ml 13

kd-дерево: поиск (в картинках)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 19 из 26

Page 20: Ml 13

kd-дерево: свойства

1 Необходимо правило треугольника2 Исходит из одинаковости направлений3 Работает только в малых размерностях.

⇒ точно искать в реальных условиях не получается,будем неточно

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 20 из 26

Page 21: Ml 13

Немного определений

Рандомизированнный R-ближайший сосед если есть R-соседи,то алгоритм должен вернуть каждого из них свероятностью 1− δ

Р-я c-аппроксимация R-ближайшего соседа ((c ,R)− NN) еслиесть R-сосед, то алгоритм должен вернуть хотя быодного cR-соседа с вероятностью 1− δ

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 21 из 26

Page 22: Ml 13

Locality-Sensitive Hash Functions

H = {h|h : Rn → Z+}, (R , cR , p1, p2) :

‖p − q‖ ≤ R ⇒ pH(h(p) = h(q)) ≥ p1‖p − q‖ ≥ R ⇒ pH(h(p) = h(q)) ≤ p2

Понятно, что хотим p1 > p2

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 22 из 26

Page 23: Ml 13

LSH алгоритмПостроение:

1 Выберем L-функций семейства Hk

2 Поделим все данные на кусочки с одинаковымизначениями gi = (hi ,1, ..., hi ,k)

Поиск по точке q:1 Выкинем j ∼ U{1, ..., L}2 Найдем значение Lj(q) и соответствующий этому значению

“кусочек”

3 Линейно поищем в “кусочке”

4 Одно из двух:1 повторим 1-3 пока не найдется L′ точек (включая

дубли) ближе чем R .2 переберём все L-функций.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 23 из 26

Page 24: Ml 13

Свойства LSH

Первая стратегия: с L′ = 3L, для любой пары(R , δ),∃L = O(N

ln p1ln p2 ),

гарантирующий (c ,R)− NN

Вторая стратегия: гарантирует рандомизированного Rближайшего соседа при δ = δ(k , L)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 24 из 26

Page 25: Ml 13

Некоторые известные семействафункций

l1: возьмёмw >> R , si ∼ U[0,w ], i = 1, ..., n,

hs1,...,sn = (

[(x1 − s1)

w

], ...,

[(xn − sn)

w

])

ls : возьмёмw >> R , ri ∼ N(0, 1), hw ,r ,b = [ r

T x+bw ]

при δ = δ(k , L)

косинусная мера: возьмём ri ∼ N(0, 1), hr = sign(x , r)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 25 из 26

Page 26: Ml 13

Что мы сегодня узнали

Instance based learningИногда можно использовать learn в качестверешающей функцииЕсть проклятье размерности, которое нам мешаетМожно учитывать проклятье при построении метода

Поиск ближайших соседейЭто большая областьЕсли размерность мелкая и есть правилотреугольника, то можно искать точно (kd-tree, r-tree)Можно искать неточно, но с гарантиями (LSH)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 26 из 26