SlideShare a Scribd company logo
1 of 30
Download to read offline
Лекция 7
Машина опорных векторов
Николай Анохин
6 ноября 2014 г.
План занятия
SVM
Функции ядра
SGD
1 / 29
Постановка задачи
Пусть дан набор объектов D = {(xi , yi )}, xi ∈ X, yi ∈ Y, i ∈ 1, . . . , N,
полученный из неизвестной закономерности y = f (x). Необходимо
выбрать из семейства параметрических функций
H = {h(x, θ) : X × Θ → Y}
такую h∗
(x) = h(x, θ∗
), которая наиболее точно апроксимирует f (x).
Задачи
Регрессия: Y = [a, b] ⊂ R
Классификация: |Y| < C
2 / 29
SVM
3 / 29
Мотивация
4 / 29
Обобщенные линейные модели
Обучающая выборка
X = (x1, . . . , xN )
Значения целевой переменной
t1, . . . , tN ; tj ∈ {−1, +1}
Функция принятия решения
y(x) = w φ(x) + b
Разделяющая плоскость (РП)
yi (xi)ti > 0
Решений много: как выбрать?
5 / 29
Максимальный зазор
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 / 29
Задача оптимизации
Расстояние от точки 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 / 29
Метод множителей Лагранжа 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 / 29
Сопряженная задача
Сорпяженная задача
˜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 / 29
Классификация
Функция принятия решения
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 / 29
Линейно-разделимый случай
Задача
Дана обучающая выборка
x1 x2 t
x1 1 −2 1
x2 1 2 −1
Найти оптимальную разделяющую плоскость, используя
сопряженную задачу оптимизации
11 / 29
Линейно-неразделимый случай
12 / 29
Смягчение ограничений
Переменные ξ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 / 29
Сопряженная задача
Сорпяженная задача
˜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 / 29
Классификация
Функция принятия решения
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 / 29
Задача регрессии
Переменные ξ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
16 / 29
Численные методы оптимизации
Chunking (Vapnik, 1982)
Decomposition (Osuna, 1996)
Sequential Minimal Optimization (Platt, 1999)
17 / 29
Функции ядра
18 / 29
Функции ядра
φ(x) – функция преобразования x из исходного пространства в
спрямляющее пространство
Проблема: количество признаков может быть очень велико
Идея Kernel Trick
В процессе тренировки и применения SVM исходные векторы x
используются только как аргументы в скалярном произведении
k(xi , xj ) = φ(xi ) φ(xj). Но в этом случае можно избежать
вычисления ϕ(x)!
19 / 29
Теорема Мерсера
Теорема
Функция k(x, z) является ядром тогда и только тогда, когда она
симметрична
k(x, z) = k(z, x)
неотрицательно определена
x∈X z∈X
k(x, z)g(x)g(z)dxdz 0, ∀g(x) : X → R
Задача
Пусть x ∈ R2
, а преобразование φ(x)
φ(x) = (1,
√
2x1,
√
2x2, x2
1 ,
√
2x1x2, x2
2 ).
Проверить, что функция k(x, z) = (1 + x z)2
является функцией
ядра для данного преобразования.
20 / 29
Некоторые стандартные функции ядра
Линейное ядро
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)
21 / 29
Опять ирисы
22 / 29
SGD
23 / 29
Связь с линейными моделями
Задача оптимизации
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, иначе
24 / 29
Stochastic Gradient Descent
Градиентный спуск
wk+1 = wk − η(k)
1
N
N
n=1
wl(xn, w, tn)
Стохастический градиентный спуск
wk+1 = wk − η(k) wl(xk, w, tk )
Усредненный стохастический градиентный спуск ¯wk = 1
k
k
j=1 wj
wk+1 = wk − η(k) wl(xk, w, tk ), ¯wk+1 =
k
k + 1
¯wk +
1
k + 1
wk+1
Сходимость: k η2
k < ∞, k ηk = ∞
25 / 29
SGD tips
Использовать SGD, когда обучение модели занимает слишком
много времени
Перемешать тренировочную выборку
Следить за training error и validation error
Поверять, правильно ли вычисляется градиент
Q(z, w + δ) ≈ Q(z, w) + δg
Подобрать η0 на небольшой выборке
ηk = η0(1 + η0λk)−1
, λ – параметр регуляризации
26 / 29
SVM – итоги
+ Нелинейная разделяющая поверхность
+ Глобальая оптимизация
+ Разреженное решение
+ Хорошая обобщающая способность
- Не поддерживает p(Ck |x)
- Чувствительность к выбросам
- Нет алгоритма выбора ядра
- Медленное обучение
27 / 29
Эксперименты над SVM
В задаче рассматриваются 4 алгоритма генерации обучающих
выборок. Требуется разработать функцию, автоматически
подбирающую параметры модели SVM в зависимости от полученной
выборки.
Инструкция по выполнению задания
1. Скачать код http://bit.ly/1y26EF4
2. Запустить хелп, при желании изучить
$ python svm.py -h
$ python svm.py cc -h
3. Запустить какой-нибудь пример, разобраться с картинкой
$ python svm.py gauss
4. Работать над кодом (функция select_model)
28 / 29
Вопросы
29 / 29

More Related Content

What's hot

Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Technosphere1
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыTechnosphere1
 
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Technosphere1
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Technosphere1
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияTechnosphere1
 
L7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваL7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваTechnosphere1
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
 
L10: Алгоритмы кластеризации
L10: Алгоритмы кластеризацииL10: Алгоритмы кластеризации
L10: Алгоритмы кластеризацииTechnosphere1
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Technosphere1
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийTheoretical mechanics department
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVMromovpa
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераTheoretical mechanics department
 
Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрированияTheoretical mechanics department
 
20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlinComputer Science Club
 

What's hot (20)

Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмы
 
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессия
 
L7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваL7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качества
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
L10: Алгоритмы кластеризации
L10: Алгоритмы кластеризацииL10: Алгоритмы кластеризации
L10: Алгоритмы кластеризации
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближений
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
Сплайн интерполяция
Сплайн интерполяцияСплайн интерполяция
Сплайн интерполяция
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVM
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод Эйлера
 
Линейные многошаговые методы
Линейные многошаговые методыЛинейные многошаговые методы
Линейные многошаговые методы
 
Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрирования
 
20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin
 
Integral1
Integral1Integral1
Integral1
 

Similar to Лекция №7 "Машина опорных векторов"

Структурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовойСтруктурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовойromovpa
 
8.b proizvodnye
8.b proizvodnye8.b proizvodnye
8.b proizvodnyeNarvatk
 
Конкурс презентаций - Голичева
Конкурс презентаций - ГоличеваКонкурс презентаций - Голичева
Конкурс презентаций - Голичеваgalkina
 
Мезенцев Павел - Машинное обучение на MapReduce
Мезенцев Павел - Машинное обучение на MapReduceМезенцев Павел - Машинное обучение на MapReduce
Мезенцев Павел - Машинное обучение на MapReducePavel Mezentsev
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Roman Brovko
 
Derivative lesson
Derivative lessonDerivative lesson
Derivative lessonmarinarum
 
метод замены множителей
метод замены множителейметод замены множителей
метод замены множителейmitusova
 
Metody resheniya kvadratnyh_uravnenij
Metody resheniya kvadratnyh_uravnenijMetody resheniya kvadratnyh_uravnenij
Metody resheniya kvadratnyh_uravnenijIvanchik5
 
20091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture0820091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture08Computer Science Club
 
эскизирование графиков
эскизирование графиковэскизирование графиков
эскизирование графиковvitaminka1
 
Метод проекции градиента для решения стационарной системы Стокса как задачи ...
Метод проекции градиента для решения стационарной системы Стокса  как задачи ...Метод проекции градиента для решения стационарной системы Стокса  как задачи ...
Метод проекции градиента для решения стационарной системы Стокса как задачи ...iST1
 
Differencirovanie pokazatelnoj i_logarifmicheskoj_
Differencirovanie pokazatelnoj i_logarifmicheskoj_Differencirovanie pokazatelnoj i_logarifmicheskoj_
Differencirovanie pokazatelnoj i_logarifmicheskoj_Иван Иванов
 
Определенные интегралы
Определенные интегралыОпределенные интегралы
Определенные интегралыdaryaartuh
 
Определенные интеграллы
Определенные интеграллыОпределенные интеграллы
Определенные интеграллыdaryaartuh
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовMikhail Kurnosov
 
Разложение на множители
Разложение на множителиРазложение на множители
Разложение на множителиSchool 242
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовMikhail Kurnosov
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Mikhail Kurnosov
 
Мысль №5
Мысль №5Мысль №5
Мысль №5rasparin
 

Similar to Лекция №7 "Машина опорных векторов" (20)

Структурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовойСтруктурный SVM и отчет по курсовой
Структурный SVM и отчет по курсовой
 
8.b proizvodnye
8.b proizvodnye8.b proizvodnye
8.b proizvodnye
 
Конкурс презентаций - Голичева
Конкурс презентаций - ГоличеваКонкурс презентаций - Голичева
Конкурс презентаций - Голичева
 
Мезенцев Павел - Машинное обучение на MapReduce
Мезенцев Павел - Машинное обучение на MapReduceМезенцев Павел - Машинное обучение на MapReduce
Мезенцев Павел - Машинное обучение на MapReduce
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
 
Derivative lesson
Derivative lessonDerivative lesson
Derivative lesson
 
метод замены множителей
метод замены множителейметод замены множителей
метод замены множителей
 
Metody resheniya kvadratnyh_uravnenij
Metody resheniya kvadratnyh_uravnenijMetody resheniya kvadratnyh_uravnenij
Metody resheniya kvadratnyh_uravnenij
 
20091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture0820091108 algorithmsfornphardproblems kulikov_lecture08
20091108 algorithmsfornphardproblems kulikov_lecture08
 
эскизирование графиков
эскизирование графиковэскизирование графиков
эскизирование графиков
 
Метод проекции градиента для решения стационарной системы Стокса как задачи ...
Метод проекции градиента для решения стационарной системы Стокса  как задачи ...Метод проекции градиента для решения стационарной системы Стокса  как задачи ...
Метод проекции градиента для решения стационарной системы Стокса как задачи ...
 
Differencirovanie pokazatelnoj i_logarifmicheskoj_
Differencirovanie pokazatelnoj i_logarifmicheskoj_Differencirovanie pokazatelnoj i_logarifmicheskoj_
Differencirovanie pokazatelnoj i_logarifmicheskoj_
 
Определенные интегралы
Определенные интегралыОпределенные интегралы
Определенные интегралы
 
Определенные интеграллы
Определенные интеграллыОпределенные интеграллы
Определенные интеграллы
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
презентация к уроку2
презентация к уроку2презентация к уроку2
презентация к уроку2
 
Разложение на множители
Разложение на множителиРазложение на множители
Разложение на множители
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
Мысль №5
Мысль №5Мысль №5
Мысль №5
 

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
 
Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"Technosphere1
 
Webdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django ViewsWebdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django ViewsTechnosphere1
 
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)
 

Лекция №7 "Машина опорных векторов"

  • 1. Лекция 7 Машина опорных векторов Николай Анохин 6 ноября 2014 г.
  • 3. Постановка задачи Пусть дан набор объектов D = {(xi , yi )}, xi ∈ X, yi ∈ Y, i ∈ 1, . . . , N, полученный из неизвестной закономерности y = f (x). Необходимо выбрать из семейства параметрических функций H = {h(x, θ) : X × Θ → Y} такую h∗ (x) = h(x, θ∗ ), которая наиболее точно апроксимирует f (x). Задачи Регрессия: Y = [a, b] ⊂ R Классификация: |Y| < C 2 / 29
  • 6. Обобщенные линейные модели Обучающая выборка X = (x1, . . . , xN ) Значения целевой переменной t1, . . . , tN ; tj ∈ {−1, +1} Функция принятия решения y(x) = w φ(x) + b Разделяющая плоскость (РП) yi (xi)ti > 0 Решений много: как выбрать? 5 / 29
  • 7. Максимальный зазор 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 / 29
  • 8. Задача оптимизации Расстояние от точки 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 / 29
  • 9. Метод множителей Лагранжа 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 / 29
  • 10. Сопряженная задача Сорпяженная задача ˜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 / 29
  • 11. Классификация Функция принятия решения 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 / 29
  • 12. Линейно-разделимый случай Задача Дана обучающая выборка x1 x2 t x1 1 −2 1 x2 1 2 −1 Найти оптимальную разделяющую плоскость, используя сопряженную задачу оптимизации 11 / 29
  • 14. Смягчение ограничений Переменные ξ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 / 29
  • 15. Сопряженная задача Сорпяженная задача ˜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 / 29
  • 16. Классификация Функция принятия решения 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 / 29
  • 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 16 / 29
  • 18. Численные методы оптимизации Chunking (Vapnik, 1982) Decomposition (Osuna, 1996) Sequential Minimal Optimization (Platt, 1999) 17 / 29
  • 20. Функции ядра φ(x) – функция преобразования x из исходного пространства в спрямляющее пространство Проблема: количество признаков может быть очень велико Идея Kernel Trick В процессе тренировки и применения SVM исходные векторы x используются только как аргументы в скалярном произведении k(xi , xj ) = φ(xi ) φ(xj). Но в этом случае можно избежать вычисления ϕ(x)! 19 / 29
  • 21. Теорема Мерсера Теорема Функция k(x, z) является ядром тогда и только тогда, когда она симметрична k(x, z) = k(z, x) неотрицательно определена x∈X z∈X k(x, z)g(x)g(z)dxdz 0, ∀g(x) : X → R Задача Пусть x ∈ R2 , а преобразование φ(x) φ(x) = (1, √ 2x1, √ 2x2, x2 1 , √ 2x1x2, x2 2 ). Проверить, что функция k(x, z) = (1 + x z)2 является функцией ядра для данного преобразования. 20 / 29
  • 22. Некоторые стандартные функции ядра Линейное ядро 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) 21 / 29
  • 25. Связь с линейными моделями Задача оптимизации 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, иначе 24 / 29
  • 26. Stochastic Gradient Descent Градиентный спуск wk+1 = wk − η(k) 1 N N n=1 wl(xn, w, tn) Стохастический градиентный спуск wk+1 = wk − η(k) wl(xk, w, tk ) Усредненный стохастический градиентный спуск ¯wk = 1 k k j=1 wj wk+1 = wk − η(k) wl(xk, w, tk ), ¯wk+1 = k k + 1 ¯wk + 1 k + 1 wk+1 Сходимость: k η2 k < ∞, k ηk = ∞ 25 / 29
  • 27. SGD tips Использовать SGD, когда обучение модели занимает слишком много времени Перемешать тренировочную выборку Следить за training error и validation error Поверять, правильно ли вычисляется градиент Q(z, w + δ) ≈ Q(z, w) + δg Подобрать η0 на небольшой выборке ηk = η0(1 + η0λk)−1 , λ – параметр регуляризации 26 / 29
  • 28. SVM – итоги + Нелинейная разделяющая поверхность + Глобальая оптимизация + Разреженное решение + Хорошая обобщающая способность - Не поддерживает p(Ck |x) - Чувствительность к выбросам - Нет алгоритма выбора ядра - Медленное обучение 27 / 29
  • 29. Эксперименты над SVM В задаче рассматриваются 4 алгоритма генерации обучающих выборок. Требуется разработать функцию, автоматически подбирающую параметры модели SVM в зависимости от полученной выборки. Инструкция по выполнению задания 1. Скачать код http://bit.ly/1y26EF4 2. Запустить хелп, при желании изучить $ python svm.py -h $ python svm.py cc -h 3. Запустить какой-нибудь пример, разобраться с картинкой $ python svm.py gauss 4. Работать над кодом (функция select_model) 28 / 29