Вопрос

Вообще говоря, что вы получаете от расширения искусственной нейронной сети путем добавления большего количества узлов к скрытому слою или нескольким скрытым слоям?

Обеспечивает ли это большую точность в отображении, или это допускает больше тонкости в отношениях, которые оно может идентифицировать, или что-то еще?

Это было полезно?

Решение

В машинном обучении есть очень хорошо известный результат, в котором говорится, что одного скрытого слоя достаточно для аппроксимации любой гладкой ограниченной функции (статья называлась "Многослойные сети прямой связи являются универсальными аппроксиматорами" и сейчас ему почти 20 лет).Однако следует отметить несколько моментов.

  • Возможно, потребуется, чтобы один скрытый слой был произвольно широким.
  • Это ничего не говорит о легкости, с которой может быть найдено приближение;как правило, большие сети трудно обучить должным образом, и они довольно часто становятся жертвами переобучения (исключение составляют так называемые "сверточные нейронные сети", которые на самом деле предназначены только для решения проблем со зрением).
  • Это также ничего не говорит об эффективности представительства.Некоторые функции требуют экспоненциального числа скрытых единиц измерения, если выполняются с одним слоем, но масштабируются гораздо лучше с большим количеством слоев (подробнее об этом читайте в этой статье Масштабирование алгоритмов обучения в сторону искусственного интеллекта)

Проблема с глубокими нейронными сетями заключается в том, что их еще труднее обучать.В итоге вы получаете очень-очень маленькие градиенты, которые распространяются обратно на более ранние скрытые слои, и обучение на самом деле никуда не денется, особенно если веса инициализированы как малые (если вы инициализируете их как большую величину, вы часто застреваете в плохих локальных минимумах).Существуют некоторые методы "предварительной подготовки", подобные тем, которые обсуждаются в этой статье. Технический разговор в Google Джеффом Хинтоном, который пытается обойти это.

Другие советы

Это очень интересный вопрос, но на него не так просто ответить. Это зависит от проблемы, которую вы пытаетесь решить, и от того, какую нейронную сеть вы пытаетесь использовать. Существует несколько типов нейронных сетей.

В общем, не очень понятно, что чем больше узлов, тем больше точность. Исследования показывают, что вам нужен в основном только один скрытый слой. Число узлов должно быть минимальным числом узлов, необходимых для решения проблемы. Если вам не хватает их - вы не найдете решения.

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

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

Когда у вас есть скрытый слой, это означает, что вы создаете комбинированный объект из входных данных.Итак, лучше ли решать проблему с помощью большего количества функций существующих входных данных или с помощью функций более высокого порядка, которые возникают в результате объединения существующих функций?Это компромисс для стандартной сети прямой связи.

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

Кроме того, рассмотрите возможность использования дополнительных ресурсов для расширения вместо добавления дополнительных узлов, если вы не уверены в подходящей топологии.

Очень грубые эмпирические правила

как правило, больше элементов на слой для получения больших входных векторов.

большее количество слоев может позволить вам моделировать больше нелинейных систем.

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

Дополнительные слои позволяют вставлять повторяющиеся объекты.Это может быть очень полезно для задач распознавания.Ты, Энн, знаешь, что я не позволю этого.

HTH

Количество единиц в скрытом слое учитывает способность ANN описывать произвольно сложную функцию. Для некоторых (сложных) функций может потребоваться множество скрытых узлов или, возможно, несколько скрытых слоев.

Когда функцию можно приблизительно аппроксимировать определенным количеством скрытых единиц, любые дополнительные узлы обеспечат большую точность ... но это верно только в том случае, если использованных обучающих выборок достаточно, чтобы оправдать это добавление, иначе произойдет & Quot; сверхсходимости & Quot ;. Избыточное схождение означает, что ваш ИНС утратил свои способности к обобщению, потому что он переоценил особые образцы.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top