ANN (искусственные нейронные сети) и SVM (машины опорных векторов) являются двумя популярными стратегиями для контролируемого машинного обучения и классификации. Часто неясно, какой метод лучше подходит для конкретного проекта, и я уверен, что ответ всегда «зависит». Часто используется комбинация обоих, наряду с байесовской классификацией.
Эти вопросы о Stackoverflow уже задавались относительно ANN против SVM:
какая разница между ANN, SVM и KNN в моем вопросе классификации
Поддержка Vector Machine или Искусственная нейронная сеть для обработки текста?
В этом вопросе, я хотел бы знать конкретно , какие аспекты ИНС ( в частности, многослойный персептрон) может сделать его желательно использовать в течение SVM? Причина, по которой я спрашиваю, заключается в том, что легко ответить на противоположный вопрос: машины опорных векторов часто превосходят ANN, потому что они избегают двух основных недостатков ANN:
(1) ANN часто сходятся на локальных минимумах, а не на глобальных минимумах, что означает, что они иногда «упускают общую картину» (или пропускают лес за деревьями)
(2) ANN часто перерабатывают, если обучение продолжается слишком долго, что означает, что для любого данного шаблона ANN может начать рассматривать шум как часть шаблона.
SVM не страдают ни от одной из этих двух проблем. Тем не менее, не совсем очевидно, что SVM предназначены для полной замены ANN. Итак, какие конкретные преимущества имеет ANN по сравнению с SVM, что может сделать его применимым в определенных ситуациях? Я перечислил конкретные преимущества SVM над ANN, теперь я хотел бы увидеть список преимуществ ANN (если есть).
источник
Ответы:
Судя по предоставленным вами примерам, я предполагаю, что под ANN вы подразумеваете многослойные сети с прямой связью (для краткости FF), такие как многослойные персептроны, поскольку они находятся в прямой конкуренции с SVM.
Одно из конкретных преимуществ этих моделей перед SVM состоит в том, что их размер фиксирован: они являются параметрическими моделями, а SVM - непараметрическими. То есть в ANN у вас есть несколько скрытых слоев с размерами от h 1 до h nв зависимости от количества функций, а также параметров смещения и тех, которые составляют вашу модель. Напротив, SVM (по крайней мере, ядро) состоит из набора опорных векторов, выбранных из обучающего набора, с весом для каждого. В худшем случае число опорных векторов - это точно количество обучающих выборок (хотя это в основном происходит с небольшими обучающими наборами или в вырожденных случаях), и в целом его размер модели линейно масштабируется. При обработке на естественном языке нередко встречаются классификаторы SVM с десятками тысяч векторов поддержки, каждый из которых имеет сотни тысяч функций.
Кроме того, онлайн-обучение FF-сетям очень просто по сравнению с онлайн-настройкой SVM, и прогнозирование может быть немного быстрее.
РЕДАКТИРОВАТЬ : все вышеперечисленное относится к общему случаю ядра SVM. Линейные SVM представляют собой особый случай, поскольку они являются параметрическими и позволяют проводить онлайн-обучение с помощью простых алгоритмов, таких как стохастический градиентный спуск.
источник
Одно очевидное преимущество искусственных нейронных сетей перед машинами опорных векторов состоит в том, что у искусственных нейронных сетей может быть любое количество выходов, в то время как у машин опорных векторов есть только один. Самый прямой способ создать n-арный классификатор с машинами опорных векторов - это создать n машин опорных векторов и обучать каждую из них одну за другой. С другой стороны, n-арный классификатор с нейронными сетями может быть обучен за один раз. Кроме того, нейронная сеть будет иметь больше смысла, потому что это одно целое, тогда как машины опорных векторов являются изолированными системами. Это особенно полезно, если результаты взаимосвязаны.
Например, если целью является классификация рукописных цифр, подойдут десять машин опорных векторов. Каждый механизм опорных векторов распознает ровно одну цифру и не распознает все остальные. Поскольку каждая рукописная цифра не может содержать больше информации, чем просто ее класс, нет смысла пытаться решить эту проблему с помощью искусственной нейронной сети.
Однако предположим, что цель состояла в том, чтобы смоделировать гормональный баланс человека (для нескольких гормонов) как функцию легко измеряемых физиологических факторов, таких как время с момента последнего приема пищи, частота сердечных сокращений и т. Д. Поскольку все эти факторы взаимосвязаны, искусственные нейронные регрессия в сети имеет больше смысла, чем регрессия опорных векторов.
источник
Стоит отметить, что оба они на самом деле очень связаны. Линейные SVM эквивалентны однослойным NN (то есть перцептронам), а многослойные NN могут быть выражены через SVM. Смотрите здесь для некоторых деталей.
источник
Если вы хотите использовать ядро SVM, вы должны угадать ядро. Тем не менее, ИНС являются универсальными аппроксиматорами, и нужно только угадать ширину (точность аппроксимации) и высоту (эффективность аппроксимации). Если вы правильно спроектировали задачу оптимизации, вы не переусердствовали (см. Библиографию для переоснащения). От обучающих примеров также зависит, правильно ли они сканируют пространство поиска. Определение ширины и глубины является предметом целочисленного программирования.
Предположим, что у вас есть ограниченные функции f (.) И ограниченные универсальные аппроксиматоры на I = [0,1] с диапазоном снова I = [0,1], например, которые параметризованы вещественной последовательностью компактного носителя U (., A) с свойство, что существует последовательность последовательностей с
а вы рисуете примеры и тесты
(x,y)
с дистрибутивом D наIxI
.Для получения предписанной поддержки вы должны найти лучшее, что
Пусть это
a=aa
случайная переменная!среднее использование
D and D^{N} of ( y - U(x,aa) )^{2}
Позвольте мне объяснить, почему, если вы выбираете
aa
так, чтобы ошибка была минимальной, то для редкого набора значений вы идеально подходите. Однако, поскольку они редки, среднее значение никогда не равно 0. Вы хотите минимизировать второе, хотя у вас есть дискретное приближение к D. И имейте в виду, что длина поддержки свободна.источник
Единственный ответ, который я здесь упускаю: многослойный персептрон может найти связь между функциями. Например, это необходимо в компьютерном зрении, когда необработанное изображение предоставляется алгоритму обучения, и теперь вычисляются сложные функции. По сути, промежуточные уровни могут рассчитывать новые неизвестные функции.
источник
Мы также должны учитывать, что система SVM может быть применена непосредственно к неметрическим пространствам, таким как набор помеченных графов или строк. Фактически, внутренняя функция ядра может быть должным образом обобщена для практически любого вида ввода при условии, что требование ядра к положительной определенности удовлетворено. С другой стороны, чтобы иметь возможность использовать ANN на наборе помеченных графов, необходимо рассмотреть явные процедуры встраивания.
источник