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

381

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

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

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

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

Поддержка Vector Machine или Искусственная нейронная сеть для обработки текста?

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

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

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

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

Channel72
источник
61
К сожалению, это, вероятно, скоро будет закрыто или перенесено, но мне очень нравится этот вопрос. Я не хотел бы ничего лучше, чем видеть ряд вдумчивых ответов на этот.
duffymo
10
Я полагаю, что большинство ответов на этот вопрос будут умозрительными или основанными на доказательствах, потому что теоретических гарантий относительно мощности этих машин очень мало. Например (если я правильно помню), неизвестно, является ли n-слойная нейронная сеть с прямой связью более мощной, чем 2-уровневая сеть. Так как же мы можем сказать, что одно лучше другого в принципе, если мы даже не понимаем взаимосвязи между небольшими вариациями одной и той же модели?
JeremyKun
13
Это закрыто для того, чтобы не быть очень конструктивным ... Lol!
эрогол
65
Мне нравится, что StackOverflow старается поддерживать высокое качество вопросов и ответов. Я ненавижу, что StackOverflow применяет это с помощью топора вместо скальпеля. Есть разница между вопросом "как мне сделать HTML материал?" и предметно-ориентированный вопрос, на который было бы трудно найти ответ в другом месте. Есть причина, по которой у нее 140 голосов - но она считается "неконструктивной". Подобные вопросы являются воплощением конструктивности. Конечно, гораздо больше, чем многие из тех, что я вижу каждый день, которые аккуратно попадают в формат вопросов и ответов, но, тем не менее, бесполезны почти для всех, кроме спрашивающего.
Чейз Райс
20
Это очевидно конструктивно. Я не могу понять, почему это будет закрыто. Это требует конкретных ситуаций, когда использование одного алгоритма имеет преимущества по сравнению с использованием альтернативного алгоритма. Разве это не разумно спросить?
Раб

Ответы:

137

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

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

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

РЕДАКТИРОВАТЬ : все вышеперечисленное относится к общему случаю ядра SVM. Линейные SVM представляют собой особый случай, поскольку они являются параметрическими и позволяют проводить онлайн-обучение с помощью простых алгоритмов, таких как стохастический градиентный спуск.

Фред Фу
источник
12
Другая причина может быть найдена в этой статье: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . Короче говоря, автор заявляет, что «глубокие архитектуры» могут представлять «интеллектуальное» поведение / функции и т. Д. Более эффективно, чем «мелкие архитектуры», такие как SVM.
Alfa
1
Кроме того, глубокое обучение несколько теряет «преимущества», данные здесь для MLP (фиксированный размер, более простое обучение). Я не уверен, что эти преимущества того стоят.
Мухаммед Алкарури
6
@MuhammadAlkarouri: глубокое обучение - довольно широкий набор методов, но те, с которыми я знаком, сохраняют преимущество моделей, являющихся параметрическими (фиксированного размера).
Фред Фу
Два комментария: точка онлайн-обучения верна, но существует вариант SVM-подобных классификаторов, специально предназначенных для онлайн-обучения, под названием MIRA (тип пассивно-агрессивного классификатора), для которого обновления тривиальны. Во-вторых, стоит отметить, что многие нейронные сети могут быть сформулированы как SVM через трюк ядра.
Бен Эллисон
1
@FredFoo также ANN может застрять в локальных минимумах, где в качестве машин опорных векторов эта проблема не склонна.
турист
62

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

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

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

Алан
источник
18
На самом деле, существуют настоящие мультиклассовые формулировки машины опорных векторов (см. Статьи Crammer & Singer). Я считаю, что LibSVM содержит реализацию этих.
Фред Фу
3
Однако обучить мультиклассовый SVM не так просто, и производительность в OVA кажется лучше, чем в подходе AVA.
crodriguezo
3
«Нет смысла пытаться решить эту проблему с помощью искусственной нейронной сети». Вы можете использовать нейронную сеть для решения классификации рукописных цифр. Я сделал это как задание для класса. Выходной слой содержит вероятности всех цифр. Класс с наибольшей вероятностью используется в качестве гипотезы. У меня был показатель точности 94%.
user3266824
Вы имеете в виду создание n числа 1 против N-1 SVM-классификаторов против использования NN для получения n выходных данных. SVM, кажется, медленнее в этом смысле?
MSCW
@ user3266824 Да, эта цитата не стареет.
запустить DOSrun
46

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

Брайс
источник
18

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

Предположим, что у вас есть ограниченные функции f (.) И ограниченные универсальные аппроксиматоры на I = [0,1] с диапазоном снова I = [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. И имейте в виду, что длина поддержки свободна.

Василейос Анагностопулос
источник
14

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

dolbi
источник
12

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

strozzino
источник
6
На мой взгляд, создание разумного ядра и создание разумного метрического вложения одинаково проблематично. Так что это всего лишь комментарий о том, что ядра могут быть более разнообразными, чем метрики, но я на самом деле этого не покупаю. ohli.de/download/papers/Deza2009.pdf
JeremyKun