Softmax
Изучи функцию Softmax в ИИ. Узнай, как она преобразует логиты в вероятности для многоклассовой классификации с использованием Ultralytics YOLO26 и нейронных сетей.
Softmax — математическая функция, играющая ключевую роль в области искусственного интеллекта и особенно используемая на последнем этапе многих алгоритмов классификации. Она преобразует вектор исходных чисел, часто называемых логитами, в вектор вероятностей. Это преобразование гарантирует, что все выходные значения будут положительными и в сумме составят ровно единицу, фактически формируя корректное распределение вероятностей. Благодаря этому свойству Softmax является стандартной функцией активации, используемой в выходном слое нейронных сетей, предназначенных для многоклассовой классификации, в которой система должна выбрать одну категорию из более чем двух взаимоисключающих вариантов.
Механика Softmax#
В типичном рабочем процессе глубокого обучения (DL) слои сети выполняют сложные матричные умножения и сложения. Выход последнего слоя до применения функции активации состоит из исходных оценок, известных как логиты. Эти значения могут находиться в диапазоне от отрицательной до положительной бесконечности, поэтому их сложно напрямую интерпретировать как уровни уверенности.
Softmax выполняет это преобразование с помощью двух основных операций:
-
Возведение в экспоненту: функция вычисляет экспоненту каждого входного числа. Это гарантирует, что все значения будут неотрицательными (поскольку $e^x$ всегда положительно), и уменьшает влияние значений, значительно меньших максимального, одновременно выделяя наибольшие оценки.
-
Нормализация: функция суммирует значения после возведения в экспоненту и делит каждую отдельную экспоненту на эту общую сумму. Этот процесс нормализации масштабирует числа так, чтобы они представляли части целого, позволяя разработчикам интерпретировать их как процентные показатели уверенности.
Практические применения#
Способность выдавать понятные вероятности делает Softmax незаменимой в различных отраслях и задачах машинного обучения (ML).
- Классификация изображений: в компьютерном зрении модели используют Softmax для категоризации изображений. Например, когда классификационная модель Ultralytics YOLO26 анализирует фотографию, она может выдать оценки для таких классов, как «золотистый ретривер», «немецкая овчарка» и «пудель». Softmax преобразует эти оценки в вероятности (например, 0.85, 0.10, 0.05), указывая на высокую вероятность того, что на изображении находится золотистый ретривер. Это крайне важно для задач от автоматической организации фотографий до медицинской диагностики в сфере ИИ в здравоохранении.
- Обработка естественного языка (NLP): Softmax лежит в основе генерации текста в больших языковых моделях (LLMs). Когда модель, например Transformer, генерирует предложение, она предсказывает следующее слово (токен), вычисляя оценку для каждого слова в своем словаре. Softmax преобразует эти оценки в вероятности, позволяя модели выбрать наиболее вероятное следующее слово и обеспечивая плавный машинный перевод и разговорный ИИ.
- Обучение с подкреплением: агенты в задачах обучения с подкреплением часто используют Softmax для выбора действий. Вместо того чтобы всегда выбирать действие с наивысшим значением, агент может использовать вероятности для исследования различных стратегий, находя баланс между исследованием и эксплуатацией в таких средах, как управление роботами или игра в игры.
Пример кода на Python#
В следующем примере показано, как загрузить предварительно обученную классификационную модель YOLO26 и получить оценки вероятностей, рассчитанные с помощью Softmax.
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on a sample image
results = model("https://ultralytics.com/images/bus.jpg")
# The model applies Softmax internally. Access the top prediction:
# The 'probs' attribute contains the probability distribution.
top_prob = results[0].probs.top1conf.item()
top_class = results[0].names[results[0].probs.top1]
print(f"Predicted Class: {top_class}")
print(f"Confidence (Softmax Output): {top_prob:.4f}")Отличия Softmax от связанных концепций#
Хотя Softmax доминирует в многоклассовых сценариях, важно отличать ее от других математических функций, используемых при обучении моделей и проектировании архитектуры:
- Sigmoid: функция Sigmoid также масштабирует значения в диапазон от 0 до 1, но обрабатывает каждый выход независимо. Это делает Sigmoid идеальной для бинарной классификации (да/нет) или классификации по нескольким меткам, в которой классы не являются взаимоисключающими (например, на изображении одновременно могут присутствовать «человек» и «рюкзак»). Softmax заставляет вероятности в сумме составлять единицу, поэтому классы конкурируют друг с другом.
- ReLU (выпрямленная линейная единица): ReLU используется главным образом в скрытых слоях сети для внесения нелинейности. В отличие от Softmax, ReLU не ограничивает выходные значения определенным диапазоном (она просто выдает ноль для отрицательных входных значений, а для положительных — само входное значение) и не формирует распределение вероятностей.
- Argmax: Softmax предоставляет вероятности для всех классов, а функция Argmax часто используется вместе с ней для выбора единственного индекса с наибольшей вероятностью. Softmax предоставляет «мягкую» уверенность, а Argmax — «жесткое» итоговое решение.
Расширенная интеграция#
В современных конвейерах ML Softmax часто вычисляется неявно внутри функций потерь. Например, кросс-энтропийная функция потерь объединяет Softmax и отрицательное логарифмическое правдоподобие в один математический шаг для повышения численной стабильности во время обучения. Такие платформы, как Ultralytics Platform, автоматически обрабатывают эти сложности, позволяя пользователям обучать надежные модели без ручной реализации этих математических операций.









