SVM - жесткие или мягкие поля? - PullRequest
54 голосов
/ 07 января 2011

Учитывая линейно разделяемый набор данных, обязательно ли лучше использовать SVM с жестким полем над SVM с мягким полем?

Ответы [ 2 ]

122 голосов
/ 08 января 2011

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

На диаграмме ниже один красный выброс по существу определяет границу, которая является отличительной чертой переоснащения

enter image description here

Чтобы понять, что делает SVM с мягким полем, лучше взглянуть на него в двойной формулировке, где вы можете видеть, что у него та же цель максимизации маржи (маржа может быть отрицательной), что и у жесткого margin SVM, но с дополнительным ограничением на то, что каждый множитель Лагранжа, связанный с опорным вектором, ограничен C. По существу, это ограничивает влияние любой отдельной точки на границе решения, для вывода см. Предложение 6.12 в "Введение Кристианини / Шоу-Тейлора". для поддержки векторных машин и других методов обучения, основанных на ядре ".

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

Вот пример использования libSVM для искусственной проблемы. Обведенные кружками точки показывают векторы поддержки. Вы можете видеть, что уменьшение C приводит к тому, что классификатор жертвует линейной отделимостью, чтобы добиться стабильности, в том смысле, что влияние любого отдельного элемента данных теперь ограничено C.

enter image description here

Значение векторов поддержки:

Для SVM с жестким полем опорные векторы - это точки, которые «на полях». На картинке выше, C = 1000 довольно близко к SVM с жестким полем, и вы можете видеть, что точки, обозначенные кружком, будут касаться поля (на этом рисунке поле почти равно 0, так что оно по сути совпадает с разделяющей гиперплоскостью )

Для SVM с мягким полем легче объяснить их в терминах двойных переменных. Ваш предиктор опорных векторов в терминах двойных переменных является следующей функцией.

enter image description here

Здесь alphas и b - это параметры, которые можно найти во время процедуры обучения, xi, yi - это ваш тренировочный набор, а x - это новая точка данных. Вспомогательные векторы - это точки данных из обучающего набора, которые включены в предиктор, т. Е. С ненулевым альфа-параметром.

3 голосов
/ 15 октября 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...