Нейронные сети против опорных векторных машин: второе определенно превосходит?


52

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

SVM вместо NN,

  • Иметь сильную теорию основания
  • Достигнуть глобального оптимума благодаря квадратичному программированию
  • Нет проблем для выбора правильного количества параметров
  • Менее склонны к переоснащению
  • Требуется меньше памяти для хранения прогнозирующей модели
  • Дайте более читаемые результаты и геометрическую интерпретацию

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

С другой стороны, с какой абстрактной проблемой вы определенно столкнетесь с NN?


4
Я думаю, что вопрос может быть немного широким. Но на практике NN кажутся гораздо более настраиваемыми с выбором структуры NN, тогда как SVM имеют меньше параметров. Есть два вопроса: если бы NN были оптимально настроены для решения проблемы, как бы это было с SVM? И в руках среднего практикующего, как SVM сравнивается с NN?
Патрик Калдон

2
@PatrickCaldon Я понимаю вашу точку зрения, но большее количество параметров не всегда означает лучший инструмент, если вы не знаете, как их настроить соответствующим образом. Даже если это возможно, может потребоваться длительное изучение; или вам может не понадобиться такая широкая возможность настройки для целей вашего приложения
stackovergio

1
это моя точка зрения. Какой вопрос, как инструмент работает в идеальных условиях для конкретных проблем? или как инструмент работает для большинства людей большую часть времени? Я думаю, что самый большой компонент здесь - человек между прочим. В связи с этим, я думаю, что уместными факторами часто являются: насколько сложен каждый инструмент для изучения? Есть ли эксперты, которые знают, как его использовать? и т.д. Это может объяснить многое из того, что «я получил хорошую производительность от X»
Патрик Калдон

1
Из того, что я знаю, многослойные ANN с прямой связью являются универсальными аппроксиматорами, более или менее независимо от функции активации. Я не знаю аналогичного результата для SVM, который, насколько мне известно, гораздо больше зависит от используемой функции ядра.
Момо

2
В практическом использовании я считаю NNs немного более практичным из-за времени обучения. Нелинейные SVM просто не могут хорошо обрабатывать большие N. Оба алгоритма могут соответствовать друг другу, и оба требуют сильной регуляризации.
Ши Паркс

Ответы:


43

Это вопрос компромиссов. SVMs находятся в прямо сейчас, NNS используются , чтобы быть в . Вы найдете все больше статей, в которых утверждается, что в журналах представлены «Случайные леса», «Вероятностные графические модели» или «Непараметрические байесовские методы» . Кто-то должен опубликовать прогнозную модель в « Анналах невероятных исследований» о том, какие модели будут считаться модными.

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


Плюсы NN:

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

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


Плюсы СВМ:

  • Меньше гиперпараметров. Как правило, для получения достаточно точной модели SVM требует меньше поиска по сетке. SVM с ядром RBF обычно работает довольно хорошо.

  • Глобальный оптимум гарантирован.


Минусы NN и SVM:

  • Для большинства целей они оба черные ящики. Существует некоторое исследование по интерпретации SVM, но я сомневаюсь, что оно когда-нибудь будет таким же интуитивным, как GLM. Это серьезная проблема в некоторых проблемных областях.
  • Если вы собираетесь принять черный ящик, то обычно вы можете выжать немного больше точности, упаковав / сложив / улучшив множество моделей с различными компромиссами.

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

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

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


41
Я бы сказал, что с недавним ростом глубинного обучения NN могут считаться более «интересными», чем SVM.
Bayerj

30

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

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


7
Я полностью согласен с этим. В настоящее время я обучаю SVM и ANN на данных интерфейса мозг-компьютер, и есть некоторые наборы данных, где SVM лучше, и некоторые наборы данных, где ANN лучше. Интересно то, что когда я усредняю ​​производительность по всем наборам данных, которые я использую, SVM и ANN достигают абсолютно одинаковой производительности. Конечно, это не доказательство. Это просто анекдот. :)
Альфа

27

Я просто попытаюсь объяснить свое мнение, которое, как мне кажется, разделяет большинство моих друзей. У меня есть следующие опасения по поводу NN, которые вообще не касаются SVM:

  1. В классическом NN количество параметров чрезвычайно велико. Допустим, у вас есть векторы длины 100, которые вы хотите классифицировать на два класса. Один скрытый слой того же размера, что и входной слой, приведет к более чем 100000 свободных параметров. Только представьте, как сильно вы можете надеть (насколько легко упасть до локального минимума в таком месте) и сколько тренировочных очков вам понадобится, чтобы предотвратить это (и сколько времени вам нужно будет тренировать).
  2. Обычно вы должны быть настоящим экспертом, чтобы сразу выбрать топологию. Это означает, что если вы хотите получить хорошие результаты, вам следует провести много экспериментов. Вот почему проще использовать SVM и сказать, что вы не можете получить аналогичные результаты с NN.
  3. Обычно результаты NN не воспроизводимы. Даже если вы запустите тренировку NN дважды, вы, вероятно, получите разные результаты из-за случайности алгоритма обучения.
  4. Обычно у вас нет никакой интерпретации результатов вообще. Это небольшая проблема, но все равно.

Это не значит, что вы не должны использовать NN, вы должны просто использовать его осторожно. Например, Convolutional NN может быть чрезвычайно хорош для обработки изображений, другие Deep NN оказались хорошими и для других задач.

Надеюсь, это поможет.


2
Чтобы сделать результаты ANN воспроизводимыми, запустите случайную функцию.
Франк Дернонкур

@Franck Это не настоящая воспроизводимость.
здравомыслие

17

Я использую нейронные сети для большинства проблем. Дело в том, что в большинстве случаев речь идет больше об опыте пользователя, чем о модели. Вот несколько причин, почему мне нравятся NNs.

  1. Они гибкие. Я могу бросить в них любую потерю, какую захочу: потеря в петле, квадрат, перекрестная энтропия, назовите это. Пока это различимо, я могу даже рассчитать убыток, который точно соответствует моим потребностям.
  2. К ним можно относиться вероятностно: байесовские нейронные сети, вариационные байесовские алгоритмы, MLE / MAP, все есть. (Но в некоторых случаях сложнее.)
  3. Они быстрые. Большинство MLP будут двумя матричными умножениями и одним нелинейным компонентом, применяемым между ними. Удар это с SVM.

Я расскажу другие ваши пункты шаг за шагом.

Иметь сильную теорию основания

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

Достигнуть глобального оптимума благодаря квадратичному программированию

Для одного набора гиперпараметров. Тем не менее, поиск хорошего hps не является выпуклым, и вы не будете знать, нашли ли вы также глобальный оптимум.

Нет проблем для выбора правильного количества параметров

С SVM вы также должны выбирать гиперпараметры.

Требуется меньше памяти для хранения прогнозирующей модели

Вам нужно хранить векторы поддержки. Как правило, SVM не будет дешевле хранить MLP, это зависит от ситуации.

Дайте более читаемые результаты и геометрическую интерпретацию

Верхний слой MLP является логистической регрессией в случае классификации. Таким образом, существует геометрическая интерпретация (разделяющая гиперплоскость) и вероятностная интерпретация.


Зачем мне хранить векторы поддержки? Разве этого недостаточно, чтобы хранить гиперплоскость / маринг SVM?
Джулиан

Это потому, что гиперплоскость представлена ​​через опорные векторы. Чтобы вычислить расстояние новой точки от нее, вы будете повторять ее.
Bayerj

0

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

Ронан Коллоберт и Сэми Бенжио. 2004. Связи между персептронами, MLP и SVM. В материалах двадцать первой международной конференции по машинному обучению (ICML '04). ACM, Нью-Йорк, Нью-Йорк, США, 23 года. DOI: https://doi.org/10.1145/1015330.1015415

а также

Андрас, Питер. (2002). Эквивалентность опорных векторов и регуляризация нейронных сетей. Нейронная обработка писем. 15. 97-104. 10,1023 / A: +1015292818897.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.