Хороший вопрос: обратите внимание, что в области глубокого обучения вещи не всегда хорошо проработаны и четко определены, как в статистическом обучении (также из-за большого количества ажиотажа), поэтому не ожидайте, что определения будут такими же строгими, как в математике. В любом случае, многослойный персептрон представляет собой особую архитектуру нейронной сети с прямой связью, в которой вы складываете несколько полностью соединенных слоев (то есть вообще никаких слоев свертки), где функции активации скрытых модулей часто являются сигмоидальной или коричневой. Узлы выходного слоя обычно имеют функции активации softmax (для классификации) или функции линейной активации (для регрессии). Типичные архитектуры MLP не являются «глубокими», то есть у нас не так много скрытых слоев. У вас обычно есть, скажем, от 1 до 5 скрытых слоев. Эти нейронные сети были распространены в 80-х,
Теперь, под Deep Neural Network мы имеем в виду сеть, которая имеет много уровней (19, 22, 152, ... даже > 1200 , хотя это, по общему признанию, очень экстремально). Обратите внимание, что
- мы не указали архитектуру сети, так что это может быть прямая связь, периодическая и т. д.
- мы не указали природу связей, поэтому мы могли бы иметь полностью связанные слои, сверточные слои, повторяемость и т. д.
- «много» слоев, по общему признанию, не является строгим определением.
⇒ 32 × 32 + 32 × 10 = 1344⇒ 11584веса. Это крошечный NN по сегодняшним меркам. Однако, когда вы продолжаете обучать его на достаточно большом наборе данных, вы обнаружите, что скорость конвергенции значительно замедлилась. Это происходит не только из-за большего количества весов, но и из-за исчезающей проблемы градиента - обратное распространение вычисляет градиент функции потерь путем умножения ошибок в каждом слое, и эти малые числа становятся экспоненциально меньше по мере добавления слоев. Таким образом, ошибки не распространяются (или распространяются очень медленно) по вашей сети, и похоже, что ошибка в обучающем наборе перестает уменьшаться с эпохами обучения.
И это была небольшая сеть - в глубоких сверточных нейронных сетях, называемых AlexNet, было 5 слоев, но 60 миллионов весов, и по современным меркам она считается маленькой! Когда у вас так много весов, тогда любой набор данных «мал» - даже ImageNet, набор данных изображений, используемых для классификации, имеет «только» около 1 миллиона изображений, поэтому риск переобучения гораздо больше, чем для мелкой сети.
Таким образом, глубокое обучение можно понимать как набор инструментов, которые на практике используются для обучения нейронных сетей с большим количеством слоев и весов, обеспечивая низкую ошибку обобщения. Эта задача создает больше проблем, чем для небольших сетей. Вы, безусловно, можете создать Deep Multilayer Perceptron и обучить его - но (кроме того факта, что это не оптимальная архитектура для многих задач, где сегодня используется Deep Learning), вы, вероятно, будете использовать инструменты, которые отличаются от тех, которые использовались, когда сети использовались ранее. "мелкий". Например, вы можете предпочесть единицы активации ReLU сигмоидальным или коричневым, потому что они смягчают проблему исчезающего градиента.