Понимание серии SVM: Часть 2

Предпосылка: 1. Знание алгоритма опорной векторной машины, о котором я говорил в предыдущем посте. 2. Некоторые базовые знания алгебры.

В первой части этой серии, на основе математической формулировки опорных векторов, мы обнаружили две важные концепции SVM, а именно:

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

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

Этот график создан с использованием встроенного make_circles набора данных sklearn.

import numpy as np 
import sklearn 
import matplotlib.pyplot as plt
from sklearn.datasets.samples_generator import make_circles
X,y = make_circles(90, factor=0.2, noise=0.1) 
#noise = standard deviation of Gaussian noise added in data. 
#factor = scale factor between the two circles
plt.scatter(X[:,0],X[:,1], c=y, s=50, cmap='seismic')
plt.show()

Как вы понимаете, на этом 2-м графике невозможно провести линию, которая могла бы отделить синие образцы от красных. Можно ли еще применить алгоритм SVM?

Что, если мы дадим этому 2-му пространству немного встряхнуть, и красные образцы оторвутся от плоскости и будут казаться отделенными от синих образцов? Взглянем !

Что ж, похоже, встряхивание образцов данных действительно сработало, и теперь мы можем легко нарисовать плоскость (вместо линии, как мы использовали раньше), чтобы классифицировать эти образцы. Так что же на самом деле произошло во время встряхивания?

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

Итак, все дело в поиске функции отображения, которая преобразует входное 2D-пространство в 3D-выходное пространство. Либо это ? И что такое трюк с ядром?

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

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

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

И вуаля !! Если у нас есть функция K, определенная, как показано ниже

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

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

Я использовал ядро ​​радиальной базисной функции для построения рисунка 2, где отображение из двухмерного пространства в трехмерное действительно помогает нам в классификации.

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

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

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

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

Параметр настройки

Поскольку мы обсуждали нелинейные ядра и особенно ядро ​​Гаусса (или ядро ​​RBF), я закончу пост интуитивным пониманием одного из параметров настройки в SVM - гамма.

Глядя на ядро ​​RBF, мы видим, что оно зависит от евклидова расстояния между двумя точками, то есть, если два вектора ближе, то этот член мал. Поскольку дисперсия всегда положительна, это означает, что для более близких векторов ядро ​​RBF широко распространено, чем более дальние векторы. Когда параметр gamma высокий, значение функции ядра будет меньше, даже для двух близких выборок, и это может вызвать усложнение границы принятия решения или привести к чрезмерной подгонке. Вы можете прочитать об этом больше в моем другом посте.

Прежде чем мы закончим это обсуждение, давайте вспомним, что мы узнали из этой главы -

  1. Отображение точек данных из низкоразмерного пространства в более высокомерное пространство может сделать возможным применение SVM даже для нелинейных выборок данных.
  2. Нам не нужно знать саму функцию сопоставления, если мы знаем функцию ядра; Уловка с ядром
  3. Условие того, что функция должна рассматриваться как функция ядра; Положительная полуопределенная матрица Грама.
  4. Типы ядер, которые используются чаще всего.
  5. Как параметр настройки гаммы может привести к чрезмерной подгонке или смещению в ядре RBF.

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

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

Оставайся сильным ! Ваше здоровье !!

Использованная литература :

  1. Элементы статистического обучения; Hastie, T. et.al. ; Ссылка на амазонку
  2. Свойства ядра; Беркли Университет; pdf .
  3. Ядра; MIT Конспект лекций.