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

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

Перейти к: навигация, поиск
Статья написана с использованием LLM GPT-5.5 и проверена участником Nikolai Agafonov 05:33, 15 июля 2026 (MSD)


Содержание

Определение

Функция активации (Шаблон:Lang-en) — математическая функция, применяемая в искусственных нейронных сетях для преобразования взвешенной суммы входных сигналов нейрона в его выходное значение. Использование функции активации позволяет модели описывать нелинейные зависимости между входными и выходными данными, благодаря чему нейронные сети способны решать широкий круг задач машинного обучения, включая классификацию, регрессию, генерацию данных и обработку последовательностей. Функция активации является одним из ключевых компонентов современной теории глубокого обучения, поскольку именно она определяет выразительную способность большинства архитектур нейронных сетей.

История

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

В конце 1950-х годов аналогичный подход использовался в перцептронах. Однако пороговая функция не является дифференцируемой, поэтому с её помощью невозможно эффективно применять методы градиентной оптимизации.

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

С начала 2010-х годов наиболее распространённой функцией активации стала ReLU, значительно упростившая обучение глубоких моделей. В дальнейшем появились её многочисленные модификации, включая Leaky ReLU, PReLU, ELU, SELU, GELU и SiLU, каждая из которых решает отдельные проблемы обучения глубоких нейронных сетей.

Назначение

Пусть на вход нейрона поступает вектор признаков

x=(x_1,x_2,\ldots,x_n).

После линейного преобразования вычисляется значение

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

где w_i — веса связей, а b — смещение.

Затем применяется функция активации

y=\sigma(z),

где \sigma обозначает функцию активации.

Полученное значение передаётся следующему слою нейронной сети.

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

Свойства

Большинство функций активации разрабатываются с учётом следующих требований:

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

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

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

Пороговая функция

Пороговая функция определяется выражением

\sigma(x)=1, если x\geq0;

\sigma(x)=0 x, если x<0.

Она исторически использовалась в первых моделях искусственных нейронов и перцептронах, однако практически не применяется в современных моделях из-за отсутствия производной.

Сигмоида

Сигмоида задаётся формулой

\sigma(x)=\frac{1}{1+e^{-x}}.

Функция принимает значения в интервале (0,1).

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

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

Гиперболический тангенс определяется как

\sigma(x)=\tanh(x).

Диапазон его значений равен:(-1,1).

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

ReLU

ReLU (Rectified Linear Unit) определяется выражением

\sigma(x)=\max(0,x).

ReLU является наиболее распространённой функцией активации в современных глубоких нейронных сетях благодаря простоте вычислений и хорошим свойствам при обучении.

К её преимуществам относятся:

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

Основным недостатком является проблема «мёртвых нейронов», при которой отдельные нейроны перестают обновлять свои параметры.

Leaky ReLU

Leaky ReLU представляет собой модификацию ReLU:

\sigma(x)=x, если x\geq0;

\sigma(x)=\alpha x, если x<0.

где \alpha — небольшая положительная константа.

Наличие ненулевого наклона в отрицательной области уменьшает вероятность появления «мёртвых нейронов».

GELU

GELU (Gaussian Error Linear Unit) определяется выражением

\sigma(x)=x\Phi(x),

где \Phi(x) — функция распределения стандартного нормального закона.

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

SiLU

SiLU (Sigmoid Linear Unit), также известная как Swish, задаётся формулой

\sigma(x)=x\cdot\frac{1}{1+e^{-x}}.

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

Выбор функции активации

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

Для скрытых слоёв современных глубоких нейронных сетей наиболее часто используются:

В выходном слое функция активации выбирается в соответствии с постановкой задачи:

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

Почему не существует универсальной функции активации

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

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

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

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

Исследования функций активации продолжаются и в настоящее время.

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

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

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

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

  • Без функции активации нейронная сеть любой глубины эквивалентна одному линейному преобразованию.
  • ReLU не является дифференцируемой в точке x=0, однако это практически не влияет на работу алгоритмов обучения, поскольку подобные точки имеют нулевую меру и редко встречаются во время оптимизации.
  • Функция Swish (SiLU) была обнаружена исследователями Google Brain с помощью автоматизированного поиска функций активации, а не предложена аналитически.
  • Несмотря на широкое распространение ReLU, многие современные большие языковые модели используют GELU или SiLU, поскольку они обеспечивают более стабильное обучение трансформеров.
  • Разработка новых функций активации остаётся активной областью исследований: ежегодно публикуются десятки работ, предлагающих новые функции или их модификации, однако лишь немногие из них находят широкое практическое применение.

См. также

Литература

  • Goodfellow I., Bengio Y., Courville A. Deep Learning. MIT Press, 2016.
  • Bishop C. M. Pattern Recognition and Machine Learning. Springer, 2006.
  • Haykin S. Neural Networks and Learning Machines. 3rd ed. Pearson, 2009.
  • Glorot X., Bordes A., Bengio Y. Deep Sparse Rectifier Neural Networks // Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics. 2011.
  • He K., Zhang X., Ren S., Sun J. Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification // Proceedings of the IEEE International Conference on Computer Vision. 2015.
  • Hendrycks D., Gimpel K. Gaussian Error Linear Units (GELUs) // arXiv:1606.08415. 2016.
  • Ramachandran P., Zoph B., Le Q. V. Searching for Activation Functions // arXiv:1710.05941. 2017.
  • Nwankpa C., Ijomah W., Gachagan A., Marshall S. Activation Functions: Comparison of Trends in Practice and Research for Deep Learning // arXiv:1811.03378. 2018.