Подтвердить что ты не робот

Вопрос об искусственной нейронной сети

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

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

Более слои позволяют вставлять повторяющиеся функции. Это может быть очень полезно для задач дискриминации. Я использую ANN, чтобы не разрешать это.

НТН

Ответ 5

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

Когда функция может быть приблизительно аппроксимирована определенным количеством скрытых единиц, любые дополнительные узлы будут обеспечивать большую точность... но это справедливо только в том случае, если используемые образцы обучения достаточны, чтобы оправдать это дополнение - в противном случае произойдет то, что произойдет "сверхсходимость". Overconvergence означает, что ваш ANN потерял свои возможности обобщения, потому что он чрезмерно подчеркивал конкретные образцы.

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