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

Sigmoid

Сигмоидная функция отображает любое действительное число в значение от 0 до 1. Рассматриваются её формула, градиент, вероятностные выходы, гейты и код на PyTorch.

Функция сигмоиды σ(x) = 1 / (1 + e^(−x)) отображает любое действительное число в диапазон от 0 до 1 по S-образной кривой: большие отрицательные входы дают значения, близкие к 0, большие положительные — близкие к 1, а для входа 0 значение точно равно 0.5. В машинном обучении (ML) под «сигмоидой» почти всегда подразумевают логистическую функцию — ту же кривую, которая преобразует линейную оценку в вероятность в логистической регрессии. В нейронной сети (NN) сигмоида выполняет три роли: изначально она служила функцией активации скрытых слоёв, преобразует итоговую оценку в вероятность для бинарных задач и задач с несколькими метками, а также работает как мягкий переключатель в механизмах управления рекуррентных ячеек и других управляемых слоёв. Со временем в скрытых слоях стали использовать такие функции, как ReLU, поэтому в современных моделях сигмоида встречается в основном на выходах и в механизмах управления.

Формула и свойства#

Сигмоида симметрична относительно середины кривой: σ(−x) = 1 − σ(x). Её обратная функция — логит log(p / (1 − p)), преобразующий вероятность обратно в логарифм шансов. Поэтому необработанный выход сети перед сигмоидой называют логитом. Производная имеет простой вид: σ′(x) = σ(x)(1 − σ(x)). Она достигает максимума 0.25 при x = 0 и стремится к нулю по мере уплощения кривой с обоих концов; это называют насыщением. Фрагмент кода на PyTorch ниже вычисляет выходы и градиенты для пяти точек:

import torch

x = torch.tensor([-6.0, -2.0, 0.0, 2.0, 6.0], requires_grad=True)
y = torch.sigmoid(x)

# Backpropagate to get the derivative sigmoid(x) * (1 - sigmoid(x)) at each input
y.sum().backward()

print(f"Sigmoid:  {[round(v, 4) for v in y.tolist()]}")
print(f"Gradient: {[round(v, 4) for v in x.grad.tolist()]}")

Вывод содержит значения сигмоиды [0.0025, 0.1192, 0.5, 0.8808, 0.9975] и градиенты [0.0025, 0.105, 0.25, 0.105, 0.0025]. При ±6 выход отличается от предельного значения менее чем на 0.0025, а градиент в 100 раз меньше, чем при нуле. Поэтому вход в этом диапазоне почти не меняет породившие его веса.

Сигмоида в скрытых слоях#

В ранних многослойных сетях в каждом скрытом слое использовали сигмоиду, что приводило к двум проблемам. При обратном распространении ошибки градиент последовательно умножается на производную функции активации каждого слоя, и поскольку производная сигмоиды никогда не превышает 0.25, в десяти слоях с сигмоидой одни только эти производные масштабируют градиент множителем не более 0.25¹⁰, то есть уменьшают его до величины менее одной миллионной от исходного значения, что и приводит к проблеме исчезающего градиента. Выходы сигмоиды также всегда положительны, поэтому все градиенты весов нейрона, который их получает, при каждом обновлении имеют одинаковый знак, и веса могут лишь зигзагообразно приближаться к оптимуму. Tanh центрирует выходы относительно нуля, а Ксавье Глорот и Йошуа Бенжио в 2010 году показали, что положительное среднее сигмоиды приводит к насыщению верхнего скрытого слоя случайно инициализированной глубокой сети. ReLU устранила обе проблемы и стала стандартной функцией активации скрытых слоёв, а её гладкие аналоги, такие как SiLU, x · σ(x), по-прежнему используют сигмоиду внутри в роли затвора.

Сигмоида в выходном слое#

При бинарной классификации единственный выход z преобразуется в p = σ(z) — предсказанную вероятность положительного класса. Порог 0,5 для p эквивалентен порогу 0 для z. При обучении сигмоиду объединяют с бинарной кросс-энтропией, градиент которой по логиту равен p − y, то есть предсказанная вероятность минус метка. Для численной устойчивости фреймворки объединяют эти операции: BCEWithLogitsLoss в PyTorch принимает исходные логиты и внутри использует приём log-sum-exp, который позволяет не брать логарифм вероятности, округлившейся ровно до 0 или 1.

Если метки могут встречаться одновременно, модель использует отдельную сигмоиду для каждой метки. Такая схема называется многометочной классификацией. А softmax заставляет классы делить между собой общую вероятность, что подходит для взаимоисключающих меток:

import torch

# Logits from a classifier for the labels "person", "backpack", and "car"
logits = torch.tensor([2.0, 1.5, -3.0])

# Sigmoid scores each label on its own; softmax makes the labels compete for one total
sigmoid_probs = torch.sigmoid(logits)
softmax_probs = torch.softmax(logits, dim=0)

print(f"Sigmoid: {[round(p, 3) for p in sigmoid_probs.tolist()]}, sum {sigmoid_probs.sum():.3f}")
print(f"Softmax: {[round(p, 3) for p in softmax_probs.tolist()]}, sum {softmax_probs.sum():.3f}")

Сумма оценок сигмоиды [0.881, 0.818, 0.047] равна 1.746, поэтому и «человек», и «рюкзак» превышают порог 0.5. Softmax распределяет те же логиты между значениями [0.62, 0.376, 0.004], и выше 0.5 остаётся только «человек». Детекторы YOLO26 оценивают классы с помощью независимой сигмоиды для каждого класса, обученной с BCEWithLogitsLoss, поэтому оценки классов рамки не обязаны в сумме давать 1. В моделях поз YOLO26 к логиту видимости каждой ключевой точки также применяется сигмоида, чтобы получить вероятность видимости этой точки.

Сигмоида как управляющий сигнал#

Поскольку выход сигмоиды находится в диапазоне от 0 до 1, с её помощью можно поэлементно масштабировать другой сигнал — от полного блокирования до полного пропускания, сохраняя при этом дифференцируемость:

  • Ячейки LSTM и GRU: сигмоидные механизмы управления определяют, какую часть старой памяти сохранить, сколько нового содержимого записать и какую часть состояния передать на каждом шаге времени; tanh преобразует само содержимое.
  • SwiGLU: в полносвязных слоях многих больших языковых моделей (LLM) одна обучаемая проекция умножается на вторую проекцию с активацией SiLU — механизм управления на основе сигмоиды.
  • SigLIP: эта модель изображений и текста оценивает каждую пару «изображение — подпись» в батче с помощью отдельной сигмоиды, которая вычисляет вероятность соответствия «да» или «нет». Поэтому функция потерь не требует нормализации по всему батчу.
  • Логистическая функция: синоним сигмоиды в машинном обучении. В математике термин «сигмоида» охватывает и другие S-образные кривые, включая tanh и функцию ошибок.
  • Softmax: нормализует целый вектор, преобразуя его в вероятности, сумма которых равна 1. Для двух классов softmax от логитов (z₁, z₂) выдаёт для первого класса σ(z₁ − z₂), поэтому softmax с двумя выходами и сигмоида с одним выходом описывают одну и ту же модель.
  • Tanh: масштабированная сигмоида tanh(x) = 2σ(2x) − 1 с выходами от −1 до 1, центрированными относительно нуля, и максимальной производной 1.
  • Жёсткая сигмоида: кусочно-линейная аппроксимация, позволяющая избежать вычисления экспоненты на мобильном оборудовании. MobileNetV3 использует ReLU6(x + 3) / 6: функция равна 0 при x < −3, 1 при x > 3, а между этими значениями представляет собой прямую.

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

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

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

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

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

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