Функция активации Ф

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

English Activation function, transfer function
Синонимы AF, функция активации нейрона, нелинейность, передаточная функция
Категории Нейросети

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

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

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

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

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

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

В выходном слое функция активации интерпретирует результат работы сети в терминах задачи. Sigmoid и Softmax выдают вероятности для бинарной и многоклассовой классификации. Tanh удобен, когда нужен выход в диапазоне от -1 до 1. Линейная активация используется для задач регрессии, где нет ограничений на диапазон выходного значения.

Примеры

  • Sigmoid — сжимает вход в диапазон (0, 1). Раньше применялась в скрытых слоях, сейчас чаще используется в выходном слое для бинарной классификации. Формула: σ(x) = 1 / (1 + e-x). Основной недостаток — затухающий градиент на больших по модулю значениях.
  • ReLU (Rectified Linear Unit) — возвращает max(x, 0). Самая популярная функция в скрытых слоях свёрточных и полносвязных сетей. Вычислительно эффективна, не насыщается на положительных значениях, ускоряет сходимость. Проблема — «мёртвые нейроны»: если логит стабильно отрицателен, нейрон перестаёт обновляться.
  • Tanh — сжимает вход в диапазон (-1, 1). В отличие от Sigmoid, выход центрирован относительно нуля, что помогает градиентам не смещаться в одну сторону. Применяется в рекуррентных сетях и там, где нужны отрицательные активации.
  • Softmax — преобразует вектор логитов в распределение вероятностей: каждый элемент в диапазоне (0, 1), сумма всех элементов равна 1. Стандартная функция для выходного слоя в задачах многоклассовой классификации.
  • GELU (Gaussian Error Linear Unit) — гладкая нелинейность, взвешивающая вход по значению его функции распределения. Стала стандартом для трансформеров (BERT, GPT). Формула: GELU(x) = x · Φ(x), где Φ — функция распределения стандартного нормального закона.

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

Базовое преобразование нейрона с функцией активации:

y = f(Σ wi · xi + b)

где wi — веса, xi — входы, b — смещение, f — функция активации.

Для Softmax на выходе K классов:

σ(z)i = ez_i / Σj=1..K ez_j

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

  • Использование Sigmoid в скрытых слоях глубоких сетей. Из-за насыщения на краях диапазона градиент затухает экспоненциально, и обучение останавливается. Для глубоких архитектур Sigmoid заменяют на ReLU или GELU.
  • ReLU в выходном слое для классификации. ReLU не ограничивает выход, поэтому его значения нельзя интерпретировать как вероятности. Для вероятностных задач на выходе ставят Sigmoid или Softmax.
  • Игнорирование dying ReLU. Если большая часть нейронов с ReLU получает отрицательные логиты и не обновляется, эффективная ёмкость сети падает. Leaky ReLU или ELU решают эту проблему ценой небольшого усложнения.
  • Softmax для многометочной классификации. Softmax предполагает взаимоисключающие классы. Если объект может принадлежать нескольким классам одновременно, нужно использовать независимые Sigmoid на выходе.

Как улучшить

  • Начинайте с ReLU для скрытых слоёв. Это рабочий стандарт для большинства архитектур: быстро, дёшево, предсказуемо. Если видите много «мёртвых» нейронов — переходите на Leaky ReLU с небольшим отрицательным наклоном (0.01–0.2).
  • Для трансформеров используйте GELU. BERT, GPT и большинство современных языковых моделей обучаются именно с GELU. Если вы обучаете трансформер с нуля, не заменяйте её на ReLU без экспериментального обоснования.
  • Проверяйте градиенты. Если loss перестал падать или стал NaN — первым делом посмотрите на распределение активаций и градиентов. Насыщение функции активации — частая причина остановки обучения.
  • Экспериментируйте на валидации. Замена функции активации — гиперпараметр. Нет универсально лучшей функции для всех задач. Сравнивайте ReLU, Leaky ReLU и GELU на отложенной выборке.
  • Не смешивайте Softmax и Sigmoid на выходе. Softmax нормализует вектор целиком, Sigmoid обрабатывает каждый выход независимо. Выбор зависит от постановки задачи: взаимоисключающие классы или многометочная классификация.

Источники

Keras Documentation — Layer activation functions (https://keras.io/api/layers/activations/)

PyTorch Documentation — Activation Functions (https://docs.pytorch.org/docs/stable/nn.html#non-linear-activations-weighted-sum-nonlinearity)

Максимук В.А., Максимук Р.А. Функции активации нейронных сетей, их визуализация и применение в программировании на примере библиотеки TensorFlow // Вестник БрГТУ. 2026. № 1. С. 123–130. DOI: 10.36773/1818-1112-2026-139-1-123-130

Goodfellow I., Bengio Y., Courville A. Deep Learning. MIT Press, 2016. ISBN: 978-0262035613