Настройка гиперпараметров: случайный поиск и байесовская оптимизация

14

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

У меня вопрос: какой подход, как правило, лучше, и если ответ «иногда случайный поиск, иногда байесовский», когда я должен предпочесть один метод другому?

Йони Керен
источник
2
Google продает свои облачные сервисы глубокого обучения и предлагает функцию, которая автоматически настраивает ваши гиперпараметры с помощью байесовской оптимизации ... конечно, утверждая, что она работает лучше и быстрее (поиск в гиперпространстве более эффективен). Есть несколько работ, которые оценивают BO против RS, а также показывают, что BO немного лучше. По моим наблюдениям, разница - это то, что вас больше волнует в соревнованиях Kaggle, чем в реальной жизни.
JPJ

Ответы:

9

Я думаю, что ответ здесь такой же, как и везде в науке о данных: это зависит от данных :-)

Может случиться так, что один метод превосходит другой (здесь https://arimo.com/data-science/2016/bayesian-optimization-hyperparameter-tuning/ люди сравнивают байесовскую оптимизацию гиперпараметров и достигают лучшего результата в борьбе с преступностью в Сан-Франциско, чем со случайным поиском), однако я сомневаюсь, что есть общее правило для этого. Вы можете увидеть хороший gif здесь ( http://blog.revolutionanalytics.com/2016/06/bayesian-optimization-of-machine-learning-models.html ), где люди показывают «путь», по которому байесовская оптимизация ведет в ландшафте гиперпараметров, в частности, не похоже, что он превосходит случайный поиск вообще ...

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

Подводя итог в одном предложении:

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

Обычно мне лень внедрять байесовский материал с помощью гауссовских процессов, если я могу достичь того же результата при случайном поиске ... Я просто обучаю ансамбли Gradient Bossting на «нескольких» данных, поэтому для меня время не проблема ...

Фабиан Вернер
источник
5

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

itdxer
источник
1
Я просто хотел указать, что в вашем первом предложении настоящая причина того, почему байесовская оптимизация лучше, заключается не в том, что принимаемые решения умнее , а в том, что решения принимаются вообще .
Александр Росса
1

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

hlsmith
источник