Многослойная нейронная сеть

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

(Различия между версиями)
Перейти к: навигация, поиск
(Математическая модель)
 
(10 промежуточных версий не показаны.)
Строка 2: Строка 2:
= Многослойная нейронная сеть =
= Многослойная нейронная сеть =
-
'''Многослойная нейронная сеть''' ('''МНС''', '''MLN''', также часто ''многослойный перцептрон'', '''MLP''') — класс [[искусственная нейронная сеть|искусственных нейронных сетей]], состоящих из нескольких последовательно соединённых слоёв [[искусственный нейрон|искусственных нейронов]], способных аппроксимировать сложные нелинейные зависимости между входными и выходными данными. Современные многослойные нейронные сети являются фундаментом [[глубокое обучение|глубокого обучения]] и лежат в основе большинства достижений в областях [[компьютерное зрение|компьютерного зрения]], [[обработка естественного языка|обработки естественного языка]], [[распознавание речи]], [[машинный перевод|машинного перевода]], [[генеративный искусственный интеллект|генеративного искусственного интеллекта]] и других направлений [[машинное обучение|машинного обучения]].
+
'''Многослойная нейронная сеть''' ('''МНС''', англ. ''Multilayer Neural Network'', '''MLN'''), также часто '''многослойный перцептрон''' ('''MLP''', англ. ''Multilayer Perceptron'') — класс [[искусственная нейронная сеть|искусственных нейронных сетей]] прямого распространения (Feedforward), состоящих из нескольких последовательно соединённых слоёв искусственных [[нейрон|нейронов]], способных аппроксимировать сложные нелинейные зависимости между входными и выходными данными.
 +
 
 +
Типичная сеть состоит из входного слоя, одного или нескольких скрытых слоёв и выходного слоя. Каждый нейрон скрытого слоя представляет собой вычислительный элемент, выполняющий линейное преобразование входных данных с последующим применением нелинейной [[функция активации|функции активации]]. Современные многослойные нейронные сети являются фундаментом [[глубокое обучение|глубокого обучения]] и лежат в основе большинства достижений в областях [[компьютерное зрение|компьютерного зрения]], [[обработка естественного языка|обработки естественного языка]], [[распознавание речи]], [[машинный перевод|машинного перевода]], [[генеративная модель|генеративного искусственного интеллекта]] и других направлений [[машинное обучение|машинного обучения]].
 +
 
 +
Несмотря на широкое распространение специализированных архитектур, таких как [[свёрточная нейронная сеть|свёрточные нейронные сети]] и [[трансформер (архитектура)|трансформеры]], многослойные перцептроны продолжают широко использоваться при работе с табличными данными, а также в качестве отдельных полносвязных блоков внутри более сложных нейросетевых моделей.
== История ==
== История ==
-
Первые математические модели искусственных нейронов были предложены [[Уоррен Маккаллок]]ом и [[Уолтер Питтс|Уолтером Питтсом]] в 1943 году. В 1958 году [[Фрэнк Розенблатт]] разработал [[перцептрон]], который мог обучаться классификации линейно разделимых данных.
+
Первые математические модели искусственных нейронов были предложены [[Уоррен Маккаллок]]ом и [[Уолтер Питтс|Уолтером Питтсом]] в 1943 году.
-
В 1969 году публикация книги ''Perceptrons'' [[Марвин Минский|Марвина Минского]] и [[Сеймур Пейперт|Сеймура Пейперта]] показала фундаментальные ограничения однослойных сетей, что привело к временному снижению интереса к исследованиям нейронных сетей.
+
В 1958 году [[Фрэнк Розенблатт]] разработал [[перцептрон]], способный обучаться классификации линейно разделимых данных. Однослойная модель могла решать только задачи линейной классификации.
-
Переломным моментом стала публикация в 1986 году алгоритма [[обратное распространение ошибки|обратного распространения ошибки]], позволившего эффективно обучать сети с несколькими скрытыми слоями. Позднее развитие вычислительной техники, появление больших наборов данных и использование [[графический процессор|графических процессоров]] сделали возможным обучение очень глубоких моделей.
+
В 1969 году публикация книги ''Perceptrons'' [[Марвин Минский|Марвина Минского]] и [[Сеймур Пейперт|Сеймура Пейперта]] показала фундаментальные ограничения однослойных перцептронов, включая невозможность решения задач, не являющихся линейно разделимыми (например, [[Исключающее ИЛИ|XOR]]). Эта работа существенно снизила интерес к исследованиям нейронных сетей в последующие годы.
-
С начала 2010годов многослойные сети стали основой современных методов глубокого обучения.
+
Использование скрытых слоёв позволяло преодолеть эти ограничения, однако эффективный алгоритм обучения многослойных архитектур появился лишь в 1980годах.
-
== Архитектура ==
+
Переломным моментом стала публикация в 1986 году работы Дэвида Румельхарта, Джеффри Хинтона и Рональда Уильямса, в которой был популяризирован алгоритм [[обратное распространение ошибки|обратного распространения ошибки]] (Backpropagation), позволивший эффективно обучать сети с несколькими скрытыми слоями.
-
Типичная многослойная нейронная сеть состоит из следующих компонентов:
+
Позднейшее развитие вычислительной техники, появление больших наборов данных и использование [[графический процессор|графических процессоров]] сделали возможным обучение очень глубоких моделей.
 +
 
 +
С начала 2010-х годов многослойные нейронные сети стали основой современных методов глубокого обучения.
 +
 
 +
== Архитектура и математическая модель ==
 +
 
 +
Основой многослойной нейронной сети является [[полносвязный слой]] (Dense layer). Типичная архитектура включает:
* '''входной слой''', принимающий признаки объекта;
* '''входной слой''', принимающий признаки объекта;
Строка 22: Строка 32:
* '''выходной слой''', формирующий прогноз.
* '''выходной слой''', формирующий прогноз.
-
Каждый нейрон вычисляет
+
При отсутствии скрытых слоёв модель сводится к линейному классификатору, близкому по выразительной способности к [[логистическая регрессия|логистической регрессии]] или однослойному перцептрону. Добавление скрытых слоёв позволяет строить нелинейные разделяющие поверхности и моделировать значительно более сложные зависимости.
-
:<tex>z = \sum_{i=1}^{n} w_i x_i + b,</tex>
+
Каждый нейрон вычисляет линейную комбинацию входов
-
где:
+
:<tex>z=\sum_{i=1}^{n}w_i x_i+b,</tex>
 +
 
 +
где
* <tex>x_i</tex> — входные значения;
* <tex>x_i</tex> — входные значения;
Строка 40: Строка 52:
* [[Swish]].
* [[Swish]].
-
Наличие нелинейной функции активации позволяет сети моделировать сложные нелинейные зависимости. Без неё вся последовательность линейных преобразований сводилась бы к одному линейному преобразованию.
+
Наличие нелинейной функции активации позволяет сети моделировать сложные нелинейные зависимости. Без неё последовательность линейных преобразований эквивалентна одному линейному преобразованию.
-
 
+
-
== Математическая модель ==
+
-
Пусть сеть состоит из <tex>L</tex> слоёв.
+
Для вычислительной эффективности операции обычно рассматриваются в матричной форме. Пусть размер мини-пакета равен <tex>N</tex>, а входные данные представлены матрицей <tex>X \in \mathbb{R}^{N \times d_0}</tex>. Тогда прямое распространение для слоя <tex>l</tex> записывается как
-
Для слоя <tex>l</tex>
+
:<tex>Z^{(l)} = A^{(l-1)}W^{(l)} + B^{(l)},</tex>
-
:<tex>\mathbf{h}^{(l)} = \sigma\left(W^{(l)} \mathbf{h}^{(l-1)} + \mathbf{b}^{(l)} \right),</tex>
+
:<tex>A^{(l)} = f^{(l)}(Z^{(l)}).</tex>
где
где
* <tex>W^{(l)}</tex> — матрица весов;
* <tex>W^{(l)}</tex> — матрица весов;
-
* <tex>\mathbf{b}^{(l)}</tex> — вектор смещений;
+
* <tex>A^{(l-1)}</tex> — матрица активаций предыдущего слоя;
-
* <tex>\sigma</tex> — функция активации.
+
* <tex>B^{(l)}</tex> — матрица смещений;
 +
* <tex>f^{(l)}</tex> — функция активации.
 +
 
 +
В более общем виде преобразование каждого слоя записывается как
 +
 
 +
:<tex>\mathbf{h}^{(l)}=\sigma\left(W^{(l)}\mathbf{h}^{(l-1)}+\mathbf{b}^{(l)}\right).</tex>
Вся сеть представляет собой композицию функций
Вся сеть представляет собой композицию функций
-
:<tex>f(x)=f_L\circ f_{L-1}\circ\dots\circ f_1(x). </tex>
+
:<tex>f(x)=f_L\circ f_{L-1}\circ\dots\circ f_1(x).</tex>
-
Именно композиция большого числа нелинейных преобразований обеспечивает высокую выразительную способность модели.
+
Общее число обучаемых параметров определяется суммой параметров всех слоёв
 +
 
 +
:<tex>P=\sum_{l=1}^{L}(d_{l-1}+1)d_l,</tex>
 +
 
 +
где слагаемое <tex>+1</tex> учитывает параметры смещений.
 +
 
 +
=== Роль функций активации ===
 +
 
 +
Без нелинейных функций активации композиция любого количества аффинных слоёв сводится к одному эквивалентному линейному преобразованию. Наличие нелинейности позволяет многослойной сети моделировать сложные зависимости и аппроксимировать широкий класс непрерывных функций.
 +
 
 +
Исторически в скрытых слоях широко применялись [[Сигмоида|сигмоида]] и [[Гиперболический тангенс|гиперболический тангенс]], однако в современных архитектурах они во многом вытеснены семейством '''ReLU''' (Rectified Linear Unit):
 +
 
 +
:<tex>\mathrm{ReLU}(z)=\max(0,z).</tex>
 +
 
 +
Производная ReLU равна 1 при <tex>z>0</tex> и 0 при <tex>z<0</tex>; в точке <tex>z=0</tex> обычно используется выбранный субградиент. Благодаря наличию линейного участка ReLU частично снижает проблему [[Проблема исчезающего градиента|исчезающего градиента]] по сравнению с сигмоидой и гиперболическим тангенсом.
 +
 
 +
=== Вид выходного слоя ===
 +
 
 +
Вид выходного слоя определяется типом решаемой задачи.
 +
 
 +
* '''Регрессия''' — используется линейный выходной слой без функции активации.
 +
* '''Бинарная классификация''' — применяется один выходной нейрон с сигмоидой; в качестве функции потерь обычно используется бинарная кросс-энтропия.
 +
* '''Многоклассовая классификация''' — используется функция [[Softmax]], преобразующая логиты в распределение вероятностей по классам; соответствующей функцией потерь является категориальная кросс-энтропия.
== Обучение ==
== Обучение ==
Строка 66: Строка 103:
Обучение многослойной нейронной сети заключается в подборе весов, минимизирующих [[функция потерь|функцию потерь]].
Обучение многослойной нейронной сети заключается в подборе весов, минимизирующих [[функция потерь|функцию потерь]].
-
Наиболее распространённая схема включает:
+
Во многих задачах машинного обучения выбор функции потерь может быть обоснован через [[Метод максимального правдоподобия|метод максимального правдоподобия]] (Maximum Likelihood Estimation, MLE). Если рассматривать выходы сети как параметры вероятностного распределения <tex>p(y|x;\theta)</tex>, задача обучения эквивалентна максимизации правдоподобия обучающей выборки или минимизации отрицательного логарифма правдоподобия (Negative Log-Likelihood, NLL).
-
# прямое распространение сигнала;
+
Наиболее распространённая схема обучения включает:
 +
# прямое распространение сигнала;
# вычисление ошибки;
# вычисление ошибки;
-
 
# применение алгоритма [[обратное распространение ошибки|обратного распространения ошибки]];
# применение алгоритма [[обратное распространение ошибки|обратного распространения ошибки]];
-
 
# обновление параметров с использованием [[градиентный спуск|градиентного спуска]] или его модификаций.
# обновление параметров с использованием [[градиентный спуск|градиентного спуска]] или его модификаций.
-
На практике широко используются оптимизаторы:
+
=== Алгоритм обратного распространения ошибки ===
-
* [[SGD]];
+
Минимизация функции потерь осуществляется итеративно с помощью алгоритма градиентного спуска. Вычисление градиентов по всем параметрам сети выполняется алгоритмом обратного распространения ошибки (Backpropagation).
 +
 
 +
Определим матрицу ошибок слоя
 +
 
 +
:<tex>\Delta^{(l)}=\frac{\partial L}{\partial Z^{(l)}}.</tex>
 +
 
 +
Для скрытых слоёв ошибка распространяется рекурсивно:
 +
 
 +
:<tex>\Delta^{(l-1)}=(\Delta^{(l)}(W^{(l)})^T)\odot f'^{(l-1)}(Z^{(l-1)}),</tex>
 +
 
 +
где <tex>\odot</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>
 +
 
 +
Обновление весов производится в направлении антиградиента с учётом [[Скорость обучения|скорости обучения]] и выбранного алгоритма оптимизации.
 +
 
 +
=== Оптимизация ===
 +
 
 +
На практике широко используются следующие оптимизаторы:
 +
 
 +
* [[стохастический градиентный спуск|SGD]];
* [[Momentum]];
* [[Momentum]];
* [[RMSProp]];
* [[RMSProp]];
* [[Adam]];
* [[Adam]];
* [[AdamW]].
* [[AdamW]].
 +
 +
== Практика обучения ==
 +
 +
=== Предобработка данных ===
 +
 +
Многослойный перцептрон чувствителен к масштабу входных признаков. Перед началом обучения обычно применяется стандартизация (z-score normalization) или минимаксная нормализация входных данных.
 +
 +
=== Инициализация весов ===
 +
 +
Для логистических функций активации широко применяется инициализация Xavier (Glorot), а для семейства ReLU — инициализация He. Эти методы позволяют избежать проблем с дисперсией сигнала на начальных этапах обучения.
== Регуляризация ==
== Регуляризация ==
-
Для предотвращения [[переобучение|переобучения]] применяются:
+
Для предотвращения [[переобучение|переобучения]] применяются различные методы регуляризации:
* [[Dropout]];
* [[Dropout]];
* [[L2-регуляризация]];
* [[L2-регуляризация]];
-
* [[Batch Normalization]];
+
* [[Пакетная нормализация|Batch Normalization]];
-
* [[Layer Normalization]];
+
* [[Послойная нормализация|Layer Normalization]];
* [[ранняя остановка]];
* [[ранняя остановка]];
-
* увеличение объёма обучающих данных ([[Data augmentation]]).
+
* увеличение объёма обучающих данных ([[Аугментация данных|Data augmentation]]).
 +
 
 +
Метод Dropout случайным образом отключает часть нейронов в процессе обучения, что можно интерпретировать как приближение ансамблирования множества подсетей.
 +
 
 +
Пакетная нормализация и нормализация слоя позволяют стабилизировать обучение и ускорить сходимость глубоких сетей.
 +
 
 +
=== Основные гиперпараметры ===
 +
 
 +
При проектировании и обучении многослойной нейронной сети настройке подлежат:
 +
 
 +
* число скрытых слоёв;
 +
* количество нейронов в каждом слое;
 +
* тип функции активации;
 +
* скорость обучения;
 +
* размер мини-пакета;
 +
* коэффициент регуляризации;
 +
* количество эпох обучения.
== Теоретические свойства ==
== Теоретические свойства ==
Строка 99: Строка 185:
=== Универсальная аппроксимация ===
=== Универсальная аппроксимация ===
-
Одним из фундаментальных результатов теории нейронных сетей является [[теорема об универсальной аппроксимации]], согласно которой многослойная сеть с одним скрытым слоем достаточной ширины способна аппроксимировать любую непрерывную функцию на компактном множестве с произвольной точностью.
+
Одним из фундаментальных результатов теории нейронных сетей является [[теорема универсальной аппроксимации]], согласно которой многослойная сеть с одним скрытым слоем достаточной ширины способна аппроксимировать любую непрерывную функцию на компактном множестве с произвольной точностью.
-
Однако на практике глубокие сети часто оказываются значительно эффективнее широких однослойных моделей, поскольку используют иерархическое представление признаков.
+
При достаточном числе нейронов и подходящих функциях активации MLP способен аппроксимировать широкий класс непрерывных функций на компактных множествах. Однако теорема универсальной аппроксимации не гарантирует эффективности обучения или хорошей обобщающей способности модели.
 +
 
 +
На практике глубокие сети часто оказываются значительно эффективнее широких однослойных моделей, поскольку используют иерархическое представление признаков.
=== Представление признаков ===
=== Представление признаков ===
Строка 127: Строка 215:
* [[долгая краткосрочная память]];
* [[долгая краткосрочная память]];
* [[GRU]];
* [[GRU]];
-
* [[трансформер (машинное обучение)|трансформер]];
+
* [[трансформер (архитектура)|трансформер]];
* [[автоэнкодер]];
* [[автоэнкодер]];
* [[вариационный автоэнкодер]];
* [[вариационный автоэнкодер]];
Строка 154: Строка 242:
* генерация изображений;
* генерация изображений;
* генерация программного кода.
* генерация программного кода.
 +
 +
Несмотря на доминирование специализированных архитектур (CNN для компьютерного зрения и трансформеров для обработки естественного языка), многослойные перцептроны широко применяются для работы с табличными признаковыми описаниями и часто выполняют роль проекционных или классифицирующих блоков в составе более сложных нейросетевых архитектур. В ряде практических задач они конкурируют с методами [[Градиентный бустинг|градиентного бустинга]].
== Преимущества ==
== Преимущества ==
Строка 160: Строка 250:
* высокая выразительная способность;
* высокая выразительная способность;
 +
* универсальная аппроксимирующая способность;
* автоматическое извлечение признаков;
* автоматическое извлечение признаков;
* возможность обучения на больших объёмах данных;
* возможность обучения на больших объёмах данных;
* универсальность применения;
* универсальность применения;
 +
* широкая применимость при работе с табличными данными;
 +
* концептуальная простота реализации;
 +
* естественная векторизация, масштабируемая на современные графические ускорители (GPU);
* масштабируемость.
* масштабируемость.
Строка 173: Строка 267:
* сложность интерпретации результатов;
* сложность интерпретации результатов;
* чувствительность к выбору гиперпараметров;
* чувствительность к выбору гиперпараметров;
-
* большое энергопотребление при обучении крупных моделей.
+
* большое энергопотребление при обучении крупных моделей;
 +
* отсутствие индуктивных смещений, вследствие чего при работе с изображениями, текстами и последовательностями полносвязные сети обычно уступают специализированным архитектурам;
 +
* большое количество обучаемых параметров, увеличивающее риск [[переобучение|переобучения]];
 +
* высокая зависимость качества обучения от масштабирования признаков, инициализации весов и выбора гиперпараметров.
== Современные исследования ==
== Современные исследования ==
Строка 195: Строка 292:
* [[Многослойный перцептрон]]
* [[Многослойный перцептрон]]
* [[Обратное распространение ошибки]]
* [[Обратное распространение ошибки]]
 +
* [[Алгоритм обратного распространения ошибки]]
* [[Градиентный спуск]]
* [[Градиентный спуск]]
* [[Функция активации]]
* [[Функция активации]]
-
* [[Трансформер (машинное обучение)]]
+
* [[Полносвязный слой]]
 +
* [[Трансформер]]
* [[Свёрточная нейронная сеть]]
* [[Свёрточная нейронная сеть]]
-
* [[Генеративный искусственный интеллект]]
 
== Примечания ==
== Примечания ==
Строка 314: Строка 412:
| isbn = 9780387848570
| isbn = 9780387848570
}}
}}
 +
 +
* {{статья | автор = Cybenko G. | заглавие = Approximation by superpositions of a sigmoidal function | издание = Mathematics of Control, Signals and Systems | год = 1989 | том = 2 | страницы = 303–314 }}
 +
 +
* {{статья | автор = 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 }}
== Ссылки ==
== Ссылки ==

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

Статья написана с использованием LLM ChatGPT 5.5 и проверена участником Liliia Davletova


Содержание

Многослойная нейронная сеть

Многослойная нейронная сеть (МНС, англ. Multilayer Neural Network, MLN), также часто многослойный перцептрон (MLP, англ. Multilayer Perceptron) — класс искусственных нейронных сетей прямого распространения (Feedforward), состоящих из нескольких последовательно соединённых слоёв искусственных нейронов, способных аппроксимировать сложные нелинейные зависимости между входными и выходными данными.

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

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

История

Первые математические модели искусственных нейронов были предложены Уоррен Маккаллоком и Уолтером Питтсом в 1943 году.

В 1958 году Фрэнк Розенблатт разработал перцептрон, способный обучаться классификации линейно разделимых данных. Однослойная модель могла решать только задачи линейной классификации.

В 1969 году публикация книги Perceptrons Марвина Минского и Сеймура Пейперта показала фундаментальные ограничения однослойных перцептронов, включая невозможность решения задач, не являющихся линейно разделимыми (например, XOR). Эта работа существенно снизила интерес к исследованиям нейронных сетей в последующие годы.

Использование скрытых слоёв позволяло преодолеть эти ограничения, однако эффективный алгоритм обучения многослойных архитектур появился лишь в 1980-х годах.

Переломным моментом стала публикация в 1986 году работы Дэвида Румельхарта, Джеффри Хинтона и Рональда Уильямса, в которой был популяризирован алгоритм обратного распространения ошибки (Backpropagation), позволивший эффективно обучать сети с несколькими скрытыми слоями.

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

С начала 2010-х годов многослойные нейронные сети стали основой современных методов глубокого обучения.

Архитектура и математическая модель

Основой многослойной нейронной сети является полносвязный слой (Dense layer). Типичная архитектура включает:

  • входной слой, принимающий признаки объекта;
  • один или несколько скрытых слоёв;
  • выходной слой, формирующий прогноз.

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

Каждый нейрон вычисляет линейную комбинацию входов

z=\sum_{i=1}^{n}w_i x_i+b,

где

  • x_i — входные значения;
  • w_i — веса;
  • b — смещение (bias).

После вычисления линейной комбинации применяется функция активации, например:

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

Для вычислительной эффективности операции обычно рассматриваются в матричной форме. Пусть размер мини-пакета равен N, а входные данные представлены матрицей X \in \mathbb{R}^{N \times d_0}. Тогда прямое распространение для слоя l записывается как

Z^{(l)} = A^{(l-1)}W^{(l)} + B^{(l)},
A^{(l)} = f^{(l)}(Z^{(l)}).

где

  • W^{(l)} — матрица весов;
  • A^{(l-1)} — матрица активаций предыдущего слоя;
  • B^{(l)} — матрица смещений;
  • f^{(l)} — функция активации.

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

\mathbf{h}^{(l)}=\sigma\left(W^{(l)}\mathbf{h}^{(l-1)}+\mathbf{b}^{(l)}\right).

Вся сеть представляет собой композицию функций

f(x)=f_L\circ f_{L-1}\circ\dots\circ f_1(x).

Общее число обучаемых параметров определяется суммой параметров всех слоёв

P=\sum_{l=1}^{L}(d_{l-1}+1)d_l,

где слагаемое +1 учитывает параметры смещений.

Роль функций активации

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

Исторически в скрытых слоях широко применялись сигмоида и гиперболический тангенс, однако в современных архитектурах они во многом вытеснены семейством ReLU (Rectified Linear Unit):

\mathrm{ReLU}(z)=\max(0,z).

Производная ReLU равна 1 при z>0 и 0 при z<0; в точке z=0 обычно используется выбранный субградиент. Благодаря наличию линейного участка ReLU частично снижает проблему исчезающего градиента по сравнению с сигмоидой и гиперболическим тангенсом.

Вид выходного слоя

Вид выходного слоя определяется типом решаемой задачи.

  • Регрессия — используется линейный выходной слой без функции активации.
  • Бинарная классификация — применяется один выходной нейрон с сигмоидой; в качестве функции потерь обычно используется бинарная кросс-энтропия.
  • Многоклассовая классификация — используется функция Softmax, преобразующая логиты в распределение вероятностей по классам; соответствующей функцией потерь является категориальная кросс-энтропия.

Обучение

Обучение многослойной нейронной сети заключается в подборе весов, минимизирующих функцию потерь.

Во многих задачах машинного обучения выбор функции потерь может быть обоснован через метод максимального правдоподобия (Maximum Likelihood Estimation, MLE). Если рассматривать выходы сети как параметры вероятностного распределения p(y|x;\theta), задача обучения эквивалентна максимизации правдоподобия обучающей выборки или минимизации отрицательного логарифма правдоподобия (Negative Log-Likelihood, NLL).

Наиболее распространённая схема обучения включает:

  1. прямое распространение сигнала;
  2. вычисление ошибки;
  3. применение алгоритма обратного распространения ошибки;
  4. обновление параметров с использованием градиентного спуска или его модификаций.

Алгоритм обратного распространения ошибки

Минимизация функции потерь осуществляется итеративно с помощью алгоритма градиентного спуска. Вычисление градиентов по всем параметрам сети выполняется алгоритмом обратного распространения ошибки (Backpropagation).

Определим матрицу ошибок слоя

\Delta^{(l)}=\frac{\partial L}{\partial Z^{(l)}}.

Для скрытых слоёв ошибка распространяется рекурсивно:

\Delta^{(l-1)}=(\Delta^{(l)}(W^{(l)})^T)\odot f'^{(l-1)}(Z^{(l-1)}),

где \odot обозначает произведение Адамара.

Градиенты параметров вычисляются следующим образом:

\frac{\partial L}{\partial W^{(l)}}=\frac{1}{N}(A^{(l-1)})^T\Delta^{(l)},
\frac{\partial L}{\partial b^{(l)}}=\frac{1}{N}\sum_{i=1}^{N}\Delta^{(l)}_{i,:}.

Обновление весов производится в направлении антиградиента с учётом скорости обучения и выбранного алгоритма оптимизации.

Оптимизация

На практике широко используются следующие оптимизаторы:

Практика обучения

Предобработка данных

Многослойный перцептрон чувствителен к масштабу входных признаков. Перед началом обучения обычно применяется стандартизация (z-score normalization) или минимаксная нормализация входных данных.

Инициализация весов

Для логистических функций активации широко применяется инициализация Xavier (Glorot), а для семейства ReLU — инициализация He. Эти методы позволяют избежать проблем с дисперсией сигнала на начальных этапах обучения.

Регуляризация

Для предотвращения переобучения применяются различные методы регуляризации:

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

Пакетная нормализация и нормализация слоя позволяют стабилизировать обучение и ускорить сходимость глубоких сетей.

Основные гиперпараметры

При проектировании и обучении многослойной нейронной сети настройке подлежат:

  • число скрытых слоёв;
  • количество нейронов в каждом слое;
  • тип функции активации;
  • скорость обучения;
  • размер мини-пакета;
  • коэффициент регуляризации;
  • количество эпох обучения.

Теоретические свойства

Универсальная аппроксимация

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

При достаточном числе нейронов и подходящих функциях активации MLP способен аппроксимировать широкий класс непрерывных функций на компактных множествах. Однако теорема универсальной аппроксимации не гарантирует эффективности обучения или хорошей обобщающей способности модели.

На практике глубокие сети часто оказываются значительно эффективнее широких однослойных моделей, поскольку используют иерархическое представление признаков.

Представление признаков

Глубокие сети автоматически формируют признаки различного уровня абстракции.

Например, при обработке изображений:

  • первые слои выделяют границы;
  • средние — текстуры;
  • глубокие — части объектов;
  • последние — целые объекты.

Подобная иерархия признаков является одной из главных причин эффективности глубокого обучения.

Основные разновидности

Многослойная архитектура используется практически во всех современных нейронных моделях.

К наиболее распространённым относятся:

Области применения

Многослойные нейронные сети используются для решения широкого круга задач:

  • классификация изображений;
  • обнаружение объектов;
  • сегментация изображений;
  • распознавание речи;
  • синтез речи;
  • обработка естественного языка;
  • машинный перевод;
  • поиск информации;
  • рекомендательные системы;
  • прогнозирование временных рядов;
  • медицинская диагностика;
  • биоинформатика;
  • робототехника;
  • автономное управление транспортом;
  • генерация текста;
  • генерация изображений;
  • генерация программного кода.

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

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

К достоинствам многослойных нейронных сетей относятся:

  • высокая выразительная способность;
  • универсальная аппроксимирующая способность;
  • автоматическое извлечение признаков;
  • возможность обучения на больших объёмах данных;
  • универсальность применения;
  • широкая применимость при работе с табличными данными;
  • концептуальная простота реализации;
  • естественная векторизация, масштабируемая на современные графические ускорители (GPU);
  • масштабируемость.

Недостатки

Основными ограничениями являются:

  • высокая вычислительная сложность;
  • значительные требования к объёму данных;
  • сложность интерпретации результатов;
  • чувствительность к выбору гиперпараметров;
  • большое энергопотребление при обучении крупных моделей;
  • отсутствие индуктивных смещений, вследствие чего при работе с изображениями, текстами и последовательностями полносвязные сети обычно уступают специализированным архитектурам;
  • большое количество обучаемых параметров, увеличивающее риск переобучения;
  • высокая зависимость качества обучения от масштабирования признаков, инициализации весов и выбора гиперпараметров.

Современные исследования

По состоянию на середину 2020-х годов исследования многослойных нейронных сетей сосредоточены на следующих направлениях:

  • масштабирование моделей до сотен миллиардов и триллионов параметров;
  • самообучение (Self-supervised Learning);
  • обучение с подкреплением совместно с глубокими сетями;
  • мультимодальные модели;
  • эффективное обучение с ограниченными вычислительными ресурсами;
  • интерпретируемость и объяснимый искусственный интеллект (Explainable AI);
  • безопасное и надёжное обучение;
  • модели с разреженной активацией (Mixture of Experts);
  • адаптация больших языковых моделей посредством параметрически эффективного обучения (PEFT, LoRA, адаптеры).

См. также

Примечания

Литература

  • McCulloch W., Pitts W. A Logical Calculus of the Ideas Immanent in Nervous Activity // Bulletin of Mathematical Biophysics. — 1943. — Т. 5. — С. 115—133.
  • Rosenblatt F. The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain // Psychological Review. — 1958. — Т. 65. — № 6. — С. 386—408.
  • Rumelhart D., Hinton G., Williams R. 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. — № 4. — С. 303—314.
  • Hornik K. Multilayer Feedforward Networks are Universal Approximators // Neural Networks. — 1989. — Т. 2. — № 5. — С. 359—366.
  • He K., Zhang X., Ren S., Sun J. Deep Residual Learning for Image Recognition // Proceedings of CVPR. — 2016.
  • Vaswani A. и др. Attention Is All You Need // Advances in Neural Information Processing Systems. — 2017.
  • Brown T. и др. Language Models are Few-Shot Learners // Advances in Neural Information Processing Systems. — 2020.
  • Bommasani R. и др. On the Opportunities and Risks of Foundation Models // arXiv. — 2021.
  • Goodfellow I., Bengio Y., Courville A. Deep Learning. — MIT Press, 2016. — ISBN 9780262035613
  • Bishop C. Pattern Recognition and Machine Learning. — Springer, 2006. — ISBN 9780387310732
  • Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. — 2-е. — Springer, 2009. — ISBN 9780387848570
  • Cybenko G. Approximation by superpositions of a sigmoidal function // Mathematics of Control, Signals and Systems. — 1989. — Т. 2. — С. 303–314.
  • 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.

Ссылки

Личные инструменты