Я помещаю в него код, набор данных и статьюGitHub.com/AAA ZC/SVM_no…Выше статья находится в выпусках, рекомендуется прочитать этот сайт
«Машинное обучение на практике»: популярное понимание машин опорных векторов
Об этой статье
В конце концов, «Машинное обучение на практике» — это только практическая книга, она больше предназначена для того, чтобы читатели поняли, как использовать алгоритмы, при этом уменьшив долю теоретических частей. Как и в Главе 6: Машины опорных векторов, самое важное в нейКлассификаторы решают задачи оптимизацииЧуть меньше двух страниц. Знания о машинах опорных векторов уже неясны и трудны для понимания, но эта книга по-прежнему является хорошим вводным учебником.Я считаю, что многие студенты используют этот превосходный учебник, поэтому я использую этот учебник как основу для анализа.
Много статей об SVM в Интернете хорошо написано. Среди них, я думаю, лучшая из них — «Популярное введение в машины опорных векторов (понимание трехслойной области SVM)», написанное Июлем. Вывод формулы очень всеобъемлющий. , оправдано. Но я плохо изучаю математику, поэтому я думаю, что эта статья слишком «хардкорна» для меня, и я думаю, что, поскольку первое, что нужно изучить алгоритм, — это понять, популярный момент — преобразовать теоретические вещи в свои собственные. слова. Поэтому я хочу написать статью, которая будет легко понятна студентам моего уровня математики.Конечно, я не пропущу вывод математических формул, потому что это ядро, но я буду интерпретировать это в более популярной форме.
На самом деле, это учебная заметка, которая является чисто личным пониманием.Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь исправлять меня, спасибо!
Какой части учебника соответствует эта статья?
Эта часть учебника действительно трудна для понимания. (Студенты, которые не видели, могут посмотреть содержание ниже)
Что такое СВМ
Видел очень яркий пример в статье:
Давным-давно возлюбленная героя попала в плен к дьяволу, герой хотел ее спасти, но дьявол затеял с ним игру, название было такое: Горсть риса и горсть камней на стол, я сейчас Вот палка, я хочу, чтобы вы взяли это и палку, чтобы разделить две вещи.
Итак, герой делит это так:
Это выглядит хорошо? Но в это время дьявол умышленно усложнил ему задачу и поставил на стол много вещей.В это время кажется, что что-то не в том лагере?
Итак, герои снова поставили палку
Теперь, сколько бы дьявол не поставил на стол, эта палка также может сыграть хороший демаркационный эффект:
В это время чёрт торопился, снова так разложил рис и камни и попросил царицу дать богатырю лист бумаги и дать ему разделить их:
Герой с первого взгляда чувствует себя нехорошо. Молодец, черт возьми, не говорите о боевых искусствах, а вы сердито хлопаете по столу. В это время легкая гиря, как рис, выстреливает высоко, а камень ниже. время Герой быстро положил эту бумажку между собой и выполнил условия.
Как и в первом вопросе, заданном дьяволом, ситуация, когда два типа объектов могут быть разделены прямой линией, называется линейно разделимой. Но очень немногие данные в реальной жизни линейно разделимы, поэтому нам нужно ввести их в более высокие измерения и отделить их листом бумаги, и этот лист бумаги или палка называется гиперплоскостью или разделяющей гиперплоскостью Плоскость, и мы надеемся что гиперплоскость, которую мы находим, стабильна, независимо от того, как размещены данные, в ней трудно ошибиться, откуда и взялась машина опорных векторов. Если мы можем найти точки, ближайшие к гиперплоскости, и найти расстояние между ними, означает ли это, что два типа данных очень далеко друг от друга, то есть чем дальше друг от друга находятся данные, тем меньше вероятность ошибок. Машины опорных векторов решают задачу нахождения максимального интервала.
Опорный вектор относится к тем точкам, которые находятся очень близко к гиперплоскости, а расстояние от опорного вектора до гиперплоскости называется интервалом. Понятие вектора используется потому, что вектор есть вектор.В случае более высоких размерностей данные как с направлением, так и с размером больше подходят для нашей обработки.
Линейная классификация
Как появились ярлыки 1 и -1?
Прежде чем перейти к обсуждению SVM, нам нужно обратиться к происхождению книги, установив метки двух категорий на 1 и -1.
Это должно исходить из происхождения линейной классификацииЛогистическая регрессияГоворя о:
Логистическая регрессия — это широко используемый метод бинарной регрессии. Он подробно описан в главе 5 «Машинное обучение на практике». На самом деле, грубо говоря, мы надеемся получить функцию, которая может получить рассчитанное нами значение, и затем разделите его на категорию 0 или 1. Наиболее распространенной такой функцией является сигмовидная функция, а ее формула расчета и изображение следующие:
Наблюдая за изображением, мы можем получить, что когда z=0,
На данный момент мы решили проблему классификатора, поэтому нам нужно сосредоточиться только на линейной аппроксимации, которая
Это то, что мы называем логистической регрессией. Далее мы свяжем это с SVM:
Формула гиперплоскости в книге
Теперь мы вносим изменения в сигмиод-функцию, меняем метку y=0 на y=-1 и меняем z на
На самом деле мы обнаружили, что эта связь на самом деле просто меняет метку 0 на -1, а другие вещи не изменились. Что касается того, почему бы не использовать напрямую 0 и 1, я объясню далее.
Функциональные и геометрические интервалы
Почему вы хотите установить метки на 1 и -1
Возьмем простой пример. Как показано на рисунке ниже, на двумерной плоскости есть две группы чисел. Одна группа представлена синим, а другая красным цветом. Пусть синий будет классом 1, а красный быть класса -1. Нетрудно видеть, что они линейно разделимы: сначала случайным образом находим гиперплоскость, затем точки выше гиперплоскости относятся к классу 1, а следующие — к классу -1.
Помните, какую проблему пытался решить SVM?Он заключается в том, чтобы найти тот, который дальше всего от гиперплоскости в опорном векторе., для интуитивного анализа мы могли бы также перевести прямую.Первая точка, в которой встречаются две параллельные прямые, является опорным вектором гиперплоскости.Чтобы найти расстояние между ними, первое, что приходит на ум, должна быть точка линия. Формула расстояния:
(Честно говоря, то, что мы используем, это эта формула.Когда я начал учиться, я прочитал эту часть очень быстро, но я не мог понять это позже, потому что вывод SVM содержит много допущений, поэтому это место является фокусом)
На самом деле вывести эту формулу несложно, но чтобы сделать последующие операции более удобными, SVM вводит нечто, называемое расстоянием функции, поэтому давайте сначала посмотрим, что такое расстояние функции:
Определить интервал функции (с помощью таблицы
из них формула
Но если он используется для представления расстояния, недостаточно использовать эту функцию расстояния.Можно подумать о проблеме.Когда w и b уравнения гиперплоскости расширяются в два раза, а именно
Так в это время было введено понятие геометрического интервала:
Предположим, что есть точка x, которая проецируется на гиперплоскость как
Согласно геометрическим знаниям, мы можем получить
Но у приведенной выше формулы есть недостаток, то есть она может быть отрицательной, а расстояние не должно быть отрицательным, поэтому мы умножаем категорию перед ней, что эквивалентно добавлению абсолютного значения, поэтому мы получаем заданное расстояние :
Эта формула кажется знакомой? , которое представляет собой функциональное расстояние, деленное на
Определение классификатора максимальной маржи
Эта часть наиболее серьезно урезана в учебнике.Приведенные выше знания на самом деле очень легко усваиваются, потому что они были изучены ранее, а самая важная часть учебника занята несколькими простыми предложениями.Теперь мы объединим выше.Знания, чтобы объяснить, как найти максимальный интервал.
Давайте рассмотрим, что делает SVM? SVMОн заключается в том, чтобы найти тот, который дальше всего от гиперплоскости в опорном векторе.. К чему бы мы ни пришли, в конце концов мы должны вернуться к этому вопросу! В предыдущем разделе мы говорили о нахождении интервалов с помощью геометрических интервалов, но давайте подробнее рассмотрим формулу:
Мы обнаружили, что очень проблематично спрашивать расстояние, потому что мы не знаем w и b, и мы не знаем числителя и знаменателя соавторства, поэтому это очень сложно решить, поэтому мы можно было бы поставить знаменатель константой, тут много книг.Все ставят знаменатель = 1, ни для чего другого, потому что 1 легко считать. В это время геометрический интервал становится
(На самом деле, этот график давно меня беспокоил, потому что сначала я все время думал, что он определяет расстояние функции как 1, так что же мне делать с точками на нем? Не беспокойтесь об этом вопросе, он включает в себя метод называетсярезервная переменнаявещи, о которых речь пойдет ниже)
Предположим, что исходная гиперплоскость становится двумя пунктирными линиями рядом с ней, расстояние от них до гиперплоскости равно
Но этого недостаточно с формулой, которая заключается в следующем.
Что такое множители Лагранжа и законы двойственности
Если решать интуитивно
Во-первых, давайте разберемся с методом множителей Лагранжа, так зачем вам нужен метод множителей Лагранжа? Помните, что там, где есть метод множителей Лагранжа, это должна быть задача комбинаторной оптимизации. Тогда легко сказать задачу оптимизации с ограничениями, например следующую:
Это задача оптимизации с ограничениями-равенствами, с объективными значениями и ограничениями. Итак, подумайте, как решить проблему предположения об отсутствии ограничений?Можно ли напрямую вывести производную каждого x, равного 0, и решить x. Но x равно 0 и не соответствует ограничениям, тогда возникает проблема. Дело в том, почему говорят, что производная равна 0. Теоретически большинство проблем возможны, но некоторые проблемы нет. Если вывод равен 0, это должно быть возможно, тогда f должна быть задачей выпуклой оптимизации.Что такое выпуклость?Как на следующем рисунке (выпуклость — это просто короткое имя, а направление может быть вверх или вниз):
Для этой выпуклой оптимизации правильнее сказать:
Доволен
Это означает, что функция, которая не является выпуклой функцией, должна выглядеть так (слева):
x удовлетворяет условию 2 один раз и условию 1 один раз, и его соответствующий интервал отличается (правая часть). В настоящее время мы не можем гарантировать, что то, что мы находим на этот раз, должно быть оптимальным решением.
Давайте вернемся к проблеме ограничений. Поскольку существуют ограничения, которые нельзя вывести напрямую, можем ли мы удалить ограничения? Как их удалить? Вот где нужен метод Лагранжа. Поскольку это ограничение равенства, мы умножаем это ограничение на коэффициент и добавляем его к целевой функции, что эквивалентно рассмотрению как исходной целевой функции, так и ограничений.Например, функция выше становится:
Здесь вы можете увидеть
Затем помогите полученным выше результатам привести к ограничениям, и результаты могут быть получены
(Вообще-то строго написать ограничения гиперплоскости, а потом доказать, что она удовлетворяет условиям ККТ, но я думаю, будет намного проще сначала посмотреть на ККТ, а потом посмотреть на задачу в обратном порядке, потому что если вы можешь понять, можешь и сам опровергнуть.)
ККТ условия
Мы продолжаем обсуждать проблемы, оставшиеся от вышеизложенного.На самом деле существует три вида ограничений, ограничения равенства, ограничения больше и ограничения меньше.Для удобства мы заменили ограничения больше на ограничения меньше, поэтому мы разделились на две категории. Что касается этого условия ККТ, вот еще один пример:
Согласно приведенному выше утверждению, мы превращаем проблему «больше знака» в задачу «меньше знака» (почему изменение символа связано с тем, что для унификации операции, конечно, проще решить проблему в одном и том же направление, чем решать проблему в другом направлении), а затем следуйте за тягой. Практика метода множителя Грейнджа плюс альфа, мы получаем:
Итак, каково определение состояния ККТ? Это относительное выражение, которое становится:
Где g — ограничение неравенства, а h — ограничение равенства, тогда KKT относится к оптимальному решению функции, которое удовлетворяет следующим условиям:
На самом деле, первые два легко понять, они такие же, как и ограничения равенства, а третий я рисовать не буду, для иллюстрации воспользуюсь непосредственно формулой из книги:
Уравнение SVM:
KKT позже получает:
Теперь о третьем условии, мы можем понять его так:
в условиях ограничений
Следовательно, согласно приведенному выше утверждению, уравнение 1 может быть записано как:
Давайте посмотрим на формулу, которую мы получили выше:
Давайте посмотрим слева направо. Найти задачу несложно. Чтобы решить уравнение, мы должны сначала решить внутренний слой. То есть мы должны вычислить решение ограничения неравенства в начале, а затем вычислить w и b, но это точно Трудно найти, так что лучше передумать, сначала рассчитать ситуацию без ограничений, добавить ограничения и снова сделать расчет, что и есть закон двойственности. То есть наше уравнение выше эквивалентно:
Подробный момент написанный
На этот раз гораздо удобнее, и это преобразование тоже приносит определенные преимущества.Находим w,b и затем находим альфу, то есть в конце есть только одно решение альфа, что сводит наше решение только к одному Теперь альфа может представлять все. Я не знаю, помните ли вы еще точку альфа = 0, о которой мы упоминали выше в рамках ограничений, тогда с этим легко справиться. Опорный вектор — это ненулевая альфа. Решение также альфа, как об этом, разве это не очень умно?
Трехшаговый вывод для решения двойственных задач
Происхождение алгоритма SMO
Мы очень близки к ответу.Мы продолжаем делать выводы согласно идее в начале.Теперь все уравнение разрешилось в состояние, которое позволяет нам напрямую вывести = 0, чтобы получить наиболее ценное состояние, тогда давайте попробуем:
Сначала зафиксируйте альфа и найдите частные производные по w и b:
Собственно, в этом и смысл кода в статье:
fXi = float(np.multiply(alphas, labelMat).T * (dataMatrix * dataMatrix[i, :].T)) + b
Затем приведенный выше результат привести к исходной формуле (набирать формулу слишком хлопотно, я напрямую использую процесс вывода июля):
Наконец получить:
При выводе этой части нужно запомнить только результат, потому что процесс вывода на самом деле очень сложен и не нужен, достаточно запомнить следующую формулу.
Вещи, выведенные выше, имеют еще один i и j в исходной формуле, Фактически это означает, что мы случайным образом извлекаем два из вектора и используем их, и используем эти два вектора, чтобы найти максимальный интервал.
что такое слабая переменная
Помните вопрос, который мы оставили выше? Для удобства вычислений мы предполагаем, что расстояние функции равно 1, но мы обнаруживаем, что есть некоторые точки в интервале после того, как предположение равно 1. Как с этим быть? Например, на рисунке ниже мы обнаруживаем, что данные линейно разделимы, поэтому с ними легко обращаться.После того, как я предположил, что расстояние функции равно 1, интервал интервала определен.Точки в интервале не удовлетворяют ограничение, поэтому я возьму Эти две пунктирные линии продолжают двигаться внутрь, и диапазон становится все меньше и меньше, пока в конечном диапазоне нет точки Это то, что мы хотим получить в конце.
То есть, пока данные линейно разделимы, мы должны иметь возможность получить гиперплоскость, которая может идеально разделить данные. Но такого рода данные редко встречаются в реальной жизни.Что делать, если появляются вышеуказанные данные:
Изначально это был хороший набор данных, но он оказался таким выбросом (большая красная точка), наш интервал мог бы быть очень большим, но из-за таких данных интервал был очень маленьким, а то и вообще никаким. интервал. . На данный момент нам нужно ввести понятие, называемое переменной резерва.
Переменные Slack, как следует из названия, должны ослабить требования этого интервала:
Сравнив верхнее и нижнее изображения, я добавил к изображению две красные пунктирные линии, которые являются переменными slack,
Установка такой вещи означает, что нам не нужно заботиться о том, какая категория данных в интервале от переменной slack до гиперплоскости, мы этого не хотим, потому что давайте посмотрим на распределение данных выше, эти странные В конце концов, данных — это всего лишь небольшое число. Наша выборка такая большая. Это не большая проблема, чтобы иметь несколько меньше. В сочетании со знаниями, которые мы получили выше, мы можем легко вывести новое ограничение:
Смысл этого соотношения в том, что для альфы нам нужно только найти альфу в диапазоне больше 0 и меньше С, тогда точки в других местах берутся согласно вышеуказанным ограничениям.
Затем давайте посмотрим на это в сочетании с SMO, Алгоритм SMO случайным образом берет два вектора и смотрит, можно ли их оптимизировать. Что такое оптимизация, то есть два полученных вектора связаны с проблемой, которую мы хотим решить, и я думаю, что их можно исследовать дальше. Это означает, что наши два вектора должны быть в пределах (0, C).Что, если вектор, который мы берем, не находится в этом диапазоне?Пусть он будет равен границе, например, на рисунке выше Да, если точка находится вне черным пунктиром, то я заставлю его быть равным 1 (альфа=0 объяснено выше) Аналогично, если он находится за пределами красного пунктира, то пусть он будет равен C. Это гарантировано, I каждый раз вектор нарисован, он не повлияет на предполагаемый интервал, если он не нужен.
Теперь, когда я объяснил самую основную часть, я продолжу работу с функциями ядра.
использованная литература
Машинное обучение в действии Питера Харрингтона
«Математические основы искусственного интеллекта» Тан Юди
Популярное введение в машины опорных векторов (понимание трехуровневой области SVM)
Углубленный анализ версии исходного кода SVM для Python (3) — категория прогноза выборки расчета
Расшифровка SVM Series (1): Окола лагранжианского мультипликатора и условий KKT
blog.CSDN.net/on2 Брасс/Аретти…
Основная идея SVM и вводное обучение (перепечатка + объяснение, почему minL(w) становится minmaxL(a,w))
blog.CSDN.net/яблочный плавник/…
Задача выпуклой оптимизации, задача выпуклого квадратичного программирования QP, выпуклая функция
Трансформация SVM из примитивной проблемы в двойственную и причины
Почему SVM преобразует исходную проблему в двойную?
Математический вывод машины опорных векторов, часть 1
Расшифровка серии SVM (1): о методе множителей Лагранжа и условиях ККТ
blog.CSDN.net/on2 Брасс/Аретти…
Понимание переменных Slack машины опорных векторов
blog.CSDN.net/UST не предназначен для /art…
Свободные переменные SVM
blog.CSDN.net/Пять цветных облаков/…
Примечания к изучению гиперплоскости максимального интервала SVM и размышления об установке интервала функции на 1
blog.CSDN.net/WeChat_4402…Выше статья находится в выпусках, рекомендуется посетить этот сайт**
«Машинное обучение на практике»: популярное понимание машин опорных векторов
Об этой статье
В конце концов, «Машинное обучение на практике» — это только практическая книга, она больше предназначена для того, чтобы читатели поняли, как использовать алгоритмы, при этом уменьшив долю теоретических частей. Как и в Главе 6: Машины опорных векторов, самое важное в нейКлассификаторы решают задачи оптимизацииЧуть меньше двух страниц. Знания о машинах опорных векторов уже неясны и трудны для понимания, но эта книга по-прежнему является хорошим вводным учебником.Я считаю, что многие студенты используют этот превосходный учебник, поэтому я использую этот учебник как основу для анализа.
Много статей об SVM в Интернете хорошо написано. Среди них, я думаю, лучшая из них — «Популярное введение в машины опорных векторов (понимание трехслойной области SVM)», написанное Июлем. Вывод формулы очень всеобъемлющий. , оправдано. Но я плохо изучаю математику, поэтому я думаю, что эта статья слишком «хардкорна» для меня, и я думаю, что, поскольку первое, что нужно изучить алгоритм, — это понять, популярный момент — преобразовать теоретические вещи в свои собственные. слова. Поэтому я хочу написать статью, которая будет легко понятна студентам моего уровня математики.Конечно, я не пропущу вывод математических формул, потому что это ядро, но я буду интерпретировать это в более популярной форме.
На самом деле, это учебная заметка, которая является чисто личным пониманием.Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь исправлять меня, спасибо!
Какой части учебника соответствует эта статья?
Эта часть учебника действительно трудна для понимания. (Студенты, которые не видели, могут посмотреть содержание ниже)
Что такое СВМ
Видел очень яркий пример в статье:
Давным-давно возлюбленная героя попала в плен к дьяволу, герой хотел ее спасти, но дьявол затеял с ним игру, название было такое: Горсть риса и горсть камней на стол, я сейчас Вот палка, я хочу, чтобы вы взяли это и палку, чтобы разделить две вещи.
Итак, герой делит это так:
Это выглядит хорошо? Но в это время дьявол умышленно усложнил ему задачу и поставил на стол много вещей.В это время кажется, что что-то не в том лагере?
Итак, герои снова поставили палку
Теперь, сколько бы дьявол не поставил на стол, эта палка также может сыграть хороший демаркационный эффект:
В это время чёрт торопился, снова так разложил рис и камни и попросил царицу дать богатырю лист бумаги и дать ему разделить их:
Герой с первого взгляда чувствует себя нехорошо. Молодец, черт возьми, не говорите о боевых искусствах, а вы сердито хлопаете по столу. В это время легкая гиря, как рис, выстреливает высоко, а камень ниже. время Герой быстро положил эту бумажку между собой и выполнил условия.
Как и в первом вопросе, заданном дьяволом, ситуация, когда два типа объектов могут быть разделены прямой линией, называется линейно разделимой. Но очень немногие данные в реальной жизни линейно разделимы, поэтому нам нужно ввести их в более высокие измерения и отделить их листом бумаги, и этот лист бумаги или палка называется гиперплоскостью или разделяющей гиперплоскостью Плоскость, и мы надеемся что гиперплоскость, которую мы находим, стабильна, независимо от того, как размещены данные, в ней трудно ошибиться, откуда и взялась машина опорных векторов. Если мы можем найти точки, ближайшие к гиперплоскости, и найти расстояние между ними, означает ли это, что два типа данных очень далеко друг от друга, то есть чем дальше друг от друга находятся данные, тем меньше вероятность ошибок. Машины опорных векторов решают задачу нахождения максимального интервала.
Опорный вектор относится к тем точкам, которые находятся очень близко к гиперплоскости, а расстояние от опорного вектора до гиперплоскости называется интервалом. Понятие вектора используется потому, что вектор есть вектор.В случае более высоких размерностей данные как с направлением, так и с размером больше подходят для нашей обработки.
Линейная классификация
Как появились ярлыки 1 и -1?
Прежде чем перейти к обсуждению SVM, нам нужно обратиться к происхождению книги, установив метки двух категорий на 1 и -1.
Это должно исходить из происхождения линейной классификацииЛогистическая регрессияГоворя о:
Логистическая регрессия — это широко используемый метод бинарной регрессии. Он подробно описан в главе 5 «Машинное обучение на практике». На самом деле, грубо говоря, мы надеемся получить функцию, которая может получить рассчитанное нами значение, и затем разделите его на категорию 0 или 1. Наиболее распространенной такой функцией является сигмовидная функция, а ее формула расчета и изображение следующие:
Наблюдая за изображением, мы можем получить, что когда z=0,
На данный момент мы решили проблему классификатора, поэтому нам нужно сосредоточиться только на линейной аппроксимации, которая
Это то, что мы называем логистической регрессией. Затем мы связываем его с SVM:
Формула гиперплоскости в книге
Теперь мы вносим изменения в сигмиод-функцию, меняем метку y=0 на y=-1 и меняем z на
На самом деле мы обнаружили, что эта связь на самом деле просто меняет метку 0 на -1, а другие вещи не изменились. Что касается того, почему бы не использовать напрямую 0 и 1, я объясню далее.
Функциональные и геометрические интервалы
Почему вы хотите установить метки на 1 и -1
Возьмем простой пример. Как показано на рисунке ниже, на двумерной плоскости есть две группы чисел. Одна группа представлена синим, а другая красным цветом. Пусть синий будет классом 1, а красный быть класса -1. Нетрудно видеть, что они линейно разделимы: сначала случайным образом находим гиперплоскость, затем точки выше гиперплоскости относятся к классу 1, а следующие — к классу -1.
Помните, какую проблему пытался решить SVM?Он заключается в том, чтобы найти тот, который дальше всего от гиперплоскости в опорном векторе., для интуитивного анализа мы могли бы также перевести прямую.Первая точка, в которой встречаются две параллельные прямые, является опорным вектором гиперплоскости.Чтобы найти расстояние между ними, первое, что приходит на ум, должна быть точка линия. Формула расстояния:
(Честно говоря, то, что мы используем, это эта формула.Когда я начал учиться, я прочитал эту часть очень быстро, но я не мог понять это позже, потому что вывод SVM содержит много допущений, поэтому это место является фокусом)
На самом деле вывести эту формулу несложно, но чтобы сделать последующие операции более удобными, SVM вводит нечто, называемое расстоянием функции, поэтому давайте сначала посмотрим, что такое расстояние функции:
Определить интервал функции (с помощью таблицы
из них формула
Но если он используется для представления расстояния, недостаточно использовать эту функцию расстояния.Можно подумать о проблеме.Когда w и b уравнения гиперплоскости расширяются в два раза, а именно
Так в это время было введено понятие геометрического интервала:
Предположим, что есть точка x, которая проецируется на гиперплоскость как
Согласно геометрическим знаниям, мы можем получить
Но у приведенной выше формулы есть недостаток, то есть она может быть отрицательной, а расстояние не должно быть отрицательным, поэтому мы умножаем категорию перед ней, что эквивалентно добавлению абсолютного значения, поэтому мы получаем заданное расстояние :
Эта формула кажется знакомой? , которое представляет собой функциональное расстояние, деленное на
Определение классификатора максимальной маржи
Эта часть наиболее серьезно урезана в учебнике.Приведенные выше знания на самом деле очень легко усваиваются, потому что они были изучены ранее, а самая важная часть учебника занята несколькими простыми предложениями.Теперь мы объединим выше.Знания, чтобы объяснить, как найти максимальный интервал.
Давайте рассмотрим, что делает SVM? SVMОн заключается в том, чтобы найти тот, который дальше всего от гиперплоскости в опорном векторе.. К чему бы мы ни пришли, в конце концов мы должны вернуться к этому вопросу! В предыдущем разделе мы говорили о нахождении интервалов с помощью геометрических интервалов, но давайте подробнее рассмотрим формулу:
Мы обнаружили, что очень проблематично спрашивать расстояние, потому что мы не знаем w и b, и мы не знаем числитель и знаменатель соавторства, поэтому это очень сложно решить, поэтому мы можно было бы поставить знаменатель константой, тут много книг.Все ставят знаменатель = 1, ни для чего другого, потому что 1 легко считать. В это время геометрический интервал становится
(На самом деле, этот график давно меня беспокоил, потому что сначала я все время думал, что он определяет расстояние функции как 1, так что же мне делать с точками на нем? Не беспокойтесь об этом вопросе, он включает в себя метод называетсярезервная переменнаявещи, о которых речь пойдет ниже)
Предположим, что исходная гиперплоскость становится двумя пунктирными линиями рядом с ней, расстояние от них до гиперплоскости равно
Но этого недостаточно с формулой, которая заключается в следующем.
Что такое множители Лагранжа и законы двойственности
Если решать интуитивно
Во-первых, давайте разберемся с методом множителей Лагранжа, так зачем вам нужен метод множителей Лагранжа? Помните, что там, где есть метод множителей Лагранжа, это должна быть задача комбинаторной оптимизации. Тогда легко сказать задачу оптимизации с ограничениями, например следующую:
Это задача оптимизации с ограничениями-равенствами, с объективными значениями и ограничениями. Итак, подумайте, как решить проблему предположения об отсутствии ограничений?Можно ли напрямую вывести производную каждого x, равного 0, и решить x. Но x равно 0 и не соответствует ограничениям, тогда возникает проблема. Дело в том, почему говорят, что производная равна 0. Теоретически большинство проблем возможны, но некоторые проблемы нет. Если вывод равен 0, это должно быть возможно, тогда f должна быть задачей выпуклой оптимизации.Что такое выпуклость?Как на следующем рисунке (выпуклость — это просто короткое имя, а направление может быть вверх или вниз):
Для этой выпуклой оптимизации правильнее сказать:
Доволен
Это означает, что функция, которая не является выпуклой функцией, должна выглядеть так (слева):
x удовлетворяет условию 2 один раз и условию 1 один раз, и его соответствующий интервал отличается (правая часть). В настоящее время мы не можем гарантировать, что то, что мы находим на этот раз, должно быть оптимальным решением.
Давайте вернемся к проблеме ограничений. Поскольку существуют ограничения, которые нельзя вывести напрямую, можем ли мы удалить ограничения? Как их удалить? Вот где нужен метод Лагранжа. Поскольку это ограничение равенства, мы умножаем это ограничение на коэффициент и добавляем его к целевой функции, что эквивалентно рассмотрению как исходной целевой функции, так и ограничений.Например, функция выше становится:
Здесь вы можете увидеть
Затем помогите полученным выше результатам привести к ограничениям, и результаты могут быть получены
(Вообще-то строго написать ограничения гиперплоскости, а потом доказать, что она удовлетворяет условиям ККТ, но я думаю, будет намного проще сначала посмотреть на ККТ, а потом посмотреть на задачу в обратном порядке, потому что если вы можешь понять, можешь и сам опровергнуть.)
ККТ условия
Мы продолжаем обсуждать проблемы, оставшиеся от вышеизложенного.На самом деле существует три вида ограничений, ограничения равенства, ограничения больше и ограничения меньше.Для удобства мы заменили ограничения больше на ограничения меньше, поэтому мы разделились на две категории. Что касается этого условия ККТ, вот еще один пример:
Согласно приведенному выше утверждению, мы превращаем проблему «больше знака» в задачу «меньше знака» (почему изменение символа связано с тем, что для унификации операции, конечно, проще решить проблему в одном и том же направление, чем решать проблему в другом направлении), а затем следуйте за тягой. Практика метода множителя Грейнджа плюс альфа, мы получаем:
Итак, каково определение состояния ККТ? Это относительное выражение, которое становится:
Где g — ограничение неравенства, а h — ограничение равенства, тогда KKT относится к оптимальному решению функции, которое удовлетворяет следующим условиям:
На самом деле, первые два легко понять, они такие же, как и ограничения равенства, а третий я рисовать не буду, для иллюстрации воспользуюсь непосредственно формулой из книги:
Уравнение SVM:
KKT позже получает:
Теперь о третьем условии, мы можем понять его так:
в условиях ограничений
Следовательно, согласно приведенному выше утверждению, уравнение 1 может быть записано как:
Давайте посмотрим на формулу, которую мы получили выше:
Давайте посмотрим слева направо. Найти задачу несложно. Чтобы решить уравнение, мы должны сначала решить внутренний слой. То есть мы должны вычислить решение ограничения неравенства в начале, а затем вычислить w и b, но это точно Трудно найти, так что лучше передумать, сначала рассчитать ситуацию без ограничений, добавить ограничения и снова сделать расчет, что и есть закон двойственности. То есть наше уравнение выше эквивалентно:
Подробности написаны
На этот раз гораздо удобнее, и это преобразование также приносит определенные преимущества.Находим w, b и затем находим альфу, то есть в конце есть только одно решение, альфа, что сводит наше решение только к одному Теперь альфа может представлять все. Я не знаю, помните ли вы еще точку альфа = 0, о которой мы упоминали выше в рамках ограничений, тогда с этим легко справиться. Опорный вектор - это ненулевая альфа. Решение также альфа, как об этом, разве это не очень умно?
Трехшаговый вывод для решения двойственных задач
Происхождение алгоритма SMO
Мы очень близки к ответу.Мы продолжаем делать выводы согласно идее в начале.Теперь все уравнение разрешилось в состояние, которое позволяет нам напрямую вывести = 0, чтобы получить наиболее ценное состояние, тогда давайте попробуем:
Сначала зафиксируйте альфа и найдите частные производные по w и b:
Собственно, в этом и смысл кода в статье:
fXi = float(np.multiply(alphas, labelMat).T * (dataMatrix * dataMatrix[i, :].T)) + b
Затем приведенный выше результат привести к исходной формуле (набирать формулу слишком хлопотно, я напрямую использую процесс вывода июля):
Наконец получить:
При выводе этой части нужно запомнить только результат, потому что процесс вывода на самом деле очень сложный и ненужный, можно просто запомнить следующую формулу.
Вещи, выведенные выше, имеют еще один i и j в исходной формуле, Фактически это означает, что мы случайным образом извлекаем два из вектора и используем их, и используем эти два вектора, чтобы найти максимальный интервал.
что такое слабая переменная
Помните вопрос, который мы оставили выше? Для удобства вычислений мы предполагаем, что расстояние функции равно 1, но мы обнаруживаем, что есть некоторые точки в интервале после того, как предположение равно 1. Как с этим быть? Например, на рисунке ниже мы обнаруживаем, что данные линейно разделимы, поэтому с ними легко обращаться.После того, как я предположил, что расстояние функции равно 1, интервал интервала определен.Точки в интервале не удовлетворяют ограничение, поэтому я возьму Эти две пунктирные линии продолжают двигаться внутрь, и диапазон становится все меньше и меньше, пока в конечном диапазоне нет точки Это то, что мы хотим получить в конце.
То есть, пока данные линейно разделимы, мы должны иметь возможность получить гиперплоскость, которая может идеально разделить данные. Но такого рода данные редко встречаются в реальной жизни.Что делать, если появляются вышеуказанные данные:
Изначально это был хороший набор данных, но он оказался таким выбросом (большая красная точка), наш интервал мог бы быть очень большим, но из-за таких данных интервал был очень маленьким, а то и вообще никаким. интервал. . На данный момент нам нужно ввести понятие, называемое переменной резерва.
Переменные Slack, как следует из названия, предназначены для ослабления требований этого интервала:
Сравнив верхнее и нижнее изображения, я добавил к изображению две красные пунктирные линии, которые являются переменными slack,
Установка такой вещи означает, что нам не нужно заботиться о том, какая категория данных в интервале от переменной slack до гиперплоскости, мы этого не хотим, потому что давайте посмотрим на распределение данных выше, эти странные В конце концов, данных — это всего лишь небольшое число. Наша выборка такая большая. Это не большая проблема, чтобы иметь несколько меньше. В сочетании со знаниями, которые мы получили выше, мы можем легко вывести новое ограничение:
Смысл этого соотношения в том, что для альфы нам нужно только найти альфу в диапазоне больше 0 и меньше С, тогда точки в других местах берутся согласно вышеуказанным ограничениям.
Затем давайте посмотрим на это в сочетании с SMO, Алгоритм SMO случайным образом берет два вектора и смотрит, можно ли их оптимизировать. Что такое оптимизация, то есть два полученных вектора связаны с проблемой, которую мы хотим решить, и я думаю, что их можно исследовать дальше. Это означает, что наши два вектора должны быть в пределах (0, C).Что, если вектор, который мы берем, не находится в этом диапазоне?Пусть он будет равен границе, например, на рисунке выше Да, если точка находится вне черным пунктиром, то я заставлю его быть равным 1 (альфа=0 объяснено выше) Аналогично, если он находится за пределами красного пунктира, то пусть он будет равен C. Это гарантировано, I каждый раз вектор нарисован, он не повлияет на предполагаемый интервал, если он не нужен.
Теперь, когда я объяснил самую основную часть, я продолжу работу с функциями ядра.
использованная литература
Машинное обучение в действии Питера Харрингтона
«Математические основы искусственного интеллекта» Тан Юди
Популярное введение в машины опорных векторов (понимание трехуровневой области SVM)
Углубленный анализ версии исходного кода SVM для python (3) — категория прогноза расчетной выборки
Расшифровка серии SVM (1): о методе множителей Лагранжа и условиях ККТ
blog.CSDN.net/on2 Брасс/Аретти…
Основная идея SVM и вводное обучение (перепечатка + объяснение, почему minL(w) становится minmaxL(a,w))
blog.CSDN.net/яблочный плавник/…
Задача выпуклой оптимизации, задача выпуклого квадратичного программирования QP, выпуклая функция
Трансформация SVM из примитивной проблемы в двойственную и причины
Почему SVM преобразует исходную проблему в двойную?
Математический вывод машины опорных векторов, часть 1
Расшифровка серии SVM (1): о методе множителей Лагранжа и условиях ККТ
blog.CSDN.net/on2 Брасс/Аретти…
Понимание переменных Slack машины опорных векторов
blog.CSDN.net/UST не предназначен для /art…
Свободные переменные SVM
blog.CSDN.net/Пять цветных облаков/…
Примечания к изучению гиперплоскости максимального интервала SVM и размышления об установке интервала функции на 1