Функция активации, функция инициализатора и т. Д., Влияние на нейронные сети для обнаружения лица - PullRequest
2 голосов
/ 21 апреля 2010

Существуют различные функции активации: сигмоид, танх и т. Д. А также есть несколько функций инициализатора: Нгуен и Видроу, случайные, нормализованные, постоянные, ноль и т. Д. Таким образом, они сильно влияют на результат работы нейронной сети в обнаружении лица? Прямо сейчас я использую функцию активации Tanh и просто рандомизирую все веса от -0,5 до 0,5. Я понятия не имею, является ли это наилучшим подходом, и, поскольку каждый раз для обучения сети требуется 4 часа, я бы лучше спросил здесь, чем экспериментировал!

1 Ответ

2 голосов
/ 01 мая 2010

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

Я сомневаюсь, что различные разумные схемы инициализации сильно повлияют на качество ваших решений.Вероятно, достаточно просто инициализировать веса, чтобы они были одинаковыми на интервале [-1 / sqrt (N), + 1 / sqrt (N)], где N - количество входящих соединений.

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

Существует даже новое правило инициализации, которое, кажется, хорошо работает, описанное в этой статье: http://www.iro.umontreal.ca/~lisa/publications2/index.php/publications/show/447 В статье также упоминаются некоторые из симптомов плохой инициализации, о которых я упоминал выше, и которые вы можете легко проверить.

Подводя итог, Uniform на [-1 / sqrt (N), + 1 / sqrt(N)] не так уж и плохо, и не упомянуто в статье, на которую я ссылаюсь.Не беспокойтесь об этом слишком сильно, если вы используете один из них.Что очень важно, так это предварительная подготовка весов в качестве автоэнкодера (или Restricted Boltzmann Machine), на которую вы должны обратить внимание, даже если у вас есть только один скрытый слой.RBM, вы можете переключиться на логистические сигмоиды и даже инициализировать веса с небольшого стандартного отклонения Гаусса, не сталкиваясь с проблемами.

...