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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM '''Gemini''' и проверена участником ~~~~}} '''Многослойный персептрон'...)
(Перенаправление на Многослойная нейронная сеть)
 
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM '''Gemini''' и проверена участником [[Участник:Kirill Bazhutov|Kirill Bazhutov]] 00:12, 3 июля 2026 (MSD)}}
+
#REDIRECT [[Многослойная нейронная сеть]]
-
 
+
-
'''Многослойный персептрон''' (Multilayer Perceptron, MLP) — это базовая архитектура искусственных [[Нейронная сеть|нейронных сетей]] (Artificial Neural Network, ANN) прямого распространения (Feedforward). Сеть состоит из нескольких слоёв вычислительных узлов: входного, одного или нескольких скрытых и выходного. Каждый узел скрытого слоя обычно представляет собой искусственный нейрон с нелинейной [[Функция активации|функцией активации]]; вид выходного слоя зависит от решаемой задачи.
+
-
 
+
-
В парадигме [[Глубокое обучение|глубокого обучения]] (Deep Learning) MLP является одной из базовых архитектур и элементарных вычислительных схем. Несмотря на доминирование специализированных архитектур (CNN для компьютерного зрения, Transformer для NLP), полносвязные сети широко применяются для работы с табличными признаковыми описаниями (хотя в ряде практических задач конкурируют с методами [[Градиентный бустинг|градиентного бустинга]]) и часто выполняют роль проекционных или классифицирующих блоков в составе сложных нейросетевых архитектур.
+
-
 
+
-
== История и место MLP среди нейросетей ==
+
-
 
+
-
Оригинальный классический [[Персептрон|персептрон]] был предложен Фрэнком Розенблаттом в 1958 году. Однослойная модель была способна решать задачи линейной классификации. Однако в 1969 году работа Марвина Минского и Сеймура Пейперта показала фундаментальные ограничения однослойных персептронов, включая неспособность решать задачи, не являющиеся линейно разделимыми (такие как [[Исключающее ИЛИ|XOR]]). Часто считается, что эта критика стала одним из факторов снижения интереса к нейросетевым подходам в последующие годы.
+
-
 
+
-
Появление скрытых слоёв концептуально решало эту проблему, но требовало нового математического аппарата для обучения. Возрождение направления произошло в 1980-х годах благодаря популяризации [[Алгоритм обратного распространения ошибки|алгоритма обратного распространения ошибки]] (Backpropagation), который позволил эффективно обучать многослойные архитектуры. Широкое признание этот метод получил после публикации фундаментальной работы Дэвида Румельхарта, Джеффри Хинтона и Рональда Уильямса в 1986 году.
+
-
 
+
-
== Архитектура и векторизованное представление ==
+
-
 
+
-
Основой MLP является [[Полносвязный слой|полносвязный слой]] (Dense layer). При отсутствии скрытых слоёв модель сводится к линейному классификатору, близкому по выразительной способности к [[Логистическая регрессия|логистической регрессии]] или однослойному персептрону. Скрытые слои позволяют строить нелинейные разделяющие поверхности.
+
-
 
+
-
В математическом смысле каждый слой выполняет аффинное преобразование входного пространства с последующим применением поэлементной нелинейности. Для вычислительной эффективности операции рассматриваются не для отдельных векторов, а для матриц (мини-пакетов).
+
-
 
+
-
Пусть размер мини-пакета (mini-batch) равен <tex>N</tex>. Тогда входные данные представляются матрицей <tex>X \in \mathbb{R}^{N \times d_0}</tex>, где <tex>d_0</tex> — размерность входного признакового пространства. Прямое распространение ([[Прямое распространение|Forward pass]]) для слоя <tex>l</tex> (где <tex>l = 1, \dots, L</tex>) записывается в матричном виде:
+
-
 
+
-
::<tex>Z^{(l)} = A^{(l-1)} W^{(l)} + B^{(l)}</tex>
+
-
::<tex>A^{(l)} = f^{(l)}(Z^{(l)})</tex>
+
-
 
+
-
Где:
+
-
* <tex>W^{(l)} \in \mathbb{R}^{d_{l-1} \times d_l}</tex> — матрица весов, где <tex>d_l</tex> — количество нейронов в слое <tex>l</tex>.
+
-
* <tex>A^{(l-1)} \in \mathbb{R}^{N \times d_{l-1}}</tex> — матрица активаций предыдущего слоя (при <tex>l=1</tex>, <tex>A^{(0)} = X</tex>).
+
-
* <tex>B^{(l)}</tex> — матрица смещений, полученная путём распространения вектора смещений <tex>b^{(l)} \in \mathbb{R}^{d_l}</tex> на все строки мини-пакета.
+
-
* <tex>f^{(l)}</tex> — нелинейная [[Функция активации]].
+
-
 
+
-
Общее число обучаемых параметров MLP равно сумме параметров всех слоёв, что подчёркивает быстрый рост сложности модели при увеличении ширины слоёв:
+
-
::<tex>P = \sum_{l=1}^{L} (d_{l-1} + 1)d_l</tex>
+
-
где <tex>+1</tex> учитывает вектор смещений.
+
-
 
+
-
=== Роль функций активации ===
+
-
Без нелинейных функций <tex>f^{(l)}</tex> композиция любого количества аффинных слоёв сводится в одно эквивалентное линейное преобразование. При достаточном числе нейронов и подходящих функциях активации MLP способен аппроксимировать широкий класс непрерывных функций на компактных множествах ([[Универсальная теорема аппроксимации|Теорема Цыбенко]]). Однако теорема универсальной аппроксимации не гарантирует эффективности обучения или хорошей обобщающей способности модели.
+
-
 
+
-
Исторически в скрытых слоях применялись сигмоида и гиперболический тангенс, однако в современных MLP они во многом вытеснены семейством '''ReLU''' (Rectified Linear Unit):
+
-
::<tex>\text{ReLU}(z) = \max(0, z)</tex>
+
-
Производная ReLU равна 1 при <tex>z > 0</tex> и 0 при <tex>z < 0</tex>; в точке <tex>z = 0</tex> обычно используется выбранный субградиент. Благодаря наличию линейного участка ReLU частично снижает проблему исчезающего градиента ([[Проблема исчезающего градиента|Vanishing gradient problem]]) по сравнению с сигмоидой и тангенсом.
+
-
 
+
-
=== Вид выходного слоя и типы задач ===
+
-
Вид выходного слоя и соответствующая функция потерь определяются спецификой решаемой задачи:
+
-
* '''Регрессия:''' Применяется линейный выходной слой (без активации).
+
-
* '''Бинарная классификация:''' Выходной слой из одного нейрона использует сигмоиду для предсказания вероятности целевого класса. Используемая функция потерь — бинарная кросс-энтропия (Binary Cross-Entropy).
+
-
* '''Многоклассовая классификация:''' Выходной слой использует функцию [[Softmax]], преобразующую логиты в распределение вероятностей по взаимно исключающим классам. Соответствующая функция потерь — категориальная кросс-энтропия (Categorical Cross-Entropy).
+
-
 
+
-
== Обучение и Метод максимального правдоподобия ==
+
-
 
+
-
Процесс обучения MLP сводится к нахождению оптимальных матриц весов <tex>\theta = \{W^{(l)}, b^{(l)}\}_{l=1}^L</tex>, минимизирующих эмпирический риск. Во многих стандартных задачах машинного обучения выбор [[Функция потерь|функции потерь]] может быть обоснован через статистический [[Метод максимального правдоподобия]] (Maximum Likelihood Estimation, MLE), хотя на практике могут применяться и другие функции (робастные функции потерь или суррогатные функции, ориентированные на метрики конкретной задачи).
+
-
 
+
-
Если рассматривать выходы нейронной сети как параметры вероятностного распределения <tex>p(y | x; \theta)</tex>, то задача обучения в рамках MLE — это максимизация правдоподобия обучающей выборки, что эквивалентно минимизации отрицательного логарифма правдоподобия (Negative Log-Likelihood, NLL).
+
-
 
+
-
=== Алгоритм обратного распространения ошибки ===
+
-
Минимизация функции потерь осуществляется итеративно с помощью алгоритма [[Градиентный спуск|градиентного спуска]]. Вычисление градиентов по всем параметрам сети опирается на [[Алгоритм обратного распространения ошибки]] (Backpropagation).
+
-
 
+
-
Определим матрицу ошибок для слоя <tex>l</tex> как градиент потерь по преактивациям: <tex>\Delta^{(l)} = \frac{\partial L}{\partial Z^{(l)}} \in \mathbb{R}^{N \times d_l}</tex>.
+
-
Шаг обратного распространения вычисляется рекурсивно от последнего слоя к первому. Для скрытого слоя (при <tex>l-1 \geq 1</tex>) ошибка распространяется следующим образом:
+
-
::<tex>\Delta^{(l-1)} = (\Delta^{(l)} (W^{(l)})^T) \odot f'^{(l-1)}(Z^{(l-1)})</tex>
+
-
Где <tex>\odot</tex> — произведение Адамара (поэлементное умножение), а <tex>f'</tex> — производная функции активации.
+
-
 
+
-
Градиенты параметров вычисляются так:
+
-
::<tex>\frac{\partial L}{\partial W^{(l)}} = \frac{1}{N} (A^{(l-1)})^T \Delta^{(l)}</tex>
+
-
::<tex>\frac{\partial L}{\partial b^{(l)}} = \frac{1}{N} \sum_{i=1}^N \Delta^{(l)}_{i, :}</tex>
+
-
 
+
-
''Примечание:'' Если <tex>L</tex> обозначает среднюю потерю по мини-пакету, множитель <tex>\frac{1}{N}</tex> включается либо в определение <tex>\Delta^{(l)}</tex>, либо применяется при итоговом вычислении градиентов параметров. Важно соблюдать единую конвенцию нормировки.
+
-
 
+
-
Обновление весов происходит в направлении антиградиента с учётом [[Скорость обучения|скорости обучения]] (learning rate) и возможных эвристик оптимизатора (Momentum, Adam).
+
-
 
+
-
== Практика применения ==
+
-
 
+
-
=== Предобработка данных ===
+
-
Многослойный персептрон обычно чувствителен к масштабу входных признаков. Перед началом обучения стандартной практикой является применение стандартизации (z-score normalization) или минимаксной нормализации входных данных.
+
-
 
+
-
=== Инициализация, регуляризация и нормализация ===
+
-
Устойчивая сходимость глубокого MLP требует комплекса дополнительных техник:
+
-
* '''Инициализация весов:''' Для логистических активаций применяется метод Xavier (Glorot), для семейства ReLU — инициализация He. Это позволяет избежать проблем с дисперсией сигнала на начальных этапах.
+
-
* '''Регуляризация:''' Традиционно применяется L2-регуляризация (weight decay). Эффективным подходом является метод [[Dropout]], который случайно отключает часть нейронов в процессе обучения, что можно интерпретировать как приближение ансамблирования множества подсетей.
+
-
* '''Нормализация:''' Пакетная нормализация ([[Batch Normalization]]) или нормализация слоя (Layer Normalization) могут стабилизировать обучение и ускорять сходимость глубоких сетей.
+
-
* '''Ранняя остановка (Early stopping):''' Эвристический метод прерывания оптимизации при начале деградации метрик на валидационной выборке.
+
-
 
+
-
=== Основные гиперпараметры ===
+
-
При проектировании и обучении MLP настройке подлежат:
+
-
* Архитектурные: число скрытых слоёв, количество нейронов в каждом слое, тип функции активации.
+
-
* Оптимизационные: скорость обучения (learning rate), размер мини-пакета (batch size), коэффициент регуляризации, количество эпох обучения.
+
-
 
+
-
== Преимущества и ограничения ==
+
-
 
+
-
'''Преимущества:'''
+
-
* Универсальная аппроксимирующая способность.
+
-
* Широкая применимость при работе с табличными данными.
+
-
* Концептуальная простота реализации и естественная векторизация, масштабируемая на современные графические ускорители (GPU).
+
-
 
+
-
'''Ограничения:'''
+
-
* Отсутствие индуктивных смещений: при работе с изображениями, текстами и последовательностями MLP обычно уступает архитектурам, использующим специальные индуктивные смещения, таким как CNN, RNN и [[Трансформер|трансформер]].
+
-
* Высокая параметрическая емкость: полносвязность обуславливает огромное количество обучаемых параметров, что увеличивает риск [[Переобучение|переобучения]].
+
-
* Требовательность к пайплайну: алгоритм оптимизации зависит от масштабирования признаков, инициализации весов и качественного подбора гиперпараметров.
+
-
 
+
-
== См. также ==
+
-
* [[Искусственная нейронная сеть]]
+
-
* [[Глубокое обучение]]
+
-
* [[Алгоритм обратного распространения ошибки]]
+
-
* [[Функция активации]]
+
-
* [[Градиентный спуск]]
+
-
* [[Полносвязный слой]]
+
-
 
+
-
== Литература ==
+
-
* {{книга | автор = Bishop C. M. | заглавие = Pattern Recognition and Machine Learning | год = 2006 | издательство = Springer }}
+
-
* {{книга | автор = Hastie T., Tibshirani R., Friedman J. | заглавие = The Elements of Statistical Learning: Data Mining, Inference, and Prediction | год = 2009 | издательство = Springer }}
+
-
* {{книга | автор = Goodfellow I., Bengio Y., Courville A. | заглавие = Deep Learning | год = 2016 | издательство = MIT Press }}
+
-
* {{статья | автор = Rumelhart D. E., Hinton G. E., Williams R. J. | заглавие = Learning representations by back-propagating errors | издание = Nature | год = 1986 | том = 323 | страницы = 533–536 }}
+
-
* {{статья | автор = Cybenko G. | заглавие = Approximation by superpositions of a sigmoidal function | издание = Mathematics of Control, Signals and Systems | год = 1989 | том = 2 | страницы = 303–314 }}
+
-
* {{статья | автор = Glorot X., Bengio Y. | заглавие = Understanding the difficulty of training deep feedforward neural networks | издание = AISTATS | год = 2010 }}
+
-
* {{статья | автор = He K., Zhang X., Ren S., Sun J. | заглавие = Delving deep into rectifiers: Surpassing human-level performance on imagenet classification | издание = ICCV | год = 2015 }}
+
-
* {{статья | автор = Srivastava N., Hinton G., Krizhevsky A., Sutskever I., Salakhutdinov R. | заглавие = Dropout: A simple way to prevent neural networks from overfitting | издание = JMLR | год = 2014 | том = 15 | страницы = 1929–1958 }}
+
-
 
+
-
[[Категория:Искусственные нейронные сети]]
+
-
[[Категория:Машинное обучение]]
+
-
[[Категория:Глубокое обучение]]
+

Текущая версия

  1. REDIRECT Многослойная нейронная сеть
Личные инструменты