Изучите функцию активации Gaussian Error Linear Unit (GELU). Узнайте, как ее плавная вероятностная нелинейность лежит в основе Transformers, BERT и современного искусственного интеллекта.
Гауссова линейная единица ошибки (GELU) — это сложная функция активации, которая играет ключевую роль в производительности современных систем искусственного интеллекта (ИИ), особенно тех, которые основаны на архитектуре Transformer. В отличие от традиционных функций, которые применяют жесткий, детерминированный порог к входам нейронов, GELU вводит вероятностный аспект, вдохновленный свойствами гауссового распределения. Взвешивая входы по их величине, а не просто ограничивая их, GELU обеспечивает более плавную нелинейность, которая помогает в оптимизации моделей глубокого обучения (DL). Эта уникальная характеристика позволяет сетям более эффективно моделировать сложные шаблоны данных, что вносит значительный вклад в успех массивных базовых моделей.
В основе любой нейронной сети функции активации определяют, «сработает» ли нейрон на основе входного сигнала. Старые функции, такие как выпрямленная линейная единица (ReLU), работают как переключатель, выводя ноль для любого отрицательного входа и сам вход для положительных значений. Несмотря на эффективность, это резкое отсечение может помешать динамике обучения.
GELU улучшает эту функцию, масштабируя входные данные с помощью функции кумулятивного распределения гауссовой распределения. Интуитивно это означает, что по мере уменьшения входного значения вероятность выпадения нейрона увеличивается, но это происходит постепенно, а не резко. Эта кривизна создает гладкую, немонотонную функцию, которая дифференцируема во всех точках. Эта гладкость способствует лучшему обратному распространению градиентов, помогая смягчить такие проблемы, как исчезновение градиента, которое может затормозить обучение глубоких сетей.
Более плавная оптимизация, обеспечиваемая GELU, сделала его стандартным выбором для некоторых из самых передовых приложений в области машинного обучения (ML).
Чтобы понять GELU, часто необходимо отличать его от других популярных функций активации, представленных в Ultralytics .
Реализация 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), и их эффективного развертывания в облаке или на периферийных устройствах.