Это вопрос терминологии. Иногда я вижу, что люди называют глубокие нейронные сети «многослойными персептронами», почему это так? Как мне преподавали, персептрон - это однослойный классификатор (или регрессор) с двоичным пороговым выходным значением, использующий определенный способ тренировки весов (не back-prop). Если выходные данные персептрона не совпадают с выходными данными цели, мы добавляем или вычитаем входной вектор к весам (в зависимости от того, дал ли персептрон ложный положительный или ложный отрицательный результат). Это довольно примитивный алгоритм машинного обучения. Процедура обучения, по-видимому, не обобщает многослойный случай (по крайней мере, без изменений). Глубокая нейронная сеть обучается через backprop, который использует правило цепочки для распространения градиентов функции стоимости обратно по всем весам сети.
Итак, вопрос в том. Является ли «многослойный персептрон» тем же, что и «глубокая нейронная сеть»? Если да, то почему используется эта терминология? Это кажется излишне запутанным. Кроме того, предполагая, что терминология несколько взаимозаменяема, я видел только терминологию «многослойный персептрон» при обращении к сети прямой связи, состоящей из полностью связанных слоев (без сверточных слоев или повторяющихся соединений). Насколько широка эта терминология? Будет ли использоваться термин «многослойный персептрон» при ссылке, например, на начальную сеть? Как насчет периодической сети, использующей модули LSTM, используемые в NLP?
источник
Ответы:
Можно рассматривать многослойный персептрон (MLP) как подмножество глубоких нейронных сетей (DNN), но в литературе часто используются взаимозаменяемо.
Предположение, что персептроны названы на основе правил обучения, неверно. Классическое «правило обновления персептрона» - это один из способов его обучения. Ранний отказ от нейронных сетей был вызван именно этой причиной, поскольку правило обновления персептрона было склонно к исчезновению и взрыву градиентов, что делало невозможным обучение сетей с более чем одним слоем.
Использование обратного распространения в обучающих сетях привело к использованию альтернативных функций активации сквоша, таких как tanh и сигмоид .
Итак, чтобы ответить на вопросы,
MLP является подмножеством DNN. В то время как DNN может иметь петли, а MLP всегда имеют прямую связь, т.е.
Многослойный персептрон (MLP) представляет собой конечный ациклический граф
Многие терминологии, используемые в научной литературе, имеют отношение к тенденциям времени и завоевали популярность.
Так что да, начало, сверточная сеть, перезапуск и т. Д. - все это MLP, потому что между соединениями нет цикла. Даже если есть ярлык соединения, пропускающий слои, пока он находится в прямом направлении, его можно назвать многослойным персептроном. Но LSTM или Vanilla RNN и т. Д. Имеют циклические соединения, поэтому не могут называться MLP, но являются подмножеством DNN.
Это мое понимание вещей. Пожалуйста, поправьте меня, если я ошибаюсь.
Ссылки Ссылки:
/cs/53521/what-is-difference-between-multilayer-perceptron-and-multilayer-neural-network
https://en.wikipedia.org/wiki/Multilayer_perceptron
https://en.wikipedia.org/wiki/Perceptron
http://ml.informatik.uni-freiburg.de/former/_media/teaching/ss10/05_mlps.printer.pdf
источник
Хороший вопрос: обратите внимание, что в области глубокого обучения вещи не всегда хорошо проработаны и четко определены, как в статистическом обучении (также из-за большого количества ажиотажа), поэтому не ожидайте, что определения будут такими же строгими, как в математике. В любом случае, многослойный персептрон представляет собой особую архитектуру нейронной сети с прямой связью, в которой вы складываете несколько полностью соединенных слоев (то есть вообще никаких слоев свертки), где функции активации скрытых модулей часто являются сигмоидальной или коричневой. Узлы выходного слоя обычно имеют функции активации softmax (для классификации) или функции линейной активации (для регрессии). Типичные архитектуры MLP не являются «глубокими», то есть у нас не так много скрытых слоев. У вас обычно есть, скажем, от 1 до 5 скрытых слоев. Эти нейронные сети были распространены в 80-х,
Теперь, под Deep Neural Network мы имеем в виду сеть, которая имеет много уровней (19, 22, 152, ... даже > 1200 , хотя это, по общему признанию, очень экстремально). Обратите внимание, что
И это была небольшая сеть - в глубоких сверточных нейронных сетях, называемых AlexNet, было 5 слоев, но 60 миллионов весов, и по современным меркам она считается маленькой! Когда у вас так много весов, тогда любой набор данных «мал» - даже ImageNet, набор данных изображений, используемых для классификации, имеет «только» около 1 миллиона изображений, поэтому риск переобучения гораздо больше, чем для мелкой сети.
Таким образом, глубокое обучение можно понимать как набор инструментов, которые на практике используются для обучения нейронных сетей с большим количеством слоев и весов, обеспечивая низкую ошибку обобщения. Эта задача создает больше проблем, чем для небольших сетей. Вы, безусловно, можете создать Deep Multilayer Perceptron и обучить его - но (кроме того факта, что это не оптимальная архитектура для многих задач, где сегодня используется Deep Learning), вы, вероятно, будете использовать инструменты, которые отличаются от тех, которые использовались, когда сети использовались ранее. "мелкий". Например, вы можете предпочесть единицы активации ReLU сигмоидальным или коричневым, потому что они смягчают проблему исчезающего градиента.
источник
a "multi-layer perceptron" the same thing as a "deep neural network"
ответили ли : на этот вопрос был дан подробный ответ, как в моем, так и в m1cro1ce ответе. Теперь вы задаете вопрос "являются ли CNN подмножеством MLP?" - На сайтах Stack Exchange есть политика одного вопроса для публикации .Я хочу добавить, что в соответствии с тем, что я прочитал из многих сообщений:
Через DNN существует много разных архитектур, таких как: MLP (многоуровневый персептрон) и CNN (сверточные нейронные сети). Так что разные типы DNN предназначены для решения различных типов проблем.
MLPs - это классический тип NN, который используется для:
MLP очень удобны и могут использоваться, как правило, для наложения картографирования от входа к выходам.
Но вы можете попробовать другой формат, такой как данные изображения, в качестве базовой точки сравнения, чтобы подтвердить, что другие модели более подходят.
CNN предназначены для отображения данных изображения в выходную переменную. используется для:
Он хорошо работает с данными, имеющими пространственные отношения .
Он традиционно используется для 2D-данных, но может использоваться для 1D-данных, CNN достигает уровня техники на некоторых 1D-pbs.
Сначала вы должны «четко определить», что вы хотите решить как проблему (с какими данными работать, проблемой классификации / регрессии и т. Д.), Чтобы узнать, какой тип архитектуры использовать.
Вы можете обратиться к тем ссылкам, которые были настолько полезны для меня, чтобы понять больше об этих понятиях :).
Надеюсь, что это дополнение будет полезно: с.
источник