Каковы ограничения методов ядра и когда использовать методы ядра?

10

Методы ядра очень эффективны во многих контролируемых задачах классификации. Итак, каковы ограничения методов ядра и когда использовать методы ядра? Каковы успехи методов ядра, особенно в эпоху крупномасштабных данных? В чем разница между методами ядра и обучением нескольких экземпляров? Если данные есть 500x10000, 500это количество отсчетов и 10000размерность каждого признака, то можем ли мы в этом случае использовать методы ядра?

добыча полезных ископаемых
источник

Ответы:

16

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

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

Обратите внимание, что я сказал, что вычислительные затраты разумны, но не пренебрежимо малы. Методы ядра обычно создают матрицу ядра с числом обучающих экземпляров. Поэтому сложность методов ядра является функцией количества обучающих экземпляров, а не количества входных измерений. Например, машины опорных векторов имеют сложность обучения между и . Для проблем с очень большим , эта сложность в настоящее время запредельна.KRN×NNO(N2)O(N3)N

Это делает методы ядра очень интересными с вычислительной точки зрения, когда число измерений велико, а количество выборок относительно мало (скажем, менее 1 миллиона).

Связанный: линейное ядро ​​и нелинейное ядро ​​для опорных векторов машин?

SVM для крупномасштабных задач

Для задач с очень большими измерениями, такими как 10000измерения, которые вы упоминаете в вопросе, часто нет необходимости отображать пространство пространственных объектов более высокого измерения. Пространство ввода уже достаточно хорошо. Для таких задач линейные методы на несколько порядков быстрее с почти такой же прогнозирующей эффективностью. Примеры этих методов можно найти в LIBLINEAR или Vowpal Wabbit .

Линейные методы особенно интересны, когда у вас много выборок в многомерном пространстве ввода. Когда у вас есть только выборок, использование нелинейного метода ядра также будет дешевым (так как мало). Если бы у вас было, скажем, образцов в измерений, методы ядра были бы невозможны.500N5.000.00010,000

Для задач малой размерности со многими обучающими примерами (так называемые задачи с большим малым ) линейные методы могут дать плохую точность прогнозирования. Для таких задач методы ансамбля, такие как EnsembleSVM, обеспечивают нелинейные границы принятия решений при значительно меньших вычислительных затратах по сравнению со стандартным SVM.Nп

Марк Клазен
источник
Большое спасибо за подробные ответы, сэр. Я обнаружил, что в условиях больших размеров, если я использую RBFядро libsvm, оно всегда переоснащается, классификатор достигает высокой точности, но низкой точности в тестовом наборе. И если я делаю уменьшение измерений перед классификатором, а уменьшенные измерения близки к количеству обучающих выборок, классификатор может достичь хорошей прибыли между обучением и тестированием. Соответствуют ли результаты наиболее эмпирическим результатам? Спасибо.
майнинг
Методы ядра достаточно устойчивы к высокой входной размерности. Как правило, вам не нужно выполнять уменьшение размерности перед их использованием. Очень важно настроить все параметры, особенно gammaдля ядра RBF. Оптимальное значение для gammaсвязано с количеством входных измерений. Наиболее распространенным подходом к настройке является перекрестная проверка. Если вы использовали одно и то же значение для gammaуменьшения размерности и без него, вы, вероятно, ошиблись.
Марк Клазен
Да сэр. Я обычно использую grid.pyв libsvmпакете, чтобы сделать перекрестную проверку. И в большинстве случаев для данных больших размеров gammaвсегда очень маленький, например 0.00001, этот уровень.
майнинг
Привет, сэр, я проверил ваш проект с открытым исходным кодом EnsembleSVM, нужно ли сделать процедуру перекрестной проверки многопоточностью? И я думаю, что на этапе прогнозирования будет хорошо, если прогнозировать огромные данные в пакетах и ​​многопоточности или на нескольких машинах?
майнинг
Использование многопоточности необязательно в EnsembleSVM, но по умолчанию включено в esvm-trainи esvm-predict. Чтобы отключить многопоточность, используйте следующий флаг в этих инструментах: -threads 1.
Марк Клазен