В продолжение этого вопроса ...
Я пытаюсь научиться использовать и создавать нейронные сети для своих исследований, и один момент несколько ускользает от меня. Я понимаю, что скрытые слои являются несколько необходимой частью этого, однако я застрял в двух моментах, которые мои ссылки не объясняют к моему удовлетворению:
- Какова точная цель скрытого слоя?
- Как определить, сколько скрытых слоев использовать?
Исходя из того, что я понял, это «моделирование» функциональности реального мира, но, если возможно, я бы хотел немного больше объяснения.
ne.neural-evol
the_e
источник
источник
Ответы:
Скрытый слой используется для повышения выразительности сети. Это позволяет сети представлять более сложные модели, чем это возможно, без скрытого слоя.
Выбор количества скрытых слоев или, в более общем смысле, выбор архитектуры вашей сети, включая количество скрытых элементов в скрытых слоях, - это решения, которые должны основываться на ваших данных обучения и перекрестной проверки. Вы должны обучить сеть с заданным количеством узлов (чтобы начать, попробуйте один скрытый слой, с одним модулем на входную единицу) и протестируйте модель.
Смотрите эту ссылку для получения дополнительной помощи: http://www.faqs.org/faqs/ai-faq/neural-nets/part3/section-10.html
источник
Я предполагаю, что мы обсуждаем простые нейронные сети с прямой связью, то есть многослойные персептроны.
Обратите внимание, что с более чем двумя скрытыми слоями вы попадаете в область глубокого изучения, и вам, вероятно, нужны собственные алгоритмы для обучения вашей сети. Причина заключается в том, что обратное распространение ванили страдает от проблемы «исчезающего градиента» в глубоких сетях: градиент функции ошибок уменьшается в слоях, близких к входу, и эти слои вряд ли будут обучены.
источник