Метод опорных векторов
Метод опорных векторов (support vector machine, SVM [1]) является одним из самых популярных метод классификации. Его популярности способствует:
-
Геометрическая интерпретация - в линейно разделимом случае бинарной классификации он разделяет классы таким образом, чтобы обеспечить максимальное расстояние от ближайших объектов разных классов до разделяющей гиперплоскости, что способствует высокой обобщающей способности метода.
-
Возможность выразить формулу построения прогноза через скалярные произведения одних объектов на другие. Заменяя скалярные произведения на другие функции (из определённого класса) можно обобщить метод, превратив его из линейного классификатора в нелинейный.
Далее мы рассмотрим геометрическое обоснование метода опорных векторов в случае, когда классы линейно разделимы. Потом обобщим метод на случай линейно неразделимых классов. В конце рассмотрим обобщение метода опорных векторов на многоклассовый случай и приведём пример запуска метода в python, используя библиотеку sklearn.
Бинарная классификация
Линейно разделимый случай
Рассмотрим бинарную классификацию в случае, когда классы линейно разделимы (linearly separable), то есть когда существует линейная гиперплоскость, безошибочно разделяющая классы на объектах обучающей выборки.
Как видно на рисунке ниже, в линейно разделимом случае решение будет неоднозначным - существует много гиперплоскостей, разделяющих объекты разных классов:
При этом способ разделения справа является более предпочтительным, поскольку зазор (margin, пограничная полоса между объектами разных классов) шире, что обеспечивает более высокую обобщающую способность классификатора при применении его к новым данным тестовой выборки.
Действительно, при предположении, что объекты одного класса похожи друг на друга, новые объекты красного класса будут появляться рядом с известными представителями красного класса. То же справедливо и для новых представителей зелёного класса. Если гиперплоскость пр оведена таким образом, чтобы быть максимально удалённой от представителей каждого класса, то вероятность ошибки на новых данных будет ниже!
Формализуем критерий нахождения гиперплоскости таким образом, чтобы максимизировать расстояние до представителей каждого класса.
Гиперплоскость разделяет классы , если выполнены следующие условия:
где - некоторый параметр. Это проиллюстрировано ниже:
Параметры определены с точностью до общего положительного множителя, поэтому, не ограничивая общности, условие разделимости можно записать в виде:
где мы разделили неравенства на . Это равнозначно выбору .
Условие разделимости классов можно эквивалентно записать одной строкой:
Теперь среди всех гиперплоскостей, разделяющих классы, мы бы хотели выбрать ту, которая будет максимизировать пограничную полосу между классами, называемую зазором (margin). Для этого нужно, чтобы расстояние от ближайших объектов обучающей выборки до гиперплоскости оказалось наибольшим.
Как показывалось ранее, это расстояние равно:
Поскольку ближайшие объекты будут лежать на гиперплоскостях , а взят равным единице, то расстояние от гиперплоскости до ближайших объектов будет , а зазор будет равен .
Отсюда получаем оптимизационную задачу для нахождения безошибочного линейного классификатора, обеспечивающего максимизацию зазора:
Используя свойство
получим окончательный вид оптимизационной задачи для нахождения весов метода опорных векторов в линейно разделимом случае:
Оптимизационную задачу выше можно проинтерпре тировать как нахождение такого линейного классификатора, который:
-
обеспечивает уверенную классификацию всех объектов (с отступом не ниже единицы)
-
является максимально простым за счёт минимизации L2-нормы весов.
Заметим, что решение будет зависеть только от объектов, имеющих отступ , которые лежат на гиперплоскостях
и называются опорными векторами (support vectors).
Включение/исключение других объектов с отступом не будет оказывать влияния на решение, поэтому такие объекты называются неинформативными (non-informative).