Когда я должен использовать машины опорных векторов, а не искусственные нейронные сети? - PullRequest
32 голосов
/ 15 июля 2011

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

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

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

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

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

Ответы [ 5 ]

53 голосов
/ 15 июля 2011

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

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

Насколько я могу судить, исследования, представленные в литературе, подтверждают это, например, в провокационно названной бумаге Секс с машинами опорных векторов существенно лучшее разрешение дляполовая идентификация (мужчина / женщина) в изображениях с 12 квадратами в пикселях, сообщается для SVM по сравнению с группой традиционных линейных классификаторов;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.В частности, данные обучения состоят из экземпляров, помеченных как «не мошенничество» и «unk» (или какой-либо другой метки, указывающей, что они не в классе) - другими словами, «внутри границы решения» и «вне границы решения».«.

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

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

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

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

8 голосов
/ 29 сентября 2012

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

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

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

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

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

1 голос
/ 30 сентября 2012

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

0 голосов
/ 02 апреля 2019

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

SVM были назначены для дискретной классификации. Прежде чем перейти к ANN, попробуйте ансамбль методы, такие как Случайный лес , Повышение градиента , Гауссова классификация вероятностей и т. Д.

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

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

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

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

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

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

towardsdatascience

википедии

0 голосов
/ 20 марта 2014

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

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

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

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

...