Стоит ли метод поиска по сетке для нейронных сетей?

Я успешно попытался применить метод GridSearch для поиска лучших параметров SVM, и теперь я хотел бы применить его к нейронным сетям (MLPClassifier), чтобы найти лучшую архитектуру (т.е. количество слоев и нейронов / слой), лучшую активацию функция, ...

Однако мне было интересно, не будет ли это слишком затратным с точки зрения вычислений? Более того, как мне определить свою «сетку» по количеству слоев и нейронов? Это уже было проверено? Спасибо


person MysteryGuy    schedule 08.09.2017    source источник


Ответы (1)


Да, ряд слоев и нейронов считается частью гиперпараметров.

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

Итак, я бы предложил следующий цикл:

  1. Определите разумный набор значений гиперпараметров (нижняя / верхняя границы, шаги)
  2. Начать случайную выборку для разных комбинаций
  3. Через некоторое время вы сможете (надеюсь) сузить область поиска.
  4. Повторить с новыми границами

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

person CaptainTrunky    schedule 08.09.2017
comment
Я действительно боялся, что проклятие размерности было тормозом для применения метода ... Критическим моментом все еще является определение границ ... Следует ли также искать функцию активации или есть эмпирические правила? - person MysteryGuy; 08.09.2017
comment
@MysteryGuy Я не уверен, что изучать функции активации действительно полезно. tanh и relu используются по умолчанию, но почему бы и нет, может в вашем случае это действительно важно. :) - person CaptainTrunky; 08.09.2017
comment
@MysteryGuy Границы трудные, это правда. Но я думаю, что довольно легко определить некоторые разумные границы с помощью 3-5 ручных экспериментов. - person CaptainTrunky; 08.09.2017