www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home
Занимательная история, выдающиеся люди, малоизвестные факты, находки, открытия, фальсификации. Присоединяйся!

Машины опорных векторов для машинного обучения

Дата публикации 2016-04-20

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

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

В этом посте вы познакомитесь с алгоритмом машинного обучения машины опорных векторов (SVM). Прочитав этот пост, вы узнаете:

  • Как распутать многие имена, используемые для обозначения опорных векторных машин.
  • Представление, используемое SVM, когда модель фактически хранится на диске.
  • Как использовать представление SVM-модели для прогнозирования новых данных.
  • Как выучить модель SVM по данным обучения.
  • Как лучше всего подготовить ваши данные для алгоритма SVM.
  • Где вы могли бы получить дополнительную информацию о SVM.

SVM - захватывающий алгоритм, и концепции относительно просты. Этот пост был написан для разработчиков с небольшим опытом или вообще без знания статистики и линейной алгебры

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

Давайте начнем.

Максимальный маржинальный классификатор

Классификатор максимальной маржи - это гипотетический классификатор, который лучше всего объясняет, как SVM работает на практике.

Числовые входные переменные (x) в ваших данных (столбцы) образуют n-мерное пространство. Например, если бы у вас было две входные переменные, это сформировало бы двумерное пространство.

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

B0 + (B1 * X1) + (B2 * X2) = 0

Где коэффициенты (B1 и B2), которые определяют наклон линии и точки пересечения (B0), определяются алгоритмом обучения, а X1 и X2 являются двумя входными переменными.

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

  • Выше линии уравнение возвращает значение больше 0, и точка принадлежит первому классу (класс 0).
  • Ниже линии уравнение возвращает значение меньше 0, а точка принадлежит второму классу (класс 1).
  • Значение, близкое к линии, возвращает значение, близкое к нулю, и точку может быть трудно классифицировать.
  • Если величина значения велика, модель может быть более уверенной в прогнозе.

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

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

Гиперплоскость извлекается из обучающих данных с использованием процедуры оптимизации, которая максимизирует запас.

Получите БЕСПЛАТНУЮ карту алгоритмов Mind

Я создал удобную карту разума из 60+ алгоритмов, организованных по типу.

Загрузите его, распечатайте и используйте.

Скачать бесплатно


Также получите эксклюзивный доступ к алгоритмам машинного обучения по электронной почте мини-курса.

& NBSP;

& NBSP;

Классификатор мягкой маржи

На практике реальные данные являются беспорядочными и не могут быть полностью разделены с помощью гиперплоскости.

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

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

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

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

  • Чем меньше значение C, тем более чувствителен алгоритм к обучающим данным (более высокая дисперсия и более низкое смещение).
  • Чем больше значение C, тем менее чувствителен алгоритм к обучающим данным (чем меньше дисперсия, тем выше систематическая ошибка).

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

Алгоритм SVM реализован на практике с использованием ядра.

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

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

Например, внутреннее произведение векторов [2, 3] и [5, 6] составляет 2 * 5 + 3 * 6 или 28.

Уравнение для прогнозирования нового ввода с использованием точечного произведения между входом (x) и каждым опорным вектором (xi) рассчитывается следующим образом:

f (x) = B0 + сумма (ai * (x, xi))

Это уравнение, которое включает в себя вычисление внутренних произведений нового входного вектора (x) со всеми опорными векторами в обучающих данных. Коэффициенты B0 и ai (для каждого входа) должны оцениваться из обучающих данных алгоритмом обучения.

Линейное ядро ​​SVM

Точечный продукт называется ядром и может быть переписан как:

K (x, xi) = сумма (x * xi)

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

Могут использоваться другие ядра, которые преобразуют входное пространство в более высокие измерения, такие как полиномиальное ядро ​​и радиальное ядро. Это называетсяЯдро Трюк,

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

Полиномиальное Ядро СВМ

Вместо скалярного произведения мы можем использовать ядро ​​с полиномами, например:

K (x, xi) = 1 + сумма (x * xi) ^ d

Где степень полинома должна быть указана от руки к алгоритму обучения. Когда d = 1, это то же самое, что и линейное ядро. Ядро полинома учитывает изогнутые линии во входном пространстве.

Радиальное ядро ​​СВМ

Наконец, мы также можем иметь более сложное радиальное ядро. Например:

K (x, xi) = exp (-гамма * сумма ((x - xi ^ 2))

Где гамма - это параметр, который должен быть указан в алгоритме обучения. Хорошее значение по умолчанию для гаммы - 0,1, где гамма часто равна 0 & lt; гамма & lt; 1. Радиальное ядро ​​очень локально и может создавать сложные области в пространстве признаков, как замкнутые многоугольники в двумерном пространстве.

Как узнать модель SVM

Модель SVM должна быть решена с использованием процедуры оптимизации.

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

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

Подготовка данных для SVM

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

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

Дальнейшее чтение

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

Владимир ВапникУ одного из изобретателей методики есть две книги, которые считаются основополагающими по данной теме. Они очень математические и строгие.

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

Есть множество учебников и журнальных статей по SVM. Ниже приведена ссылка на основную статью о SVM Кортеса и Вапника, а также на отличное вводное руководство.

Википедия предоставляет некоторую хорошую (хотя и плотную) информацию по теме:

Наконец, на Q & A есть много постов, требующих простых объяснений SVM, ниже приведены два выбора, которые могут оказаться полезными.

Резюме

В этом посте вы обнаружили алгоритм опорных векторов для машинного обучения. Вы узнали о:

  • Классификатор максимальной маржи, обеспечивающий простую теоретическую модель для понимания SVM.
  • Классификатор Soft Margin, который является модификацией классификатора Maximal-Margin, чтобы ослабить границы для обработки шумных границ классов в реальных данных.
  • Машины поддержки векторов и то, как алгоритм обучения может быть переформулирован как ядро ​​точечного произведения, и как могут использоваться другие ядра, такие как полиномиальное и радиальное.
  • Как вы можете использовать числовую оптимизацию для изучения гиперплоскости и что эффективные реализации используют альтернативную схему оптимизации, называемую Последовательная минимальная оптимизация.

У вас есть вопросы по поводу SVM или этого поста?
Спросите в комментариях, и я сделаю все возможное, чтобы ответить.

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map