www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Уловка ядра в классификации опорных векторов

Дата публикации Dec 12, 2018

Трюк с ядром кажется одним из самых запутанных понятий в статистике и машинном обучении; сначала это кажется подлинным математическим колдовством, не говоря уже о проблеме лексической неоднозначности (относится ли ядро ​​к непараметрическому способу оценки плотности вероятности (статистики), множеству векторовvдля которого линейное преобразование T отображается в нулевой вектор - т.е. T (v) = 0 (линейная алгебра), набор элементов в группе G, которые отображаются на единичный элемент посредством гомоморфизма между группами (теория групп), ядро ​​компьютерной операционной системы (информатика) или что-то связанное с семена орехов или фруктов?).

Хотя есть некоторые препятствия для понимания хитрости ядра, очень важно понять, как ядра используются в классификации векторов поддержки. По практическим соображениям это важно понимать, потому что реализация классификаторов опорных векторов требует указания функции ядра, и не существует общих правил, чтобы знать, какое ядро ​​будет работать лучше для ваших конкретных данных.

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

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

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

Введение в поддержку векторной классификации

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

В следующем 2-м примере мы можем разделить данные любой из трех линий, а затем просто назначить классы в зависимости от того, находится ли наблюдение над или под линией. Данные представляют собой 2-мерные векторы, заданные признаками X1 и X2 с метками классов как y = 1 (синий) или y = 0 (красный).

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

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

Опорные векторы - это точки на пунктирных линиях. Расстояние от пунктирной линии до сплошной линии - это поле, представленное стрелками.

Машины опорных векторов гораздо сложнее интерпретировать в больших измерениях. Гораздо сложнее представить, как данные могут быть линейно разделены и как будет выглядеть граница принятия решения. Гиперплоскость в p-измерениях - это p-1-мерное «плоское» подпространство, которое находится внутри большего p-мерного пространства. В двух измерениях гиперплоскость - это просто линия. В 3-х измерениях гиперплоскость представляет собой правильную двумерную плоскость. Математически мы имеем следующее:

Уравнения, определяющие гиперплоскость, и правила классификации, определенные границей решения.

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


Нелинейные преобразования

Если данные не являются линейно разделяемыми в исходном или входном пространстве, то мы применяем преобразования к данным, которые отображают данные из исходного пространства в пространство пространственных объектов более высокого размера. Цель состоит в том, чтобы после преобразования в пространство более высокой размерности классы были теперь линейно разделимыми.в этом пространстве пространственных объектов, Затем мы можем подогнать границу решения, чтобы разделить классы и сделать прогнозы. Граница решения будет гиперплоскостью в этом пространстве более высокого измерения.

Очевидно, что визуализировать многомерные данные сложно, поэтому мы сначала сосредоточимся на некоторых преобразованиях, применяемых к одномерным данным. В этом примере на рисунке слева показаны наши исходные данные. В одномерном случае эти данные не являются линейно разделимыми, но после применения преобразованияφ(x) = x² и добавив это второе измерение в наше пространство признаков, классы станут линейно разделимыми.

Эти данные становятся линейно разделимыми после квадратичного преобразования в 2-мерные измерения.

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

Здесь мы применяем преобразованиеφ(х) = х мод 2

Это преобразование позволяет линейно разделить четные и нечетные значения X1 в двух измерениях.

Теперь давайте рассмотрим пример, в котором наши исходные данные не являются линейно разделимыми в двух измерениях. Вот наши исходные данные, которые нельзя разделить линейно.

После следующей трансформации:

Наши данные становятся линейно разделимыми (по 2-й плоскости) в 3-х измерениях.

Линейно разделимые данные в 3-й после применения полиномиального преобразования 2-й степени

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


Трюк с ядром

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

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

В методах ядра набор данныхИкспредставлена ​​матрицей ядра n x n парных сравнений подобия, где записи (i, j) определяютсяфункция ядра:k (xi, xj). Эта функция ядра обладает особым математическим свойством. Функция ядра действует как модифицированный точечный продукт. У нас есть:

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

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

Например, уловка ядра для полинома 2-й степени проиллюстрирована ниже, и мы визуализировали это преобразование в 3-й точке на предыдущем рисунке. Преобразованные векторы имеют координаты, которые являются функциями двух компонентов x1 и x2. таким образом, скалярное произведение будет включать только компоненты x1 и x2. Функция ядра также будет принимать входные данные x1, x2 и возвращать действительное число. Точечный продукт также всегда возвращает действительное число.

В левой части мы имеем скалярное произведение преобразованных векторов признаков, которое равно нашей функции ядра полинома 2-й степени.

Функция ядра здесь - это ядро ​​полинома k (a, b) = (a ^ T * b) ²

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

В нижнем уравнении мы заменяем скалярное произведение преобразованных векторов на функцию ядра.

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

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map