Этот вопрос является ответом на комментарий, который я увидел по другому вопросу.
Комментарий касался учебного курса по машинному обучению на Coursera, а также «SVM не так часто используются в наши дни».
Я только что закончил соответствующие лекции сам, и мое понимание SVM состоит в том, что они представляют собой надежный и эффективный алгоритм обучения для классификации, и что при использовании ядра у них есть «ниша», охватывающая число функций, возможно от 10 до 1000, и количество тренировочных образцов, возможно, от 100 до 10000. Ограничение на обучающие выборки связано с тем, что основной алгоритм вращается вокруг оптимизации результатов, полученных из квадратной матрицы с размерами, основанными на количестве обучающих выборок, а не на количестве исходных элементов.
Так же как и комментарий, который я видел, относился к некоторым реальным изменениям с тех пор, как курс был сделан, и если да, то что это за изменение: новый алгоритм, который также охватывает «слабую точку» SVM, лучшие процессоры, означающие вычислительные преимущества SVM, не стоят так много ? Или это возможно мнение или личный опыт комментатора?
Я попытался найти, например, «являются ли машины опорных векторов устаревшими» и не нашел ничего, что могло бы означать, что их отбрасывают в пользу чего-либо еще.
И в Википедии есть это: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . , , кажется, что основным камнем преткновения является трудность интерпретации модели. Что делает SVM прекрасным для механизма прогнозирования черного ящика, но не настолько хорошим для генерации идей. Я не рассматриваю это как серьезную проблему, просто еще одну незначительную вещь, которую следует учитывать при выборе правильного инструмента для работы (наряду с характером данных обучения, учебной задачи и т. Д.).
источник
Ответы:
SVM - это мощный классификатор. У этого есть некоторые хорошие преимущества (которые, я думаю, были ответственны за его популярность) ... Это:
Есть и некоторые существенные недостатки.
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 состоит в том, что прогнозируемые значения далеки от истинных шансов.
Очень эффективным классификатором, который сейчас очень популярен, является Случайный Лес . Основными преимуществами являются:
источник
Отвечая на этот вопрос, нужно сделать одно существенное различие: говорим ли мы о линейных машинах опорных векторов или о нелинейных , то есть о ядерных машинах опорных векторов.
Линейные СВМ
Линейные SVM как теоретически, так и практикуют очень хорошие модели, когда ваши данные могут быть объяснены линейными отношениями ваших функций. Они превосходят классические методы, такие как линейная (наименьших квадратов) регрессия, потому что они устойчивы в том смысле, что небольшие возмущения во входных данных не приводят к значительным изменениям в модели. Это достигается путем попытки найти линию (гиперплоскость), которая максимизирует поля между вашими точками данных. Эта гиперплоскость с максимальным запасом, как было показано, дает гарантии обобщения способности модели по невидимым точкам данных, теоретического свойства, которого нет у других методов машинного обучения.
Линейные SVM также можно интерпретировать как любую другую линейную модель, поскольку каждая входная функция имеет вес, который напрямую влияет на выходные данные модели.
Также линейные SVM очень быстро обучаются, показывая сублинейное время обучения для очень больших наборов данных. Это достигается путем использования методов стохастического градиентного спуска, во многом в духе современных методов глубокого обучения.
Нелинейные SVM
Нелинейные SVM по-прежнему являются линейными моделями и имеют те же теоретические преимущества, но они используют так называемый трюк ядра для построения этой линейной модели в увеличенном пространстве. Видимым результатом является то, что результирующая модель может принимать нелинейные решения по вашим данным. Поскольку вы можете предоставить собственное ядро, кодирующее сходства между точками данных, вы можете использовать знания о проблемах, чтобы сосредоточить такое ядро на соответствующих частях вашей проблемы. Однако сделать это эффективно может быть сложно, поэтому в целом почти все используют ядро Гаусса plug-and-play.
Нелинейные SVM частично интерпретируются, так как они сообщают вам, какие данные обучения актуальны для прогноза, а какие нет. Это невозможно для других методов, таких как случайные леса или глубокие сети.
К сожалению, нелинейные SVM работают медленно. Современным алгоритмом является последовательная минимальная оптимизация , которая показывает квадратичную производительность и широко реализуется через библиотеку LIBSVM в ряде библиотек машинного обучения, включая scikit-learn.
Популярность этих методов
Это правда, что SVM не так популярны, как раньше: это можно проверить путем поиска в Google исследовательских работ или реализаций SVM против случайных лесов или методов глубокого обучения. Тем не менее, они полезны в некоторых практических условиях, особенно в линейном случае.
Кроме того, имейте в виду, что из-за теоремы об отсутствии бесплатного обеда нельзя показать, что метод машинного обучения превосходит другие по всем задачам. Хотя некоторые методы в целом работают лучше, вы всегда найдете наборы данных, где не очень распространенный метод приведет к лучшим результатам.
источник