Подтвердить что ты не робот

SVM и нейронная сеть

В чем разница между SVM и нейронной сетью? Верно ли, что линейное svm равно NN, а для нелинейных сепарабельных задач NN использует добавление скрытых слоев, а SVM использует изменения размеров пространства?

4b9b3361

Ответ 1

В этом вопросе есть две части. Первая часть: "Какова форма функции, выученная этими методами?" Для NN и SVM это обычно одно и то же. Например, одна нейронная сеть с одним скрытым слоем использует ту же форму модели, что и SVM. То есть:

Учитывая входной вектор x, выход: output (x) = sum_over_all_i weight_i * nonlinear_function_i (x)

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

Следовательно, разница между SVM и NN заключается в том, как они решают, к каким параметрам должны быть установлены. Обычно, когда кто-то говорит, что они используют нейронную сеть, они подразумевают, что они пытаются найти параметры, которые сводят к минимуму среднеквадратичную ошибку предсказания относительно набора примеров обучения. Они также почти всегда будут использовать последовательная минимальная оптимизация.

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

Ответ 2

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

Нет, даже для линейно разделяемых задач NNs и SVM не совпадают.

В случае линейно несепарабельных классов, как SVM, так и NNs применяют нелинейную проекцию в многомерное пространство. В случае NN это достигается за счет введения дополнительных нейронов в скрытый слой (слои). Для SVM функция ядра используется для того же эффекта. Чистое свойство функции ядра заключается в том, что вычислительная сложность не увеличивается с числом измерений, тогда как для NNs она явно возрастает с числом нейронов.

Ответ 3

Выполнение простого готового сравнения между машинами опорных векторов и нейронными сетями (БЕЗ любого выбора параметров) для нескольких популярных наборов данных регрессии и классификации демонстрирует практические различия: SVM становится очень медленным предиктором, если используется много векторов поддержки создается в то время как скорость предсказания нейронной сети намного выше, а размер модели намного меньше. С другой стороны, время обучения намного меньше для SVM. Что касается точности/потери - несмотря на вышеупомянутые теоретические недостатки нейронных сетей - оба метода находятся на одном уровне - особенно для проблем регрессии, нейронные сети часто превосходят машины опорных векторов. В зависимости от вашей конкретной проблемы, это может помочь выбрать правильную модель.

Ответ 4

SVM и NN имеют тот же строительный блок, что и перцептроны, но SVM также использует трюк ядра, чтобы поднять размерность, скажем, с 2 до 3d путем перевода, такого как Y = (x1,2,.. ^ 2, y1,2... ^ 2), которые могут разделять линейно неразделимые равнины, используя прямую линию. Хотите демо, как это и спросите меня :)

Ответ 5

Практически большинство ваших предположений часто совершенно верно. Я уточню: для линейных разделяемых классов Linear SVM работает довольно хорошо, и его гораздо быстрее обучать. Для нелинейных классов есть трюк ядра, который отправляет ваши данные в пространство более высокой размерности. Этот прием, однако, имеет два недостатка по сравнению с NN. Во-первых, вам нужно искать правильные параметры, потому что классификатор будет работать только в том случае, если в более высоком измерении два набора будут линейно разделены. Теперь - тестирование параметров часто выполняется с помощью поиска в сетке, который занимает много времени процессора. Другая проблема состоит в том, что вся эта методика не такая общая, как NN (например, для NLP, если часто приводит к плохому классификатору).

Ответ 6

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