Учитывая линейно разделяемый набор данных, нужно ли лучше использовать SVM с твердым краем над SVM с мягким запасом?
SVM - твердые или мягкие поля?
Ответ 1
Я ожидал бы, что SVM с мягким полем будет лучше, даже когда обучающий набор данных линейно разделим. Причина в том, что в SVM с жестким полем один выброс может определить границу, что делает классификатор чрезмерно чувствительным к шуму в данных.
На диаграмме ниже один красный выброс по существу определяет границу, которая является отличительной чертой переоснащения
Чтобы понять, что делает SVM с мягким полем, лучше взглянуть на него в двойной формулировке, где вы можете видеть, что у него та же цель максимизации маржи (маржа может быть отрицательной), что и у SVM с жестким полем, но с дополнительным ограничением, что каждый множитель Лагранжа, связанный с опорным вектором, ограничен C. По существу, это ограничивает влияние любой отдельной точки на границе решения, для деривации, см. Предложение 6.12 в Cristianini/Shaw-Taylor "Введение в опорный вектор". Машины и другие основанные на ядре методы обучения ".
В результате SVM с мягким полем может выбрать границу принятия решения, которая имеет ненулевую ошибку обучения, даже если набор данных линейно разделим и с меньшей вероятностью будет соответствовать.
Вот пример использования libSVM по синтетической проблеме. Обведенные кружками точки обозначают опорные векторы. Вы можете видеть, что уменьшение C приводит к тому, что классификатор жертвует линейной отделимостью, чтобы добиться стабильности, в том смысле, что влияние любого отдельного элемента данных теперь ограничено C.
Значение опорных векторов:
Для SVM с жестким полем опорные векторы - это точки, которые "на полях". На рисунке выше, C = 1000 довольно близко к SVM с жестким полем, и вы можете видеть, что точки, которые будут касаться поля, обозначены кружочками (на этом рисунке запас почти равен 0, поэтому он по сути такой же, как и у разделяющей гиперплоскости). )
Для мягкого поля SVM легче объяснить их в терминах двойных переменных. Ваш предиктор опорных векторов в терминах двойных переменных является следующей функцией.
Здесь alphas и b - это параметры, которые можно найти во время процедуры обучения, xi, yi - ваш тренировочный набор, а x - новая точка данных. Вспомогательные векторы - это точки данных из обучающего набора, которые включены в предиктор, т.е. Те, которые имеют ненулевой альфа-параметр.
Ответ 2
По моему мнению, жесткая маржа SVM переоценивает конкретный набор данных и поэтому не может обобщить. Даже в линейно разделяемом наборе данных (как показано на приведенной выше диаграмме) выбросы в пределах границ могут влиять на маржу. Мягкая маржа SVM имеет большую универсальность, потому что мы контролируем выбор векторов поддержки путем настройки C.