Гиперплоскость с максимальным запасом, кросс-энтропия и потеря шарнира, трюк с ядром, резервные переменные, норма, ядро ​​rbf, происхождение персептрона, регуляризующий гиперпараметр

Эта статья является частью серии книг Наука о данных с нуля — Могу ли я, чтобы я смог. (Нажмите здесь, чтобы получить копию сегодня!)

Нажмите здесь, чтобы просмотреть предыдущую статью/лекцию на тему «A41: Начальная загрузка и доверительный интервал — за кулисами!!»

💐Нажмите здесь, чтобы ПОДПИСАТЬСЯ на меня, чтобы получать новые материалы💐

⚠️ В этой лекции мы создадим набор данных для учебных целей.

✅ Предложение: Откройте новый блокнот Jupyter и введите код, читая эту статью, это обучение, и да, «ПОЖАЛУЙСТА, прочитайте комментарий, он очень полезен…..!»

🧘🏻‍♂️ 👉🎯 ›› Сохраняйте спокойствие и сосредоточенность! ›› 🧘🏻‍♂️ 👉🎯

Введение в SVM

  1. Напоминание о регрессии для классификации
  2. Машина опорных векторов — SVM
  3. Как SVM классифицирует?
  4. Гиперплоскость максимальной маржи
  5. Зачем максимизировать маржу?
  6. SVM создает алгоритм персептрона
  7. Нахождение максимальной маржи
  8. Шарнирные потери и нелинейно разделимые случаи
  9. Потеря шарнира и провисание
  10. "C" — Гиперпараметр регуляризации
  11. SVM в действии — визуализация работы
    11.1: Демонстрационные данные
    11.2: Линейное ядро
  12. Хитрость ядра для нелинейно разделимых данных
    12.1: полиномиальное ядро
    12.2: ядро ​​RBF
  13. Преимущества и недостатки
  14. SVM против логистической регрессии — когда использовать
  15. Новые термины
    15.1: Slack Variables
    15.2: Норма
  16. Дополнительные ресурсы

1. Напоминание о регрессии для классификации

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

Что, если мы попытаемся использовать алгоритм линейной регрессии для прогнозирования некоторых классов (например, 0/1), это не кажется хорошей идеей!

Обычно мы преобразовываем категориальные цели/метки в целочисленные классы (0/1).

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

А вот и логистическая регрессия, где мы узнали, как можно использовать передаточные функции для решения проблемы классификации с использованием алгоритма классификации на основе линейной регрессии. Логистическая передаточная функция преобразует действительные числа в вероятности, а затем алгоритм использует эти вероятности класса в качестве прокси для прогнозов класса. Что ж, это создало затруднительное положение, поскольку мы решаем проблему, где ответ — нет/да или 0/1, решая задачу логистической регрессии, а наши типичные старые функции потерь (MSE, MAE и т. д.) бесполезны. Нам пришлось использовать логарифмическую или бинарную функцию кросс-энтропийной потери, чтобы сделать это.

👉 см. ур. 5.10 в разделе 5.3 — Функция кросс-энтропийных потерь

Функция потерь Кросс-энтропия возвращает оценку, которая суммирует среднюю разницу между фактическим и прогнозируемым распределениями вероятностей для прогнозирования класса 1. Оценка минимизируется, и идеальное значение кросс-энтропии равно 0. для точности 1.

Мы сказали наилучшая возможная линия в качестве границы, и в идеале мы ожидаем, что эта граница будет делать как можно меньше ошибок классификации. Для оценки мы ищем истинные метки класса; если он соответствует предсказанной метке, потеря равна 0, а если не соответствует, потеря равна 1.

Если мы подумаем об этой потере из-за неправильной классификации, мы на самом деле одинаково плохо относимся к каждой неправильной классификации. Однако некоторые классификации могут быть хуже других (в зависимости от того, насколько они близки к границе принятия решения). Мы можем себе представить, насколько плохим может быть такое линейное разделение для двух классов.

Можем ли мы подумать о каком-то альтернативном подходе к решению вопросов "одинаково плохо" и "насколько плохо"?

Давайте посмотрим, чем полезны SVM!

2. Машина опорных векторов — SVM

Что, если бы мы могли подумать об обработке неправильной классификации на основе того, что how bad они были неправильно классифицированы, например, налагать более строгие наказания за наблюдения, обнаруженные глубже на территории другого класса. Чем дальше ошибочная классификация от границы решения, тем более они ошибочны и, таким образом, заслуживают более высокого наказания. На самом деле, мы не возражали бы и против допуска на ошибку, и даже правильно классифицированные наблюдения, которые действительно близки к границе (почти неправильно классифицированы), могут внести свой вклад в штраф. Разумно, правильно!

И здесь на помощь приходит алгоритм Машина опорных векторов (SVM), использующий другой подход к классификации. Алгоритм по-прежнему соответствует границе решения, такой как логистическая регрессия, но использует другую функцию потерь, называемую Потеря шарнира, альтернативу кросс-энтропии для задач бинарной классификации и используемую для максимальной маржи. классификация. Он в первую очередь разработан для использования с моделями машины опорных векторов (SVM) и для классификации двоичных классов, где целевыми объектами являются -1/1. Функция побуждает наблюдения иметь правильный знак, присваивая больше ошибок там, где есть разница в знаке между истинными и предсказанными метками класса.

3. Как классифицирует SVM?

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

Давайте начнем с линейно разделимого примера (рис. 2), чтобы увидеть, как работает алгоритм SVM для таких примеров классификации. Алгоритм подходит к границе принятия решения, определяемой наибольшей разницей между ближайшими точками для каждого класса. Это обычно называется гиперплоскостью максимального поля (MMH).

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

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

4. Гиперплоскость максимальной маржи

Для линейно разделимых данных мы можем выбрать две параллельные гиперплоскости (пунктирные линии на рис. 3 — приведены ниже), которые разделяют два класса данных, так что расстояние между ними будет как можно больше, а гиперплоскость с максимальным запасом — это гиперплоскость, которая находится на полпути между ними и ограниченной областью между ними, является границей. С нормализованным или стандартизированным набором данных эти гиперплоскости можно описать уравнениями (мы выбираем нормализующую константу так, чтобы расстояние от плоскости до ближайших точек (опорных векторов) любого класса было равно 1):

5. Зачем максимизировать маржу?

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

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

6. Истоки SVM: алгоритм персептрона

При обсуждении SVM очень уместно рассмотреть алгоритм перцептрона, который является линейной функцией веса/s '𝑤'и предикторов/признаков 𝑋, который присваивает баллы бинарным классам. Если функция возвращает значение больше 0, наблюдение классифицируется как 1, в противном случае оно классифицируется как ноль.

Ниже указано, что '𝑓(𝑋)' — это функция персептрона для классификации, 𝑏 (также представленная как 𝑤_0 иногда) известен как «предвзятость», что аналогично термину перехвата.

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

7. Нахождение максимальной маржи

На данный момент мы узнали обо всех соответствующих концепциях SVM, и уместно задать вопрос как нам найти максимально широкую плоскость. Фактически мы максимизируем значение маржи: 2/||𝑤||.

Итак, максимизируйте веса с ограничениями на то, что функция может вывести;

  • Когда цель равна 1, функция должна быть 1 или больше.
  • Когда цель равна 0 (или -1), функция должна выводить -1 или ниже.

Обратите внимание, что наш ‘𝑦’ указывается как 1/-1, а не 0/1, к которому мы привыкли. Это удобно для преобразования в минимизацию. Чтобы сделать это минимизацией, мы можем изменить уравнение следующим образом:

Это работает, потому что когда 𝑦=−1, значения становятся положительными. (см. уравнения выше)

8. Шарнирные потери и нелинейно разделимые случаи.

Рассмотрим случай, когда нет линии/плоскости, которая могла бы идеально разделить все наблюдения, здесь нам нужно ввести возможность ошибки модели. С ограничением «𝑦⋅(𝑤𝑇⋅𝑋+𝑏)≥1» (также приведенным выше) мы можем ввести функцию потерь шарнира:

Где как, для правильного прогноза/ов, когда:

  • 𝑓(𝑥_𝑖)›1: точка лежит за пределами поля и не влияет на потери.
  • 𝑓(𝑥_𝑖)=1: точка находится на границе и не влияет на убыток.
  • 𝑓(𝑥_𝑖)‹1: точка лежит внутри поля и вносит соответствующий вклад в потери.

Таким образом, в общем, всякий раз, когда 𝑓(𝑥_𝑖) НЕ ≥1, функция (штраф) будет больше нуля и будет соответственно способствовать потерям для соответствующей точки данных/наблюдения.

9. Потеря шарнира и «провисание»

Предположим, что в ситуации, когда невозможно идеально разделить классы, может помочь потеря шарнира с параметром регуляризации ‘𝐶’:

𝜖_𝑖 — это ошибки алгоритма/классификатора, а 𝐶 — член регуляризации, который определяет, насколько важны ошибки классификации ( относительно максимальной маржи).

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

👉 Небольшое значение 𝐶 создает более широкое поле, потому что ошибки будут иметь меньшее значение.
👉 Большой 𝐶 создает более узкую маржу, потому что ошибки имеют большее значение.
👉 Бесконечный параметр 𝐶 — это «жесткое» поле, которое всегда минимизирует ошибку по размеру границы.

==> Мы пытаемся минимизировать норму весов, ||𝑤||, и таким образом максимизировать маржу, но теперь мы также пытаемся минимизировать наши ошибки в то же время. При минимизации мы ищем баланс между тем, насколько широким должен быть запас и сколько ошибок мы можем допустить.

10. 𝐶 — регуляризующий гиперпараметр

  • Установив гиперпараметр 𝐶, мы можем контролировать степень, в которой наша SVM устойчива к ошибкам неправильной классификации. Иногда ее называют константой soft-margin.
  • 𝐶воздействует на силу штрафа, аналогично лямбда-терминам в Ridge и Lasso.
  • Умножая сумму ошибок, которые представляют собой расстояния от полей до точек внутри поля, это позволяет SVM классифицировать нелинейно разделимые проблемы, допуская возникновение ошибок.
  • Чем ниже значение 𝐶, тем больше допустимых ошибок неправильно классифицированных наблюдений. Эти неправильно классифицированные точки известны как переменные резерва. Уменьшение влияния ошибок на функцию потерь делает акцент на расширении маржи.

Если вам интересно изучить математику, раздел 7.1.1 Перекрывающиеся распределения классов в Распознавании образов и машинном обучении Кристофера Бишопа был бы очень полезен. Рис. 7.3 стоит посмотреть, чтобы понять.

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

11. SVM в действии — визуализируйте работу

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

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

# required imports
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.svm import SVC
from ipywidgets import interact
%matplotlib inline
#Retina display to see better quality images.
%config InlineBackend.figure_format = ‘retina’
# Lines below are just to ignore warnings
import warnings
warnings.filterwarnings(‘ignore’)

11.1: Пример данных

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

Итак, теперь у нас есть данные, давайте продолжим и напишем несколько функций для создания интерактивных графиков и понимания влияния параметра C. Хорошая практика программирования!

11.2: Линейное ядро

12. «Трюк с ядром» для нелинейно разделимых данных

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

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

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

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

12.1: Полиномиальное ядро

12.2: Ядро RBF

Вывод: компромисс между смещением и отклонением обрабатывается с помощью гиперпараметра 𝐶.

  • Большое 𝐶→ узкое поле, менее терпимое к неправильной классификации, имеет тенденцию к высокой дисперсии
  • Маленький 𝐶→ более широкое поле, более терпимый к неправильной классификации, имеет тенденцию к высокой систематической ошибке

13. Преимущества и недостатки

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

Преимущества:

  • Устойчив к выбросам
  • Эффективен в многомерных данных
  • Может работать с нелинейностями
  • Быстрые вычисления даже на нелинейных (уловка ядра)
  • Низкий риск чрезмерной подгонки
  • Исключительная производительность

Недостатки:

  • Черный ящик
  • Может быть медленным на больших наборах данных

14. SVM против логистической регрессии — когда использовать

Вспомним «теорему о бесплатном обеде», когда использовать какой алгоритм — это каверзные вопросы, однако, по мнению экспертов:

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

15) Новые термины

15.1: Slack-переменные:

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

15.2: Норма:

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

16. Дополнительные ресурсы

🧘🏻‍♂️ Прекрасные слайды лекций от Prof. Эндрю Зиссерман, Оксфордский университет, Великобритания.

🧘🏻‍♂️ Отличный ресурс Стэнфордского университета на тему Поддержка векторных машин и машинного обучения на документах

🧘🏻‍♂️ Серия хороших постов в блоге о SVM:

🧘🏻‍♂️ Слайды из учебного пособия по SVM от Джейсона Уэстона, NEC Labs America

🧘🏻‍♂️ Слайды лекции Р. Бервика из Университета Центральной Флориды: Руководство идиота по методам опорных векторов (SVM)

🧘🏻‍♂️ Конспект лекций Машины опорных векторов из Университета Торонто, Канада.

🧘🏻‍♂️ Статья Проф. Thorsten Joachims на тему Категоризация текста с помощью машин опорных векторов: обучение с множеством функций

🧘🏻‍♂️ Расширенное обсуждение SVM как вероятностных моделей

🧘🏻‍♂️ Учебное пособие по методам опорных векторов для распознавания образов

🧘🏻‍♂️ на scikit-learn:

🧘🏻‍♂️ Несколько хороших видеолекций:

🧘🏻‍♂️ Некоторые ссылки на функции потерь для обновления:

Итак, на данный момент это было все о машинах опорных векторов (SVM)!

*******************************************************************

💐Нажмите здесь, чтобы ПОДПИСАТЬСЯ на меня, чтобы получать новые материалы💐

🌹Продолжайте практиковаться, чтобы освежить навыки и добавить новые навыки🌹

✅🌹💐💐💐🌹✅ Похлопайте и поделитесь ››вы можете помочь нам связаться с тем, кто изо всех сил пытается изучить эти понятия.✅🌹💐💐💐🌹✅

Удачи!

Увидимся на следующей лекции на тему A43: Методы опорных векторов (SVM) — практические занятия [полный проект с кодом]

Примечание. Полный курс, включая видеолекции и блокноты Jupyter, доступен по следующим ссылкам:

**************************************************************************************************************************************

О докторе Джунаиде Кази:

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

**************************************************************************************************************************************