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

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

English Multilayer Perceptron, MLP
Синонимы MLP, многослойная нейронная сеть прямого распространения, полносвязная нейронная сеть

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

Как это работает

Каждый нейрон в MLP получает сигналы от всех нейронов предыдущего слоя, умножает их на весовые коэффициенты, суммирует и пропускает через функцию активации. Сигнал последовательно проходит от входного слоя через скрытые слои к выходному.

Обучение происходит методом обратного распространения ошибки. Сначала сеть делает предсказание (прямой проход), затем вычисляется разница между предсказанием и правильным ответом. Эта ошибка распространяется backwards через слои, и веса корректируются так, чтобы уменьшить ошибку в следующий раз.

Зачем это нужно

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

Примеры

  • Распознавание рукописных цифр: MLP с одним скрытым слоем на 128 нейронов обучается на датасете MNIST и достигает точности выше 97% на тестовой выборке.
  • Прогнозирование оттока клиентов: сеть с двумя скрытыми слоями анализирует историю транзакций и предсказывает вероятность ухода клиента.
  • Классификация текстов: MLP принимает на вход TF-IDF векторы слов и определяет тематику документа.

Формула или метрика

Выход одного нейрона вычисляется по формуле: y = φ(Σ(wᵢ · xᵢ) + b), где wᵢ — веса, xᵢ — входы, b — смещение, φ — функция активации. Для скрытых слоёв обычно используют ReLU или сигмоиду.

Типичные ошибки

  • Слишком много нейронов в скрытых слоях при малом объёме данных — сеть запоминает примеры вместо поиска закономерностей (переобучение).
  • Отсутствие нормализации входных данных — признаки с большим разбросом значений доминируют при обучении, и сеть сходится медленно или не сходится вовсе.
  • Использование линейной функции активации в скрытых слоях — вся сеть схлопывается в одно линейное преобразование, и глубина теряет смысл.
  • Слишком высокий learning rate — веса «прыгают» вокруг минимума и не сходятся.

Как улучшить

  • Добавьте dropout — случайное отключение части нейронов во время обучения снижает переобучение.
  • Используйте пакетную нормализацию (Batch Normalization) для стабилизации обучения и ускорения сходимости.
  • Подбирайте количество скрытых слоёв и нейронов экспериментально, начиная с одного скрытого слоя.
  • Применяйте регуляризацию весов (L1 или L2), чтобы штрафовать слишком большие значения параметров.
  • Всегда выделяйте валидационную выборку для контроля переобучения и ранней остановки.

Источники

Deep Learning Book — фундаментальный учебник по нейронным сетям (https://www.deeplearningbook.org/contents/mlp.html)

ScienceDirect Topics: Multilayer Perceptron — обзорная статья с теоретическими основами (https://www.sciencedirect.com/topics/engineering/multi-layer-perceptron-network)

TensorFlow Core: MLP for Digit Recognition — практическое руководство с примером реализации (https://www.tensorflow.org/guide/core/mlp_core)