|
|
| Строка 1: |
Строка 1: |
| - | {{well|Статья написана с использованием LLM '''Qwen3.7-Plus''' и проверена участником [[Участник:Iurii Zhuravlev]] 21:49, 19 июля 2026 (MSD)
| + | #REDIRECT [[Многослойный персептрон]] |
| - | Промпт приводится полностью в [[Обсуждение:Многослойный перцептрон]]
| + | |
| - | }}
| + | |
| - | {{TOCright}}
| + | |
| - | '''Многослойный перцептрон''' (англ. ''Multilayer Perceptron'', '''MLP''') — фундаментальная архитектура [[Искусственная нейронная сеть|искусственных нейронных сетей]] прямого распространения (feedforward neural network), состоящая как минимум из трёх слоёв узлов: входного слоя, одного или нескольких скрытых слоёв и выходного слоя. Все узлы (кроме входных) являются искусственными нейронами, использующими нелинейную [[Функция активации|функцию активации]].
| + | |
| - | | + | |
| - | Многослойный перцептрон является базовой и наиболее исторически значимой архитектурой в [[Глубокое обучение|глубоком обучении]]. Благодаря наличию скрытых слоёв и нелинейных функций активации, MLP способен решать задачи, которые не поддаются линейной классификации или регрессии, что делает его универсальным инструментом для обработки табличных данных и фундаментом для более сложных архитектур.
| + | |
| - | | + | |
| - | == Историческая справка ==
| + | |
| - | | + | |
| - | === От перцептрона к многослойной сети ===
| + | |
| - | История MLP тесно переплетена с историей всего искусственного интеллекта. В 1958 году американский психолог Фрэнк Розенблатт предложил модель [[Перцептрон|перцептрона]] — простейшей нейросети, состоящей из одного слоя нейронов<ref name="Rosenblatt1958">Rosenblatt, F. (1958). ''The perceptron: A probabilistic model for information storage and organization in the brain''. Psychological Review, 65(6), 386.</ref>. Перцептрон успешно решал задачи линейной классификации, однако имел критическое ограничение: он не мог выучить даже простейшую нелинейную функцию, такую как исключающее ИЛИ (XOR).
| + | |
| - | | + | |
| - | В 1969 году Марвин Минский и Сеймур Пейперт опубликовали монографию «Перцептроны», где математически доказали ограниченность однослойных сетей<ref name="Minsky1969">Minsky, M., & Papert, S. (1969). ''Perceptrons: An Introduction to Computational Geometry''. MIT Press.</ref>. Хотя авторы отмечали, что добавление скрытых слоёв теоретически решает проблему XOR, они не смогли предложить эффективного алгоритма обучения для таких сетей. Это привело к «первой зиме ИИ» — периоду резкого снижения финансирования и интереса к нейронным сетям.
| + | |
| - | | + | |
| - | === Возрождение и алгоритм обратного распространения ошибки ===
| + | |
| - | Прорыв произошёл в 1970-1980-х годах. В 1974 году Пол Вербос в своей диссертации впервые предложил использовать [[Обратное распространение ошибки|алгоритм обратного распространения ошибки]] (backpropagation) для обучения многослойных сетей<ref name="Werbos1974">Werbos, P. J. (1974). ''Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences''. PhD thesis, Harvard University.</ref>. Однако его работа осталась малоизвестной за пределами узкого круга специалистов.
| + | |
| - | | + | |
| - | Настоящий «ренессанс» случился в 1986 году, когда Дэвид Румельхарт, Джеффри Хинтон и Рональд Уильямс независимо переоткрыли и популяризировали метод обратного распространения ошибки, продемонстрировав его эффективность на множестве задач<ref name="Rumelhart1986">Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). ''Learning representations by back-propagating errors''. Nature, 323(6088), 533-536.</ref>. Это событие ознаменовало начало эры многослойных нейронных сетей и современного глубокого обучения.
| + | |
| - | | + | |
| - | == Архитектура и принцип работы ==
| + | |
| - | | + | |
| - | Архитектура MLP представляет собой направленный ациклический граф.
| + | |
| - | | + | |
| - | # '''Входной слой:''' Состоит из узлов, каждый из которых передаёт одно значение признака из входного вектора <tex>\mathbf{x}</tex>. Этот слой не выполняет никаких вычислений.
| + | |
| - | # '''Скрытые слои:''' Один или несколько слоёв, в которых происходит нелинейное преобразование данных. Каждый нейрон скрытого слоя связан со всеми нейронами предыдущего слоя (полносвязная структура, или ''dense layer'').
| + | |
| - | # '''Выходной слой:''' Формирует итоговый прогноз сети. Структура выходного слоя зависит от задачи (один нейрон для регрессии, <tex>K</tex> нейронов с функцией [[Функция активации#Softmax|Softmax]] для многоклассовой классификации).
| + | |
| - | | + | |
| - | Информация в MLP распространяется строго в одном направлении — от входа к выходу, без циклов и обратных связей (в отличие от [[Рекуррентная нейронная сеть|рекуррентных сетей]]).
| + | |
| - | | + | |
| - | == Математическая формулировка ==
| + | |
| - | | + | |
| - | Рассмотрим <tex>l</tex>-й скрытый слой MLP. Пусть <tex>\mathbf{h}^{(l-1)}</tex> — вектор выходов предыдущего слоя (для входного слоя <tex>\mathbf{h}^{(0)} = \mathbf{x}</tex>). Вычисление на <tex>l</tex>-м слое описывается следующей формулой:
| + | |
| - | | + | |
| - | <tex display="block"> \mathbf{z}^{(l)} = \mathbf{W}^{(l)} \mathbf{h}^{(l-1)} + \mathbf{b}^{(l)} </tex>
| + | |
| - | | + | |
| - | <tex display="block"> \mathbf{h}^{(l)} = \sigma\left(\mathbf{z}^{(l)}\right) </tex>
| + | |
| - | | + | |
| - | где:
| + | |
| - | * <tex>\mathbf{W}^{(l)}</tex> — матрица весов размером <tex>m_l \times m_{l-1}</tex> (где <tex>m_l</tex> — число нейронов в <tex>l</tex>-м слое);
| + | |
| - | * <tex>\mathbf{b}^{(l)}</tex> — вектор смещений (biases) размером <tex>m_l</tex>;
| + | |
| - | * <tex>\sigma(\cdot)</tex> — поэлементная нелинейная [[Функция активации|функция активации]] (например, [[Функция активации#ReLU|ReLU]], сигмоида или Tanh).
| + | |
| - | | + | |
| - | Выход сети <tex>\hat{\mathbf{y}}</tex> получается после прохождения через все <tex>L</tex> слоёв:
| + | |
| - | | + | |
| - | <tex display="block"> \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)} </tex>
| + | |
| - | | + | |
| - | где <tex>\mathbf{\theta} = \{\mathbf{W}^{(1)}, \mathbf{b}^{(1)}, \dots, \mathbf{W}^{(L)}, \mathbf{b}^{(L)}\}</tex> — множество всех обучаемых параметров сети.
| + | |
| - | | + | |
| - | == Обучение: обратное распространение ошибки ==
| + | |
| - | | + | |
| - | Обучение MLP заключается в минимизации [[Функция потерь|функции потерь]] <tex>\mathcal{L}(\mathbf{y}, \hat{\mathbf{y}})</tex> (например, [[Среднеквадратическая ошибка|MSE]] для регрессии или [[Перекрёстная энтропия|перекрёстной энтропии]] для классификации) относительно параметров <tex>\mathbf{\theta}</tex>.
| + | |
| - | | + | |
| - | Для этого используется алгоритм [[Обратное распространение ошибки|обратного распространения ошибки]] (backpropagation), основанный на [[Правило цепного дифференцирования|правиле цепного дифференцирования]] (chain rule) из математического анализа. Алгоритм вычисляет градиент функции потерь по каждому весу в сети, «протаскивая» ошибку от выходного слоя обратно к входному:
| + | |
| - | | + | |
| - | <tex display="block"> \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 </tex>
| + | |
| - | | + | |
| - | После вычисления градиентов параметры обновляются с помощью алгоритмов оптимизации на основе [[Градиентный спуск|градиентного спуска]], таких как [[Стохастический градиентный спуск|SGD]], [[Adam (алгоритм оптимизации)|Adam]] или RMSprop.
| + | |
| - | | + | |
| - | == Статистическая и ML-интерпретация ==
| + | |
| - | # Связь с непараметрической регрессией. С точки зрения статистики, MLP — это мощная форма [[Непараметрическая регрессия|непараметрической регрессии]]. Если [[Линейная регрессия|линейная регрессия]] ищет глобальную линейную зависимость, то скрытые слои MLP выступают в роли автоматического генератора нелинейных признаков (feature extractor), которые затем линейно комбинируются на выходном слое.
| + | |
| - | | + | |
| - | # Теорема универсальной аппроксимации. Фундаментальное теоретическое обоснование MLP даёт [[Теорема универсальной аппроксимации|теорема универсальной аппроксимации]] (Cybenko, 1989; Hornik, 1989)<ref name="Hornik1989">Hornik, K., Stinchcombe, M., & White, H. (1989). ''Multilayer feedforward networks are universal approximators''. Neural Networks, 2(5), 359-366.</ref>. Она гласит, что MLP с одним скрытым слоем конечной ширины способен аппроксимировать любую непрерывную функцию на компактном множестве с любой заданной точностью. Однако на практике глубокие сети (с множеством узких слоёв) оказываются гораздо более эффективными и требующими меньше параметров, чем широкие плоские сети<ref name="Goodfellow2016">Goodfellow, I., Bengio, Y., & Courville, A. (2016). ''Deep Learning''. MIT Press.</ref>.
| + | |
| - | | + | |
| - | # Смещение и дисперсия (Bias-Variance Tradeoff). Увеличение числа слоёв и нейронов повышает ёмкость модели, снижая [[Смещение (статистика)|смещение]] (bias), но одновременно повышает риск [[Переобучение|переобучения]] (рост [[Дисперсия (статистика)|дисперсии]]). Для контроля этого баланса в MLP применяются методы [[Регуляризация|регуляризации]].
| + | |
| - | | + | |
| - | == Достоинства и ограничения ==
| + | |
| - | | + | |
| - | '''Преимущества:'''
| + | |
| - | * '''Универсальность:''' Способность моделировать сложные нелинейные зависимости.
| + | |
| - | * '''Автоматическое конструирование признаков:''' MLP сам находит нужные комбинации входных признаков, избавляя инженера от ручного feature engineering (в отличие от классических методов).
| + | |
| - | * '''Онлайн-обучение:''' Возможность использования [[Стохастический градиентный спуск|SGD]] для обучения на потоковых данных.
| + | |
| - | | + | |
| - | '''Ограничения:'''
| + | |
| - | * '''Проблема «чёрного ящика»:''' Интерпретировать, почему сеть приняла то или иное решение, крайне сложно (проблема решается методами XAI, такими как SHAP или LIME, но не самой архитектурой).
| + | |
| - | * '''Требовательность к данным:''' MLP с большим числом параметров требует огромных объёмов обучающей выборки для избежания переобучения.
| + | |
| - | * '''Инвариантность:''' Классический MLP не учитывает пространственную или временную структуру данных. Для изображений он игнорирует соседство пикселей, а для текстов — порядок слов.
| + | |
| - | | + | |
| - | == Практическое руководство для инженера ==
| + | |
| - | | + | |
| - | Если вы применяете MLP для решения прикладных задач, следуйте этим правилам:
| + | |
| - | | + | |
| - | # '''Масштабирование признаков (Feature Scaling):''' MLP крайне чувствителен к масштабу входных данных. Всегда применяйте [[Стандартизация (статистика)|стандартизацию]] (StandardScaler) или нормализацию (MinMaxScaler) к числовым признакам. Иначе градиенты по одним весам будут огромными, а по другим — исчезающе малыми.
| + | |
| - | # '''Выбор функции активации:''' Забудьте о сигмоиде и Tanh для скрытых слоёв в глубоких сетях — они страдают от [[Проблема затухающего градиента|проблемы затухающего градиента]]. Используйте [[Функция активации#ReLU|ReLU]] или её модификации (LeakyReLU, GELU).
| + | |
| - | # '''Инициализация весов:''' Никогда не инициализируйте веса нулями. Используйте инициализацию Xavier/Glorot для сигмоид/Tanh и He initialization для ReLU.
| + | |
| - | # '''Борьба с переобучением:''' Используйте [[Отсев (нейронные сети)|Dropout]] (вероятность 0.1–0.5) между скрытыми слоями и [[L1 и L2 регуляризация|L2-регуляризацию]] (weight decay).
| + | |
| - | # '''Когда НЕ использовать MLP:''' Если ваши данные — это изображения, используйте [[Свёрточная нейронная сеть|CNN]]. Если это последовательности или текст — [[Трансформер (архитектура)|Трансформеры]] или RNN. Если это табличные данные с высокой интерпретируемостью — рассмотрите [[Градиентный бустинг|градиентный бустинг]] (XGBoost, CatBoost) или современные [[Сети Колмогорова-Арнольда|KAN]].
| + | |
| - | | + | |
| - | == См. также ==
| + | |
| - | * [[Перцептрон]]
| + | |
| - | * [[Обратное распространение ошибки]]
| + | |
| - | * [[Теорема универсальной аппроксимации]]
| + | |
| - | * [[Функция активации]]
| + | |
| - | * [[Градиентный спуск]]
| + | |
| - | * [[Свёрточная нейронная сеть]]
| + | |
| - | | + | |
| - | == Примечания ==
| + | |
| - | | + | |
| - | <references />
| + | |
| - | | + | |
| - | == Литература ==
| + | |
| - | * ''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).
| + | |