Многослойный перцептрон

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM Qwen3.7-Plus и проверена участником Участник:Iurii Zhuravlev 21:49, 19 июля 2026 (MSD)

Промпт приводится полностью в Обсуждение:Многослойный перцептрон


Содержание

Многослойный перцептрон (англ. Multilayer Perceptron, MLP) — фундаментальная архитектура искусственных нейронных сетей прямого распространения (feedforward neural network), состоящая как минимум из трёх слоёв узлов: входного слоя, одного или нескольких скрытых слоёв и выходного слоя. Все узлы (кроме входных) являются искусственными нейронами, использующими нелинейную функцию активации.

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

Историческая справка

От перцептрона к многослойной сети

История MLP тесно переплетена с историей всего искусственного интеллекта. В 1958 году американский психолог Фрэнк Розенблатт предложил модель перцептрона — простейшей нейросети, состоящей из одного слоя нейронов[1]. Перцептрон успешно решал задачи линейной классификации, однако имел критическое ограничение: он не мог выучить даже простейшую нелинейную функцию, такую как исключающее ИЛИ (XOR).

В 1969 году Марвин Минский и Сеймур Пейперт опубликовали монографию «Перцептроны», где математически доказали ограниченность однослойных сетей[1]. Хотя авторы отмечали, что добавление скрытых слоёв теоретически решает проблему XOR, они не смогли предложить эффективного алгоритма обучения для таких сетей. Это привело к «первой зиме ИИ» — периоду резкого снижения финансирования и интереса к нейронным сетям.

Возрождение и алгоритм обратного распространения ошибки

Прорыв произошёл в 1970-1980-х годах. В 1974 году Пол Вербос в своей диссертации впервые предложил использовать алгоритм обратного распространения ошибки (backpropagation) для обучения многослойных сетей[1]. Однако его работа осталась малоизвестной за пределами узкого круга специалистов.

Настоящий «ренессанс» случился в 1986 году, когда Дэвид Румельхарт, Джеффри Хинтон и Рональд Уильямс независимо переоткрыли и популяризировали метод обратного распространения ошибки, продемонстрировав его эффективность на множестве задач[1]. Это событие ознаменовало начало эры многослойных нейронных сетей и современного глубокого обучения.

Архитектура и принцип работы

Архитектура MLP представляет собой направленный ациклический граф.

  1. Входной слой: Состоит из узлов, каждый из которых передаёт одно значение признака из входного вектора \mathbf{x}. Этот слой не выполняет никаких вычислений.
  2. Скрытые слои: Один или несколько слоёв, в которых происходит нелинейное преобразование данных. Каждый нейрон скрытого слоя связан со всеми нейронами предыдущего слоя (полносвязная структура, или dense layer).
  3. Выходной слой: Формирует итоговый прогноз сети. Структура выходного слоя зависит от задачи (один нейрон для регрессии, K нейронов с функцией Softmax для многоклассовой классификации).

Информация в MLP распространяется строго в одном направлении — от входа к выходу, без циклов и обратных связей (в отличие от рекуррентных сетей).

Математическая формулировка

Рассмотрим l-й скрытый слой MLP. Пусть \mathbf{h}^{(l-1)} — вектор выходов предыдущего слоя (для входного слоя \mathbf{h}^{(0)} = \mathbf{x}). Вычисление на l-м слое описывается следующей формулой:

 \mathbf{z}^{(l)} = \mathbf{W}^{(l)} \mathbf{h}^{(l-1)} + \mathbf{b}^{(l)}

 \mathbf{h}^{(l)} = \sigma\left(\mathbf{z}^{(l)}\right)

где:

  • \mathbf{W}^{(l)} — матрица весов размером m_l \times m_{l-1} (где m_l — число нейронов в l-м слое);
  • \mathbf{b}^{(l)} — вектор смещений (biases) размером m_l;
  • \sigma(\cdot) — поэлементная нелинейная функция активации (например, ReLU, сигмоида или Tanh).

Выход сети \hat{\mathbf{y}} получается после прохождения через все L слоёв:

 \hat{\mathbf{y}} = f_{\mathbf{\theta}}(\mathbf{x}) = \mathbf{W}^{(L)} \sigma\left(\mathbf{W}^{(L-1)} \dots \sigma\left(\mathbf{W}^{(1)}\mathbf{x} + \mathbf{b}^{(1)}\right) \dots + \mathbf{b}^{(L-1)}\right) + \mathbf{b}^{(L)}

где \mathbf{\theta} = \{\mathbf{W}^{(1)}, \mathbf{b}^{(1)}, \dots, \mathbf{W}^{(L)}, \mathbf{b}^{(L)}\} — множество всех обучаемых параметров сети.

Обучение: обратное распространение ошибки

Обучение MLP заключается в минимизации функции потерь \mathcal{L}(\mathbf{y}, \hat{\mathbf{y}}) (например, MSE для регрессии или перекрёстной энтропии для классификации) относительно параметров \mathbf{\theta}.

Для этого используется алгоритм обратного распространения ошибки (backpropagation), основанный на правиле цепного дифференцирования (chain rule) из математического анализа. Алгоритм вычисляет градиент функции потерь по каждому весу в сети, «протаскивая» ошибку от выходного слоя обратно к входному:

 \frac{\partial \mathcal{L}}{\partial \mathbf{W}^{(l)}} = \frac{\partial \mathcal{L}}{\partial \mathbf{z}^{(l)}} \frac{\partial \mathbf{z}^{(l)}}{\partial \mathbf{W}^{(l)}} = {\delta}^{(l)} \left(\mathbf{h}^{(l-1)}\right)^T

После вычисления градиентов параметры обновляются с помощью алгоритмов оптимизации на основе градиентного спуска, таких как SGD, Adam или RMSprop.

Статистическая и ML-интерпретация

  1. Связь с непараметрической регрессией. С точки зрения статистики, MLP — это мощная форма непараметрической регрессии. Если линейная регрессия ищет глобальную линейную зависимость, то скрытые слои MLP выступают в роли автоматического генератора нелинейных признаков (feature extractor), которые затем линейно комбинируются на выходном слое.
  1. Теорема универсальной аппроксимации. Фундаментальное теоретическое обоснование MLP даёт теорема универсальной аппроксимации (Cybenko, 1989; Hornik, 1989)[1]. Она гласит, что MLP с одним скрытым слоем конечной ширины способен аппроксимировать любую непрерывную функцию на компактном множестве с любой заданной точностью. Однако на практике глубокие сети (с множеством узких слоёв) оказываются гораздо более эффективными и требующими меньше параметров, чем широкие плоские сети[1].
  1. Смещение и дисперсия (Bias-Variance Tradeoff). Увеличение числа слоёв и нейронов повышает ёмкость модели, снижая смещение (bias), но одновременно повышает риск переобучения (рост дисперсии). Для контроля этого баланса в MLP применяются методы регуляризации.

Достоинства и ограничения

Преимущества:

  • Универсальность: Способность моделировать сложные нелинейные зависимости.
  • Автоматическое конструирование признаков: MLP сам находит нужные комбинации входных признаков, избавляя инженера от ручного feature engineering (в отличие от классических методов).
  • Онлайн-обучение: Возможность использования SGD для обучения на потоковых данных.

Ограничения:

  • Проблема «чёрного ящика»: Интерпретировать, почему сеть приняла то или иное решение, крайне сложно (проблема решается методами XAI, такими как SHAP или LIME, но не самой архитектурой).
  • Требовательность к данным: MLP с большим числом параметров требует огромных объёмов обучающей выборки для избежания переобучения.
  • Инвариантность: Классический MLP не учитывает пространственную или временную структуру данных. Для изображений он игнорирует соседство пикселей, а для текстов — порядок слов.

Практическое руководство для инженера

Если вы применяете MLP для решения прикладных задач, следуйте этим правилам:

  1. Масштабирование признаков (Feature Scaling): MLP крайне чувствителен к масштабу входных данных. Всегда применяйте стандартизацию (StandardScaler) или нормализацию (MinMaxScaler) к числовым признакам. Иначе градиенты по одним весам будут огромными, а по другим — исчезающе малыми.
  2. Выбор функции активации: Забудьте о сигмоиде и Tanh для скрытых слоёв в глубоких сетях — они страдают от проблемы затухающего градиента. Используйте ReLU или её модификации (LeakyReLU, GELU).
  3. Инициализация весов: Никогда не инициализируйте веса нулями. Используйте инициализацию Xavier/Glorot для сигмоид/Tanh и He initialization для ReLU.
  4. Борьба с переобучением: Используйте Dropout (вероятность 0.1–0.5) между скрытыми слоями и L2-регуляризацию (weight decay).
  5. Когда НЕ использовать MLP: Если ваши данные — это изображения, используйте CNN. Если это последовательности или текст — Трансформеры или RNN. Если это табличные данные с высокой интерпретируемостью — рассмотрите градиентный бустинг (XGBoost, CatBoost) или современные KAN.

См. также

Примечания


Литература

  • Rosenblatt F. The perceptron: A probabilistic model for information storage and organization in the brain // Psychological Review. — 1958. — Vol. 65, no. 6. — P. 386-408.
  • Minsky M., Papert S. Perceptrons: An Introduction to Computational Geometry. — MIT Press, 1969. — 320 p.
  • Werbos P. J. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences: PhD thesis. — Harvard University, 1974.
  • Rumelhart D. E., Hinton G. E., Williams R. J. Learning representations by back-propagating errors // Nature. — 1986. — Vol. 323, no. 6088. — P. 533-536.
  • Hornik K., Stinchcombe M., White H. Multilayer feedforward networks are universal approximators // Neural Networks. — 1989. — Vol. 2, no. 5. — P. 359-366.
  • Goodfellow I., Bengio Y., Courville A. Deep Learning. — MIT Press, 2016. — 800 p.
  • Bishop C. M. Pattern Recognition and Machine Learning. — Springer, 2006. — 738 p. (Раздел 5: Feed-forward Neural Networks).