Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

GELU (Gaussian Error Linear Unit)

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

Гауссова линейная единица ошибки (GELU) — это функция активации, определяемая как GELU(x) = x · Φ(x), где Φ — функция распределения стандартного нормального распределения. Она умножает каждый вход на вероятность того, что значение стандартной нормальной случайной величины будет меньше этого входа. Поэтому большие положительные значения проходят почти без изменений, большие отрицательные становятся почти нулевыми, а значения около нуля уменьшаются примерно вдвое. Дэн Хендрикс и Кевин Гимпел представили GELU в статье 2016 года «Гауссовы линейные единицы ошибки (GELUs)». GELU стала стандартной функцией активации в моделях трансформеров, таких как BERT, GPT-2, GPT-3 и визуальный трансформер (ViT), где она располагается между двумя линейными слоями каждого блока прямого распространения.

Принцип работы GELU#

Хендрикс и Гимпел вывели GELU из идеи стохастической регуляризации. Представь, что каждый вход x умножается на случайную маску: с вероятностью Φ(x) маска сохраняет его, а иначе обнуляет — как в dropout, но вероятность сохранения растёт вместе со значением входа. GELU — это математическое ожидание такой операции, Φ(x) · x. Поэтому она плавно регулирует входы в зависимости от их значений, тогда как ReLU резко разделяет их по знаку.

Полученная кривая обладает тремя важными для обучения свойствами:

  • Гладкость на всей области определения: GELU и её производная непрерывны, в нуле нет излома, поэтому небольшие изменения весов вызывают небольшие изменения выхода при обратном распространении ошибки.
  • Немонотонность: Для отрицательных входов выход сначала уменьшается, а затем снова приближается к нулю; минимум около −0,17 достигается при x ≈ −0,75.
  • Градиент для отрицательных входов: Нейроны с умеренно отрицательными входами всё ещё получают градиент и продолжают обучаться, в отличие от нейронов ReLU, которые перестали бы обучаться.

Из-за того что Φ включает функцию ошибок, распространены две аппроксимации. Форма с tanh, 0.5x(1 + tanh(√(2/π)(x + 0.044715x³))), отличается от точной GELU не более чем примерно на 0,0005 и использовалась в GPT-2. Форма с сигмоидой, x · σ(1.702x), отличается примерно не более чем на 0,02 и применяется в QuickGELU из CLIP от OpenAI. nn.GELU в PyTorch по умолчанию вычисляет точную форму, а форму с tanh — с помощью approximate="tanh":

import torch
from torch import nn

x = torch.tensor([-3.0, -1.0, -0.75, 0.0, 1.0, 3.0])

# Exact GELU: x * Phi(x), where Phi is the standard normal CDF
exact = nn.GELU()(x)

# Tanh approximation, as used in GPT-2
approx = nn.GELU(approximate="tanh")(x)

print(f"GELU exact: {[round(v, 4) for v in exact.tolist()]}")
print(f"GELU tanh:  {[round(v, 4) for v in approx.tolist()]}")
print(f"ReLU:       {nn.ReLU()(x).tolist()}")

Для точной GELU выводится [-0.004, -0.1587, -0.17, 0.0, 0.8413, 2.996], для формы с tanh — [-0.0036, -0.1588, -0.17, 0.0, 0.8412, 2.9964], а для ReLU — [0.0, 0.0, 0.0, 0.0, 1.0, 3.0]. GELU принимает значение −0,17 в минимуме около −0,75, преобразует 1 в 0,8413, поскольку Φ(1) = 0,8413, и почти совпадает с ReLU при ±3. Две формы GELU различаются лишь в четвёртом знаке после запятой.

Где используется GELU#

  • Модели GPT: Первая модель GPT от OpenAI использовала GELU в 2018 году; в GPT-2 и GPT-3 её также сохранили.
  • BERT: После GPT компания Google выбрала GELU вместо ReLU для BERT; большинство энкодеров в стиле BERT до сих пор используют GELU.
  • Визуальные трансформеры: В ViT GELU используется в MLP каждого блока энкодера. За ним последовали многие backbone для компьютерного зрения, включая ConvNeXt, где при модернизации ResNet ReLU заменили на GELU.
  • Трансформеры для обнаружения объектов: В пакете Ultralytics GELU используется между двумя слоями прямого распространения в энкодере AIFI Transformer модели RT-DETR — трансформера для обнаружения объектов в реальном времени от Baidu.

Во многих современных больших языковых моделях (LLMs) обычную GELU заменили на управляемые слои прямого распространения. В Gemma от Google используется GEGLU: проекция с активацией GELU умножается на вторую линейную проекцию. В Llama, PaLM и Qwen применяется функция на основе SiLU — SwiGLU.

  • ReLU: Функция max(0, x) вычисляется дешевле, выдаёт точные нули и имеет излом в нуле. В статье о GELU сообщалось о результатах лучше, чем у ReLU и ELU, во всех проверенных задачах компьютерного зрения, обработки естественного языка и распознавания речи.
  • SiLU (Swish): Функция x · σ(x) имеет похожую общую форму с более глубоким минимумом около −0,28. В трансформерах обычно используют GELU, а в свёрточных детекторах чаще встречается SiLU.
  • Leaky ReLU: Для отрицательных входов сохраняет фиксированный линейный наклон, тогда как отрицательная часть GELU образует кривую, возвращающуюся к нулю.
  • GEGLU: Этот управляемый вариант добавляет вторую обучаемую проекцию. В сравнении Ноама Шазира 2020 года на T5 слои прямого распространения GEGLU достигли логарифмической перплексии 1,633 на отложенной выборке против 1,679 у GELU и 1,677 у ReLU при одинаковом числе параметров.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения