Правила выбора сверточных нейронных гиперпараметров

22

Есть ли хорошие статьи, в которых рассматриваются некоторые методические способы выбора размеров для фильтров, объединения единиц измерения и определения количества сверточных слоев?

spacemonkey
источник
1
Я отредактировал ваш заголовок. Лучше использовать полные имена, чем сокращения, поскольку во многих случаях короткие имена неоднозначны.
Тим

Ответы:

11

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

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

Например, некоторые из принципов, которые они обсуждают:

  • Используйте стеки из меньших сверточных слоев с восприимчивым полем вместо использования одного сверточного слоя с большим восприимчивым полем, то есть 2 стека 3 × 3 сверточных слоев против одного сверточного слоя 7 × 7. Эта идея не нова, она также обсуждалась в книге « Возвращение дьявола в деталях: углубление в сверточные сети» командой Oxford VGG. Это мотивировано необходимостью быть эффективным параметром. Это также имеет двойной эффект большей репрезентативности, поскольку мы вводим больше нелинейности с большим количеством слоев.

  • То, что я не видел в литературе, о которой говорилось в этой статье, это разложение сверточных слоев на глубокие. Таким образом, вместо одного слоя конвекс 7х7 у нас будет слой конвекс 1х7, а затем слой конвекс 7х1. Добавляет больше глубины, я считаю, что это также эффективный параметр.

  • Баланс глубина и ширина вашей сети. Используйте высокоразмерные представления. Это один из принципов, лежащих в основе их начальных модулей, которые объединяют несколько сверточных слоев вместе. Таким образом, даже если у вас небольшой пространственный размер в вашей виртуальной сети, с помощью модулей Inception мы можем использовать многомерное представление с помощью многомасштабной сверточной конкатенации: 1x1, 3x3, 3x3-3x3, максимальный пул - все вместе. Эти начальные модули имеют «ширину», поскольку их можно интерпретировать как выполняющие несколько операций параллельно. Они идут еще дальше с новыми модулями Inception, которые имеют факторизованные сверточные размеры, 1x3, 3x1 и т. Д.

  • Используйте конвексные слои 1x1 (сеть в стиле сети), чтобы уменьшить размерность. Они используют много методов уменьшения размерности для достижения эффективности параметров. Они считают, что это эффективно, потому что смежные карты объектов имеют сильно коррелированные результаты. Это имеет смысл, так как известно, что естественные изображения демонстрируют некоторые локальные статистические свойства, соответствующие этому. Таким образом, уменьшение размерности с помощью слоев NIN 1x1 не оказывает разрушительного влияния на репрезентативную силу.

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

Инди AI
источник
2

Я не встречал никакой литературы по выбору этих гиперпараметров в зависимости от спецификаций проблемы. Но, насколько я понимаю, большинство из них применяют байесовские методы оптимизации, чтобы сосредоточиться на эффективных значениях. Вы указываете разумный диапазон, и, тестируя различные комбинации, вы изучаете модель того, как эти гиперпараметры связаны с точностью модели. Это хорошо сработало для меня. Проверьте "Практическая байесовская оптимизация алгоритмов машинного обучения" от Snoek, Larochelle, и Adams ( http://papers.nips.cc/paper/4522-practical-bayesian-optimization-of-machine-learning-algorithms.pdf ).

Дэвид Келли
источник