2016-03-28 3 views
1

У меня возникли проблемы с пониманием того, как работает SVM при использовании RBF. Мои знания в области математики в порядке, но до сих пор каждое объяснение, с которым я столкнулся, слишком мало для меня. Мое настоящее понимание заключается в следующем. Предположим, что я использую SVM в качестве бинарного классификатора для набора данных, который не является линейно разделяемым (поэтому правильный выбор rbf?). Когда SVM обучен, он построит гиперплоскость (которая, как я думаю, похожа на плоскость в 3d, но с большим размером?), Которая лучше всего разделяет данные.Объяснение того, как работает функция радиального базиса в машинах с поддержкой векторов

При настройке изменение значения гаммы изменяет поверхность гиперплоскости (также называемой границей решения?).

Это где я начинаю получать правильно смешивать ..

Так увеличение значения гаммы, приводит к гауссовой, который является более узким. Это как сказать, что удары на плоскости (если нанесены в 3d), которые могут быть нанесены на график, разрешены, чтобы быть более узкими, чтобы лучше соответствовать учебным данным? Или в 2D это как сказать гамма определяет, насколько гибкой может быть линия, которая разделяет данные?

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

ответ

3

(так что RBF является правильный выбор?)

Это зависит от многого. RBF - это очень простое, общее ядро, которое может быть использовано, но есть десятки других. Посмотрите, например, на них включены в pykernels https://github.com/gmum/pykernels

Когда SVM обучен будет построить гиперплоскость (который я думаю, как самолет в 3d, но с большим количеством измерений?), Который наилучшим образом разделяет данные.

Позволяет избежать странных путаниц. Ничего не найдено . здесь. SVM будет искать d-мерную гиперплоскость, определяемую v (нормальный вектор) и b (смещение, расстояние от начала координат), которое является просто набором точек x таких, что <v, x> = b. В 2D гиперплоскости есть линия, в 3D гиперплоскости - плоскость, в d + 1 измерениях это d-мерный объект, всегда один размер ниже пространства (линия 1D, плоскость 2D).

При настройке изменение значения гаммы изменяет поверхность гиперплоскости (также называемой границей решения?).

Это часто ошибка. Граница принятия решений не гиперплоскость. Граница принятия решений представляет собой проекцию гиперплоскости на входное пространство. Вы не можете наблюдать фактическую гиперплоскость, поскольку она часто очень высока. Вы можете выразить эту гиперплоскость как функциональное уравнение, но не более того. Граница принятия решений, с другой стороны, «живет» в вашем входном пространстве, если вход является низкоразмерным, вы можете даже построить этот объект. Но это не гиперплоскость, это просто то, как эта гиперплоскость пересекается с вашим входным пространством. Вот почему граница решения часто изогнута или даже прерывиста, хотя гиперплоскость всегда линейна и непрерывна, потому что вы просто видите ее нелинейный участок. Теперь что такое gamma? Ядро RBF приводит к оптимизации в пространстве непрерывных функций. Их много (существует континуум таких объектов).Однако SVM может выражать лишь небольшую часть этих парней - линейные комбинации значений ядра в точках тренировки. Фиксируя определенные гамма-пределы, набор функций для рассмотрения - больше гамма, более узкие ядра, поэтому функции, которые рассматриваются, состоят из линейных комбинаций таких «колючих» распределений. Таким образом, сама гамма не меняет поверхность, она меняет пространство рассмотренных гипотез.

Таким образом, увеличение значения гамма приводит к гауссовскому, который уже. Это как сказать, что удары на плоскости (если нанесены в 3d), которые могут быть нанесены на график, разрешены, чтобы быть более узкими, чтобы лучше соответствовать учебным данным? Или в 2D это как сказать гамма определяет, насколько гибкой может быть линия, которая разделяет данные?

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

<v, x> - b = SUM_i alpha_i K_gamma(x_i, x) - b 

где K_gamma(x_i, x) = exp(-gamma ||x_i-x||^2), таким образом, вы получите очень «колючие» элементы вашей основы. это приведет к очень плотной подгонке ваших данных обучения. Точную форму границы решения трудно оценить, так как это зависит от оптимальных множителей лагранжий alpha_i, отобранных во время обучения.

Я также очень смущен о том, как это может привести к бесконечному размерному представлению из конечного числа признаков? Любые хорошие аналогии мне очень помогли бы.

«Бесконечное представление» исходит из того, что для того, чтобы работать с векторами и гиперплоскостью, каждый из вашей точки фактически отображается в непрерывной функции. Таким образом, SVM, внутренне, больше не работает с d-мерными точками, он работает с функциями. Рассмотрим случай 2d, у вас есть точки [0,0] и [1,1]. Это простая проблема 2d. Когда вы применяете SVM с ядром rbf здесь, вы вместо этого будете работать с ненормализованным гауссовым распределением с центром в [0, 0] и другим в [1,1]. Каждый такой гауссов является функцией от R^2 до R, которая выражает функцию плотности вероятности (pdf). Это немного сбивает с толку, потому что ядро ​​выглядит также как гауссово, но это только, потому что точечный продукт двух функций обычно определяется как интеграл своего произведения, а интеграл произведения двух гауссовых тоже ... гауссовый тоже ! Итак, где же эта бесконечность? Помните, что вы должны работать с векторами. Как записать функцию как вектор? Вам нужно будет перечислить все его значения, поэтому, если у вас есть функция f(x) = 1/sqrt(2*pi(sigma^2) exp(-||x-m||^2/(2*sigma^2)), вам нужно будет указать бесконечное число таких значений, чтобы полностью определить его. И именно это понятие бесконечной размерности - вы сопоставляете точки с функциями, функции бесконечномерны в терминах векторных пространств, поэтому ваше представление бесконечномерно.

Одним хорошим примером может быть другое сопоставление. Рассмотрим 1D набор данных чисел 1,2,3,4,5,6,7,8,9,10. Позволяет назначать нечетные числа различной меткой, чем четные. Вы не можете линейно отделить этих парней. Но вместо этого можно сопоставить каждую точку (номер) для вида характеристической функции, функции вида

f_x(y) = 1 iff x e [y-0.5, y+0.5] 

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

<v, x> = SUM_[v_odd] <f_[v_odd](y), f_x(y)> = INTEGRAL (f_v * f_x) (y) dy 

И это будет равно 1 тогда и только тогда х нечетно, так как только этот интеграл будет не равен нулю. Очевидно, что я просто использую конечное количество точек тренировки (здесь v_odd), но само представление бесконечномерно.Откуда эта дополнительная «информация»? Из моих предположений - то, как я определил отображение, представляет определенную структуру в рассматриваемом мной пространстве. Подобно RBF - вы получаете бесконечное измерение, но это не значит, что вы на самом деле рассматриваете каждую функцию континуума - вы ограничиваете себя линейными комбинациями гауссианов, сосредоточенных в учебных точках. Аналогичным образом вы можете использовать синусоидальное ядро, которое ограничивает вас комбинациями синусоидальных функций. Выбор конкретного «лучшего» ядра - это вся другая история, сложная и без четких ответов. Надеюсь это немного поможет.