Автор: Йойо Люминг Редактор: Питер
Привет всем, я Питер~
Есть много сомнений по поводу количества скрытых слоев и нейронов в нейронных сетях. Я случайно увидел статью, которая очень хорошо ответила на этот вопрос, поэтому хотел бы поделиться ею с вами~
https://zhuanlan.zhihu.com/p/100419971
BPнейронная сеть В основном состоит извходной слой、Скрытый слой、выходной слойсоставляют,Введите ивыходной Количество узлов в слое фиксировано.
Будь то задача регрессии или классификации, выбор подходящего количества слоев и количества узлов скрытых слоев в значительной степени повлияет на производительность нейронной сети.
Источник изображения: Эндрю Нг-Глубокое обучение
Количество узлов во входном и выходном слоях легко получить:
трудность:Но настоящая трудность заключается в том,Определите подходящее количество Скрытого слоя и его нейронов.。
Как определить количество скрытых слоев – важный вопрос. Первое, что следует отметить:
В нейронных сетях скрытые слои необходимы тогда и только тогда, когда данные разделены нелинейно!
Since a single sufficiently large hidden layer is adequate for approximation of most functions, why would anyone ever use more? One reason hangs on the words “sufficiently large”. Although a single hidden layer is optimal for some functions, there are others for which a single-hidden-layer-solution is very inefficient compared to solutions with more layers.——Neural Smithing: Supervised Learning in Feedforward Artificial Neural Networks, 1999
поэтому,Для общегоПростойизданныенабор,Обычно достаточно одного-двух слоев накрытого слоя.。Но для тех, кто занимается временными рядами или компьютерным зрениемизсложныйданныенабор,Вам нужно добавить дополнительные слои. Однослойная нейронная сеть может использоваться только для представления функции линейного разделения.,Это очень простой вопрос,Например, два класса в задаче классификации можно аккуратно разделить прямой линией.
Specifically, the universal approximation theorem states that a feedforward network with a linear output layer and at least one hidden layer with any “squashing” activation function (such as the logistic sigmoid activation function) can approximate any Borel measurable function from one finite-dimensional space to another with any desired non-zero amount of error, provided that the network is given enough hidden units.——Deep learning, 2016
Таким образом, для соответствия нелинейным функциям можно использовать несколько скрытых слоев.
Количество скрытых слоев и эффекты/цели нейронных сетей можно суммировать в следующей таблице:
Если коротко подвести итог -
Empirically, greater depth does seem to result in better generalization for a wide variety of tasks. This suggests that using deep architectures does indeed express a useful prior over the space of functions the model learns.——Deep learning, 2016
Чем глубже число слоев, тем теоретически увеличивается способность подгонки функций и тем лучше будет эффект. Однако на самом деле более глубокие слои могут вызвать проблемы с переобучением и увеличить сложность обучения, что затрудняет сходимость модели. .
Поэтому мой опыт показывает, что при использовании нейросети БП лучше всего обращаться к существующим моделям с отличной производительностью. Если таковой нет, начните с одного-двух слоев согласно таблице выше и старайтесь не использовать слишком много слоев. .
В специальных областях, таких как CV и NLP,Вы можете использовать CNN, RNN, внимание и другие специальные методы.,Вы не можете просто накапливать несколько слоев, не задумываясь о реальной ситуации. сеть。Попробуйте перенести и точно настроить существующие предварительно обученные модели, чтобы получить вдвое больший результат, прилагая вдвое меньше усилий.。
Источник: новички спрашивают, сколько-скрытых-слоев-нейронов можно использовать в искусственных нейронных сетях
Определение количества скрытых слоев нейронов — лишь малая часть проблемы. Вам также необходимо определить, сколько нейронов содержит каждый из этих скрытых слоев. Этот процесс описан ниже.
Использование слишком малого количества нейронов в скрытом слое приведет к недостаточной подгонке.
И наоборот, использование слишком большого количества нейронов также может вызвать проблемы. Во-первых, слишком много нейронов в скрытом слое может привести к переобучению.
Когда нейронная сеть имеет слишком много узлов (слишком большая мощность обработки информации), ограниченного количества информации, содержащейся в обучающем наборе, недостаточно для обучения всех нейронов в скрытом слое, что приводит к переобучению результатов.
Даже если данные обучения содержат достаточно информации, слишком большое количество нейронов в скрытом слое увеличит время обучения, что затруднит достижение желаемых результатов. Очевидно, что выбор подходящего количества нейронов скрытого слоя имеет решающее значение.
Источник изображения: Эндрю Нг-Глубокое обучение
в целом,Достаточно использовать одинаковое количество нейронов для всех Скрытого слоя.。для некоторыхданныенабор,Наличие первого слоя большего размера, за которым следует слой меньшего размера, приведет к повышению производительности.,Потому что первый уровень может изучить множество функций низкого уровня.,Объекты из этих нижних слоев могут быть переданы в последующие слои.,Извлеките функции высшего порядка.
Следует отметить, что,По сравнению с добавлением большего количества нейронов в каждом слое,Добавление уровней приведет к еще большему увеличению производительности.。поэтому,Не добавляйте слишком много нейронов в один Скрытый слой.。
Существует много мудростей о том, как определить количество нейронов.
Мастер stackoverflow дал для справки эмпирическую формулу:
Существует еще один метод для справки. Количество нейронов обычно можно грубо определить по следующим принципам:
в целом,Скрытый слой Нейроны самые лучшиечисло Потребности в количествеПолучено путем непрерывных экспериментов,Рекомендуется начинать с меньшего количества, например от 1 до 5 слоев и от 1 до 100 нейронов.,Если недостаточно, медленно добавляйте больше слоев и нейронов.,В случае переобучения уменьшите количество слоев и нейронов.
также,В реальном процессе вы также можете рассмотреть возможность введенияПакетная нормализация, отсев, регуляризацияУменьшить переоснащениеизметод。
Заявление об авторских правах
Авторские права принадлежат первоначальному автору и используются только для академического обмена.