Машины опорных векторов по-прежнему считаются «современными» в своей нише?

58

Этот вопрос является ответом на комментарий, который я увидел по другому вопросу.

Комментарий касался учебного курса по машинному обучению на Coursera, а также «SVM не так часто используются в наши дни».

Я только что закончил соответствующие лекции сам, и мое понимание SVM состоит в том, что они представляют собой надежный и эффективный алгоритм обучения для классификации, и что при использовании ядра у них есть «ниша», охватывающая число функций, возможно от 10 до 1000, и количество тренировочных образцов, возможно, от 100 до 10000. Ограничение на обучающие выборки связано с тем, что основной алгоритм вращается вокруг оптимизации результатов, полученных из квадратной матрицы с размерами, основанными на количестве обучающих выборок, а не на количестве исходных элементов.

Так же как и комментарий, который я видел, относился к некоторым реальным изменениям с тех пор, как курс был сделан, и если да, то что это за изменение: новый алгоритм, который также охватывает «слабую точку» SVM, лучшие процессоры, означающие вычислительные преимущества SVM, не стоят так много ? Или это возможно мнение или личный опыт комментатора?

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

И в Википедии есть это: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . , , кажется, что основным камнем преткновения является трудность интерпретации модели. Что делает SVM прекрасным для механизма прогнозирования черного ящика, но не настолько хорошим для генерации идей. Я не рассматриваю это как серьезную проблему, просто еще одну незначительную вещь, которую следует учитывать при выборе правильного инструмента для работы (наряду с характером данных обучения, учебной задачи и т. Д.).

Нил Слэйтер
источник
6
Я не понимаю - разве это не вопрос, который должен быть опубликован на CrossValidated? Я по-прежнему не понимаю, что происходит между DataScience и CrossValidated.
фн
@fnl: у svms есть некоторая конкуренция в качестве классификаторов из менее математически «чистых» инженерных решений, поэтому я думаю, что DataScience находится в лучшем положении для сравнения здесь. Хотя я разделяю ваше замешательство!
Нил Слэйтер

Ответы:

47

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

  • Эффективность: только опорные векторы играют роль в определении границы классификации. Все остальные пункты из тренировочного набора не должны храниться в памяти.
  • Так называемая мощность ядер: с помощью соответствующих ядер вы можете преобразовать пространство признаков в более высокое измерение, чтобы оно стало линейно разделимым. Понятие ядра работает с произвольными объектами, для которых вы можете определить некоторое понятие сходства с помощью внутренних продуктов ... и, следовательно, SVM могут классифицировать произвольные объекты, такие как деревья, графы и т. Д.

Есть и некоторые существенные недостатки.

  • Чувствительность параметра. Производительность очень чувствительна к выбору параметра регуляризации C, который допускает некоторые отклонения в модели.
  • Дополнительный параметр для ядра Гаусса: радиус ядра Гаусса может оказать существенное влияние на точность классификатора. Обычно поиск по сетке должен проводиться для поиска оптимальных параметров. LibSVM поддерживает поиск по сетке.

SVM, как правило, относятся к классу "редких ядерных машин". Разреженные векторы в случае SVM являются опорными векторами, которые выбираются из критерия максимального запаса. Другие редкие векторные машины, такие как векторная машина релевантности (RVM), работают лучше, чем SVM. На следующем рисунке показана сравнительная производительность двух. На рисунке ось x показывает одномерные данные из двух классов y = {0,1}. Модель смеси определяется как P (x | y = 0) = Unif (0,1) и P (x | y = 1) = Unif (.5,1.5) (Unif обозначает равномерное распределение). 1000 точек были отобраны из этой смеси, а SVM и RVM были использованы для оценки апостериорного значения. Проблема SVM состоит в том, что прогнозируемые значения далеки от истинных шансов.

RVM vs. SVM

Очень эффективным классификатором, который сейчас очень популярен, является Случайный Лес . Основными преимуществами являются:

  • Только один параметр для настройки (т.е. количество деревьев в лесу)
  • Не очень чувствительный параметр
  • Может быть легко расширен на несколько классов
  • Основан на вероятностных принципах (максимизация взаимного получения информации с помощью деревьев решений)
Debasis
источник
4
Я не хочу быть слишком критичным, но SVM НЕ эффективны. В большинстве случаев они имеют кубическую сложность, поэтому происходит много постепенного отказа.
индик
2
да, стандартные методы конвергенции требуют O (n ^ 3) ... но я думаю, что где-то видел (может быть, с домашней страницы Т. Йоахима), что оно было уменьшено до O (n ^ 2)
Дебазис
4
@indico для большинства практических задач Ядро SVM сложность обучения ближе к квадратичной. Кубическая SMO Платта давно вышла из употребления. Это все еще слишком высоко для действительно больших наборов данных, но это не так плохо, как вы изображаете. Линейный SVM очень эффективен, с сублинейной сложностью.
Марк Класен
Другие преимущества SVM: 1) Их внутреннюю работу могут хорошо представить люди, менее знакомые с анализом данных. [и в меньшей степени: 2) Если требуется интерактивная обратная связь в режиме реального времени от эксперта (не занимающегося наукой о данных), линейные SVM могут быть более быстрым вариантом, что приведет к лучшему обучению экспертов.]
tsttst
2
Случайные леса обычно имеют другие гиперпараметры, такие как максимальное количество объектов на дерево и максимальная глубина. Стоит также отметить, что SVM легко вводить в эксплуатацию в условиях ограниченных ресурсов - им не нужно много памяти для оценки модели.
Дэвид Андерсон
8

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

Линейные СВМ

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

Линейные SVM также можно интерпретировать как любую другую линейную модель, поскольку каждая входная функция имеет вес, который напрямую влияет на выходные данные модели.

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

Нелинейные SVM

Нелинейные SVM по-прежнему являются линейными моделями и имеют те же теоретические преимущества, но они используют так называемый трюк ядра для построения этой линейной модели в увеличенном пространстве. Видимым результатом является то, что результирующая модель может принимать нелинейные решения по вашим данным. Поскольку вы можете предоставить собственное ядро, кодирующее сходства между точками данных, вы можете использовать знания о проблемах, чтобы сосредоточить такое ядро ​​на соответствующих частях вашей проблемы. Однако сделать это эффективно может быть сложно, поэтому в целом почти все используют ядро ​​Гаусса plug-and-play.

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

К сожалению, нелинейные SVM работают медленно. Современным алгоритмом является последовательная минимальная оптимизация , которая показывает квадратичную производительность и широко реализуется через библиотеку LIBSVM в ряде библиотек машинного обучения, включая scikit-learn.

Популярность этих методов

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

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

albarji
источник