Нелинейный SVM — наиболее практичная модель SVM. Использование функций ядра является изюминкой этой модели. Однако в процессе обучения я обнаружил, что во многих онлайн-учебниках некоторые концепции не подчеркивались, что позволяло новичкам, включая меня в то время, легко путать концепции или не понимать, о чем говорят формулы. Я хотел бы показать вам детали функции ядра шаг за шагом.
Этот раздел представляет собой относительно продвинутый уровень теории опорных векторов. Друзья, кто новичок в контакте, можете глянуть кстати«Элементарные машины опорных векторов»,или«Расширенные машины опорных векторов». Есть подробные теоретические выводы. Машины опорных векторов — одна из немногих моделей машинного обучения с полными математическими доказательствами.
Вознесение для решения проблем
Я думаю, что все хорошо осведомлены об этой проблеме. В случае, если наш набор данных не может быть идеально классифицирован с помощью линейного классификатора, у нас есть два решения в зависимости от ситуации: первое заключается в том, что когда ошибочно классифицированные точки находятся рядом с гиперплоскостью классификации, а их число невелико, мы используемВекторная машина поддержки мягких полей, во-вторых, набор данных имеет много неправильно классифицированных точек, поэтому линейный классификатор не может дать хороших результатов, мы используемувеличить измерениеметод преобразования линейной классификации в нелинейную классификацию.
Изображение выше представляет собой набор прогнозируемых данных о заболеваемости раком, где красные точки обозначают рак. Мы видим, что данные, которые не могут быть линейно классифицированы на двумерной плоскости, могут быть разделены гиперплоскостью, если они расширены до трехмерного пространства. Машины опорных векторов подходят только для моделей линейной классификации, поэтому при этом общие наборы данных также могут использовать модели машин опорных векторов.
Стоит отметить, чтоВ процессе увеличения размерности мы должны уметь находить мерное пространство, чтобы наше конечное множество точек можно было разделить гиперплоскостью. Эта теорема убедительно поддерживает возможность нелинейных машин опорных векторов. Потому что, пока есть достаточно измерений, нет никакой возможности, что набор данных все еще не является линейно разделимым. Как это можно понять? Если мы будем великодушны и присвоим измерение каждой выборке данных, тогда данные должны быть разделены гиперплоскостью. Это может потребовать миллионы измерений вычислений, но, по крайней мере, это теоретически возможно.
Поясним роль размерности на примере.
Операционный процесс восходящей размерности
На этом изображении мы хотим отделить красный цвет от синего. Линейная классификация невозможна, лучше использовать эллиптическую классификацию. Что-то вроде этого:
Мы устанавливаем абсциссу как, ордината, то мы можем получить функцию этой разделительной линии как:
здесьявляется коэффициентом. Тогда мы можем сделать это сейчас, мы делаем, и поПостроим координатную ось новой системы координат, тогда получим пятимерное картографическое пространство, в то время как исходное признаковое пространство имеет только два измерения. В этом новом пятимерном пространстве мы видим, что функция делителя эллипса:
Это уравнение, которое делит гиперплоскость, которая является линейным уравнением. Тогда мы можем легко видеть, что к этому времениприбытьОтображение , мы успешно используем метод увеличения размерности для преобразования задачи нелинейной классификации в задачу линейной классификации.
Эффект показан на рисунке:
Однако многие друзья думают, что функция функции ядра состоит в том, чтобы увеличить размерность данных для достижения цели замены нелинейности на линейность.
вообще-то нет.
Пространственное вознесение на самом деле является решением, но мы можем легко найти его фатальный недостаток — пространственную катастрофу. Сложность вычислений трудно решить. Итак, есть ли способ добиться эффекта увеличения размеров и избежать расчета величины увеличения размеров?
имеют, идея функции ядра.
Стоит отметить, что функции ядра и трюки с ядром — это отдельная идея и не малая часть того, что есть у SVM. Просто использование функций ядра и методов ядра в SVM очень известно.
Конкретно, как работать, мы также рассмотрим на этом примере.
Функция ядра
Вернемся к двойственной задаче о машинах с опорными векторами, упомянутой в предыдущем разделе. Мы знаем, что двойная задача о машинах с опорными векторами с мягкими краями записывается так:
мы нашли здесьпредмет, который нужно запросить,Просто положительная и отрицательная метка класса, просто возьмите {-1, +1}, Таким образом, основным шагом наших обучающих данных является использование этого.
Роль функции ядра
Мы используем приведенный выше пример в качестве предзнаменования для общего случая квадратичного полинома. У нас есть набор данных с функциями, распределенными пообъемное пространство,является его характерным размером. Затем мы можем обновить его до этого пространства:
Затем для двойной задачи в это время нам нужно преобразовать в многомерное пространство для вычислений, поэтому мы имеем это:
Если мы решим ее в соответствии с нормальным способом мышления, мы должны сначала найти:
Объем вычислений здесь. существуетВ крупных случаях стоимость по-прежнему значительна. Затем мы демонстрируем мощь функции ядра:
Мы должны отметить, что здесьи доНе то же самое у нас
Может быть, кто-то из моих друзей влюблен в этоЯ не понимаю, это на самом деле очень просто.Если вы вычислите свой собственный внутренний продукт, вы это поймете.
Преобразуем его:
Тогда мы знаем, что:
Это позволяет нам узнать, чтоможно рассчитать поРассчитать. иВычислительная сложность.Роль функции ядра заключается в значительном сокращении объема вычислений., принцип здесь. Далее вводится форма функции ядра.
Определение функции ядра и навыков ядра
мы будемопределяется какФункция ядраи определитьявляется картографической функцией.
ядерные трюкиИдея такова: использовать только в обучении и прогнозировании, вместо использования или явного вычисления. Вот почему мы упаковываемПричина быть функцией. потому что мы используем только этоТолько тогда, когда вы сможете ощутить удобство ядерных умений.
Конечно, ядерные навыки нужно использовать постоянно, иначе вклад будет слишком мал. Итак, мы вычисляем:
Функция принятия решения о классификации:
Нелинейный алгоритм машинного обучения опорных векторов
Вход: обучающий набор данных,в,
Выход: функция решения классификации.
- Выберите подходящую функцию ядраи соответствующие параметры, построим и решим задачу оптимизации:
найти оптимальное решение
- выберитекомпонентподходящие условия, рассчитать:
Построим решающую функцию разделения:
положительно определенное ядро
Приведенный выше алгоритм прекрасно объясняет весь процесс нелинейного машинного обучения опорных векторов, но есть одна вещь, о которой вы могли подумать. Вы сами выбираете эту функцию ядра? Разве это не определяется природой самих данных? Так как же нам выбрать эту функцию ядра?
Ответ на самом деле ваш собственный выбор. Мы решаем, в какое пространство отображать исходные данные, в соответствии с выбранной нами функцией ядра.
нашобразован внутренним произведением отображающей функции:, значит, это симметричная функция. Обратно, для функции, если этоМатрица положительно-полуопределенная, то необходимо найти соответствующее ей отображение.Матрица выглядит так:
У нас есть следующая теорема: *сделатьвходное пространство,быть определены вСимметричная функция на , тогда:может использоваться как функция ядра положительно полуопределенный
Кажется, что процесс совершенен, но «построить» ядерную функцию самостоятельно нам довольно сложно, нужно продемонстрировать полуположительную определенность матрицы Грама, а процесс вычисления очень сложен. Таким образом, обычно у нас есть несколько зрелых функций ядра, которые можно вызывать. Нам достаточно для решения задачи разных сценариев.
Несколько часто используемых функций ядра
Мы также можем комбинировать эти функции ядра.
- какиявляется функцией ядра, то для любого положительного числа, линейная комбинациятакже является функцией ядра.
- какиявляется функцией ядра, то прямое произведение функцииТакже функция ядра:
- какявляется функцией ядра, то для любой функции,также является функцией ядра
Конечно, после того, как мы определили функцию ядра, у нас есть функция решения классификации:
На вопрос о том, как выбрать функцию ядра, профессор Ву Энда сказал:
- Если количество функций велико, аналогично количеству образцов, выберите LR или SVM Linear Kernel в это время.
- Если количество функций относительно невелико, а размер выборки средний, не слишком большой и не слишком маленький, используйте SVM+Gaussian Kernel.
- Если количество функций относительно невелико, а количество выборок велико, вам необходимо вручную добавить некоторые функции, чтобы они стали первым случаем.
использованная литература
[1]Функция ядра | Подробное объяснение десяти лучших алгоритмов интеллектуального анализа данных