Как выбрать ядро ​​для SVM?


96

При использовании SVM нам нужно выбрать ядро.

Интересно, как выбрать ядро. Какие-либо критерии выбора ядра?


1
какой размер проблемы? (# Переменные, наблюдения)?
user603

1
Я просто прошу обобщенное решение, конкретная проблема не указана
xiaohan2012

Ответы:


55

Ядро фактически является мерой подобия, поэтому выбор ядра в соответствии с предшествующим знанием инвариантности, как это было предложено Робином (+1), является хорошей идеей.

В отсутствие экспертных знаний ядро ​​Radial Basis Function делает хорошее ядро ​​по умолчанию (как только вы установили, это проблема, требующая нелинейной модели).

Выбор параметров ядра и ядра / регуляризации может быть автоматизирован путем оптимизации выбора модели на основе перекрестной оценки (или использования границ радиуса или границ диапазона). Самое простое, что можно сделать, - это минимизировать критерий непрерывного выбора модели, используя симплекс-метод Нелдера-Мида, который не требует вычисления градиента и хорошо работает для разумного числа гиперпараметров. Если у вас есть несколько гиперпараметров для настройки, автоматический выбор модели может привести к серьезному переизбранию из-за отклонения критерия выбора модели. Можно использовать оптимизацию на основе градиента, но выигрыш в производительности обычно не стоит усилий по его кодированию).

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

GC Cawley и NLC Talbot, Предотвращение чрезмерной подгонки при выборе модели с помощью байесовской регуляризации гиперпараметров, Journal of Machine Learning Research, том 8, страницы 841-861, апрель 2007 г. (pdf)

а также

GC Cawley и NLC Talbot, Чрезмерная подгонка при выборе модели и последующий уклон выбора при оценке производительности, Journal of Machine Learning Research, vol. 11, с. 2079-2107, июль 2010 г. (pdf)


1
Я понимаю, что радиальный базис является мерой подобия, поскольку он равен почти 0 для векторов, удаленных друг от друга, и достигает максимума на идентичных векторах. Тем не менее, я не вижу, как эта идея применима к линейному алгоритму (используя скалярное произведение в качестве ядра). Как мы можем интерпретировать скалярное произведение как меру сходства?
Бананин

1
@Bananin произведение точек можно записать как произведение величины двух векторов на косинус угла между ними, так что вы можете думать об этом как об измерении сходства с точки зрения направления векторов (но, очевидно, также зависимого на их величины)
Дикран Marsupial

35

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

Однако «преимущество» работы с ядром состоит в том, что вы меняете обычную «евклидову» геометрию так, чтобы она соответствовала вашей собственной проблеме. Кроме того, вы должны действительно попытаться понять, что интересует ядро ​​для вашей проблемы, что является специфическим для геометрии вашей проблемы . Это может включать в себя:

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

е^(Икс)знак равноΣязнак равно1NλяК(Икс,Икся)

К(Икс,Икся)знак равноИкс,AИкся+с


В своем ответе вы упомянули, что «преимущество» работы с ядром состоит в том, что вы меняете обычную «евклидову» геометрию так, чтобы она соответствовала вашей собственной проблеме. Кроме того, вы должны действительно попытаться понять, что представляет интерес для ядра для вашей проблемы, что является специфическим для геометрии вашей проблемы. " Можете ли вы дать несколько ссылок для начала. Благодарю.
Райхана

12

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


2
У меня такое же чувство
xiaohan2012

2
Поиск по сетке - плохая идея, вы тратите много времени на поиск в областях, где производительность плохая. Используйте алгоритмы оптимизации без градиента, такие как симплекс-метод Нелдера-Мида, который гораздо более эффективен на практике (например, fminsearch () в MATLAB).
Дикран Сумчатый

Нет, используйте графические модели или гауссовские процессы для глобальной оптимизации в сочетании с ожидаемой информацией. (См. «Алгоритмы оптимизации гиперпараметров», Бергстра и др., Готовится к публикации NIPS)
bayerj

3

В целом, ядро ​​RBF является разумным первым выбором. Более того, линейное ядро ​​является частным случаем RBF. В частности, когда число функций очень велико, можно просто использовать линейное ядро.


2
Это зависит от того, являются ли ваши данные линейно разделимыми или нет, а не от того, сколько у вас измерений. Когда количество функций очень велико (опять же в зависимости от данных), вы сначала примените уменьшение размерности, PCA или LDA (варианты с линейным или нелинейным ядром)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.