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

GELU (Gaussian Error Linear Unit)

Узнайте, как функция активации GELU улучшает модели-трансформеры, такие как GPT-4, повышая поток градиентов, стабильность и эффективность.

Линейный блок с гауссовской ошибкой (GELU) - это широко распространенная функция активации, которая стала краеугольным камнем в современных архитектурах нейронных сетей (НС), особенно в частности, в архитектурах с использованием трансформаторов. В отличие от традиционных функций, которые накладывают жесткий порог на входы, GELU обеспечивает более плавный, немонотонный переход. Эта уникальная Эта уникальная характеристика позволяет ему взвешивать входные данные по их величине, эффективно преодолевая разрыв между детерминированной нелинейностью и стохастическими методами регуляризации. Он широко используется в таких крупных моделях, как серия GPT и BERT подчеркивает его способность помогать системам изучать сложные закономерности в больших наборах данных.

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

На фундаментальном уровне GELU служит привратником для информации, проходящей через модель глубокого обучения (DL). В то время как старые функции такие как выпрямленная линейная единица (ReLU), радикально отсекают отрицательные значения, устанавливая их в ноль, GELU использует более тонкий подход. Она умножает входное значение на на кумулятивную функцию распределения (CDF) стандартного гауссова распределения.

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

GELU в сравнении с другими функциями активации

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

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

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

GELU является неотъемлемой частью некоторых из самых передовых приложений в области искусственного интеллекта (ИИ).

  • Большие языковые модели (LLM): Особая кривизна GELU помогает моделям понимать лингвистические нюансы. Например, в анализ настроения или анализе настроений или обобщении текста, функция активации обеспечивает сохранение тонких сигналов контекста в глубине слоев сети, что позволяет создавать связный текст. генерации связного текста, что наблюдается в современных чат-ботах.
  • Трансформаторы зрения (ViT): Выходя за рамки текста, GELU используется в преобразователях зрения, которые применяют механизмы самовнимания для классификации изображений. Способствуя стабильному градиентного спуска, GELU позволяет этим моделям эффективно обрабатывать участки изображения, с высокой точностью определяя объекты в загроможденных сценах.

Реализация на языке Python

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

import torch
import torch.nn as nn

# Define a sample input tensor (batch_size=1, features=5)
input_data = torch.tensor([[-3.0, -1.0, 0.0, 1.0, 3.0]])

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

# Apply GELU to the input data
output = gelu_layer(input_data)

# Output demonstrates the smooth suppression of negative values
print(f"Input: {input_data}")
print(f"Output: {output}")

В этом фрагменте используется torch.nn.GELU, описанный в Официальный API PyTorch GELUдля преобразования входных данных. Обратите внимание, как отрицательные значения подавляются, но не сжимаются до нуля, сохраняя плавный градиентный поток, необходимый для обучения надежных машинное обучение (ML) модели. Для дальнейшего математического обоснования можно прочитать в оригинальной научной статье "Линейные единицы гауссовой ошибки (GELU)," обеспечивает всесторонний теоретический контекст.

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

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

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