Глоссарий

GELU (Gaussian Error Linear Unit)

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

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

GELU (Gaussian Error Linear Unit) - это тип функции активации, широко используемый в современных нейронных сетях, особенно в трансформаторных архитектурах. Предложенная Дэном Хендриксом и Кевином Гимпелом в работе"Gaussian Error Linear Units (GELUs)", она призвана объединить свойства dropout, zoneout и ReLU (Rectified Linear Unit) для улучшения производительности модели. В отличие от ReLU, который резко обрезает отрицательные значения, GELU обеспечивает более плавную кривую, взвешивая входные данные на основе их величины, а не только знака.

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

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

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

GELU имеет преимущества перед более простыми функциями активации, что способствует ее внедрению в самые современные модели:

  • ReLU: ReLU прост в вычислениях, но может страдать от проблемы "умирающего ReLU", когда нейроны становятся неактивными при отрицательных входных сигналах, что потенциально мешает обучению. Плавная кривая GELU позволяет градиентам течь легче, особенно при отрицательных значениях, что потенциально смягчает эту проблему.
  • Leaky ReLU: Хотя Leaky ReLU решает проблему умирающего ReLU, позволяя небольшой ненулевой градиент для отрицательных входов, он сохраняет простую линейную зависимость в отрицательной области. GELU предлагает более сложное, нелинейное преобразование.
  • SiLU (Swish): SiLU (Sigmoid Linear Unit) - еще одна гладкая функция активации, которая часто работает аналогично GELU. Выбор между GELU и SiLU может зависеть от конкретной архитектуры и набора данных, что часто определяется с помощью эмпирического тестирования или настройки гиперпараметров.

Применение и значение

GELU стал популярным выбором во многих продвинутых моделях глубокого обучения благодаря своей сильной эмпирической производительности:

  1. Обработка естественного языка (NLP): она широко используется в моделях на основе трансформаторов, таких как модели BERT и GPT, способствуя их успешному решению таких задач, как генерация текста и понимание естественного языка.
  2. Компьютерное зрение: GELU также встречается в Vision Transformers (ViT) и последующих моделях зрения. Например, такие компоненты, как обобщенная эффективная сеть агрегирования слоев (GELAN), используемая в Ultralytics YOLOv9, применяют GELU для улучшения извлечения признаков и повышения точности в задачах обнаружения объектов, как подробно описано в статье YOLOv9.

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

Читать полностью