Вопрос по искусственной нейронной сети - PullRequest
18 голосов
/ 02 декабря 2008

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

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

Ответы [ 5 ]

21 голосов
/ 05 января 2009

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

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

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

8 голосов
/ 02 декабря 2008

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

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

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

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

5 голосов
/ 02 декабря 2008

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

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

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

3 голосов
/ 02 декабря 2008

Очень грубые правила большого пальца

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

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

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

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

НТН

1 голос
/ 24 декабря 2008

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

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

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

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