SlideShare a Scribd company logo
Введение в Data Science
Занятие 5. Машины Опорных Векторов
Николай Анохин Михаил Фирулик
29 марта 2014 г.
План занятия
Идея maximum margin
Функции ядра
Мотивация
Обобщенные линейные модели
Обучающая выборка
X = (x1, . . . , xN )
Значения целевой переменной
t1, . . . , tN ; tj ∈ {−1, +1}
Функция принятия решения
y(x) = w φ(x) + b
Разделяющая плоскость (РП)
yi (xi)ti > 0
Решений много: как выбрать?
Максимальный зазор
Margin – наименьшее расстояние
между РП и обучающим объектом.
dj =
|y(xj )|
w
=
tj y(xj )
w
=
=
tj (w φ(xj ) + b)
w
Оптимальная РП
arg max
w,b
1
w
min
j
tj (w φ(xj ) + b)
Задача оптимизации
Расстояние от точки 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
Метод множителей Лагранжа 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 в лагранжиан
Сопряженная задача
Сорпяженная задача
˜L(a) =
N
j=1
aj −
1
2
N
i=1
N
j=1
ai aj ti tj φ(xi ) φ(xj ) → max
a
при условиях
aj ≥ 0, ∀j ∈ 1, . . . , N
N
j=1
aj tj = 0
Наблюдения
k(xi , xj ) = φ(xi ) φ(xj ) – неотрицательно-определенная функция
лагранжиан ˜L(a) – выпуклая и ограниченная сверху функция
Классификация
Функция принятия решения
y(x) = w φ(x) + b =
N
j=1
aj tj φ(xj ) φ(x) + b =
N
j=1
aj tj k(xj , x) + b
Условия Karush-Kuhn-Tucker
aj ≥ 0
tj y(xj) − 1 ≥ 0
aj {tj y(xj) − 1} = 0
Опорным векторам xj ∈ S соответствуют aj > 0
b =
1
Ns
i∈S

ti −
j∈S
aj tj k(xi, xj)


Линейно-разделимый случай
Задача
Дана обучающая выборка
x1 x2 t
x1 1 −2 1
x2 1 2 −1
Найти оптимальную разделяющую плоскость, используя
сопряженную задачу оптимизации
Линейно-неразделимый случай
Смягчение ограничений
Переменные ξj ≥ 0 (slacks):
ξj =
0, если y(xj)tj ≥ 1
|tj − y(xj )|, иначе
Задача оптимизации
C
N
j=1
ξj +
1
2
w 2
→ min
w,b
Сопряженная задача
Сорпяженная задача
˜L(a) =
N
j=1
aj −
1
2
N
i=1
N
j=1
ai aj ti tj φ(xi ) φ(xj ) → max
a
при условиях
0 ≤ aj ≤ C, ∀j ∈ 1, . . . , N
N
j=1
aj tj = 0
Наблюдения
aj = 0 – правильно проклассифицированные объекты
aj = C – опорные векторы внутри отступа
0 < aj < C – опорные векторы на границе
Классификация
Функция принятия решения
y(x) =
N
j=1
aj tj k(xj , x) + b
Константа b
b =
1
NM
i∈M

ti −
j∈S
aj tj k(xi, xj)


Связь с линейными моделями
Задача оптимизации
N
j=1
ξj +
1
2
w 2
∼
N
j=1
E(y(xj ), tj ) + λ w 2
→ min
w,b
Hinge loss
E(yj , tj ) =
1 − yj tj , если yj tj > 1
0, иначе
Численные методы оптимизации
Chunking (Vapnik, 1982)
Decomposition (Osuna, 1996)
Sequential Minimal Optimization (Platt, 1999)
Задача регрессии
Переменные ξj ≥ 0, ˆξj ≥ 0 (slacks):
tj ≤ y(xj ) + + ξn
tj ≥ y(xj ) − − ˆξn
Задача оптимизации
C
N
j=1
(ˆξj + ξj ) +
1
2
w 2
→ min
w,b
Функции ядра
φ(x) – функция преобразования x из исходного пространства в
спрямляющее пространство
Проблема: количество признаков может быть очень велико
Идея Kernel Trick
В процессе тренировки и применения SVM исходные векторы x
используются только как аргументы в скалярном произведении
k(xi , xj ) = φ(xi ) φ(xj). Но в этом случае можно избежать
вычисления ϕ(x)!
Теорема Мерсера
Теорема
Функция k(x, z) является ядром тогда и только тогда, когда она
симметрична
k(x, z) = k(z, x)
неотрицательно определена
x∈X z∈X
k(x, z)g(x)g(z)dxdz, ∀g(x) : X → R
Задача
Пусть x ∈ R2
, а преобразование φ(x)
φ(x) = (1,
√
2x1,
√
2x2, x2
1 ,
√
2x1x2, x2
2 ).
Проверить, что функция k(x, z) = (1 + x z)2
является функцией
ядра для данного преобразования.
Некоторые стандартные функции ядра
Линейное ядро
k(x, z) = x z
Полиномиальное ядро степени d
k(x, z) = (x z + r)d
Radial Basis Function
k(x, z) = e−γ|x−z|2
Sigmoid
k(x, z) = tanh(γx z + r)
Опять ирисы
SVM. Итоги
+ Нелинейная разделяющая поверхность
+ Глобальая оптимизация
+ Разреженное решение
+ Хорошая обобщающая способность
- Не поддерживает p(Ck |x)
- Чувствительность к выбросам
- Нет алгоритма выбора ядра
- Медленное обучение
Эксперименты над SVM
В задаче рассматриваются 4 алгоритма генерации обучающих
выборок. Требуется разработать функцию, автоматически
подбирающую параметры модели SVM в зависимости от полученной
выборки.
Инструкция по выполнению задания
1. Выкачать в локальный репо код из ветки svm
2. Запустить хелп, при желании изучить
$ python svm.py -h
$ python svm.py cc -h
3. Запустить какой-нибудь пример, разобраться с картинкой
$ python svm.py gauss
4. Работать над кодом (функция select_model)
Домашнее задание 4
Машина опорных векторов
Использовать готовую имплементацию
алгоритма SVM для задачи классификации
алгоритма SVM для задачи регрессии
Ключевые даты
До 2014/04/05 00.00 предоставить решение задания
Спасибо!
Обратная связь

More Related Content

What's hot

L10: Алгоритмы кластеризации
L10: Алгоритмы кластеризацииL10: Алгоритмы кластеризации
L10: Алгоритмы кластеризации
Technosphere1
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
Technosphere1
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
Technosphere1
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
Technosphere1
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Technosphere1
 
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"
Technosphere1
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
Technosphere1
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
Technosphere1
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
Technosphere1
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийTheoretical mechanics department
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVM
romovpa
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Nikolay Grebenshikov
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02Computer Science Club
 
Структурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовойСтруктурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовой
romovpa
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
Theoretical mechanics department
 
Определенные интегралы
Определенные интегралыОпределенные интегралы
Определенные интегралы
daryaartuh
 

What's hot (20)

L10: Алгоритмы кластеризации
L10: Алгоритмы кластеризацииL10: Алгоритмы кластеризации
L10: Алгоритмы кластеризации
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближений
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVM
 
Линейные многошаговые методы
Линейные многошаговые методыЛинейные многошаговые методы
Линейные многошаговые методы
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
 
Структурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовойСтруктурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовой
 
Integral1
Integral1Integral1
Integral1
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Определенные интегралы
Определенные интегралыОпределенные интегралы
Определенные интегралы
 

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

Конкурс презентаций - Голичева
Конкурс презентаций - ГоличеваКонкурс презентаций - Голичева
Конкурс презентаций - Голичеваgalkina
 
Определенные интеграллы
Определенные интеграллыОпределенные интеграллы
Определенные интеграллыdaryaartuh
 
Мысль №6
Мысль №6Мысль №6
Мысль №6rasparin
 
Мысль №6
Мысль №6Мысль №6
Мысль №6rasparin
 
Pr i-6
Pr i-6Pr i-6
Pr i-6
allfira
 
000
000000
контра по матике
контра по матикеконтра по матике
контра по матикеleshiy_AlisA
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Mikhail Kurnosov
 
Разложение на множители
Разложение на множителиРазложение на множители
Разложение на множители
School 242
 
Свойства оценок
Свойства оценокСвойства оценок
Свойства оценок
Kurbatskiy Alexey
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
Theoretical mechanics department
 
20081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-1020081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-10Computer Science Club
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015
LIPugach
 
10474
1047410474
10474
nreferat
 
8
88
8.b proizvodnye
8.b proizvodnye8.b proizvodnye
8.b proizvodnye
Narvatk
 
Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integral
Dimon4
 
23
2323

Similar to L6: Метод опорных векторов (20)

Конкурс презентаций - Голичева
Конкурс презентаций - ГоличеваКонкурс презентаций - Голичева
Конкурс презентаций - Голичева
 
Определенные интеграллы
Определенные интеграллыОпределенные интеграллы
Определенные интеграллы
 
Мысль №6
Мысль №6Мысль №6
Мысль №6
 
Мысль №6
Мысль №6Мысль №6
Мысль №6
 
Pr i-6
Pr i-6Pr i-6
Pr i-6
 
Pr i-6
Pr i-6Pr i-6
Pr i-6
 
000
000000
000
 
контра по матике
контра по матикеконтра по матике
контра по матике
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
Разложение на множители
Разложение на множителиРазложение на множители
Разложение на множители
 
Свойства оценок
Свойства оценокСвойства оценок
Свойства оценок
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
 
20081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-1020081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-10
 
презентация к уроку2
презентация к уроку2презентация к уроку2
презентация к уроку2
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015
 
10474
1047410474
10474
 
8
88
8
 
8.b proizvodnye
8.b proizvodnye8.b proizvodnye
8.b proizvodnye
 
Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integral
 
23
2323
23
 

More from Technosphere1

Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети" Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети"
Technosphere1
 
Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей" Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей"
Technosphere1
 
L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: ЗаключительнаяTechnosphere1
 
Л9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложенийЛ9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложений
Technosphere1
 
Л8 Django. Дополнительные темы
Л8 Django. Дополнительные темыЛ8 Django. Дополнительные темы
Л8 Django. Дополнительные темы
Technosphere1
 
Мастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного вебМастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного веб
Technosphere1
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
Technosphere1
 
Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"
Technosphere1
 
Webdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django ViewsWebdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django Views
Technosphere1
 
L8: Л7 Em-алгоритм
L8: Л7 Em-алгоритмL8: Л7 Em-алгоритм
L8: Л7 Em-алгоритм
Technosphere1
 
L4: Решающие деревья
L4: Решающие деревьяL4: Решающие деревья
L4: Решающие деревья
Technosphere1
 
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
Technosphere1
 

More from Technosphere1 (13)

Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети" Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети"
 
Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей" Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей"
 
L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: Заключительная
 
Л9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложенийЛ9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложений
 
Л8 Django. Дополнительные темы
Л8 Django. Дополнительные темыЛ8 Django. Дополнительные темы
Л8 Django. Дополнительные темы
 
Webdev7 (2)
Webdev7 (2)Webdev7 (2)
Webdev7 (2)
 
Мастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного вебМастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного веб
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
 
Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"
 
Webdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django ViewsWebdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django Views
 
L8: Л7 Em-алгоритм
L8: Л7 Em-алгоритмL8: Л7 Em-алгоритм
L8: Л7 Em-алгоритм
 
L4: Решающие деревья
L4: Решающие деревьяL4: Решающие деревья
L4: Решающие деревья
 
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
 

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

  • 1. Введение в Data Science Занятие 5. Машины Опорных Векторов Николай Анохин Михаил Фирулик 29 марта 2014 г.
  • 2. План занятия Идея maximum margin Функции ядра
  • 4. Обобщенные линейные модели Обучающая выборка X = (x1, . . . , xN ) Значения целевой переменной t1, . . . , tN ; tj ∈ {−1, +1} Функция принятия решения y(x) = w φ(x) + b Разделяющая плоскость (РП) yi (xi)ti > 0 Решений много: как выбрать?
  • 5. Максимальный зазор Margin – наименьшее расстояние между РП и обучающим объектом. dj = |y(xj )| w = tj y(xj ) w = = tj (w φ(xj ) + b) w Оптимальная РП arg max w,b 1 w min j tj (w φ(xj ) + b)
  • 6. Задача оптимизации Расстояние от точки 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
  • 7. Метод множителей Лагранжа 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 в лагранжиан
  • 8. Сопряженная задача Сорпяженная задача ˜L(a) = N j=1 aj − 1 2 N i=1 N j=1 ai aj ti tj φ(xi ) φ(xj ) → max a при условиях aj ≥ 0, ∀j ∈ 1, . . . , N N j=1 aj tj = 0 Наблюдения k(xi , xj ) = φ(xi ) φ(xj ) – неотрицательно-определенная функция лагранжиан ˜L(a) – выпуклая и ограниченная сверху функция
  • 9. Классификация Функция принятия решения y(x) = w φ(x) + b = N j=1 aj tj φ(xj ) φ(x) + b = N j=1 aj tj k(xj , x) + b Условия Karush-Kuhn-Tucker aj ≥ 0 tj y(xj) − 1 ≥ 0 aj {tj y(xj) − 1} = 0 Опорным векторам xj ∈ S соответствуют aj > 0 b = 1 Ns i∈S  ti − j∈S aj tj k(xi, xj)  
  • 10. Линейно-разделимый случай Задача Дана обучающая выборка x1 x2 t x1 1 −2 1 x2 1 2 −1 Найти оптимальную разделяющую плоскость, используя сопряженную задачу оптимизации
  • 12. Смягчение ограничений Переменные ξj ≥ 0 (slacks): ξj = 0, если y(xj)tj ≥ 1 |tj − y(xj )|, иначе Задача оптимизации C N j=1 ξj + 1 2 w 2 → min w,b
  • 13. Сопряженная задача Сорпяженная задача ˜L(a) = N j=1 aj − 1 2 N i=1 N j=1 ai aj ti tj φ(xi ) φ(xj ) → max a при условиях 0 ≤ aj ≤ C, ∀j ∈ 1, . . . , N N j=1 aj tj = 0 Наблюдения aj = 0 – правильно проклассифицированные объекты aj = C – опорные векторы внутри отступа 0 < aj < C – опорные векторы на границе
  • 14. Классификация Функция принятия решения y(x) = N j=1 aj tj k(xj , x) + b Константа b b = 1 NM i∈M  ti − j∈S aj tj k(xi, xj)  
  • 15. Связь с линейными моделями Задача оптимизации N j=1 ξj + 1 2 w 2 ∼ N j=1 E(y(xj ), tj ) + λ w 2 → min w,b Hinge loss E(yj , tj ) = 1 − yj tj , если yj tj > 1 0, иначе
  • 16. Численные методы оптимизации Chunking (Vapnik, 1982) Decomposition (Osuna, 1996) Sequential Minimal Optimization (Platt, 1999)
  • 17. Задача регрессии Переменные ξj ≥ 0, ˆξj ≥ 0 (slacks): tj ≤ y(xj ) + + ξn tj ≥ y(xj ) − − ˆξn Задача оптимизации C N j=1 (ˆξj + ξj ) + 1 2 w 2 → min w,b
  • 18. Функции ядра φ(x) – функция преобразования x из исходного пространства в спрямляющее пространство Проблема: количество признаков может быть очень велико Идея Kernel Trick В процессе тренировки и применения SVM исходные векторы x используются только как аргументы в скалярном произведении k(xi , xj ) = φ(xi ) φ(xj). Но в этом случае можно избежать вычисления ϕ(x)!
  • 19. Теорема Мерсера Теорема Функция k(x, z) является ядром тогда и только тогда, когда она симметрична k(x, z) = k(z, x) неотрицательно определена x∈X z∈X k(x, z)g(x)g(z)dxdz, ∀g(x) : X → R Задача Пусть x ∈ R2 , а преобразование φ(x) φ(x) = (1, √ 2x1, √ 2x2, x2 1 , √ 2x1x2, x2 2 ). Проверить, что функция k(x, z) = (1 + x z)2 является функцией ядра для данного преобразования.
  • 20. Некоторые стандартные функции ядра Линейное ядро k(x, z) = x z Полиномиальное ядро степени d k(x, z) = (x z + r)d Radial Basis Function k(x, z) = e−γ|x−z|2 Sigmoid k(x, z) = tanh(γx z + r)
  • 22. SVM. Итоги + Нелинейная разделяющая поверхность + Глобальая оптимизация + Разреженное решение + Хорошая обобщающая способность - Не поддерживает p(Ck |x) - Чувствительность к выбросам - Нет алгоритма выбора ядра - Медленное обучение
  • 23. Эксперименты над SVM В задаче рассматриваются 4 алгоритма генерации обучающих выборок. Требуется разработать функцию, автоматически подбирающую параметры модели SVM в зависимости от полученной выборки. Инструкция по выполнению задания 1. Выкачать в локальный репо код из ветки svm 2. Запустить хелп, при желании изучить $ python svm.py -h $ python svm.py cc -h 3. Запустить какой-нибудь пример, разобраться с картинкой $ python svm.py gauss 4. Работать над кодом (функция select_model)
  • 24. Домашнее задание 4 Машина опорных векторов Использовать готовую имплементацию алгоритма SVM для задачи классификации алгоритма SVM для задачи регрессии Ключевые даты До 2014/04/05 00.00 предоставить решение задания