Ваш вопрос довольно широкий, но вот несколько советов:
Для сетей с прямой связью смотрите этот вопрос :
Ответ @ Дуга сработал для меня. Есть еще одно практическое правило, которое помогает при контролируемых проблемах в обучении. Верхняя граница количества скрытых нейронов, которые не приведут к переоснащению:
Nчасзнак равно Ns( α ∗ ( Nя+Nо) )
NяNоNsα
л р чNs∗ ( Nя+ Nо)α
Для автоматизированной процедуры вы должны начать с альфа-2 (вдвое больше степеней свободы в ваших данных обучения, чем в вашей модели) и работать до 10, если ошибка для данных обучения значительно меньше, чем для перекрестной проверки набор данных.
И особенно на LSTM, вы можете проверить это .
Но главное: не существует правила для количества скрытых узлов, которые вы должны использовать, это то, что вы должны выяснить для каждого случая методом проб и ошибок .
В целом, нет никаких рекомендаций относительно того, как определить количество слоев или количество ячеек памяти в LSTM.
Количество слоев и ячеек, требуемых в LSTM, может зависеть от нескольких аспектов проблемы:
Сложность набора данных. Количество функций, количество точек данных и т. Д.
Процесс генерации данных. Следующий пример того, как процесс генерации данных может сыграть значительную роль.
Ex - Прогноз цен на нефть по сравнению с прогнозом ВВП хорошо понимаемой экономики. Последнее намного проще, чем первое. Таким образом, для прогнозирования цен на нефть также может потребоваться большее количество ячеек памяти LSTM для прогнозирования с той же точностью, что и для ВВП.
Я выполняю следующие шаги при моделировании с использованием LSTM:
Попробуйте один скрытый слой с 2 или 3 ячейками памяти. Посмотрите, как это работает по сравнению с эталоном. Если это проблема временного ряда, то я обычно делаю прогноз на основе классических методов временного ряда в качестве эталона.
Попробуйте увеличить количество ячеек памяти. Если производительность не сильно увеличивается, переходите к следующему шагу.
Начните углублять сеть, т.е. добавьте еще один слой с небольшим количеством ячеек памяти.
В сторону :
Нет предела количеству труда, которое может быть потрачено на достижение глобальных минимумов функции потерь и настройку лучших гиперпараметров. Таким образом, сосредоточение внимания на конечной цели моделирования должно быть стратегией, а не пытаться максимально повысить точность.
Большинство проблем можно решить, используя 2-3 уровня сети.
источник
Может быть, вы должны взглянуть на это: https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenTerm1201415/sak2.pdf
Здесь они показывают, что 2 слоя хороши, 5 слоев лучше, а 7 слоев очень трудно тренировать.
источник