Открыть сервис

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

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

История

Концепция функции активации восходит к первым моделям искусственного нейрона, предложенным Уорреном Маккаллоком и Уолтером Питтсом в 1943 году. В их модели использовалась пороговая функция (ступенчатая), которая выдавала 1, если сумма взвешенных входов превышала определённый порог, и 0 в противном случае. Этот подход лёг в основу перцептрона Фрэнка Розенблатта (1957), где применялась аналогичная бинарная активация.

В 1960-х годах стали использоваться сигмоидальные функции, такие как логистическая, которые обеспечивали гладкий, дифференцируемый выход в диапазоне от 0 до 1. Это позволило применять градиентные методы обучения, в частности метод обратного распространения ошибки, популяризированный в 1980-х годах Дэвидом Румельхартом, Джеффри Хинтоном и Рональдом Уильямсом. Однако сигмоиды страдали от проблемы «исчезающего градиента» при обучении глубоких сетей.

В 2000-х годах альтернативой стала гиперболический тангенс (tanh), который давал выход в диапазоне от -1 до 1, что улучшало центрирование данных. Но проблема исчезающего градиента оставалась. В 2011 году исследователи (в том числе Ксавье Глорот и Йошуа Бенжио) предложили выпрямленную линейную единицу (ReLU), которая показала значительное ускорение обучения и снижение вероятности исчезновения градиента. С тех пор ReLU и её варианты (Leaky ReLU, ELU, PReLU) стали стандартом для глубоких нейронных сетей.

Классификация функций активации

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

Линейные и нелинейные

  • Линейная функция (f(x) = x) — редко используется в скрытых слоях, так как не добавляет нелинейности. Применяется в выходном слое для задач регрессии.
  • Нелинейные функции — все остальные, обеспечивающие способность сети аппроксимировать сложные функции.

По диапазону выходных значений

  • Бинарные (пороговые) — выход 0 или 1 (например, ступенчатая функция Хевисайда). Исторически важны, но редко используются в современных сетях из-за недифференцируемости.
  • Ограниченные — выход в фиксированном интервале, например, сигмоида (0, 1) или tanh (-1, 1).
  • Неограниченные сверху — выход может принимать любые положительные значения, как у ReLU.

По дифференцируемости

  • Дифференцируемые — гладкие функции, такие как сигмоида, tanh, ELU.
  • Кусочно-линейные — дифференцируемы почти везде, кроме одной точки (например, ReLU в нуле). На практике это не создаёт проблем, так как градиент в точке разрыва обычно задаётся как 0 или 1.
  • Недифференцируемые — ступенчатые функции, не используются в градиентных методах.

Основные виды функций активации

Сигмоида (логистическая функция)

Определяется как \( \sigma(x) = \frac{1}{1 + e^{-x}} \). Преобразует входное значение в число от 0 до 1. Исторически широко применялась в скрытых слоях, но в настоящее время используется преимущественно в выходном слое для задач бинарной классификации (как вероятность принадлежности к классу). Недостатки: склонность к насыщению при больших значениях |x|, что приводит к исчезающему градиенту, и ненулевое центрирование (выход всегда положителен), что замедляет обучение.

Гиперболический тангенс (tanh)

Определяется как \( \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} \). Выход находится в диапазоне от -1 до 1. Обладает нулевым центрированием, что делает его предпочтительнее сигмоиды в скрытых слоях, однако проблема насыщения и исчезающего градиента сохраняется. Используется в рекуррентных нейронных сетях (RNN) и некоторых задачах обработки последовательностей.

Выпрямленная линейная единица (ReLU)

Определяется как \( f(x) = \max(0, x) \). Это одна из самых популярных функций в современных глубоких сетях. Преимущества: простота вычисления, отсутствие насыщения при положительных значениях, что решает проблему исчезающего градиента, и разреженная активация (многие нейроны выдаю 0). Недостатки: «умирающий ReLU» — при отрицательных значениях градиент равен 0, и нейрон может перестать обучаться, если его вход всегда отрицателен.

Варианты ReLU

  • Leaky ReLU — \( f(x) = \max(\alpha x, x) \), где α — малая константа (например, 0.01). Позволяет небольшой градиент при отрицательных значениях, смягчая проблему умирающего ReLU.
  • Parametric ReLU (PReLU) — α является обучаемым параметром, который подстраивается в процессе обучения.
  • Exponential Linear Unit (ELU) — \( f(x) = x \) при x ≥ 0, и \( f(x) = \alpha (e^x - 1) \) при x < 0. Сглаживает отрицательную часть, что улучшает устойчивость обучения.
  • Scaled Exponential Linear Unit (SELU) — вариант ELU с автоматическим нормированием, обеспечивающий самомасштабирование активаций.

Softmax

Используется в выходном слое для задач многоклассовой классификации. Преобразует вектор действительных чисел в вероятностное распределение: \( \text{softmax}(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}} \). Сумма всех выходов равна 1, что позволяет интерпретировать их как вероятности принадлежности к каждому классу.

Другие функции

  • Swish (или SiLU) — \( f(x) = x \cdot \sigma(x) \), где σ — сигмоида. Предложена Google в 2017 году. Показывает улучшенные результаты в некоторых архитектурах, особенно в глубоких сетях.
  • GELU (Gaussian Error Linear Unit) — \( f(x) = x \cdot \Phi(x) \), где Φ — функция распределения стандартного нормального распределения. Используется в трансформерах (BERT, GPT).
  • Softplus — \( f(x) = \ln(1 + e^x) \), гладкая аппроксимация ReLU.

Применение в нейронных сетях

Выбор функции активации зависит от типа сети, задачи и архитектуры.

  • Скрытые слои многослойных перцептронов (MLP) и свёрточных нейронных сетей (CNN) чаще всего используют ReLU или её варианты (Leaky ReLU, ELU). В рекуррентных сетях (RNN, LSTM) традиционно применяется tanh или сигмоида, хотя в современных вариантах (например, в GRU) также используются ReLU-подобные функции.
  • Выходной слой:
  • Для регрессии — линейная функция (или вообще без активации).
  • Для бинарной классификации — сигмоида.
  • Для многоклассовой классификации — softmax.
  • Глубокие сети (с десятками слоёв) требуют функций, устойчивых к исчезающему градиенту, поэтому ReLU, Swish, GELU часто предпочтительнее сигмоиды и tanh.

Критика и ограничения

  • Исчезающий градиент — проблема для сигмоиды и tanh в глубоких сетях, где градиент становится экспоненциально малым на ранних слоях, замедляя обучение.
  • Умирающий ReLU — при неудачной инициализации или высоком смещении нейроны могут постоянно выдавать 0, что делает их необучаемыми.
  • Нестабильность обучения — некоторые функции (например, ReLU при больших положительных значениях) могут приводить к взрыву градиента, если не используются методы регуляризации или нормализации (например, пакетная нормализация).
  • Вычислительная сложность — гладкие функции (ELU, Swish) требуют больше вычислений, чем простые кусочно-линейные (ReLU).

Интересные факты

  • В 2020 году исследователи из Массачусетского технологического института (MIT) предложили функцию активации «Mish» (\( f(x) = x \cdot \tanh(\ln(1 + e^x)) \)), которая показала улучшенные результаты в некоторых задачах компьютерного зрения по сравнению с ReLU и Swish.
  • В нейронных сетях с импульсной активацией (spiking neural networks) используются биологические модели, такие как функция «fire-and-reset», имитирующая потенциал действия нейрона.
  • В 2015 году было доказано, что ReLU является универсальным аппроксиматором для неотрицательных функций, что обосновывает её широкое применение.

Источники

  • Глубокое обучение / Й. Гудфеллоу, И. Бенджио, А. Курвилль. — М.: ДМК Пресс, 2017.
  • Glorot, X., & Bengio, Y. (2010). Understanding the difficulty of training deep feedforward neural networks. Proceedings of the 13th International Conference on Artificial Intelligence and Statistics (AISTATS).
  • Nair, V., & Hinton, G. E. (2010). Rectified linear units improve restricted Boltzmann machines. Proceedings of the 27th International Conference on Machine Learning (ICML).
  • Ramachandran, P., Zoph, B., & Le, Q. V. (2017). Searching for activation functions. arXiv preprint arXiv:1710.05941.
  • Hendrycks, D., & Gimpel, K. (2016). Gaussian error linear units (GELUs). arXiv preprint arXiv:1606.08415.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →