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

Leaky ReLU

Leaky ReLU пропускает отрицательные входные значения с небольшим наклоном, обычно 0.01, благодаря чему градиенты продолжают проходить и нейроны избегают проблемы «умирающего ReLU».

Leaky ReLU (негерметичная выпрямленная линейная функция) — это функция активации, которая возвращает вход без изменений, если он положительный, и умножает его на небольшой фиксированный наклон, например 0.01, если он отрицательный. Она изменяет стандартную функцию ReLU, которая выдаёт ноль для любого отрицательного входа: отрицательные значения по-прежнему дают небольшой выход и, что важнее, ненулевой градиент при обратном распространении ошибки. Эндрю Маас, Авни Ханнун и Эндрю Ын описали эту функцию в исследовании 2013 года, посвящённом выпрямляющим активациям в акустических моделях распознавания речи; они использовали наклон 0.01. Её применяют в моделях глубокого обучения, где важен поток градиента, — от дискриминаторов генеративных состязательных сетей до ранних детекторов объектов YOLO и нейропроцессоров, запускающих квантованные модели с кусочно-линейными активациями.

Как работает Leaky ReLU#

Leaky ReLU вычисляет f(x) = x для x > 0 и f(x) = αx для x ≤ 0, где отрицательный наклон α — фиксированный гиперпараметр от 0 до 1. Производная равна 1 для положительных входов и α для отрицательных, поэтому каждому входу соответствует некоторый градиент, который возвращается к породившим его весам. Стандартный наклон зависит от библиотеки и фреймворка: nn.LeakyReLU в PyTorch по умолчанию равен 0.01, tf.nn.leaky_relu в TensorFlow — 0.2, а у слоя LeakyReLU в Keras — 0.3. Этот код пропускает отрицательные входы через ReLU и Leaky ReLU и вычисляет градиент для каждого варианта:

import torch
from torch import nn

# Negative pre-activations, the inputs a ReLU unit turns into zeros
x = torch.tensor([-3.0, -1.0, -0.5], requires_grad=True)

for activation in (nn.ReLU(), nn.LeakyReLU(negative_slope=0.01)):
    y = activation(x)
    y.sum().backward()  # gradient that flows back toward the weights
    print(f"{activation}: output {y.detach().numpy()}, gradient {x.grad.numpy()}")
    x.grad = None

Код выводит ReLU(): output [0. 0. 0.], gradient [0. 0. 0.] и LeakyReLU(negative_slope=0.01): output [-0.03 -0.01 -0.005], gradient [0.01 0.01 0.01]. ReLU не передаёт градиент от этих входов, поэтому градиентный спуск не может изменить породившие их веса, а Leaky ReLU передаёт 1% градиента с предыдущего этапа.

Проблема умирающих ReLU#

Нейрон ReLU умирает, когда его веса и смещение изменяются настолько, что предварительная активация оказывается отрицательной для каждого элемента обучающих данных. Его выход всегда равен нулю, градиент тоже всегда равен нулю, а входящие веса больше не обновляются — нейрон навсегда теряется для нейронной сети. Высокая скорость обучения или большое отрицательное обновление смещения повышают вероятность этого. Leaky ReLU сохраняет небольшой градиент на отрицательной стороне, поэтому нейрон, сместившийся в отрицательную область, всё ещё можно вернуть обратно:

Проблема умирающих ReLU отличается от проблемы затухающего градиента, при которой градиенты постепенно уменьшаются, проходя через множество слоёв с насыщаемыми функциями, такими как sigmoid или tanh.

  • ReLU: Выдаёт точный ноль для отрицательных входов, что делает активации разреженными и удешевляет вычисления, но может приводить к отмиранию нейронов. Leaky ReLU отказывается от точной разреженности, чтобы градиент оставался ненулевым везде.
  • Parametric ReLU (PReLU): Вместо фиксированного значения обучает отрицательный наклон, обычно отдельный для каждого канала. Каимин Хе и его коллеги задали начальное значение наклона 0.25; это также значение по умолчанию для nn.PReLU в PyTorch.
  • SiLU и GELU: Плавные кривые, которые для отрицательных входов немного опускаются ниже нуля и не имеют резкого угла в нуле. SiLU используется по умолчанию в современных моделях YOLO, а GELU часто встречается в Transformer. Обе функции требуют вычисления экспоненты для каждого значения, тогда как Leaky ReLU нужны только сравнение и умножение.

Где применяется Leaky ReLU#

  • Дискриминаторы DCGAN: В архитектуре DCGAN Leaky ReLU с наклоном 0.2 использовалась в каждом слое дискриминатора. Благодаря этому генератор получает полезные градиенты даже для изображений, которые дискриминатор отвергает; такой подход сохранили многие последующие GAN.
  • Ранние детекторы YOLO: В оригинальной YOLO Leaky ReLU с наклоном 0.1 использовалась во всех слоях, кроме последнего. То же было в YOLOv2 и YOLOv3; в YOLOv5 её применяли до выпуска версии 4.0 в январе 2021 года, когда заменили на SiLU.
  • Графовые сети внимания: Эти графовые нейронные сети используют Leaky ReLU с наклоном 0.2, оценивая, насколько сильно каждый узел должен учитывать соседей.
  • Ускорители периферийного ИИ: Целочисленные нейропроцессоры, запускающие квантованные модели, могут объединить кусочно-линейную функцию активации с предыдущей свёрткой. DPU от AMD Xilinx делает это для ReLU и Leaky ReLU, но запускает sigmoid, а значит и SiLU, на основном CPU.

YAML-файлы моделей Ultralytics YOLO принимают ключ activation, который заменяет SiLU по умолчанию во всех стандартных свёрточных блоках. Поэтому YOLO26 можно обучать с параметром activation: nn.LeakyReLU(0.1015625), чтобы соответствовать фиксированному наклону DPU, равному 26/256.

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

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

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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