Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

GELU (Gaussian Error Linear Unit)

Изучите функцию активации Gaussian Error Linear Unit (GELU). Узнайте, как ее плавная вероятностная нелинейность лежит в основе Transformers, BERT и современного искусственного интеллекта.

Гауссова линейная единица ошибки (GELU) — это сложная функция активации, которая играет ключевую роль в производительности современных систем искусственного интеллекта (ИИ), особенно тех, которые основаны на архитектуре Transformer. В отличие от традиционных функций, которые применяют жесткий, детерминированный порог к входам нейронов, GELU вводит вероятностный аспект, вдохновленный свойствами гауссового распределения. Взвешивая входы по их величине, а не просто ограничивая их, GELU обеспечивает более плавную нелинейность, которая помогает в оптимизации моделей глубокого обучения (DL). Эта уникальная характеристика позволяет сетям более эффективно моделировать сложные шаблоны данных, что вносит значительный вклад в успех массивных базовых моделей.

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

В основе любой нейронной сети функции активации определяют, «сработает» ли нейрон на основе входного сигнала. Старые функции, такие как выпрямленная линейная единица (ReLU), работают как переключатель, выводя ноль для любого отрицательного входа и сам вход для положительных значений. Несмотря на эффективность, это резкое отсечение может помешать динамике обучения.

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

Применение в реальном мире

Более плавная оптимизация, обеспечиваемая GELU, сделала его стандартным выбором для некоторых из самых передовых приложений в области машинного обучения (ML).

  • Крупные языковые модели (LLM): GELU приобрел популярность с появлением BERT (Bidirectional Encoder Representations from Transformers) , разработанного Google . Сейчас он является стандартным компонентом серии GPT и других генеративных текстовых моделей. В таких задачах, как резюмирование текста или анализ тональности, GELU помогает модели улавливать тонкие нюансы в языковых представлениях, которые могут упускаться жесткими активациями.
  • Vision Transformers (ViT): В области компьютерного зрения модели, которые адаптируют архитектуру Transformer для классификации изображений, в значительной степени полагаются на GELU. Обрабатывая изображения как последовательности фрагментов, эти модели используют GELU для сохранения богатой информации о характеристиках на протяжении глубоких слоев, что обеспечивает высокую точность на таких тестовых наборах, как ImageNet.

Сравнение со связанными терминами

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

  • GELU против ReLU: ReLU проще в вычислениях и создает разреженность (точные нули), что может быть эффективным. Однако «резкий угол» в нулевой точке может замедлить сходимость. GELU предлагает плавную аппроксимацию, которая обычно дает более высокую точность в сложных задачах, хотя и с немного более высокими вычислительными затратами.
  • GELU против SiLU (Swish): Сигмоидный линейный блок (SiLU) структурно очень похож на GELU и обладает такими же плавными, немонотонными свойствами. В то время как GELU доминирует в обработке естественного языка (NLP), SiLU часто предпочитают использовать в высокооптимизированных детекторах объектов, таких как YOLO26, благодаря его эффективности на периферийном оборудовании и отличной производительности в задачах обнаружения.
  • GELU против Leaky ReLU: Leaky ReLU пытается решить проблему «умирающих нейронов» стандартного ReLU, позволяя небольшой постоянный линейный наклон для отрицательных входных данных. В отличие от этого, GELU является нелинейным для отрицательных значений, предлагая более сложный и адаптивный ответ, что часто приводит к лучшему представлению обучения в очень глубоких сетях.

Пример реализации

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

import torch
import torch.nn as nn

# Initialize the GELU activation function
gelu_activation = nn.GELU()

# Create sample input data including negative and positive values
input_data = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])

# Apply GELU to the inputs
output = gelu_activation(input_data)

# Print results to see the smoothing effect on negative values
print(f"Input: {input_data}")
print(f"Output: {output}")

Для разработчиков, желающих использовать эти передовые функции активации в своих собственных проектах компьютерного зрения, Ultralytics упрощает весь рабочий процесс. Она предоставляет единый интерфейс для аннотирования данных, обучения моделей с использованием архитектур, таких как YOLO26 (которая использует оптимизированные активации , такие как SiLU), и их эффективного развертывания в облаке или на периферийных устройствах.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас