Многослойный персептрон против глубокой нейронной сети


16

Это вопрос терминологии. Иногда я вижу, что люди называют глубокие нейронные сети «многослойными персептронами», почему это так? Как мне преподавали, персептрон - это однослойный классификатор (или регрессор) с двоичным пороговым выходным значением, использующий определенный способ тренировки весов (не back-prop). Если выходные данные персептрона не совпадают с выходными данными цели, мы добавляем или вычитаем входной вектор к весам (в зависимости от того, дал ли персептрон ложный положительный или ложный отрицательный результат). Это довольно примитивный алгоритм машинного обучения. Процедура обучения, по-видимому, не обобщает многослойный случай (по крайней мере, без изменений). Глубокая нейронная сеть обучается через backprop, который использует правило цепочки для распространения градиентов функции стоимости обратно по всем весам сети.

Итак, вопрос в том. Является ли «многослойный персептрон» тем же, что и «глубокая нейронная сеть»? Если да, то почему используется эта терминология? Это кажется излишне запутанным. Кроме того, предполагая, что терминология несколько взаимозаменяема, я видел только терминологию «многослойный персептрон» при обращении к сети прямой связи, состоящей из полностью связанных слоев (без сверточных слоев или повторяющихся соединений). Насколько широка эта терминология? Будет ли использоваться термин «многослойный персептрон» при ссылке, например, на начальную сеть? Как насчет периодической сети, использующей модули LSTM, используемые в NLP?


1
Глубокая нейронная сеть = нейронная сеть с> 1 скрытым слоем, MLP попадает в эту категорию.
Тим

это просто ребрендинг. MLP были раскручены в 90-х годах и вытеснены SVM, поэтому в 2000-х годах их нужно называть иначе. Предполагается, что у dnn больше слоев, но разница не такая большая, например, Le Net [MLP / CNN] (1998) 2 сверточный 2 полностью связан. alexnet = DNN (2012) 5 сверточных и 3 полностью связанных.
seanv507

SVM основаны на градиентном спуске, ANN основаны на градиентном спуске, поэтому они действительно не вытесняют ANN. SVM были перепроданы и чрезмерно использовались, потому что аспиранты ничего не знали о ANN. Для запуска SVM студенты просто взяли пакеты R и были готовы. Но для ANN вам понадобится целый семестр, чтобы понять их с точки зрения числовых методов, а не с точки зрения интерпретируемого языка (т. Е. Объединения кода вместе).
JoleT

Ответы:


21

Можно рассматривать многослойный персептрон (MLP) как подмножество глубоких нейронных сетей (DNN), но в литературе часто используются взаимозаменяемо.

Предположение, что персептроны названы на основе правил обучения, неверно. Классическое «правило обновления персептрона» - это один из способов его обучения. Ранний отказ от нейронных сетей был вызван именно этой причиной, поскольку правило обновления персептрона было склонно к исчезновению и взрыву градиентов, что делало невозможным обучение сетей с более чем одним слоем.

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

Итак, чтобы ответить на вопросы,

вопрос в том. Является ли «многослойный персептрон» тем же, что и «глубокая нейронная сеть»?

MLP является подмножеством DNN. В то время как DNN может иметь петли, а MLP всегда имеют прямую связь, т.е.

Многослойный персептрон (MLP) представляет собой конечный ациклический граф

почему используется эта терминология?

Многие терминологии, используемые в научной литературе, имеют отношение к тенденциям времени и завоевали популярность.

Насколько широка эта терминология? Будет ли использоваться термин «многослойный персептрон» при ссылке, например, на начальную сеть? Как насчет периодической сети, использующей модули LSTM, используемые в NLP?

Так что да, начало, сверточная сеть, перезапуск и т. Д. - все это 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


1
просто из любопытства: я думал, что логистическая регрессия - это метод регрессии, потому что вы оцениваете вероятность членства в классе 1, а не в классе. Как таковая, она не представляется мне техникой классификации (исследователь / аналитик должен принять решение о пороге вероятности для классификации на основе логистической регрессии).
IWS

@ IWS ты прав. Различные пользователи на этом сайте неоднократно подчеркивали, что логистическая регрессия является моделью (условной) оценки вероятности, а не классификатором. Смотрите, например, здесь .
DeltaIV

1
Отредактировал ответ для исправления. Например, «логистическая регрессия» является техникой классификации и не должна называться «регрессией», если можно так выразиться . Ссылка, которую разделяет @DeltaIV, дает понять, почему это регрессия, а не классификатор.
m1cro1ce

8

Хороший вопрос: обратите внимание, что в области глубокого обучения вещи не всегда хорошо проработаны и четко определены, как в статистическом обучении (также из-за большого количества ажиотажа), поэтому не ожидайте, что определения будут такими же строгими, как в математике. В любом случае, многослойный персептрон представляет собой особую архитектуру нейронной сети с прямой связью, в которой вы складываете несколько полностью соединенных слоев (то есть вообще никаких слоев свертки), где функции активации скрытых модулей часто являются сигмоидальной или коричневой. Узлы выходного слоя обычно имеют функции активации softmax (для классификации) или функции линейной активации (для регрессии). Типичные архитектуры MLP не являются «глубокими», то есть у нас не так много скрытых слоев. У вас обычно есть, скажем, от 1 до 5 скрытых слоев. Эти нейронные сети были распространены в 80-х,

Теперь, под Deep Neural Network мы имеем в виду сеть, которая имеет много уровней (19, 22, 152, ... даже > 1200 , хотя это, по общему признанию, очень экстремально). Обратите внимание, что

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

32×32+32×10знак равно134411584веса. Это крошечный NN по сегодняшним меркам. Однако, когда вы продолжаете обучать его на достаточно большом наборе данных, вы обнаружите, что скорость конвергенции значительно замедлилась. Это происходит не только из-за большего количества весов, но и из-за исчезающей проблемы градиента - обратное распространение вычисляет градиент функции потерь путем умножения ошибок в каждом слое, и эти малые числа становятся экспоненциально меньше по мере добавления слоев. Таким образом, ошибки не распространяются (или распространяются очень медленно) по вашей сети, и похоже, что ошибка в обучающем наборе перестает уменьшаться с эпохами обучения.

И это была небольшая сеть - в глубоких сверточных нейронных сетях, называемых AlexNet, было 5 слоев, но 60 миллионов весов, и по современным меркам она считается маленькой! Когда у вас так много весов, тогда любой набор данных «мал» - даже ImageNet, набор данных изображений, используемых для классификации, имеет «только» около 1 миллиона изображений, поэтому риск переобучения гораздо больше, чем для мелкой сети.

Таким образом, глубокое обучение можно понимать как набор инструментов, которые на практике используются для обучения нейронных сетей с большим количеством слоев и весов, обеспечивая низкую ошибку обобщения. Эта задача создает больше проблем, чем для небольших сетей. Вы, безусловно, можете создать Deep Multilayer Perceptron и обучить его - но (кроме того факта, что это не оптимальная архитектура для многих задач, где сегодня используется Deep Learning), вы, вероятно, будете использовать инструменты, которые отличаются от тех, которые использовались, когда сети использовались ранее. "мелкий". Например, вы можете предпочесть единицы активации ReLU сигмоидальным или коричневым, потому что они смягчают проблему исчезающего градиента.


В предыдущем ответе m1cro1ce говорится, что виртуальная сеть (например, начало) также может быть классифицирована как MLP, тогда как вы указываете, что MLP не может иметь сверточные уровни (и, похоже, вы подразумеваете, что выбор функций активации также влияет на то, что можно назвать MLP или нет?). Есть ли в литературе согласие (или внутри сообщества ML), что именно означает MLP, а что нет? Если кто-то сказал мне: «Я хочу, чтобы вы создали MLP для задачи X», что я должен делать?
enumaris

@enumaris, по закону ты ничего не можешь делать. В прошлый раз, когда я проверял, все еще было законно построить CNN и назвать его MLP. Я бы, конечно, отклонил такую ​​статью / постер / что угодно, но это я и не могу говорить за все сообщество DL, которое не совсем известно своим строгим использованием терминологии. В любом случае, мое определение: прямая нейронная сеть с полностью подключенным слоем и, по крайней мере, некоторой нелинейной функцией активации (в противном случае, независимо от количества слоев, она всегда эквивалентна однослойной линейной сети) такая же, как вы можете найти в .. .
DeltaIV

... Википедия . Обратите внимание на строку в разделе слоев "Так как MLP полностью связаны [..]". Это исключает CNN. В этой книге вы можете найти то же определение (прямая связь, полностью подключено, по крайней мере, у скрытых слоев есть нелинейные функции активации) . Что касается функций активации, я определенно ничего не имею в виду. Я только что сказал, что MLP обычно имеют функции активации tanh или сигмоида, но это не обязательно.
DeltaIV

Я хотел бы отметить один из этих 2 ответов как принятый ответ, но, поскольку они дают противоречивые ответы, я хотел бы знать, какой ответ чаще встречается в литературе или среди сообщества ML.
enumaris

@enumaris заголовок вашего вопроса «Многослойный персептрон против глубокой нейронной сети», и вы спрашиваете, a "multi-layer perceptron" the same thing as a "deep neural network"ответили ли : на этот вопрос был дан подробный ответ, как в моем, так и в m1cro1ce ответе. Теперь вы задаете вопрос "являются ли CNN подмножеством MLP?" - На сайтах Stack Exchange есть политика одного вопроса для публикации .
DeltaIV

0

Я хочу добавить, что в соответствии с тем, что я прочитал из многих сообщений:

Через DNN существует много разных архитектур, таких как: MLP (многоуровневый персептрон) и CNN (сверточные нейронные сети). Так что разные типы DNN предназначены для решения различных типов проблем.

MLPs - это классический тип NN, который используется для:

  • Табличные наборы данных (содержат данные в столбчатом формате, как в таблице базы данных).
  • Классификация / регрессия, прогноз pbs.

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

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

CNN предназначены для отображения данных изображения в выходную переменную. используется для:

  • Данные изображения,
  • классификация / прогноз регрессии pbs,

Он хорошо работает с данными, имеющими пространственные отношения .

Он традиционно используется для 2D-данных, но может использоваться для 1D-данных, CNN достигает уровня техники на некоторых 1D-pbs.

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

Вы можете обратиться к тем ссылкам, которые были настолько полезны для меня, чтобы понять больше об этих понятиях :).

Надеюсь, что это дополнение будет полезно: с.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.