Опорные векторные машины

машинное обучение

Эта статья является основной записью «Wu Enda Machine Learning».

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

Поддержка векторных машин или SVM для краткости. Он обеспечивает более четкий и мощный способ изучения сложных нелинейных уравнений, чем логистическая регрессия и нейронные сети. Его гипотетическая функция:

\min_{\theta}C\sum_{i=1}^{m}[y^{(i)}cost_{1}(\theta^{T}x^{(i)}) + (1 - y^{(i)})cost_{0}(\theta^{T}x^{(i)})]+\frac{1}{2}\sum_{i=1}^{n}\theta_{j}^{2}

Для логистической регрессии

cost_{1}(\theta^{T}x^{(i)})->-logh_{\theta}({x^{(i)})}

cost_{0}(\theta^{T}x^{(i)})->-logh_{\theta}^{x^{(i)}}(1-h_{\theta}(x^{(i)}))

Если у вас положительный образец (y = 1), то нам требуется только\theta^{T}x > 0, выборку можно правильно классифицировать, потому что если\theta^{T}x > 0Если , значение функции стоимости нашей модели равно 0. Точно так же, если у вас отрицательный образец, вам нужно только\theta^{T}x < 0будет правильно отделить негативы.

Однако к машинам опорных векторов предъявляются более высокие требования не только к правильному разделению входных отсчетов, то есть не только к\theta^{T}x > 0, нам нужно гораздо большее значение, чем 0, например, больше или равно 1, я также хочу, чтобы оно было намного меньше 0, например, я хочу, чтобы оно было меньше или равно -1, что эквивалентно включению дополнительного фактора безопасности в машину опорных векторов или фактора безопасного расстояния. Как тренировать этот запас прочности?

Понимание классификаторов с большими интервалами

В SVM мы можем поместитьпараметр Спонимается как\frac{1}{\lambda},следовательно:

Cбольше, эквивалентно\lambdaНебольшой, может привести к переоснащению, высокая дисперсия.

Cменьше, эквивалентно\lambdaБольше, может привести к низкой посадке и высокой смещении.

Например, мы используем черную границу решения и розовую границу решения выше.SVMПосле тренировки, если вы установите C больше, вы получите эту розовую линию, а если вы установите меньше, вы получите черную линию. Вот почему SVM также называетсяКлассификатор с большим интерваломинтуитивное понимание.

Математические принципы больших границ

Давайте посмотрим на границу решения SVM:

Вышеp^{(i)}\centerdot \lVert\theta\lVert >= 1это\theta^{T}x >= 1

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

Используя знания линейной алгебры, можно показать, что эта граница зеленого решения имеет перпендикулярный к ней вектор.\theta. На рисунке выше видно, что образец для\thetaпроекцияp^{(i)}относительно невелики, что приводит к окончательной минимизации\thetaбольше

  1. Предположим, SVM выбирает зеленую линию справа на рисунке выше в качестве границы решения.

На этом этапе вы найдете образец для\thetaпроекцияp^{(i)}больше, чем на рисунке слева, поэтому соответствующие\thetaбудет намного меньше, а именно:

\min_{\theta}\frac{1}{2}\sum_{j=1}^{n}\theta_{j}^{2}

То есть SVM попытается максимизироватьp^{i}Эти нормы (они представляют собой расстояния от обучающих выборок до границы решения), поэтому SVM в конечном итоге находят классификаторы с большими запасами.

Использование SVM

Основная идея функции ядра Kernel Function

Например, если мы хотим сегментировать положительные и отрицательные образцы на изображении выше, мы можем использовать функцию ядра для создания новых функций:

Выше приведены некоторые из случайно выбранных ориентиров.l^{(1)},l^{(2)},l^{(3)}, мы используем их с обучающими выборкамиxприближение к выбору новых функцийf_{1}, f_{2}, f_{3}, Напримерf_{1} :

f_{1} = similarity(x,l^{(1)}) = e(-\frac{\lVert x-l^{(1)}\lVert^{2}}{2\sigma^{2}})

в\lVert x-l^{(1)}\lVert^{2} = \sum_{j=1}^{n}(x_{j}-l_{j}^{1})^{2}, НапримерxВсе особенности и достопримечательности вl^{(1)}расстояние между и.

similarity(x,l^{(1)})является функцией ядра (это функция ядра Гаусса). Роль этих ориентиров такова: если обучающая выборкаxс достопримечательностямиlРасстояние между примерно 0, новая функцияfпримерноe^{-0} = 1, если обучающая выборкаxс достопримечательностямиlРасстояние между ними тем больше, чемfпримерноe^{-(一个较大的数)}=0.

В дополнение к этой функции ядра существует множество функций ядра на выбор.

разныеlи\sigmaВлияние на функцию ядра

Координаты горизонтальной плоскости на рисунке равныx_{1}, x_{2}, а вертикальная ось представляетf. Видно, что только когдаxиl^{(1)}Он имеет максимальное значение только тогда, когда он совпадает. вместе сxизменятьfНа скорость изменения значения влияет\sigmaконтроль.

Например:

На изображении выше, когда образец находится в пурпурной точке, потому что он далек отl^{(1)}ближе, но далекоl^{(2)}иl^{(3)}дальше, такf_{1}близко к 1, аf_{2}, f_{3}близко к 0. следовательноh_{\theta}(x)=\theta_{0}+\theta_{1}f_{1}+\theta_{2}f_{2}+\theta_{3}f_{3} > 0, так предсказатьy=1. А вот для сине-зеленой точки, так как она находится далеко не от всех трех ориентиров, прогнозируютy=0.

При использовании функции ядра для прогнозирования функции, которые мы используем, являются не функциями самих обучающих выборок, а новыми функциями, вычисленными функцией ядра.f_{1},f_{2}, f_{3}.

Применение функций ядра и машин опорных векторов

-_-,Если честно, я просто понимаю принцип работы ядра, но не знаю, что это такое. . . . . Для простого понимания функций ядра обратитесь к этой статье:Начало работы с SVM — зачем нужны функции ядра

готовые к использованиюФункция ядра отображает линейно неразделимую задачу в многомерное пространство, после чего задача становится линейно разделимой.(наверное так)

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

Функция ядра должна удовлетворять теореме Мерсера, чтобы ее правильно обрабатывала программа оптимизации машины опорных векторов.

Вот эффект суммы двух параметров SVM:

C = \frac{1}{\lambda}

Cбольше, эквивалентно\lambdaНебольшой, может привести к переоснащению, высокая дисперсия;

Cменьше, эквивалентно\lambdaБольше, может привести к низкой подгонке и высокому смещению;

\sigmaКогда он больше, это может привести к низкой дисперсии и высокому смещению;

\sigmaКогда он мал, это может привести к низкому смещению и высокой дисперсии.

Как выбрать между SVM и логистической регрессией?

Часто используемые рекомендации:

n — количество признаков, а m — количество обучающих выборок.

(1) Если n намного больше, чем m, то есть количества данных в обучающей выборке недостаточно, чтобы помочь нам обучить сложную нелинейную модель, мы выбираем модель логистической регрессии или машину опорных векторов без функции ядра .

(2) Если n мало, а m среднего размера, например, n находится в диапазоне от 1 до 1000, а m находится в диапазоне от 10 до 10000, используйте метод опорных векторов с функцией ядра Гаусса.

(3) Если n мало, а m велико, например, n находится в диапазоне от 1 до 1000, а m больше 50 000, то шансы использования опорного вектора очень медленны, решение состоит в том, чтобы создать, добавить больше функций, а затем использовать логистику. регрессия или SVM без функции ядра.

Нейронные сети могут работать лучше во всех трех случаях. Основная причина выбора машины опорных векторов заключается в том, что ее функция стоимости является выпуклой функцией и не имеет локального минимума.