Сигмоида
Откройте для себя возможности сигмоидной функции в ИИ. Узнайте, как она обеспечивает нелинейность, помогает в бинарной классификации и способствует развитию машинного обучения!
Сигмоидная функция является фундаментальной
Функция активации широко используется в областях
машинного обучения (ML) и
глубокого обучения (DL). Математически представленная как
логистическая функция, она характеризуется
S-образной кривой, известной как сигмоидная кривая. Основная функция сигмоида заключается в преобразовании любого
в значение в диапазоне от 0 до 1. Это свойство сплющивания делает ее исключительно
полезным для моделей, которые должны предсказывать
вероятности, так как выходное значение может быть непосредственно
интерпретировать как вероятность наступления определенного события. Вводя нелинейность в
нейронной сети (НС), сигмоидальная функция позволяет
модели изучать сложные модели данных, которые выходят за рамки простой
линейной регрессии.
Основные приложения в искусственном интеллекте
Сигмоидальная функция играет важную роль в специфических сетевых архитектурах и задачах, особенно там, где выходные данные
необходимо интерпретировать как независимые вероятности. Хотя более новые функции заменили ее в скрытых слоях глубоких
сетей, она остается стандартом в выходных слоях для нескольких ключевых приложений.
-
Бинарная классификация: В задачах, где целью является отнесение входных данных к одному из двух взаимоисключающих классов, например
определение того, является ли электронное письмо "спамом" или "не спамом", сигмоидальная функция является идеальным выбором для
последнего слоя. Она выводит одно скалярное значение между 0 и 1, представляющее вероятность положительного класса.
Например, при анализе медицинских изображений
модель может выдавать значение 0,95, что означает 95-процентную уверенность в том, что обнаруженная аномалия является злокачественной.
-
Классификация по нескольким меткам: В отличие от многоклассовых задач, где входные данные относятся только к одной категории, в многопометных задачах входные данные могут иметь
несколько меток одновременно. Например.
модель обнаружения объектов, например
Ultralytics YOLO11 может потребоваться detect
"человек", "велосипед" и "шлем" на одном изображении. В этом случае сигмоид применяется
независимо к каждому выходному узлу, что позволяет модели предсказывать наличие или отсутствие каждого класса без
не заставляя вероятности складываться в единицу.
-
Рекуррентная нейронная сеть (RNN)
Гейтинг: Сигмоид является важнейшим компонентом в механизмах стробирования продвинутых моделей последовательности, таких как
Длительная кратковременная память (LSTM)
сети. В этих архитектурах "ворота забывания" и "входные ворота" используют сигмоид для вывода значений
значения между 0 (полное забывание/блокировка) и 1 (полное запоминание/прохождение), эффективно регулируя поток информации
информации с течением времени. Этот механизм подробно объясняется в классических
исследованиях, посвященных LSTM.
Сравнение с родственными функциями активации
Для эффективного проектирования нейронных архитектур важно отличать сигмоид от других функций активации, поскольку
каждая из них служит своей цели.
-
Softmax: Хотя обе функции относятся к вероятности, Softmax используется для многоклассовой классификации, где классы являются
взаимоисключающие. Softmax гарантирует, что сумма выходов по всем классам будет равна 1, создавая распределение вероятностей
распределение. В отличие от этого, Sigmoid рассматривает каждый выход независимо, что делает ее подходящей для бинарных или многометочных задач.
задач.
-
ReLU (ректифицированная линейная единица): ReLU - это предпочтительная функция активации для скрытых слоев в современных глубоких сетях. В отличие от сигмоида, который
насыщается в точках 0 и 1, что приводит к
проблема исчезающего градиента во время
обратного распространения, ReLU позволяет градиентам течь
более свободно для положительных входов. Это ускоряет обучение и сходимость, как отмечается в
Заметки по курсу CS231n в Стэнфорде.
-
Tanh (гиперболический тангенс): Функция Tanh похожа на Sigmoid, но отображает входные данные в диапазон от -1 до 1. Поскольку ее выходной сигнал
Tanh часто предпочтительнее Sigmoid в скрытых слоях старых архитектур и некоторых RNN, так как
он помогает центрировать данные для последующих слоев.
Пример реализации
Следующий фрагмент Python демонстрирует применение сигмоидальной функции с помощью
PyTorch. Это распространенная операция
используемая для преобразования необработанных результатов модели (логитов) в интерпретируемые вероятности.
import torch
import torch.nn as nn
# Raw outputs (logits) from a model for a binary or multi-label task
logits = torch.tensor([0.1, -2.5, 4.0])
# Apply the Sigmoid activation function
sigmoid = nn.Sigmoid()
probabilities = sigmoid(logits)
# Output values are squashed between 0 and 1
print(probabilities)
# Output: tensor([0.5250, 0.0759, 0.9820])
Понимание того, когда следует использовать сигмоид, является ключом к созданию эффективных систем искусственного интеллекта. Хотя она имеет ограничения в глубоких скрытых
слоях из-за насыщенности градиента, ее способность моделировать независимые вероятности сохраняет ее актуальность в
вычислениях функций потерь и конечных выходных слоях
для широкого круга задач.