Обмен технологиями

[Машинное обучение] 12. Объяснение принципа алгоритма Support Vector Machine (SVM — Support Vector Machine), одного из десяти лучших алгоритмов.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1·Аннотация

Вставьте сюда описание изображения

Машина опорных векторов (SVM) — это эффективный алгоритм обучения с учителем, широко используемый в задачах классификации и регрессии. Он различает различные категории точек данных, находя оптимальную гиперплоскость в пространстве признаков. Цель состоит в том, чтобы максимизировать интервал между двумя типами точек данных, тем самым улучшая способность модели к обобщению. Ключевые понятия SVM включают гиперплоскости, интервалы, опорные векторы и функции ядра. Функция ядра позволяет SVM решать нелинейные задачи и находить линейно разделимые гиперплоскости путем отображения данных в многомерное пространство. Кроме того, методы мягкой маржи и регуляризации используются для решения проблемы неполной линейной разделимости данных, одновременно контролируя сложность модели и предотвращая переобучение. Реализация SVM включает выбор подходящей функции ядра, построение и решение задачи выпуклого квадратичного программирования, а также оценку и применение обученной модели. Ее преимущества заключаются в том, что модель проста, легко реализуется и обладает хорошей способностью к обобщению, но имеет высокую вычислительную сложность, чувствительна к функции ядра и выбору параметров и может столкнуться с узкими местами в производительности при обработке крупномасштабных наборов данных.

2. Личное представление

🏘️🏘️个人主页:Использование гор и рек в подарок
🎖️🎖️:Создатель «Восходящей звезды» в области Python, сертификация «Восходящая звезда CSDN», партнер по контенту CSDN, блоггер-эксперт сообщества Alibaba Cloud, наставник программы «Восходящая звезда» и аналитик данных на рабочем месте.

💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

Вставьте сюда описание изображения

🐘 希望大家能持续支持,共同向前迈进!😁
Если вы считаете, что статья ценна,
欢迎留言💬,点赞👍,收藏🔖并关注我们➕🤝。
🪐💫💫💫💫💫💫💫热门专栏💫💫💫💫💫💫💫🪐
типСтолбец
Основы PythonВведение в основы Python — подробная версия
Python продвинутыйВведение в основы Python — версия модуля
Python продвинутыйPython网络爬虫从入门到精通🔥🔥🔥
Полноценная веб-разработкаНачало работы с основами Django
Полноценная веб-разработкаВведение в основы HTML и CSS
Полноценная веб-разработкаНачало работы с основами JavaScript
Анализ данных PythonPython数据分析项目🔥🔥
машинное обучение机器学习算法🔥🔥
ИИИИ

3. Основные понятия

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

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

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

См. рисунок ниже. В двумерной среде точки R, S, G и другие точки, близкие к средней черной линии, можно рассматривать как опорные векторы. Они могут определять конкретные параметры классификатора, то есть черного цвета. линия.
Вставьте сюда описание изображения

4. Опорные векторы и гиперплоскости.

Опорные векторы и гиперплоскости являются основными понятиями алгоритма машины опорных векторов (SVM). Ниже я подробно объясню эти две концепции:

4.1 Гиперплоскость

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

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

4.2 Векторы поддержки

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

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

4.3 Трюк с ядром

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

4.4 Мягкая маржа и регуляризация

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

Вставьте сюда описание изображения

5. Принцип алгоритма SVM

5.1 Формула расстояния от точки до гиперплоскости

Формула расстояния от точки до гиперплоскости используется для расчета кратчайшего расстояния от точки до заданной гиперплоскости. Гиперплоскость можно выразить следующим уравнением в n-мерном пространстве:
Вставьте сюда описание изображения
в:
w — n-мерный вектор нормали, перпендикулярный гиперплоскости.
x — n-мерная точка, расположенная в пространстве.
b — член смещения гиперплоскости.
Вертикальное расстояние d от точки x до этой гиперплоскости можно рассчитать по следующей формуле:
Вставьте сюда описание изображения
这个公式的几何意义是:从点 𝑥 向超平面作垂线,垂足到点 𝑥的距离就是𝑑这个距离也代表了点 𝑥到超平面的“间隔”。在支持向量机中,间隔的大小是非常重要的,因为它与模型的泛化能力有关。SVM的目标是找到这样一个超平面,使得间隔最大化,即所有数据点到这个超平面的距离之和最大。

5.2 Модель оптимизации максимального интервала

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

6. Слабые переменные

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

6.1 Определение слабых переменных

Вставьте сюда описание изображения

6.2 Модификация модели оптимизации

Вставьте сюда описание изображения
这里的 𝐶是一个正的调节参数,用于控制模型对误分类的惩罚程度。𝐶的值越大,模型对误分类的惩罚越重,越倾向于找到没有误分类的解;𝐶的值越小,模型对误分类的容忍度越高,越容易找到间隔更大的解,即使这意味着更多的误分类。

6.3 Мягкие и жесткие поля

  • Жесткая маржа: SVM, которая не вводит слабые переменные, требует, чтобы все точки данных находились за пределами или на границе маржи, то есть недопустима неправильная классификация.
  • Мягкая маржа: SVM вводит слабые переменные, позволяя некоторым точкам данных находиться внутри границы маржи, то есть допуская определенную степень неправильной классификации. Хитрости ядра и слабые переменные.

6.4 Хитрости ядра и слабые переменные

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

7. Функция ядра

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

7.1 Основные понятия о функциях ядра

Вставьте сюда описание изображения

7.2 Часто используемые функции ядра

Вставьте сюда описание изображения

7.3 Роль функции ядра

  1. Решение нелинейных задач: отображая в многомерное пространство, функция ядра делает данные, которые изначально были линейно неразделимы в низкомерном пространстве, линейно разделимыми в многомерном пространстве.
  2. Улучшите выразительность модели: различные функции ядра могут фиксировать различные характеристики данных и улучшать выразительность модели.
  3. Уменьшить сложность вычислений. Использование функций ядра позволяет избежать прямых вычислений в многомерном пространстве, тем самым снижая сложность вычислений.