Узнайте, как функция активации GELU улучшает модели-трансформеры, такие как GPT-4, повышая поток градиентов, стабильность и эффективность.
Линейный блок с гауссовской ошибкой (GELU) - это широко распространенная функция активации, которая стала краеугольным камнем в современных архитектурах нейронных сетей (НС), особенно в частности, в архитектурах с использованием трансформаторов. В отличие от традиционных функций, которые накладывают жесткий порог на входы, GELU обеспечивает более плавный, немонотонный переход. Эта уникальная Эта уникальная характеристика позволяет ему взвешивать входные данные по их величине, эффективно преодолевая разрыв между детерминированной нелинейностью и стохастическими методами регуляризации. Он широко используется в таких крупных моделях, как серия GPT и BERT подчеркивает его способность помогать системам изучать сложные закономерности в больших наборах данных.
На фундаментальном уровне GELU служит привратником для информации, проходящей через модель глубокого обучения (DL). В то время как старые функции такие как выпрямленная линейная единица (ReLU), радикально отсекают отрицательные значения, устанавливая их в ноль, GELU использует более тонкий подход. Она умножает входное значение на на кумулятивную функцию распределения (CDF) стандартного гауссова распределения.
Этот процесс означает, что активация вероятностно уменьшает информацию по мере уменьшения входного сигнала, но делает это по плавной кривой, а не под острым углом. Эта плавность улучшает поток информации во время обратного распространения, помогая смягчить проблему исчезающего градиента, которая может помешать обучению глубоких сетей. Используя свойства гауссова распределения, GELU вводит форму кривизны, что позволяет модели лучше отражать сложные взаимосвязи данных по сравнению с линейными альтернативами.
Чтобы понять, куда подходит GELU, нужно отличить ее от других распространенных функций активации, которые можно найти в глоссарии по искусственному интеллекту.
GELU является неотъемлемой частью некоторых из самых передовых приложений в области искусственного интеллекта (ИИ).
Интегрировать 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)," обеспечивает всесторонний теоретический контекст.