Теория машинного обучения

Машины опорных векторов (SVM): важные выводы

Всесторонне объясненная и визуализированная теория SVM

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

Введение

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

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

Классификаторы машинного обучения можно разделить на множество категорий. Два популярных вида классификаторов:

  • Оценщики апостериорных вероятностей
  • Прямые оценки границ решений

Модели, которые оценивают апостериорные вероятности, представляют собой, например, наивные байесовские классификаторы, логистическую регрессию или даже нейронные сети. Эти модели пытаются воссоздать функцию апостериорной вероятности. Затем эту приблизительную функцию апостериорной вероятности можно оценить, чтобы определить вероятность принадлежности выборки к каждому классу, а затем принять решение.

Прямые оценки границы решения, такие как перцептроны и машины опорных векторов (SVM), не пытаются изучить функцию вероятности, вместо этого они изучают «линию» или многомерную гиперплоскость, которую можно использовать для определения класса. каждого образца. Если образец находится по одну сторону гиперплоскости, он принадлежит классу, в противном случае он принадлежит другому.

Эти два подхода принципиально разные, и они могут повлиять на результаты работы классификатора.

Методы ядра

SVM — это метод ядра. Методы ядра используют ядра для сопоставления пространства входных данных с пространством более высокой размерности, где предполагается, что данные линейно разделимы. В этом новом пространстве обучается линейный классификатор и маркируются данные.

Но что такое ядра?

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

Для SVM важно, чтобы ядра были положительно полуопределенными. Это связано с трюком с ядром, о котором вы, возможно, уже слышали. Если мы выберем положительное полуопределенное ядро, то будет существовать функция такая, что ядро ​​равно скалярному произведению расширенного пространства признаков.

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

Как SVM учатся?

В этом разделе я расскажу, как обычно обучаются SVM. Позже я пройдусь по математике, чтобы понять, почему они учатся именно так.

SVM все об определении границы решения. Граница решения — это гиперплоскость (или линия в двух измерениях), где линия решает, к какому классу принадлежат данные, в зависимости от того, на какой стороне они находятся.

Чтобы найти лучшую линию, SVM оптимизирует следующие критерии:

Нам нужно найти границу решения, которая максимизирует расстояние от ближайших точек до границы каждого класса.

Позволь мне объяснить; сначала возьмите начальную границу и найдите ближайшие к ней точки из любого класса. Ближайшие точки к границе решения называются опорными векторами, и это только те точки, которые влияют на границу решения. Когда у нас есть опорные векторы, мы находим линию, наиболее удаленную от этих опорных векторов.

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

Математически выражая вышесказанное

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

Расстояние точки от линии

Как вы, возможно, помните из начальной школы, учитывая уравнение линии, подстановка координат любой точки над линией будет равняться значению выше нуля, а любая точка ниже линии будет равняться значению ниже нуля.

Мы можем выразить одно и то же уравнение прямой в векторной форме и в виде функции нашего ядра ϕ.

В приведенных выше уравнениях первое — это то же уравнение линии, что и на изображении выше, второе — то же уравнение в векторной форме. В третьем случае пространство входных данных (x) может быть отображено в пространство признаков с помощью ядра ϕ(x).

Третье уравнение выражает нашу границу решения y(x) как функцию весов и смещений (w, b) и пространства признаков данных ϕ(x).

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

Поскольку эта точка находится ниже линии, это расстояние будет отрицательным, а если бы точка находилась над линией, расстояние было бы положительным.

Постановка проблемы

Вернемся к проблеме классификации SVM.

Таким образом, мы определили нашу границу решения y(x) как функцию наших весов и смещений (w, b), нашей функции ядра (ϕ) и данных (x).

В любой задаче классификации с учителем нам даны данные (x) и метки данных (t). Для двоичной задачи метки будут либо 1, либо -1.

Цель состоит в том, чтобы найти веса и смещения (w, b), где y(x) > 0 для одного из классов и y(x) ‹ 0 для другого класса. Помните изображение, которое я показывал ранее, это означает, что каждый класс будет находиться по обе стороны от границы решения.

Целевая функция

Это, наконец, приводит нас к целевой функции. Это функция, которая при решении дает веса и смещения (w, b) нашей границы решения.

Сначала загляните внутрь минимизации. Мы ищем индекс n, который минимизирует расстояние между точкой данных (Xn) и границей решения y(Xn).

Единственное отличие состоит в том, что мы умножаем на принадлежность к классу tn. Членство в классе равно 1, если расстояние положительное, и -1, если расстояние отрицательное. Умножение на класс ловко преобразует знак расстояния в положительный, когда классификация верна, и в отрицательный, когда она неверна.

Максимизация находит веса и смещения (w, b), граница решения которых максимизирует расстояние между границей решения и ближайшими точками.

Решение проблемы оптимизации

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

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

Добавленное ограничение просто масштабирует оценку линии ближайших точек к границе решения, чтобы она была равна 1. Следовательно, для любых других точек в данных оно будет больше или равно 1:

Подставив ограничение обратно в нашу целевую функцию, задача оптимизации сводится к следующему:

Минимизация по n исчезает, поскольку w не зависит от n.

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

В методе множителей Лагранжа мы хотим максимизировать указанный выше лагранжиан. Первый член в правой части — это целевая функция, которую мы пытаемся максимизировать. Второй член - это множители Лагранжа, а третий - наш член ошибки, полученный из ограничения неравенства. Максимизация лагранжиана эквивалентна решению задачи оптимизации.

Чтобы максимизировать, мы приравниваем производные выражения по b и w к 0, затем снова подставляем результаты.

Подключив w обратно, мы получим:

Этот лагранжиан можно решить. Необходимы некоторые дополнительные ограничения (множители Лагранжа должны быть неотрицательными, а опорные векторы для каждого класса должны быть одинаковыми).

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

Мягкая маржа SVM

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

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

Вот SVM с мягкой маржой, чтобы закончить:

Заключение

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

Поддержите меня

Надеюсь, это помогло вам, если вам понравилось, вы можете подписаться на меня!

Вы также можете стать средним участником, используя мою реферальную ссылку, получить доступ ко всем моим статьям и многому другому: https://diegounzuetaruedas.medium.com/membership

Другие статьи, которые могут вам понравиться