заглушки Что такое машины опорных векторов? - Unite.ИИ
Свяжитесь с нами:
Мастер-класс по ИИ:

AI 101

Что такое машины опорных векторов?

mm
обновленный on

Что такое машины опорных векторов?

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

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

Цель опорных векторных машин

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

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

Цель машины опорных векторов состоит не только в том, чтобы рисовать гиперплоскости и разделять точки данных, но и в том, чтобы рисовать гиперплоскости, разделяющие точки данных с наибольшим запасом или с наибольшим расстоянием между разделительной линией и любой заданной точкой данных. Возвращаясь к метафоре «дороги», если градостроитель рисует план автострады, он не хочет, чтобы автострада проходила слишком близко к домам или другим зданиям. Чем больше расстояние между автострадой и зданиями по обеим сторонам, тем лучше. Чем больше этот запас, тем более «уверенным» может быть классификатор в своих прогнозах. В случае бинарной классификации рисование правильной гиперплоскости означает выбор гиперплоскости, которая находится как раз посередине двух разных классов. Если граница/гиперплоскость решения находится дальше от одного класса, она будет ближе к другому. Следовательно, гиперплоскость должна уравновешивать разницу между двумя разными классами.

Вычисление разделяющей гиперплоскости

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

Y = топор + б

Между тем, линии состоят из точек, что означает, что любая гиперплоскость может быть описана как: набор точек, которые проходят параллельно предполагаемой гиперплоскости, как определено весами модели, умноженной на набор функций, измененных указанным смещением/смещением («д»).

SVM рисуют множество гиперплоскостей. Например, линия границы представляет собой одну гиперплоскость, но точки данных, которые рассматривает классификатор, также находятся на гиперплоскостях. Значения x определяются на основе признаков в наборе данных. Например, если у вас есть набор данных с ростом и весом многих людей, функции «рост» и «вес» будут функциями, используемыми для вычисления «X». Поля между предлагаемой гиперплоскостью и различными «опорными векторами» (точками данных), найденными по обе стороны от разделяющей гиперплоскости, рассчитываются по следующей формуле:

Ш * Х — б

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

Фото: ZackWeinberg через Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Мультиклассовая классификация

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

Нелинейные разделения

Описанный выше процесс применяется к случаям, когда данные линейно разделимы. Обратите внимание, что в действительности наборы данных почти никогда не бывают полностью линейно разделимыми, а это означает, что при использовании классификатора SVM вам часто придется использовать две разные техники: мягкая маржа и трюки с ядром. Рассмотрим ситуацию, когда точки данных разных классов смешиваются вместе, при этом некоторые экземпляры, принадлежащие одному классу, входят в «кластер» другого класса. Как вы могли бы заставить классификатор обрабатывать эти экземпляры?

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

Устойчивость SVM к ошибкам можно настроить, манипулируя гиперпараметром «C». Значение C контролирует сколько опорных векторов учитывает классификатор при построении границ решений. Значение C — это штраф, применяемый к ошибочным классификациям, а это означает, что чем больше значение C, тем меньше опорных векторов учитывает классификатор и тем уже маржа.

Ядро обманывает данные и преобразует их нелинейным образом. Фото: Шию Джу через Викисклад, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

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

Блогер и программист со специализацией в Машинное обучение и Глубокое обучение темы. Дэниел надеется помочь другим использовать возможности ИИ на благо общества.