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

Машинное обучение 2, весна 2016: Instance Based Learning

Embed Size (px)

Citation preview

Page 1: Машинное обучение 2, весна 2016: Instance Based Learning

Instance based learning

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

Яндекс

СПб, 2016

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

Page 2: Машинное обучение 2, весна 2016: Instance Based Learning

Содержание

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

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

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

kd-treeLocality-Sensitive Hashing

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

Page 3: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

Page 4: Машинное обучение 2, весна 2016: Instance Based Learning

Алгоритм k-NN

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

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

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

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

Page 5: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

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

Page 6: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

Page 7: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

Page 8: Машинное обучение 2, весна 2016: Instance Based Learning

Свойства k-NN

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

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

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

BE ≤ E ≤ 2BE

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

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

Page 9: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

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

Page 10: Машинное обучение 2, весна 2016: Instance Based Learning

Learning Vector Quantization

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

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

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

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

j = mtj + ε(x −mt

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

mt+1j = mt

j − ε(x −mtj )

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

Page 11: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

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

Page 12: Машинное обучение 2, весна 2016: Instance Based Learning

Проклятье размерности в картинках

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

Page 13: Машинное обучение 2, весна 2016: Instance Based Learning

One more problem

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

Page 14: Машинное обучение 2, весна 2016: Instance Based Learning

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. Получается очень точный, но крайне медленный метод.

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

Page 15: Машинное обучение 2, весна 2016: Instance Based Learning

DANN результат

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

Page 16: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

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

Page 17: Машинное обучение 2, весна 2016: Instance Based Learning

kd-дерево

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

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

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

Page 18: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

подмножеств

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

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

Page 19: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

Page 20: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

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

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

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

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

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

Page 21: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

Page 22: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

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

Page 23: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

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

Page 24: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

Page 25: Машинное обучение 2, весна 2016: Instance Based Learning

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

1 Выберем L-функций семейства H2 Поделим все данные на кусочки с одинаковыми

значениямиПоиск по точке q:

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

“кусочек”

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

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

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

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

Page 26: Машинное обучение 2, весна 2016: Instance Based Learning

Свойства LSH

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

ln p1ln p2 ),

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

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

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

Page 27: Машинное обучение 2, весна 2016: Instance Based Learning

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

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

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

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