36
Обучение метрики по Tutorial on Metric Learning by Brian Kulis И. Куралёнок, Н. Поваров Яндекс СПб, 2016 И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 1 из 34

Машинное обучение 2, весна 2016: Обучение метрики

Embed Size (px)

Citation preview

Page 1: Машинное обучение 2, весна 2016: Обучение метрики

Обучение метрикипо Tutorial on Metric Learning by Brian Kulis

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

Яндекс

СПб, 2016

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

Page 2: Машинное обучение 2, весна 2016: Обучение метрики

Метрики в контексте IBL

В прошлый раз использовали несколько buzzword,сегодня поговорим об одном из них — дистанциимежду точками

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

Page 3: Машинное обучение 2, весна 2016: Обучение метрики

Пример с Михалычем

Василий Петрович, хочет сталкиваться с ПетромМихалычем чаще, причем желательно вдали от другихрабочих завода.Классы разные людиТочки появление в пространстве/времени человека

c

Действия поговорить в громкоговоритель (одинаковоповлиять на всех людей)

Надо помочь Петровичу правильно говорить вгромкоговоритель.

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

Page 4: Машинное обучение 2, весна 2016: Обучение метрики

Как может выглядеть задача

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

Page 5: Машинное обучение 2, весна 2016: Обучение метрики

Как может выглядеть задача

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

Page 6: Машинное обучение 2, весна 2016: Обучение метрики

Как может выглядеть решение

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

Page 7: Машинное обучение 2, весна 2016: Обучение метрики

Как может выглядеть задача

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

Page 8: Машинное обучение 2, весна 2016: Обучение метрики

Как может выглядеть решение

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

Page 9: Машинное обучение 2, весна 2016: Обучение метрики

Mahalanobis distance (постановка)

Классы нетуТочки какие-то точки, которых навалило

Направления одинаково значимые направления,померянные разной линейкой

Действия линейные преобразования пространства

⇒ хотим посчитать дистанцию, без учета линейки

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

Page 10: Машинное обучение 2, весна 2016: Обучение метрики

Mahalanobis distance (решение)

X = xi |xi ∈ Rnµ(a, b) = ‖a − b‖22

⇒Σ =

∑i ,j (xi − x) (xj − x)T

µ(a, b) = (a − b) Σ−1 (a − b)

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

Page 11: Машинное обучение 2, весна 2016: Обучение метрики

Mahalanobis distance (решение)

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

Page 12: Машинное обучение 2, весна 2016: Обучение метрики

Постановка задачи обучения метрики

Дано:1 Набор точек: X = xi |xi ∈ Rn2 Исходная метрика µ0(a, b) (например ‖a − b‖q,

etc.)3 Условия группировки точек (классы/отношение

расстояний/etc.): T (X , µ), µ ∈MНайти:

µ = arg maxµ∈M

T (X , µ)

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

Page 13: Машинное обучение 2, весна 2016: Обучение метрики

Постановка обучения Mahalanobis

Будем искать решения в классе:

M = µA(a, b)|µA(a, b) = (a − b)TA(a − b),A ∈ PSD(Rn×n)

Почему PSD?

Если будет отрицательное собственное число,получится отрицательное значение метрики длясобственного вектора

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

Page 14: Машинное обучение 2, весна 2016: Обучение метрики

Постановка обучения Mahalanobis

Будем искать решения в классе:

M = µA(a, b)|µA(a, b) = (a − b)TA(a − b),A ∈ PSD(Rn×n)

Почему PSD?

Если будет отрицательное собственное число,получится отрицательное значение метрики длясобственного вектора

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

Page 15: Машинное обучение 2, весна 2016: Обучение метрики

Немного о метриках

Метрика это такое преобразование µ : X 2 → R:

1 µ(a, b) ≥ 0

2 µ(a, b) = 0⇔ a = b

3 µ(a, b) = µ(b, a)

4 µ(a, c) ≤ µ(a, b) + µ(b, c)

µA — не метрика. Метрикой является µ∗ =√µA в случае, когда

A 0. Такое добро зовется “псевдометрика”.

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

Page 16: Машинное обучение 2, весна 2016: Обучение метрики

Вспоминая исходный пример

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

Page 17: Машинное обучение 2, весна 2016: Обучение метрики

Как может выглядеть решение

A =

(1 00 ε

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

Page 18: Машинное обучение 2, весна 2016: Обучение метрики

Свойства Mahalanobis метрик

Надо хранить матрицу A, которая большая и вобщем случае denseРаботает только в случае линейной разделимости“разных” примеров

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

Page 19: Машинное обучение 2, весна 2016: Обучение метрики

Варианты целевой функции

Желания по тому какими свойствами должна обладать метрикаможно выражать по-разному:Условия группировки

Есть два множества S,D ⊂ X 2 точек, которые должны бытьпоближе/подальше

(a, b) ∈ S ⇔ µA(a, b) ≤ l , (a, b) ∈ D ⇔ µA(a, b) ≥ u

Условия относительной близости

Зададим такое множество троек K ⊂ X 3, в котором первая точкадолжна быть поближе ко второй чем к третьей

(a, b, c) ∈ K ⇔ µA(a, b) ≤ µA(a, c)−m

Оба эти случая мы можем аггрегировать простымсуммированием введя расслабляющие коэффициенты

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

Page 20: Машинное обучение 2, весна 2016: Обучение метрики

Варианты регуляризации

Нас могут устраивать больше одни варианты A нежелидругие, мы можем выразить это регуляризацией:

Отклонение по Фробениусу от какой-то хорошейматрицы (например от прошлого оптимума):

‖A− A0‖2F

LogDet divergence от хорошей матрицы:Dld(A,A0) = tr(AA−1

0 )− log det(AA−10 )− d

Простая фробениус норма ‖A‖F — аналог l2tr(AC0) — аналог l1

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

Page 21: Машинное обучение 2, весна 2016: Обучение метрики

Немного про LogDetDivИспользуется в основном в картинках. Пусть X = VΛV T , а Y = UΘUT ,тогда:

Dld(X ,Y ) = tr(XY−1)− log det(XY−1)− d

= tr(Y− 12XY− 1

2 )− log det(Y− 12XY− 1

2 )− d

= tr(Y− 12XY− 1

2 − logY− 12XY− 1

2 − E )

=∑

i

∑j(v

Ti , uj)

2(

λi

θj− log(λi

θj)− 1

)Обладает такими свойствами:

Инвариантна к линейному обратимому преобразованию

0 только при равенстве, иначе позитивна

Pythagorean условие на выпуклых множествах Ω (упрощенныйтреугольник)

Несимметрична

Можно расширить на полуопределенные матрицы

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

Page 22: Машинное обучение 2, весна 2016: Обучение метрики

MMC

maxA∑

(a,b)∈D√µA(a, b)

c(A) =∑

(a,b)∈S µA(a, b) ≤ 1A 0

D это множество различающихся, а S -множество одинаковыхПытаемся максимизировать сумму расстоянийдля различающихсяХотим маленькую сумму расстояний одинаковых

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

Page 23: Машинное обучение 2, весна 2016: Обучение метрики

MMC: алгоритм

Градиентный спуск сопровождается поискомподходящей A

Ограничение c(A) линейно по A, а значитразрешается дёшево

Несмотря на относительную простоту, алгоритммедленныйНе масштабируется

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

Page 24: Машинное обучение 2, весна 2016: Обучение метрики

Schultz and Joachims

minA‖A‖2FµA(xi , xk)− µA(xi , xj) ≥ 1 ∀(xi , xj , xk) ∈ KA 0

В такой формулировке может не иметь решения, тогда

minA,ξ‖A‖2F + γ∑

(i ,j ,k)∈R ξijkµA(xi , xk)− µA(xi , xj) ≥ 1− ξijk ∀(xi , xj , xk) ∈ Kξijk ≥ 0 ∀(i , j , k) ∈ RA 0

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

Page 25: Машинное обучение 2, весна 2016: Обучение метрики

Schultz and Joachims: Алгоритм

Главное упрощение:A = MTDM , где фиксировано и известно, а D -диагональная

µA(xi , xj) = (xi − xj)TA(x−xj)

= (xi − xj)TMTDM(x−xj)

= (Mxi −Mxj)TD(Mx−Mxj)

Итоговая оптимизационная проблема очень похожана SVM

С помощью M метод можно кернелизироватьАлгоритм быстрый, но менее общий, чемMahalanobis

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

Page 26: Машинное обучение 2, весна 2016: Обучение метрики

Neighbourhood Components Analysis

maxA0

∑(i ,j)∈S

e−µA(xi ,xj)∑k 6=i e

−µA(xi ,xk)

Минимизируем LOO kNN классификатор:

если честный LOO, то получим прерывную функцию;

вместо значения 0/1 из ближайшего соседа, переписываемв soft max моделируя вероятность так:

pij =e−µA(xi ,xj )∑k 6=i e

−µA(xi ,xk )

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

Page 27: Машинное обучение 2, весна 2016: Обучение метрики

Neighbourhood Components AnalysisАлгоритм и свойства

Оптимизация:Проблема невыпуклаПереписываем A = GTG , чтобы не думать проA 0Градиентный спуск по компонентам G

Свойства:Легко контролировать ранк A, контролируя ранк G

Простая безусловная оптимизацияБез гарантий глобальной сходимости

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

Page 28: Машинное обучение 2, весна 2016: Обучение метрики

Онлайн постановка, POLAЧасто данные приходят последовательно. Попробуемстроить µA последовательно:

На каждом шагу наблюдаем тройку: (at , bt , yt),если yt = 1, то хотим точки поближе, еслиyt = −1 — сделаем подальше.Будем оптимизировать такой loss

(hinge loss)

l(A, y) = max(0, yt(µA(at , bt)− b) + 1)

Оптимизировать будем (как и в любой onlineпостановке):

RT =T∑t=1

lt(A∗, b∗)−

T∑t=1

lt(At , bt)

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

Page 29: Машинное обучение 2, весна 2016: Обучение метрики

Онлайн постановка, POLAЧасто данные приходят последовательно. Попробуемстроить µA последовательно:

На каждом шагу наблюдаем тройку: (at , bt , yt),если yt = 1, то хотим точки поближе, еслиyt = −1 — сделаем подальше.Будем оптимизировать такой loss (hinge loss)

l(A, y) = max(0, yt(µA(at , bt)− b) + 1)

Оптимизировать будем (как и в любой onlineпостановке):

RT =T∑t=1

lt(A∗, b∗)−

T∑t=1

lt(At , bt)

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

Page 30: Машинное обучение 2, весна 2016: Обучение метрики

POLA: алгоритм

1 Введем 2 выпуклых множества:

Ct = (A, b)|lt(A, b) = 0CA = (A, b)|A 0b > 0

2 Научимся проецировать на эти множетсва (естьидеи как?)

3 На каждом шагу будем сначала проэцировать нановый Ct , а потом на CA

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

Page 31: Машинное обучение 2, весна 2016: Обучение метрики

ITML как пример LogDet

Так долго говорили про LogDet, надо бы где-нибудьпоиспользовать :).

minK∈PSD(Rm×m) T (K ,K0)(a − b)TA(a − b) ≤ u,∀(a, b) ∈ S(a − b)TA(a − b) ≥ l ,∀(a, b) ∈ D

Там много математики, но смысл в том, что можносвести к такому построению матрицы:

At+1 = At + βtAt(xi − xj)(xi − xj)TAt

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

Page 32: Машинное обучение 2, весна 2016: Обучение метрики

Не-Махаланобисовы методы: LDFLocal distance functions

Хотим сделать громкоговоритель локальнее: в столовой — один,в цеху — другой. Для этого пожертвуем сложностью модели,забыв о зависимости по осям:

µ(a, b) =∑m

wa(m)d(am, bm)

Заметим, что несмотря на несимметричность модели, мы все жеможем построить kNN.⇒ можно поставить задачу совместной оптимизации w .Например так:

minw∑

i ‖wi‖qµ(a, b)− µ(a, c) ≥ 1,∀(a, b, c) ∈ Kwi ≥ 0, ∀i

Сравните постановку с Schultz and JoachimsИ. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 30 из 34

Page 33: Машинное обучение 2, весна 2016: Обучение метрики

Проблема линейной неразделимостиГде-то мы это уже видели, сделаем ядро!

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

Page 34: Машинное обучение 2, весна 2016: Обучение метрики

Кернелизация ITMLВспомним шаг алгоритма:

At+1 = At + βtAt(xi − xj)(xi − xj)TAt

Домножим слева/справа на матрицу X и раскроемскобки в терминах новых скалярных произведений(xTAy):

XTAt+1X = XTAtX +βtXTAtX (ei−ej)(ei−ej)TXTAtX

Тогда в терминах ядер (k tij = xTi Atxj):

K t+1 = K tβtKt(ei − ej)(ei − ej)

TK t

Также можно делать и с другими алгоритмами,которые мы сегодня рассмотрели

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

Page 35: Машинное обучение 2, весна 2016: Обучение метрики

Постановка kernel learning для metriclearningДавайте ограничемся только квадратом евклидовой метрики(уже в kernel space):

‖a − b‖22 = xTi xi + xTj xj − 2xTi xj

Что можно переписать в терминах ядер:

kii + kjj − 2kij

Будем считать, что условия у нас заданы в терминахгруппировки. Тогда оптимизацию можно переписать:

minK∈PSD(Rm×m) T (K ,K0)kii + kjj − 2kij ≤ u, ∀(i , j) ∈ Skii + kjj − 2kij ≥ l ,∀(i , j) ∈ D

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

Page 36: Машинное обучение 2, весна 2016: Обучение метрики

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

Расстояние можно менятьУдобно работать с неметриками, убрав правилотреугольникаТочно как поставить задачу обучения метрикиЕсть несколько способов обучить линейноепреобразование, в том числе onlineСообщество любителей ядер постаралось и наэтой ниве, что позволяет решать линейнонеразделимые задачи

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