Когда мне следует использовать машины опорных векторов, а не искусственные нейронные сети?

Я знаю, что SVM предположительно являются «убийцами ИНС», поскольку они автоматически выбирают сложность представления и находят глобальный оптимум (см. здесь для некоторых Восхваляющие цитаты SVM).

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

Итак, пример некоторых случаев, которые я хотел бы прояснить:

  • Лучше ли SVM, чем ANN со многими классами?
  • в онлайн-режиме?
  • Как насчет полуконтролируемого случая, такого как обучение с подкреплением?
  • Есть ли лучшая неконтролируемая версия SVM?

Я не ожидаю, что кто-то ответит на все эти маленькие подвопросы, а скорее даст некоторые общие оценки того, когда SVM лучше, чем обычные эквиваленты ANN (например, FFBP, рекуррентный BP, машины Больцмана, SOM и т. д.) на практике, а желательно и в теории.


person zergylord    schedule 14.07.2011    source источник


Ответы (5)


Являются ли SVM лучше, чем ANN со многими классами? Вы, вероятно, имеете в виду тот факт, что SVM по сути являются одноклассовыми или двухклассовыми классификаторами. На самом деле они есть, и нет никакого способа модифицировать алгоритм SVM для классификации более двух классов.

Фундаментальной особенностью SVM является разделяющая гиперплоскость с максимальным запасом, положение которой определяется максимальным расстоянием от опорных векторов. И все же SVM обычно используются для многоклассовой классификации, которая выполняется с помощью обработки-оболочки вокруг нескольких классификаторов SVM, которые работают по шаблону «один против многих», т. е. обучающие данные показываются первой SVM, которая классифицирует эти экземпляры. как "Класс I" или "не Класс I". Затем данные второго класса отображаются для второй SVM, которая классифицирует эти данные как "Класс II" или "не Класс II" и так далее. На практике это работает достаточно хорошо. Как и следовало ожидать, более высокое разрешение SVM по сравнению с другими классификаторами не ограничивается данными двух классов.

Насколько я могу судить, исследования, опубликованные в литературе, подтверждают это, например, в статье с провокационным названием Пол с помощью машин опорных векторов для SVM было сообщено о значительно лучшем разрешении для идентификации пола (мужской/женский) в изображениях размером 12 квадратных пикселей по сравнению с группа традиционных линейных классификаторов; SVM также превзошел RBF NN, а также большой ансамбль RBF NN). Но, по-видимому, существует множество подобных доказательств превосходной производительности SVM в задачах с несколькими классами: например, SVM превзошел NN в распознавание белковых складок и в прогнозирование временных рядов.

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

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

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

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

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

А как насчет частично контролируемого случая, такого как обучение с подкреплением? До комментария OP к этому ответу я не знал ни о нейронных сетях, ни о SVM, используемых таким образом - но они.

Наиболее широко используемый полуконтролируемый вариант SVM называется Transductive SVM (TSVM), впервые упомянутым Владимиром Вапником (тот же парень, который открыл/изобрел обычный SVM). Я почти ничего не знаю об этой технике, кроме того, как она называется и что она следует принципам преобразования (примерно латеральное рассуждение — т. е. рассуждение от обучающих данных к тестовым данным). Очевидно, TSV является предпочтительным методом в области текста. классификация.

Есть ли лучшая неконтролируемая версия SVM? Я не думаю, что SVM подходят для обучения без учителя. Разделение основано на положении гиперплоскости с максимальным запасом, определяемом опорными векторами. Это может легко быть моим собственным ограниченным пониманием, но я не понимаю, как это могло бы произойти, если бы эти опорные векторы не были помечены (т. Е. Если бы вы не знали заранее, что вы пытаетесь разделить). Одним из важнейших случаев использования неконтролируемых алгоритмов является случай, когда у вас нет помеченных данных или они есть, и они сильно несбалансированы. Например, онлайн-мошенничество; здесь вы можете иметь в своих обучающих данных только несколько точек данных, помеченных как «мошеннические учетные записи» (и обычно с сомнительной точностью), по сравнению с остальными> 99%, помеченными как «не мошеннические». В этом сценарии классификатор с одним классом, типичная конфигурация для SVM, является хорошим вариантом. В частности, обучающие данные состоят из экземпляров, помеченных как «не мошеннические» и «неподходящие» (или какой-либо другой ярлык, указывающий, что они не принадлежат к классу) — другими словами, «внутри границы решения» и «вне границы решения». ."

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

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

Тем не менее, я думаю, что репутация SVM немного снизилась за последние несколько лет.

Я подозреваю, что основная причина — конкуренция NetFlix. NetFlix подчеркнул разрешающую способность фундаментальных методов матричной декомпозиции и, что еще более важно, силу объединения классификаторов. Люди объединяли классификаторы задолго до NetFlix, но скорее как случайный метод, чем как атрибут дизайна классификатора. Более того, многие методы комбинирования классификаторов необычайно просты для понимания и реализации. Напротив, SVM не только очень сложно закодировать (на мой взгляд, это самый сложный алгоритм машинного обучения для реализации в коде), но также трудно настроить и реализовать в виде предварительно скомпилированной библиотеки — например, необходимо выбрать ядро. , результаты очень чувствительны к тому, как масштабируются/нормализуются данные и т. д.

person doug    schedule 14.07.2011
comment
Вау, спасибо за ответ, Дуг! Я оставлю вопрос открытым еще некоторое время, но я думаю, что ваш ответ будет принятым. Кроме того, есть вариант ANN для обучения с подкреплением, поддержка временной разницы (TDBP), но после ваших комментариев я согласен с тем, что, вероятно, не существует версии SVM. - person zergylord; 15.07.2011
comment
Спасибо. И спасибо за ссылку на TDBP (я понятия не имел). Это заставило меня исследовать гибриды RL-SVM, и я действительно нашел довольно популярный, и я соответствующим образом пересмотрел свой ответ выше. Я также просмотрел свои источники по сравнению классификаторов (SVM против NN) и добавил несколько ссылок на эти источники. - person doug; 16.07.2011
comment
Я опаздываю на вечеринку, но я хотел бы отметить, что вы можете довольно легко обобщить SVM на мультикласс. - person Benjamin Gruenbaum; 22.06.2014
comment
@doug Не могли бы вы ответить на этот вопрос: ai. stackexchange.com/questions/7280/ большое спасибо. - person ebrahimi; 26.07.2018

Мне понравился ответ Дуга. Я хотел бы добавить два комментария.

1) Владимир Вапник также стал соавтором измерения VC, которое важно в теории обучения.

2) Я думаю, что SVM были лучшими общими классификаторами с 2000 по 2009 год, но после 2009 года я не уверен. Я думаю, что в последнее время нейронные сети значительно улучшились благодаря работе в автокодировщиках глубокого обучения и разреженного шумоподавления. Мне показалось, что я видел ряд тестов, в которых они превзошли SVM. См., например, слайд 31 из

http://deeplearningworkshopnips2010.files.wordpress.com/2010/09/nips10-workshop-tutorial-final.pdf

Несколько моих друзей использовали метод разреженного автоматического кодировщика. Нейронные сети, построенные с помощью этой техники, значительно превзошли старые нейронные сети с обратным распространением. Я постараюсь опубликовать некоторые экспериментальные результаты на artent.net, если у меня будет время.

person Hans Scundal    schedule 29.09.2012

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

person Yaroslav Bulatov    schedule 30.09.2012

– Есть ли лучшая неконтролируемая версия SVM?

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

  1. "отделить" набор данных как можно дальше от исходного или
  2. определить радиус как можно меньше.

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

person Anne van Rossum    schedule 20.03.2014

Лучше ли SVM, чем ANN со многими классами?

SVM были предназначены для дискретной классификации. Прежде чем перейти к ANN, попробуйте методы ensemble, такие как Random Forest , Усиление градиента, Гауссовская классификация вероятности и т. д.

Как насчет полуконтролируемого случая, такого как обучение с подкреплением?

Глубокое обучение Q предлагает лучшие альтернативы.

Есть ли лучшая неконтролируемая версия SVM?

SVM не подходит для обучения без учителя. У вас есть другие альтернативы для обучения без учителя: K-средние, иерархическая кластеризация, TSNE кластеризация и т. д.

С точки зрения ANN вы можете попробовать Autoencoder, Общая состязательная сеть

Еще немного полезных ссылок:

к направлению datascience

Википедия

person Ravindra babu    schedule 02.04.2019