Словарь ИИ
Что такое softmax
Коротко
Softmax это функция, которая превращает набор произвольных чисел в вероятности: все значения становятся от нуля до единицы и в сумме дают единицу.
Языковые модели · softmax
Михаил МозгПроверено: 1 минута чтения
Ребенку
Представь, что вы с друзьями делите большой торт, а каждый заранее сказал, насколько сильно хочет сладкого. Кто хочет сильнее, тому достается кусок побольше, но весь торт делится без остатка, ни одной лишней крошки. Нейросеть делит свою уверенность между вариантами ответа точно так же: целиком и по силе желания.
Простыми словами
Модель на выходе выдает для каждого варианта просто число, иногда отрицательное. Людям и программам нужны понятные шансы. Эта функция делает пересчет: каждое число возводит в экспоненту, чтобы все стали положительными, а потом делит на общую сумму. В итоге получаются доли, которые складываются в единицу. Большие числа после пересчета отрываются от маленьких еще сильнее, поэтому явный фаворит забирает почти весь шанс. Так оценки категорий письма превращаются в понятные оператору доли для «жалобы», «вопроса» и «благодарности».
Для бизнеса
Softmax стоит внутри почти любой нейросети, которая выбирает: следующее слово, категорию заявки, тему документа. Для руководителя важно одно следствие: вероятности на выходе всегда складываются в сто процентов, даже если ни один вариант не подходит. Модель, обученная на трех категориях, отнесет письмо о чем-то новом к одной из них и может показать высокую уверенность. Поэтому в системах классификации добавляют категорию «другое» и порог, ниже которого решение принимает человек. Вторая практическая деталь: настройка температуры работает именно через эту функцию, сглаживая или заостряя распределение. Где такие пороги нужны в процессах, видно при разборе того, как ИИ устроен в компании.
Для специалиста
Функция softmax отображает вектор z из R^n в симплекс вероятностей: σ(z)_i = exp(z_i) / Σ_j exp(z_j). Она дифференцируема, монотонна по каждому аргументу и не меняется при сдвиге всех компонент на константу, поэтому при вычислении из логитов вычитают максимум, чтобы избежать переполнения экспоненты. С температурой T аргументы делят на T: при T, стремящемся к нулю, функция переходит в argmax, при росте T распределение приближается к равномерному. В паре с кросс-энтропией градиент по логитам равен разности предсказанных вероятностей и one-hot цели, что упрощает обучение классификаторов. Документация PyTorch для обучения рекомендует LogSoftmax вместо Softmax с последующим логарифмом как более быстрый и численно устойчивый вариант. В трансформере Vaswani и соавторов (2017) softmax нормирует оценки внимания QK^T, деленные на корень из d_k. Для ускорения на больших словарях предложены иерархический и адаптивный варианты, а для разреженных распределений sparsemax.
Пример
Модель сортирует обращения на «возврат», «доставку» и «оплату». Клиент спрашивает о вакансии, а softmax все равно распределяет вероятность между тремя темами, и одна из них получает большую часть. Поэтому в систему добавили порог и ручную проверку.
Связанные термины
Вопросы и ответы
Зачем нужна функция softmax?
Почему softmax может быть уверен в неправильном ответе?
Источники
Где это применяют в компании
Не уверены, нужно ли это вашей компании?
Карта ИИ-решений