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

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:Redirect

Метод опорных векторов (Шаблон:Lang-en) — набор схожих алгоритмов обучения с учителем, использующихся для задач классификации и регрессионного анализа. Принадлежит семейству линейных классификаторов и может также рассматриваться как частный случай регуляризации по Тихонову. Особым свойством метода опорных векторов является непрерывное уменьшение эмпирической ошибки классификации и увеличение зазора, поэтому метод также известен как метод классификатора с максимальным зазором.

Основная идея метода — перевод исходных векторов в пространство более высокой размерности и поиск разделяющей гиперплоскости с наибольшим зазором в этом пространстве. Две параллельных гиперплоскости строятся по обеим сторонам гиперплоскости, разделяющей классы. Разделяющей гиперплоскостью будет гиперплоскость, обеспечивающая наибольшее расстояние до двух параллельных гиперплоскостей. Алгоритм основан на допущении, что чем больше разница или расстояние между этими параллельными гиперплоскостями, тем меньше будет средняя ошибка классификатора.

Постановка задачи

Несколько классифицирующих разделяющих прямых (гиперплоскостей), из которых только одна соответствует оптимальному разделению

Часто в алгоритмах машинного обучения возникает необходимость классифицировать данные. Каждый объект данных представляется как вектор (точка) в p-мерном пространстве (упорядоченный набор p чисел). Каждая из этих точек принадлежит только одному из двух классов. Вопрос состоит в том, можно ли разделить точки гиперплоскостью размерности (p−1). Это — типичный случай линейной разделимости. Искомых гиперплоскостей может быть много, поэтому полагают, что максимизация зазора между классами способствует более уверенной классификации. То есть, можно ли найти такую гиперплоскость, чтобы расстояние от неё до ближайшей точки было максимальным. Это эквивалентноШаблон:Sfn тому, что сумма расстояний до гиперплоскости от двух ближайших к ней точек, лежащих по разные стороны от неё, максимальна. Если такая гиперплоскость существует, она называется оптимальной разделяющей гиперплоскостью, а соответствующий ей линейный классификатор называется оптимально разделяющим классификатором.

Формальное описание задачи

Мы полагаем, что точки имеют вид:

{(𝐱1,c1),(𝐱2,c2),,(𝐱n,cn)}

где ci принимает значение 1 или −1, в зависимости от того, какому классу принадлежит точка 𝐱i. Каждое 𝐱i — это p-мерный вещественный вектор, обычно нормализованный значениями [0,1] или [1,1]. Если точки не будут нормализованы, то точка с большими отклонениями от средних значений координат точек слишком сильно повлияет на классификатор. Мы можем рассматривать это как обучающую выборку, в которой для каждого элемента уже задан класс, к которому он принадлежит. Мы хотим, чтобы алгоритм метода опорных векторов классифицировал их таким же образом. Для этого мы строим разделяющую гиперплоскость, которая имеет вид:

Оптимальная разделяющая гиперплоскость для метода опорных векторов, построенная на точках из двух классов. Ближайшие к параллельным гиперплоскостям точки называются опорными векторами
𝐰𝐱b=0.

Вектор 𝐰 — перпендикуляр к разделяющей гиперплоскости. Параметр b𝐰 равен по модулю расстоянию от гиперплоскости до начала координат. Если параметр b равен нулю, гиперплоскость проходит через начало координат, что ограничивает решение.

Так как нас интересует оптимальное разделение, нас интересуют опорные вектора и гиперплоскости, параллельные оптимальной и ближайшие к опорным векторам двух классов. Можно показать, что эти параллельные гиперплоскости могут быть описаны следующими уравнениями (с точностью до нормировки).

𝐰𝐱b=1,
𝐰𝐱b=1.

Если обучающая выборка линейно разделима, то мы можем выбрать гиперплоскости таким образом, чтобы между ними не лежала ни одна точка обучающей выборки и затем максимизировать расстояние между гиперплоскостями. Ширину полосы между ними легко найти из соображений геометрии, она равна 2𝐰[1], таким образом наша задача минимизировать 𝐰. Чтобы исключить все точки из полосы, мы должны убедиться для всех i, что

[𝐰𝐱𝐢b1, ci=1𝐰𝐱𝐢b1, ci=1

Это может быть также записано в виде:

ci(𝐰𝐱𝐢b)1,1in.(1)

Случай линейной разделимости

Задача построения оптимальной разделяющей гиперплоскости сводится к минимизации 𝐰, при условии (1). Это задача квадратичной оптимизации, которая имеет вид:

{𝐰2minci(𝐰𝐱𝐢b)1,1in.

По теореме Куна — Таккера эта задача эквивалентна двойственной задаче поиска седловой точки функции Лагранжа

{𝐋(𝐰,𝐛;λ)=12𝐰2i=1nλ𝐢(ci((𝐰𝐱𝐢)b)1)minw,bmaxλλ𝐢0,1in(2)

где λ=(λ𝟏,,λ𝐧) — вектор двойственных переменных.

Сведем эту задачу к эквивалентной задаче квадратичного программирования, содержащую только двойственные переменные:

{𝐋(λ)=i=1nλ𝐢+12i=1nj=1nλ𝐢λ𝐣cicj(𝐱𝐢𝐱𝐣)minλλ𝐢0,1ini=1nλ𝐢ci=0(3)

Допустим мы решили данную задачу, тогда 𝐰 и 𝐛 можно найти по формулам:

𝐰=i=1nλ𝐢ci𝐱𝐢
𝐛=𝐰𝐱𝐢ci,λi>0

В итоге алгоритм классификации может быть записан в виде:

a(x)=sign(i=1nλ𝐢ci𝐱𝐢𝐱b)(4)

При этом суммирование идёт не по всей выборке, а только по опорным векторам, для которых λ𝐢0.

Случай линейной неразделимости

Для того, чтобы алгоритм мог работать в случае, если классы линейно неразделимы, позволим ему допускать ошибки на обучающей выборке. Введём набор дополнительных переменных ξi0, характеризующих величину ошибки на объектах 𝐱i,1in. Возьмём за отправную точку (2), смягчим ограничения неравенства, так же введём в минимизируемый функционал штраф за суммарную ошибку:

{12𝐰2+Ci=1nξiminw,b,ξici(𝐰𝐱𝐢b)1ξi,1inξi0,1in

Коэффициент C — параметр настройки метода, который позволяет регулировать отношение между максимизацией ширины разделяющей полосы и минимизацией суммарной ошибки.

Аналогично, по теореме Куна-Таккера сводим задачу к поиску седловой точки функции Лагранжа:

{𝐋(𝐰,𝐛,ξ;λ,η)=12𝐰2i=1nλ𝐢(ci((𝐰𝐱𝐢)b)1)i=1nξ𝐢(λ𝐢+η𝐢C)minw,b,ξmaxλ,ηξ𝐢0,λ𝐢0,η𝐢0,1in[λ𝐢=0ci(𝐰𝐱𝐢b)=1ξi,1in[η𝐢=0ξ𝐢=0,1in

По аналогии сведём эту задачу к эквивалентной:

{𝐋(λ)=i=1nλ𝐢+12i=1nj=1nλ𝐢λ𝐣cicj(𝐱𝐢𝐱𝐣)minλ0λ𝐢𝐂,1ini=1nλ𝐢ci=0

На практике для построения машины опорных векторов решают именно эту задачу, а не (3), так как гарантировать линейную разделимость точек на два класса в общем случае не представляется возможным. Этот вариант алгоритма называют алгоритмом с мягким зазором (soft-margin SVM), тогда как в линейно разделимом случае говорят о жёстком зазоре (hard-margin SVM).

Для алгоритма классификации сохраняется формула (4), с той лишь разницей, что теперь ненулевыми λ𝐢 обладают не только опорные объекты, но и объекты-нарушители. В определённом смысле это недостаток, поскольку нарушителями часто оказываются шумовые выбросы, и построенное на них решающее правило, по сути дела, опирается на шум.

Константу C обычно выбирают по критерию скользящего контроля. Это трудоёмкий способ, так как задачу приходится решать заново при каждом значении C.

Если есть основания полагать, что выборка почти линейно разделима, и лишь объекты-выбросы классифицируются неверно, то можно применить фильтрацию выбросов. Сначала задача решается при некотором C, и из выборки удаляется небольшая доля объектов, имеющих наибольшую величину ошибки ξ𝐢. После этого задача решается заново по усечённой выборке. Возможно, придётся проделать несколько таких итераций, пока оставшиеся объекты не окажутся линейно разделимыми.

Ядра

Алгоритм построения оптимальной разделяющей гиперплоскости, предложенный в 1963 году Владимиром Вапником и Алексеем Червоненкисом — алгоритм линейной классификации. Однако в 1992 году Бернхард Босер, Изабель Гийон и Вапник предложили способ создания нелинейного классификатора, в основе которого лежит переход от скалярных произведений к произвольным ядрам, так называемый kernel trick (предложенный впервые М. А. Айзерманом, Э. М. Браверманом и Л. И. Розоноэром для метода потенциальных функций), позволяющий строить нелинейные разделители. Результирующий алгоритм крайне похож на алгоритм линейной классификации, с той лишь разницей, что каждое скалярное произведение в приведённых выше формулах заменяется нелинейной функцией ядра (скалярным произведением в пространстве с большей размерностью). В этом пространстве уже может существовать оптимальная разделяющая гиперплоскость. Так как размерность получаемого пространства может быть больше размерности исходного, то преобразование, сопоставляющее скалярные произведения, будет нелинейным, а значит функция, соответствующая в исходном пространстве оптимальной разделяющей гиперплоскости, будет также нелинейной.

Если исходное пространство имеет достаточно высокую размерность, то выборка может быть линейно разделимой.

Наиболее распространённые ядра:

  • Полиномиальное (однородное): k(𝐱,𝐱)=(𝐱𝐱)d
  • Полиномиальное (неоднородное): k(𝐱,𝐱)=(𝐱𝐱+1)d
  • Радиальная базисная функция: k(𝐱,𝐱)=exp(γ𝐱𝐱2), для γ>0
  • Радиальная базисная функция Гаусса: k(𝐱,𝐱)=exp(𝐱𝐱22σ2)
  • Сигмоид: k(𝐱,𝐱)=tanh(κ𝐱𝐱+c), для почти всех κ>0 и c<0

См. также

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:Типы искусственных нейронных сетей Шаблон:Машинное обучение