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

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

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

Давайте приступим к делу.

Машины опорных векторов

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

Какая линия лучше всего разделяет наши два класса? Вариантов много:

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

  • Не переоборудован
  • Не переоборудован
  • Хорошо обобщает новые данные

Теперь рассмотрим два следующих примера:

И добавьте новую точку данных к каждому:

Какой график лучше? Определенно тот, что справа. Тот, что слева, ошибочно классифицирует X как O, в то время как тот, что справа, имеет достаточно большое расстояние до точек обучения, которое можно обобщить для новых данных. Это цель алгоритма SVM:

найти гиперплоскость в N-мерном пространстве, которая четко классифицирует точки данных, где N - количество функций

Посмотрим, как это сделать.

Интуиция

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

Это уравнение говорит нам, что стоимость каждого примера обучения составляет:

где h - логистическая функция:

Когда y^(i) = 1, правая часть уравнения 2 будет равна нулю, в результате чего мы получим:

Мы можем нарисовать график уравнения 4, чтобы лучше понять его поведение:

Мы видим, что Theta^T * X должно быть намного больше нуля, чтобы наша модель выдала значение, равное единице. Функция стоимости для SVM будет вести себя точно так же. Однако вместо того, чтобы быть больше нуля, SVM добавит более жесткие ограничения, требуя, чтобы Theta^T * X было больше единицы. Вот примерное представление о том, как это будет выглядеть:

Мы будем называть это Cost_1(Theta^T * X). Мы можем провести такой же точный анализ, когда y=0 в уравнении 2:

Мы будем называть этот случай Cost_0(Theta^T * X). Прежде чем мы сможем собрать все это вместе, нам нужно сделать одно последнее замечание.

Когда мы работали с нейронными сетями, мы видели, что вы можете добавить параметр регуляризации к своей функции затрат, чтобы предотвратить переобучение. На самом деле этот параметр регуляризации можно и нужно использовать со всеми функциями стоимости. Например, вот уравнение 1 с добавленным к нему параметром регуляризации:

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

Обратите внимание, что мы по-прежнему суммируем квадрат вектора Theta, за исключением того, что мы больше не умножаем на lambda/2m. Вместо этого мы умножаем на константу C. Мы не будем вдаваться в подробности, почему мы это делаем, но имейте в виду, что этим все равно достигается то же самое.

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

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

Ответ? Ядра.

Ядра

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

SVM по-другому работает с границами сложных решений. Обычно функции, рассматриваемые в наших моделях, имеют форму умножения Thetas на Xs в любом порядке. Например:

На этот раз наш Xs будет вычисляться по-другому. Вместо x_1 и x_2 у нас будут f_1, f_2, f_3 и т. Д. Это изменение нотации используется для демонстрации того, что входные данные нашей функции теперь должны проходить через вторую функцию. Чтобы понять это, рассмотрим следующий график:

l здесь упоминается как ориентир. Эти ориентиры действуют как «пороги». Расстояние между каждым ориентиром и тренировочной точкой будет рассчитываться с использованием выбранного нами уравнения расстояния. Мы будем называть это уравнение расстояния функцией подобия. Функция подобия - это любая функция, которая вычисляет сходство (расстояние) между любыми двумя точками. Мы также называем это ядром. Например, мы можем использовать ядро ​​Гаусса для вычисления сходства между нашими тренировочными точками и ориентирами, которые мы выделили на рисунке 9:

Давайте посмотрим на это в действии на примере. Мы все еще работаем с графиком на рисунке 9, но давайте добавим к нему несколько тренировочных моментов:

Теперь предположим, что мы хотим использовать следующее уравнение, чтобы соответствовать этому графику:

и что после обучения этой модели мы придумали Theta_0 = -0.5, Theta_1 = 1, Theta_2 = 1 и Theta_3 = 0.

Точка обучения 1 близка к ориентиру, поэтому f_1 будет примерно равняться единице (начиная с e^0 = 1, и здесь мы используем гауссово ядро). Точно так же, поскольку тренировочная точка 1 находится далеко от ориентиров два и три, f_2 и f_3 будут приблизительно равны нулю. Таким образом, уравнение 6 будет равно -0.5 + 1 = 0.5 >= 0, поэтому мы прогнозируем one для первой точки обучения. Если вы выполните те же вычисления для точек два и три, вы придете к выводу, что все точки, близкие к ориентирам один и два, дадут прогноз, равный единице, а все точки, близкие к ориентиру три, дадут прогноз, равный нулю. Таким образом, мы можем аппроксимировать следующую границу решения:

Заключение

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

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

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

  • Мы видели, как ориентиры используются для установления более сложных границ принятия решений. Как мы выбираем положение наших ориентиров? Эту концепцию сложно придумать самостоятельно, поэтому я отсылаю вас к уроку Эндрю Нг по этому поводу.
  • Зачем нам SVM, если у нас уже есть нейронные сети?
  • Есть несколько разных способов понять интуицию, стоящую за SVM. В этой статье мы пришли к пониманию, сначала посмотрев на нашу реализацию логистической регрессии, а затем изменив ее таким образом, чтобы ее можно было использовать с SVM. Другой способ - посмотреть на это с помощью векторных манипуляций. Вот классная лекция с описанием SVM из этого объектива.

Прошлые статьи

  1. Часть первая: Предварительная обработка данных
  2. Часть вторая: Линейная регрессия с использованием градиентного спуска: интуиция и реализация
  3. Часть третья: Логистическая регрессия с использованием градиентного спуска: интуиция и реализация
  4. Часть четвертая - 1: Нейронные сети. Часть 1: Терминология, мотивация и интуиция
  5. Часть четвертая - 2: Нейронные сети. Часть 2: обратное распространение и проверка градиента
  6. Часть шестая: Оценка вашей гипотезы и понимание систематической ошибки в сравнении с дисперсией

Бесстыдный штекер

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

  1. Курс Coursera по машинному обучению Эндрю Нг
  2. Машина опорных векторов Рохита Ганди - Введение в алгоритмы машинного обучения
  3. Обучение MIT OpenCourseWare: поддержка векторных машин