l6: Метод опорных векторов

25
Введение в Data Science Занятие 5. Машины Опорных Векторов Николай Анохин Михаил Фирулик 29 марта 2014 г.

Upload: technosphere1

Post on 25-Dec-2014

129 views

Category:

Software


3 download

DESCRIPTION

L6: Метод опорных векторов

TRANSCRIPT

Page 1: L6: Метод опорных векторов

Введение в Data ScienceЗанятие 5. Машины Опорных Векторов

Николай Анохин Михаил Фирулик

29 марта 2014 г.

Page 2: L6: Метод опорных векторов

План занятия

Идея maximum margin

Функции ядра

Page 3: L6: Метод опорных векторов

Мотивация

Page 4: L6: Метод опорных векторов

Обобщенные линейные модели

Обучающая выборка

X = (x1, . . . , xN)

Значения целевой переменной

t1, . . . , tN ; tj ∈ {−1,+1}

Функция принятия решения

y(x) = w>φ(x) + b

Разделяющая плоскость (РП)

yi (xi)ti > 0

Решений много: как выбрать?

Page 5: L6: Метод опорных векторов

Максимальный зазор

Margin – наименьшее расстояниемежду РП и обучающим объектом.

dj =|y(xj)|‖w‖

=tjy(xj)

‖w‖=

=tj(w>φ(xj) + b)

‖w‖Оптимальная РП

argmaxw,b

[1

‖w‖minj

tj(w>φ(xj) + b)

]

Page 6: L6: Метод опорных векторов

Задача оптимизации

Расстояние от точки xj до РП

dj =tj(w>φ(xj) + b)

‖w‖

Для точки xj , лежащей на минимальном расстоянии от РП положим

tj(w>φ(xj) + b) = 1

Задача оптимизации

1

2‖w‖2 → min

w,b

при условияхtj(w

>φ(xj) + b) ≥ 1, ∀j ∈ 1, . . . ,N

Page 7: L6: Метод опорных векторов

Метод множителей Лагранжа a = (a1, . . . , aN)>, ai ≥ 0.

L(w, b, a) =1

2‖w‖2 −

N∑j=1

aj [tj(w>φ(xj) + b)− 1]

Дифференцируем по w и b

w =N∑j=1

aj tjφ(xj), 0 =N∑j=1

aj tj

Подставляем w и b в лагранжиан

Page 8: L6: Метод опорных векторов

Сопряженная задача

Сорпяженная задача

L̃(a) =N∑j=1

aj −1

2

N∑i=1

N∑j=1

aiaj ti tjφ(xi )>φ(xj)→ max

a

при условияхaj ≥ 0, ∀j ∈ 1, . . . ,N

N∑j=1

aj tj = 0

НаблюденияI k(xi , xj) = φ(xi )>φ(xj) – неотрицательно-определенная функцияI лагранжиан L̃(a) – выпуклая и ограниченная сверху функция

Page 9: L6: Метод опорных векторов

Классификация

Функция принятия решения

y(x) = w>φ(x) + b =N∑j=1

aj tjφ(xj)>φ(x) + b =

N∑j=1

aj tjk(xj , x) + b

Условия Karush-Kuhn-Tucker

aj ≥ 0

tjy(xj)− 1 ≥ 0

aj{tjy(xj)− 1} = 0

Опорным векторам xj ∈ S соответствуют aj > 0

b =1

Ns

∑i∈S

ti −∑j∈S

aj tjk(xi, xj)

Page 10: L6: Метод опорных векторов

Линейно-разделимый случай

ЗадачаДана обучающая выборка

x1 x2 tx1 1 −2 1x2 1 2 −1

Найти оптимальную разделяющую плоскость, используясопряженную задачу оптимизации

Page 11: L6: Метод опорных векторов

Линейно-неразделимый случай

Page 12: L6: Метод опорных векторов

Смягчение ограничений

Переменные ξj ≥ 0 (slacks):

ξj =

{0, если y(xj)tj ≥ 1

|tj − y(xj)|, иначе

Задача оптимизации

CN∑j=1

ξj +1

2‖w‖2 → min

w,b

Page 13: L6: Метод опорных векторов

Сопряженная задача

Сорпяженная задача

L̃(a) =N∑j=1

aj −1

2

N∑i=1

N∑j=1

aiaj ti tjφ(xi )>φ(xj)→ max

a

при условиях0 ≤ aj ≤ C , ∀j ∈ 1, . . . ,N

N∑j=1

aj tj = 0

НаблюденияI aj = 0 – правильно проклассифицированные объектыI aj = C – опорные векторы внутри отступаI 0 < aj < C – опорные векторы на границе

Page 14: L6: Метод опорных векторов

Классификация

Функция принятия решения

y(x) =N∑j=1

aj tjk(xj , x) + b

Константа b

b =1

NM

∑i∈M

ti −∑j∈S

aj tjk(xi, xj)

Page 15: L6: Метод опорных векторов

Связь с линейными моделями

Задача оптимизации

N∑j=1

ξj +1

2‖w‖2 ∼

N∑j=1

E (y(xj), tj) + λ‖w‖2 → minw,b

Hinge loss

E (yj , tj) =

{1− yj tj , если yj tj > 1

0, иначе

Page 16: L6: Метод опорных векторов

Численные методы оптимизации

I Chunking (Vapnik, 1982)I Decomposition (Osuna, 1996)I Sequential Minimal Optimization (Platt, 1999)

Page 17: L6: Метод опорных векторов

Задача регрессии

Переменные ξj ≥ 0, ξ̂j ≥ 0 (slacks):

tj ≤ y(xj) + ε+ ξn

tj ≥ y(xj)− ε− ξ̂nЗадача оптимизации

CN∑j=1

(ξ̂j + ξj) +1

2‖w‖2 → min

w,b

Page 18: L6: Метод опорных векторов

Функции ядра

φ(x) – функция преобразования x из исходного пространства вспрямляющее пространство

Проблема: количество признаков может быть очень велико

Идея Kernel TrickВ процессе тренировки и применения SVM исходные векторы xиспользуются только как аргументы в скалярном произведенииk(xi , xj) = φ(xi )>φ(xj). Но в этом случае можно избежатьвычисления ϕ(x)!

Page 19: L6: Метод опорных векторов

Теорема Мерсера

ТеоремаФункция k(x, z) является ядром тогда и только тогда, когда она

I симметричнаk(x, z) = k(z, x)

I неотрицательно определена∫x∈X

∫z∈X

k(x, z)g(x)g(z)dxdz, ∀g(x) : X→ R

ЗадачаПусть x ∈ R2, а преобразование φ(x)

φ(x) = (1,√2x1,√2x2, x

21 ,√2x1x2, x

22 ).

Проверить, что функция k(x, z) = (1 + x>z)2 является функциейядра для данного преобразования.

Page 20: L6: Метод опорных векторов

Некоторые стандартные функции ядра

I Линейное ядроk(x, z) = x>z

I Полиномиальное ядро степени d

k(x, z) = (x>z+ r)d

I Radial Basis Function

k(x, z) = e−γ|x−z|2

I Sigmoidk(x, z) = tanh(γx>z+ r)

Page 21: L6: Метод опорных векторов

Опять ирисы

Page 22: L6: Метод опорных векторов

SVM. Итоги

+ Нелинейная разделяющая поверхность+ Глобальая оптимизация+ Разреженное решение+ Хорошая обобщающая способность- Не поддерживает p(Ck |x)- Чувствительность к выбросам- Нет алгоритма выбора ядра- Медленное обучение

Page 23: L6: Метод опорных векторов

Эксперименты над SVMВ задаче рассматриваются 4 алгоритма генерации обучающихвыборок. Требуется разработать функцию, автоматическиподбирающую параметры модели SVM в зависимости от полученнойвыборки.

Инструкция по выполнению задания

1. Выкачать в локальный репо код из ветки svm

2. Запустить хелп, при желании изучить

$ python svm.py -h$ python svm.py cc -h

3. Запустить какой-нибудь пример, разобраться с картинкой

$ python svm.py gauss

4. Работать над кодом (функция select_model)

Page 24: L6: Метод опорных векторов

Домашнее задание 4

Машина опорных векторовИспользовать готовую имплементацию

I алгоритма SVM для задачи классификацииI алгоритма SVM для задачи регрессии

Ключевые датыI До 2014/04/05 00.00 предоставить решение задания

Page 25: L6: Метод опорных векторов

Спасибо!

Обратная связь