Подключиться через MCP →

Введите расчет

Введите K действительных чисел через запятые, пробелы или переносы строк.

Математическая формула

Реклама

Результатов

Softmax σ(z)
0.0900305732, 0.2447284711, 0.6652409558
распределение вероятностей (сумма равна 1)
Длина вектора K 3
Сумма выходных значений 1
Argmax (индекс с отсчётом от 1) 3
Максимальная вероятность 0,6652409558

Что такое функция softmax?

Функция softmax принимает вектор из K действительных чисел и превращает его в распределение вероятностей: каждое выходное значение строго лежит между 0 и 1, а сумма всех K значений равна ровно 1. Это стандартная функция активации выходного слоя в нейросетевых классификаторах — она переводит «сырые» оценки модели (логиты) в вероятности классов. Поскольку функция безразмерна, входные данные — это чистые числа без единиц измерения.

Плоская схема, показывающая преобразование вектора из трёх действительных чисел в три столбца вероятностей, сумма которых равна одному
Softmax преобразует вектор действительных чисел в распределение вероятностей, сумма которого равна 1.

Как пользоваться калькулятором

Введите входной вектор в поле в виде списка чисел, разделённых запятыми, пробелами или переносами строк (например, 1, 2, 3). Числа могут быть положительными, отрицательными, нулевыми или дробными. Нажмите «Рассчитать» — и вы получите вероятность softmax для каждой компоненты, сумму всех выходных значений (она должна равняться 1) и argmax — индекс (начиная с 1) наибольшей вероятности.

Разбор формулы

Для каждой компоненты j функция softmax вычисляется так: \(\sigma(z)_j = \dfrac{e^{z_j}}{\sum_{k} e^{z_k}}\). Возведение в экспоненту делает каждый член положительным, а деление на общую сумму нормирует их так, чтобы итог был равен 1. Для численной устойчивости калькулятор перед возведением в экспоненту вычитает из каждого элемента максимальное значение m:

$$\sigma(\mathbf{x})_i = \frac{e^{\,x_i - \max(\mathbf{x})}}{\displaystyle\sum_{j=1}^{K} e^{\,x_j - \max(\mathbf{x})}}$$

Общий множитель \(e^{-m}\) сокращается, поэтому результат остаётся прежним, но при больших входных значениях не возникает переполнения.

Реклама
Плоская схема структуры формулы softmax с экспонентами над суммой экспонент
Каждый выход — это экспонента одного элемента, делённая на сумму экспонент всех элементов.

Разбор примера

Для \(z = (1, 2, 3)\): \(e^{1} = 2{,}71828\), \(e^{2} = 7{,}38906\), \(e^{3} = 20{,}08554\), в сумме \(30{,}19287\). Поделив каждое на сумму, получаем

$$\sigma = (0{,}09003,\ 0{,}24473,\ 0{,}66524)$$

что в сумме даёт 1. Argmax — индекс 3, соответствующий наибольшему входному числу, с вероятностью \(0{,}66524\).

Частые вопросы

Почему сумма выходных значений всегда равна 1? Каждая экспонента делится на сумму всех экспонент, и эта нормировка гарантирует итог, равный 1.

Что будет, если все входные значения одинаковы? Получится равномерное распределение, где каждое выходное значение равно \(1/K\).

Изменится ли результат, если прибавить ко всем входам одну и ту же константу? Нет. Softmax инвариантна к сдвигу: прибавление одной и той же константы c ко всем входам не меняет результат — именно поэтому вычитание максимума безопасно.

Последнее обновление: