Каковы преимущества искусственных нейронных сетей над векторными машинами поддержки?

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

Эти вопросы о Stackoverflow уже заданы в отношении ANN vs SVM:

Классификация ANN и SVM

какая разница между ANN, SVM и KNN в моем вопросе классификации

Поддержка векторной машины или искусственной нейронной сети для обработки текста?

В этом вопросе я хотел бы узнать конкретно, какие аспекты ANN (в частности, многослойный персептрон) могут сделать его желательным для использования над SVM? Причина, о которой я прошу, заключается в том, что легко ответить на противоположный вопрос: поддержка векторных машин часто превосходит ANN, потому что они избегают двух основных недостатков ANN:

(1) ANN часто сходятся по локальным минимумам, а не по глобальным минимумам, что означает, что они по существу "пропускают большую картину" иногда (или пропускают лес для деревьев)

(2) ANN часто перерабатывают, если обучение идет слишком долго, что означает, что для любого заданного шаблона ANN может начать рассматривать шум как часть шаблона.

SVM не страдают ни одной из этих двух проблем. Однако неясно, что SVM предназначены для полной замены для ANN. Итак, какое конкретное преимущество имеет ANN над SVM, которое может сделать его применимым для определенных ситуаций? Я перечислил конкретные преимущества SVM через ANN, теперь я хотел бы увидеть список преимуществ ANN (если есть).

Ответ 1

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

Одно из преимуществ, которое эти модели имеют над SVM, заключается в том, что их размер фиксирован: они являются параметрическими, а SVM не параметрические. То есть, в ANN у вас есть куча скрытых слоев с размерами h 1 через h n в зависимости от количества функций, а также параметров смещения, и это составляет ваш модель. Напротив, SVM (по крайней мере, ядро) состоит из набора поддерживающих векторов, выбранных из набора тренировок, с весом для каждого. В худшем случае количество поддерживающих векторов - это точно количество обучающих образцов (хотя это в основном происходит с небольшими наборами упражнений или в дегенеративных случаях), и в целом его размер модели линейно масштабируется. При обработке на естественном языке классификаторы SVM с десятками тысяч поддерживающих векторов, каждый из которых имеет сотни тысяч функций, не являются неслыханными.

Кроме того, онлайн-обучение сетей FF очень просто по сравнению с онлайн-подключением SVM, и прогнозирование может быть довольно быстрым.

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

Ответ 2

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

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

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

Ответ 3

Следует отметить, что эти два действительно связаны между собой. Линейные SVM эквивалентны однослойным NN (то есть персептронам), и многослойные NN могут быть выражены в терминах SVM. Подробнее см. здесь.

Ответ 4

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

Предположим, что у вас есть ограниченные функции f (.) И ограниченные универсальные аппроксиматоры на я = [0,1] с диапазоном снова я = [0,1], например, которые параметризованы вещественной последовательностью компактного носителя U (., A) с свойство, что существует последовательность последовательностей с

lim sup { |f(x) - U(x,a(k) ) | : x } =0

и вы рисуете примеры и тесты (x,y) с дистрибутивом D на IxI.

Для получения предписанной поддержки вы должны найти лучшее, что

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Пусть это a=aa которая является случайной величиной!

среднее с использованием D and D^{N} of ( y - U(x,aa) )^{2}

Позвольте мне объяснить, почему, если вы выбираете aa таким образом, что ошибка сведена к минимуму, то для редкого набора значений, которые имеют идеальную посадку. Однако, поскольку они редки, среднее значение никогда не равно 0. Вы хотите минимизировать второе, хотя у вас есть дискретное приближение к D. И имейте в виду, что длина поддержки свободна.

Ответ 5

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

Ответ 6

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