Содержание
Линейно разделимый случай SVM[]
Пусть дана выборка
Линейный классификатор:
Какой геометрический смысл у линейного классификатора? Он строит гиперплоскость, которая задается уравнением:
И объекты лежащие по разные стороны от разделяющей поверхности классификатор относит к разным классам. Возьмем из обучающий выборки объект, лежащий ближе всего к разделяющей поверхности. И пусть для него выполнено следующее равенство:
Найдем расстояние от него до гиперплоскости. Известно, что расстояние может быть посчитано по формуле:
В нашем случае расстояние до гиперплоскости равно .Таким образом ширина разделяющей полосы будет равна
и наша задача заключается в нахождении вектора . Он должен быть таким, чтобы гиперплоскость линейно разделяла нашу выборку и ширина зазора между классами была максимальной. Зачем это нужно? Мы знаем, что чем больше значение тем классификатор увереннее в ответе. Поэтому мы и хотим увеличить ширину зазора между классами, чтобы повысить качество классификации.Итак, перейдем к математической постановке задачи:
Заметим, что второе и третье уравнение можно переписать в виде одного:
Если точка
- решение задачи, то для - тоже решение. Положим , т.к. мы можем масштабировать .Итого получим следующую задачу:
Выделяют два типа объектов:
- Опорные вектора:
- Неинформативные векторы:
Но все это не имеет отношения к жизни, потому что линейно разделимых выборок не бывает.
Линейно неразделимый случай SVM[]
Теперь рассмотрим случай, когда не удается линейно разделить выборку на два класса. Решать задачу по новой не хочется, поэтому ослабим условие предыдущей задачи. Т.е. разрешим объектам из одного класса попадать в область второго класса.
надо как-то штрафовать, чтобы они не были слишком большими. В итоге получим следующую задачу:
Параметр
определяет цену ошибки классификации. Заметим, что в качестве штрафа мы также могли взять .Классификация типов объектов[]
Выделяют несколько типов объектов:
- Неинформативные:
- Опорные векторы:
- Граничные опорные векторы:
- Опорные вектора-нарушители:
- - векторы, лежащие внутри разделяющей полосы, но в своем классе
- - векторы, которые классифицируются неверно
Какой функции потерь и регуляризатору соответствует SVM?[]
Рассмотрим еще раз линейно неразделимый случай SVM.
Постараемся избавиться от
. Ясно, что из последних двух неравенства можем получить:Или иначе это можно записать:
И тогда нашу задачу можно переписать в виде:
Это и есть функция потерь, которую мы пытаемся минимизировать. Видно, что в данном случае используется
регуляризация, а функция потерь является кусочно - линейной.Вывод решения[]
Запишем еще раз условия задачи:
Запишем Лагранжиан:
Выпишем Условия Куна-Таккера:
Воспользуемся этими условиями и перепишем Лагранжиан:
Таким образом мы перешли к двойственной задаче:
Обобщение через ядра[]
Вместо скалярного произведения можно использовать ядра:
В этом случае классификатор будет иметь вид: