Глубокие нейронные сети
Материал из MachineLearning.
| | Статья написана с использованием LLM DeepSeek-V3 и проверена участником А. Клёсов 18:31, 3 июля 2026 (MSD) |
|
Глубокие нейронные сети (англ. Deep Neural Networks, DNN) — класс искусственных нейронных сетей, характеризующийся наличием множества скрытых слоёв (как правило, более трёх) между входным и выходным слоями. Такая архитектура позволяет сети автоматически выделять иерархию признаков из сырых данных: первые слои обучаются простым (низкоуровневым) абстракциям, а последующие комбинируют их во всё более сложные и содержательные представления. Глубокие нейронные сети являются основой парадигмы глубокого обучения (англ. deep learning), которая доминирует в современных задачах компьютерного зрения, обработки естественного языка, распознавания речи и многих других областях.
Историческая справка
История глубоких нейронных сетей насчитывает более полувека и характеризуется несколькими периодами подъёмов и спадов, известными как «зимы ИИ».
Ранние годы: перцептрон и первая «зима ИИ»
Фундамент нейросетевого подхода был заложен в 1943 году, когда Уоррен Маккалок и Уолтер Питтс предложили формальную модель искусственного нейрона. В 1949 году Дональд Хебб сформулировал принцип обучения, известный как правило Хебба.
Ключевым событием стал 1958 год, когда Фрэнк Розенблатт создал перцептрон — первую практическую реализацию нейросети, способной к обучению [1]. Перцептрон вызвал огромный энтузиазм; казалось, что создание полноценного искусственного интеллекта — вопрос ближайшего будущего. Однако в 1969 году Марвин Минский и Сеймур Пейперт в своей книге «Perceptrons» представили формальное доказательство фундаментальных ограничений однослойного перцептрона, показав, что он не способен решать даже такую простую задачу, как исключающее ИЛИ (XOR) [1]. Эта критика привела к резкому спаду интереса к нейронным сетям и наступлению первой «зимы ИИ».
Возрождение: обратное распространение ошибки
Поворотный момент наступил в середине 1980-х годов, когда был переоткрыт и существенно развит алгоритм обратного распространения ошибки (англ. backpropagation). Стоит отметить, что этот метод был впервые предложен ещё в 1974 году Полом Дж. Вербосом и, независимо, А. И. Галушкиным, но остался незамеченным. В 1986 году Дэвид Румельхарт, Джеффри Хинтон и Рональд Уильямс [1], а также, независимо, группа С. И. Барцева и В. А. Охонина, переоткрыли этот алгоритм, продемонстрировав его эффективность для обучения многослойных перцептронов (MLP). Это открытие вызвало «взрыв интереса» к нейронным сетям. В этот же период Джон Хопфилд предложил сеть Хопфилда (1982 г.), а Тойво Кохонен — самоорганизующиеся карты Кохонена.
Глубокая революция: AlexNet и эра глубокого обучения
Несмотря на успехи 1980-х, обучение действительно глубоких сетей оставалось серьёзной проблемой из-за исчезающего градиента и отсутствия достаточных вычислительных мощностей. Положение изменилось только во втором десятилетии XXI века.
В 2012 году произошло событие, которое принято считать началом эры глубокого обучения: нейросеть AlexNet, разработанная Алексом Крижевским, Ильёй Суцкевером и Джеффри Хинтоном, одержала убедительную победу в конкурсе ImageNet Large Scale Visual Recognition Challenge (ILSVRC). AlexNet достигла топ-5 ошибки в 15,3%, что более чем на 10,8 процентных пункта превзошло результат занявшей второе место модели [1]. Этот триумф ознаменовал конец «зимы ИИ» и начало нынешней «весны ИИ». AlexNet продемонстрировала, что глубокие свёрточные нейронные сети (CNN), обученные на мощных графических процессорах (GPU), способны кардинально превзойти все ранее существовавшие подходы.
С тех пор развитие шло стремительными темпами. В 2017 году архитектура Трансформер, предложенная в статье «Attention Is All You Need», произвела революцию в обработке естественного языка, став основой для всех современных крупных языковых моделей (LLM) [1].
Математические основы и процесс обучения
С формальной точки зрения, глубокая нейронная сеть представляет собой сложную параметрическую функцию , где
— входной вектор, а
— совокупность всех обучаемых параметров (весов и смещений) сети. Архитектура с
слоями определяется рекуррентным соотношением:
,
где — вектор активаций на слое
,
— матрица весов,
— вектор смещений, а
— нелинейная функция активации. Входной слой соответствует
, выходной —
.
Функция потерь
Обучение сети заключается в минимизации функции потерь , которая измеряет расхождение между предсказаниями сети
и истинными целевыми значениями
на обучающей выборке. Выбор функции потерь определяется типом решаемой задачи.
Для задач регрессии классическим выбором является среднеквадратичная ошибка (MSE):
.
Для задач классификации стандартом является кросс-энтропия (англ. cross-entropy). В случае многоклассовой классификации с классами функция потерь имеет вид:
,
где — бинарный индикатор принадлежности образца к классу
, а
— предсказанная сетью вероятность того, что образец принадлежит классу
(обычно получается применением функции softmax к выходу последнего слоя).
Градиентный спуск и обратное распространение
Основным методом оптимизации является градиентный спуск (англ. gradient descent). Параметры обновляются итеративно в направлении, противоположном градиенту функции потерь:
,
где — скорость обучения (англ. learning rate), а
— градиент функции потерь по параметрам.
Ключевым для эффективного вычисления градиентов в многослойных сетях является алгоритм обратного распространения ошибки (англ. backpropagation). Этот метод, основанный на цепном правиле дифференцирования, позволяет распространять сигнал ошибки от выходного слоя к входному, последовательно вычисляя градиенты для всех слоёв. Градиентный спуск с обратным распространением ошибки, однако, гарантирует нахождение только локального минимума функции потерь [1].
На практике для работы с большими наборами данных используется стохастический или мини-пакетный градиентный спуск (англ. Stochastic Gradient Descent, SGD), где градиент вычисляется не по всей выборке, а по её небольшим случайным подмножествам (батчам), что значительно ускоряет обучение.
Фундаментальные проблемы обучения глубоких сетей
С увеличением числа слоёв в нейронной сети возникает ряд фундаментальных проблем, осложняющих процесс обучения.
Исчезающий и взрывающийся градиенты
Проблемы исчезающего (англ. vanishing gradient) и взрывающегося (англ. exploding gradient) градиентов были осознаны уже в начале 1990-х годов. Они возникают из-за того, что при обратном распространении ошибки градиенты для ранних слоёв представляют собой произведение множества множителей — производных функций активации и матриц весов.
Исчезающий градиент: Если эти множители меньше 1, градиент экспоненциально затухает по мере удаления от выходного слоя. В результате веса ранних слоёв почти не обновляются, и сеть перестаёт обучаться.
Взрывающийся градиент: Если множители больше 1, градиент экспоненциально растёт, что приводит к числовой нестабильности и расходимости процесса обучения.
Эти эффекты особенно остро проявлялись при использовании классических насыщающихся функций активации, таких как сигмоида или гиперболический тангенс (tanh), производные которых по модулю не превосходят единицы [1].
Переобучение
Переобучение (англ. overfitting) — это проблема, возникающая, когда модель слишком точно запоминает обучающую выборку, но теряет способность к обобщению на новых данных. В глубоких сетях, содержащих миллионы параметров, риск переобучения особенно велик. Переобучение проявляется в том, что ошибка на обучающей выборке продолжает снижаться, в то время как ошибка на валидационной (проверочной) выборке начинает расти.
Современные методы решения фундаментальных проблем
За последнее десятилетие был разработан целый ряд эффективных методов, позволивших преодолеть указанные выше ограничения.
Современные функции активации
Переход от насыщающихся функций к ReLU (Rectified Linear Unit) стал одним из ключевых прорывов. Функция определяется как:
.
Её производная равна 1 для всех положительных значений, что позволяет градиенту свободно распространяться по сети, эффективно решая проблему исчезающего градиента. Кроме того, ReLU способствует разреженности активаций (большое количество нейронов выдают ноль), что снижает вычислительную нагрузку и улучшает обобщающую способность сети.
Однако у ReLU есть недостаток — проблема «умирающего» ReLU (англ. dying ReLU problem): если нейрон активируется на отрицательных значениях, его градиент становится нулевым, и он может навсегда «умереть», перестав обучаться.
Для решения этой проблемы были предложены модификации:
- Leaky ReLU:
, где
— небольшой положительный коэффициент (например, 0.01), позволяющий небольшому градиенту проходить даже для отрицательных значений.
- ELU (Exponential Linear Unit) и его вариации.
- GELU (Gaussian Error Linear Unit), которая стала стандартом для архитектур Трансформеров.
Пакетная нормализация
Пакетная нормализация (Batch Normalization) — это метод, предложенный в 2015 году, который нормализует входные данные каждого слоя так, чтобы их среднее значение было равно нулю, а дисперсия — единице [1]. Это решает проблему внутреннего ковариационного сдвига (англ. internal covariate shift) — изменения распределения входных данных слоя в процессе обучения.
Пакетная нормализация позволяет:
- Использовать более высокие скорости обучения.
- Снизить чувствительность к инициализации весов.
- Действовать как регуляризатор, частично заменяя Dropout.
Skip-соединения и Residual-блоки
Одним из самых значительных прорывов стало появление архитектур с пропускающими соединениями (skip-connections) или остаточными соединениями (residual connections). Ключевой пример — семейство сетей ResNet (Residual Networks), предложенное в 2015 году [1].
Основная идея заключается в том, чтобы добавить к выходу каждого блока слоёв его вход:
,
где — нелинейное преобразование, которое должен выучить блок. Таким образом, сеть учится не отображению
, а остатку (residual)
. Это позволяет градиенту распространяться напрямую по «коротким путям» (shortcut connections) через всю сеть, эффективно решая проблему исчезающего градиента. Благодаря этому удалось создавать сети с глубиной в сотни и даже тысячи слоёв (например, ResNet-101).
Регуляризация
Для борьбы с переобучением в глубоких сетях применяется комплекс методов регуляризации, которые ограничивают сложность модели или вносят шум в процесс обучения.
L1 и L2-регуляризация (Weight Decay). Эти методы добавляют к основной функции потерь штраф за большие значения весов. L2-регуляризация (также известная как weight decay) добавляет член , что эквивалентно «сглаживанию» весов и предотвращает их чрезмерный рост. L1-регуляризация добавляет член
, что способствует разреженности весов (обнулению несущественных связей). На практике L2-регуляризация является стандартным компонентом обучения большинства глубоких сетей [1].
Dropout. Метод, предложенный в 2014 году, заключается в случайном «выключении» (обнулении) некоторой доли нейронов во время каждой итерации обучения. Это вынуждает сеть обучаться более робастным признакам, которые не зависят от конкретной комбинации нейронов, и эффективно предотвращает коадаптацию нейронов. На тестовой фазе все нейроны используются, но их выходы умножаются на вероятность сохранения, что соответствует усреднению по ансамблю из множества «прореженных» сетей.
Ранняя остановка (Early Stopping). Это самый простой и широко используемый метод регуляризации. Процесс обучения останавливается в тот момент, когда ошибка на валидационной выборке перестаёт снижаться или начинает расти, в то время как ошибка на обучающей выборке ещё продолжает падать. Таким образом, мы фиксируем состояние модели, которое обладает наилучшей обобщающей способностью, не дожидаясь переобучения.
Основные архитектуры глубоких нейронных сетей
Полносвязные сети (MLP)
Многослойный перцептрон (MLP) — это простейшая архитектура глубокой сети, где каждый нейрон слоя соединён со всеми нейронами предыдущего слоя. Несмотря на свою универсальность (согласно теореме о полноте, MLP может аппроксимировать любую непрерывную функцию), полносвязные сети неэффективны для обработки данных с пространственной или временнóй структурой из-за огромного числа параметров и отсутствия инвариантности к сдвигам.
Свёрточные нейронные сети (CNN)
Свёрточные нейронные сети (CNN) были разработаны специально для обработки данных с сетчатой структурой, прежде всего изображений. Ключевые инновации:
- Свёрточные слои (convolutional layers): используют локальные ядра (фильтры), которые применяются ко всему входу, что значительно сокращает число параметров и обеспечивает инвариантность к сдвигу.
- Слои подвыборки (pooling layers): уменьшают пространственную размерность, обеспечивая инвариантность к небольшим деформациям.
- Иерархия признаков: первые слои CNN обучаются простым признакам (края, углы), средние — более сложным (текстуры, части объектов), а последние — целым объектам.
CNN стали основой для компьютерного зрения и широко применяются также в обработке аудио и текстов.
Рекуррентные нейронные сети (RNN)
Рекуррентные нейронные сети (RNN) предназначены для работы с последовательными данными (временные ряды, текст, речь). В отличие от сетей прямого распространения, RNN имеют внутреннюю память: выход сети на текущем шаге зависит не только от текущего входа, но и от скрытого состояния, полученного на предыдущем шаге.
Классические RNN страдают от проблем исчезающего и взрывающегося градиентов в ещё более острой форме. Для их решения были разработаны специализированные архитектуры:
Эти архитектуры используют специальные вентильные механизмы (гейты) для управления потоком информации, что позволяет им запоминать зависимости на длинных последовательностях.
Трансформеры
Трансформеры — это архитектура, предложенная в 2017 году и совершившая революцию в обработке последовательностей [1]. В отличие от RNN, трансформеры не обрабатывают последовательность шаг за шагом, а используют механизм самовнимания (self-attention), который позволяет модели напрямую учитывать взаимосвязи между любыми элементами последовательности, независимо от их расстояния.
Ключевые преимущества трансформеров:
- Полный параллелизм при обучении (в отличие от RNN).
- Способность эффективно моделировать долгосрочные зависимости.
- Масштабируемость: увеличение размера модели и данных ведёт к предсказуемому росту качества (это явление известно как законы масштабирования для нейронных языковых моделей).
Трансформеры стали основой для всех современных крупных языковых моделей, таких как GPT, BERT и их многочисленных последователей.
Аппаратное ускорение
Обучение глубоких нейронных сетей требует колоссальных вычислительных ресурсов, и его практическая реализация стала возможной только благодаря развитию специализированного аппаратного обеспечения.
Основные операции в глубоком обучении — это матричные умножения и свёртки, которые являются высокопараллельными по своей природе.
Графические процессоры (GPU): Изначально разработанные для рендеринга графики, GPU оказались идеальным инструментом для глубокого обучения благодаря тысячам вычислительных ядер, способных выполнять операции с матрицами параллельно. Широкое применение GPU стало одним из ключевых факторов успеха AlexNet в 2012 году.
Тензорные процессоры (TPU): Это специализированные интегральные схемы (ASIC), разработанные компанией Google специально для ускорения операций с тензорами, лежащих в основе нейросетевых вычислений. TPU используют архитектуру систолического массива для достижения максимальной производительности при минимальном энергопотреблении.
Другие ускорители: FPGA, NPU и другие специализированные чипы также активно разрабатываются и применяются.
Примечания
Литература
Rosenblatt F. The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain // Psychological Review. — 1958. — С. 65–386.
Minsky M., Papert S. Perceptrons: An Introduction to Computational Geometry // MIT Press. — 1969.
Rumelhart D. E., Hinton G. E., Williams R. J. Learning representations by back-propagating errors // Nature. — 1986. — С. 533–536.
Krizhevsky A., Sutskever I., Hinton G. E. ImageNet Classification with Deep Convolutional Neural Networks // Advances in Neural Information Processing Systems (NIPS). — 2012. — С. 1097–1105.
He K., Zhang X., Ren S., Sun J. Deep Residual Learning for Image Recognition // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). — 2016. — С. 770–778.
Ioffe S., Szegedy C. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift // Proceedings of the 32nd International Conference on Machine Learning (ICML). — 2015. — С. 448–456.
Vaswani A., Shazeer N., Parmar N., et al. Attention Is All You Need // Advances in Neural Information Processing Systems (NIPS). — 2017. — С. 5998–6008.
Goodfellow I., Bengio Y., Courville A. Deep Learning // MIT Press. — 2016. — С. 775.

