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

ReLU

ReLU (от англ. Rectified Linear Unit, выпрямленная линейная единица) — это функция активации, широко применяемая в искусственных нейронных сетях, в частности в свёрточных и многослойных перцептронах. Математически ReLU определяется как \( f(x) = \max(0, x) \), то есть возвращает входное значение, если оно положительное, и ноль в противном случае. Благодаря своей простоте и эффективности ReLU стала одной из наиболее популярных функций активации в глубоком обучении, вытеснив во многих задачах сигмоидальные и гиперболические тангенциальные функции.

История

Функция ReLU была впервые предложена в 1969 году японским учёным Кунихико Фукусимой в контексте модели нейронной сети «неокогнитрон», однако широкое распространение она получила лишь в начале 2010-х годов. В 2011 году исследователи из Стэнфордского университета (включая Ксавье Глорота, Антуана Бордеса и Йошуа Бенжио) показали, что ReLU значительно ускоряет обучение глубоких нейронных сетей по сравнению с сигмоидой и гиперболическим тангенсом, особенно при использовании метода обратного распространения ошибки. В 2012 году Алекс Крижевский, Илья Суцкевер и Джеффри Хинтон применили ReLU в своей архитектуре AlexNet, которая одержала победу в соревновании ImageNet Large Scale Visual Recognition Challenge (ILSVRC-2012). Этот успех способствовал популяризации ReLU в сообществе машинного обучения.

Математическое описание

Функция ReLU задаётся формулой:

\[ \text{ReLU}(x) = \max(0, x) = \begin{cases} x, & \text{если } x \geq 0, \\ 0, & \text{если } x < 0. \end{cases} \]

Производная ReLU (необходимая для обратного распространения ошибки) равна:

\[ \text{ReLU}'(x) = \begin{cases} 1, & \text{если } x > 0, \\ 0, & \text{если } x < 0. \end{cases} \]

В точке \( x = 0 \) производная не определена, однако на практике её обычно принимают равной 0 или 1 (чаще 0) для упрощения вычислений. Такая кусочно-линейная природа делает ReLU вычислительно эффективной, так как не требует сложных экспоненциальных или тригонометрических операций.

Свойства

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

  • Вычислительная простота: ReLU требует только сравнения с нулём, что значительно быстрее, чем вычисление сигмоиды или гиперболического тангенса.
  • Снижение проблемы исчезающего градиента: В отличие от сигмоиды, градиент которой стремится к нулю при больших значениях аргумента, ReLU имеет постоянный градиент (1) для положительных входов. Это позволяет градиентам эффективно распространяться через глубокие сети, ускоряя обучение.
  • Разреженность активаций: Поскольку ReLU обнуляет отрицательные значения, в сети активируется лишь часть нейронов, что способствует разреженности представлений и может улучшить обобщающую способность модели.

Недостатки

  • Проблема «умирающего ReLU»: Если нейрон получает большое количество отрицательных входов, его выход всегда равен нулю, а градиент — нулю, что приводит к тому, что нейрон перестаёт обучаться (его веса больше не обновляются). Это может происходить при неудачной инициализации весов или слишком большом шаге обучения.
  • Неограниченный выход: ReLU не имеет верхней границы, что может привести к взрывным значениям активаций, особенно в глубоких сетях без регуляризации.
  • Несимметричность относительно нуля: ReLU не является центрированной функцией (среднее значение выходов не равно нулю), что может замедлять сходимость, особенно в батч-нормализации.

Разновидности

Для преодоления недостатков ReLU были разработаны её модификации:

Leaky ReLU (LReLU)

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

Parametric ReLU (PReLU)

В PReLU параметр \( \alpha \) является обучаемым, то есть подбирается автоматически в процессе обучения сети. Это даёт дополнительную гибкость, но увеличивает количество параметров модели.

Exponential Linear Unit (ELU)

ELU использует экспоненциальную функцию для отрицательных входов: \( f(x) = x \) при \( x \geq 0 \) и \( f(x) = \alpha (e^x - 1) \) при \( x < 0 \). Это обеспечивает гладкую нелинейность и среднее значение выходов, близкое к нулю, что улучшает сходимость.

Scaled Exponential Linear Unit (SELU)

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

Swish

Swish, предложенная компанией Google, определяется как \( f(x) = x \cdot \sigma(x) \), где \( \sigma(x) \) — сигмоида. Хотя Swish не является прямой модификацией ReLU, она часто сравнивается с ней и показывает лучшие результаты в некоторых задачах.

Применение

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

  • Свёрточные нейронные сети (CNN): ReLU является стандартной функцией активации в свёрточных слоях, например, в архитектурах AlexNet, VGGNet, ResNet, Inception.
  • Многослойные перцептроны (MLP): ReLU применяется в скрытых слоях полносвязных сетей.
  • Генеративно-состязательные сети (GAN): ReLU часто используется в генераторах и дискриминаторах, особенно в модификациях, таких как Leaky ReLU.
  • Рекуррентные нейронные сети (RNN): Хотя в RNN чаще применяются сигмоида и tanh, ReLU может использоваться в некоторых модификациях, например, в LSTM с ReLU-активациями.

Критика

Несмотря на широкую распространённость, ReLU подвергается критике за проблему «умирающего нейрона», которая может приводить к необратимой потере нейронов в сети. Кроме того, неограниченный выход ReLU может вызывать численную нестабильность, особенно в глубоких сетях без регуляризации. В ответ на это были разработаны альтернативы, такие как Leaky ReLU, ELU и Swish, которые в некоторых задачах показывают лучшие результаты. Однако простота и эффективность ReLU делают её стандартным выбором для большинства практических приложений.

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

  • ReLU является кусочно-линейной функцией, что делает её негладкой в точке \( x = 0 \). Тем не менее, это не мешает её использованию в градиентных методах, так как производная в нуле редко вычисляется на практике.
  • В 2011 году исследователи из Стэнфорда показали, что ReLU позволяет обучать сети с 6-8 скрытыми слоями, что было невозможно с сигмоидой из-за исчезающего градиента.
  • ReLU часто используется в комбинации с батч-нормализацией, которая помогает стабилизировать обучение и уменьшить проблему «умирающего нейрона».

Источники

  • Glorot, X., Bordes, A., & Bengio, Y. (2011). Deep sparse rectifier neural networks. Proceedings of the 14th International Conference on Artificial Intelligence and Statistics (AISTATS).
  • Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. Advances in Neural Information Processing Systems (NIPS).
  • Fukushima, K. (1969). Visual feature extraction by a multilayered network of analog threshold elements. IEEE Transactions on Systems Science and Cybernetics.
  • Maas, A. L., Hannun, A. Y., & Ng, A. Y. (2013). Rectifier nonlinearities improve neural network acoustic models. Proceedings of the International Conference on Machine Learning (ICML).
  • Clevert, D.-A., Unterthiner, T., & Hochreiter, S. (2015). Fast and accurate deep network learning by exponential linear units (ELUs). arXiv preprint arXiv:1511.07289.

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

На главную BFOmetr →