Ответ Райана Зотти объясняет мотивацию, лежащую в основе максимизации границ решения, а ответ Карлоса дает некоторые сходства и различия по сравнению с другими классификаторами. В этом ответе я дам краткий математический обзор того, как SVM обучаются и используются.
нотации
Далее скаляры обозначаются курсивом в нижнем регистре (например, ), векторами с жирным нижним регистром (например, ) и матрицами с курсивом в верхнем регистре (например, ) - это транспонирование и .y,bw,xWwTw∥w∥=wTw
Позволять:
- x будет вектором объектов (т. е. входом SVM). , где - размерность векторного элемента.x∈Rnn
- y быть классом (т. е. выводом SVM). , т.е. задача классификации является двоичной.y∈{−1,1}
- w и - параметры SVM: нам нужно изучить их, используя обучающий набор.b
- (x(i),y(i)) будет образцом в наборе данных. Предположим, у нас есть образцов в тренировочном наборе.ithN
При можно представить границы решений SVM следующим образом:n=2
Класс определяется следующим образом:y
y(i)={−11 if wTx(i)+b≤−1 if wTx(i)+b≥1
который может быть более кратко записан как .y(i)(wTx(i)+b)≥1
Цель
SVM стремится удовлетворить два требования:
SVM должен максимизировать расстояние между двумя границами решения. Математически это означает, что мы хотим максимизировать расстояние между гиперплоскостью, определенной и гиперплоскостью, определенной . Это расстояние равно . Это означает, что мы хотим решить . Эквивалентно, мы хотим
.wTx+b=−1wTx+b=12∥w∥maxw2∥w∥minw∥w∥2
SVM также должен правильно классифицировать все , что означаетx(i)y(i)(wTx(i)+b)≥1,∀i∈{1,…,N}
Что приводит нас к следующей квадратичной задаче оптимизации:
minw,bs.t.∥w∥2,y(i)(wTx(i)+b)≥1∀i∈{1,…,N}
Это SVM с жестким запасом , поскольку эта квадратичная задача оптимизации допускает решение, если данные линейно разделимы.
Можно ослабить ограничения, введя так называемые слабые переменные . Обратите внимание, что у каждого образца тренировочного набора есть своя переменная слабины. Это дает нам следующую квадратичную задачу оптимизации:ξ(i)
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTx(i)+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Это мягкий край SVM . - гиперпараметр, называемый штрафом за ошибку . ( Каково влияние C в SVM с линейным ядром? И какой диапазон поиска для определения оптимальных параметров SVM? ).C
Можно добавить еще больше гибкости, введя функцию которая отображает исходное пространство признаков в пространство пространственных объектов более высокого размера. Это позволяет нелинейным решениям границы. Задача квадратичной оптимизации становится:ϕ
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTϕ(x(i))+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
оптимизация
Задача квадратичной оптимизации может быть преобразована в другую задачу оптимизации, называемую лагранжевой двойственной задачей (предыдущая задача называется основной ):
maxαs.t.minw,b∥w∥2+C∑i=1Nα(i)(1−wTϕ(x(i))+b)),0≤α(i)≤C,∀i∈{1,…,N}
Эту задачу оптимизации можно упростить (установив некоторые градиенты на ) до:0
maxαs.t.∑i=1Nα(i)−∑i=1N∑j=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),0≤α(i)≤C,∀i∈{1,…,N}
w не отображается как (как указано в теореме о представителе ).w=∑Ni=1α(i)y(i)ϕ(x(i))
Поэтому мы изучаем используя обучающего набора.α(i)(x(i),y(i))
(К вашему сведению: зачем беспокоиться о двойной проблеме при установке SVM? Краткий ответ: более быстрые вычисления + позволяет использовать трюк с ядром, хотя существуют некоторые хорошие методы для обучения SVM в основном, например, см. {1})
Делать прогноз
Как только изучены, можно предсказать класс новой выборки с вектором признаков следующим образом:α(i)xtest
ytest=sign(wTϕ(xtest)+b)=sign(∑i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)
Суммирование может показаться подавляющим, поскольку это означает, что нужно суммировать по всем обучающим выборкам, но подавляющее большинство равно (см. Почему Множители Лагранжа редки для SVM? ), Поэтому на практике это не проблема. (обратите внимание, что можно построить особые случаи, когда все ) тогда и только тогда, когда является опорным вектором , Иллюстрация выше имеет 3 опорных вектора.∑Ni=1α(i)0α(i)>0α(i)=0x(i)
Трюк с ядром
Можно заметить, что задача оптимизации использует только во внутреннем произведении . Функция, которая отображает на внутреннее произведение будет называется ядро , иначе функция ядра, часто обозначается .ϕ(x(i))ϕ(x(i))Tϕ(x(j))(x(i),x(j))ϕ(x(i))Tϕ(x(j))k
Можно выбрать так, чтобы внутренний продукт был эффективным для вычисления. Это позволяет использовать потенциально большое пространство признаков при низких вычислительных затратах. Это называется трюк с ядром . Для того, чтобы функция ядра была действительной , то есть использовалась с трюком ядра, она должна удовлетворять двум ключевым свойствам . Существует множество функций ядра на выбор . Как примечание, уловка ядра может быть применена к другим моделям машинного обучения , и в этом случае они упоминаются как ядра .k
Идти дальше
Некоторые интересные QAs на SVM:
Другие ссылки:
Рекомендации: