- BrainTools - https://www.braintools.ru -

SoftMax: как нейросети превращают сырые числа в уверенные вероятности — разбор с примерами и математикой

SoftMax: как нейросети превращают сырые числа в уверенные вероятности — разбор с примерами и математикой - 1

В реальности всё полно оттенков: ничего чисто чёрного или белого, то же в машинном обучении [1], тк решения редко бывают абсолютными. Возьмём задачу: нейросеть анализирует фото еды и определяет, это пицца, суши или салат. Для двух классов хватит сигмоиды, но с несколькими нужна функция, которая раздаст вероятности по всем вариантам, чтобы их сумма была точно 1. Вот где и выходит SoftMax- стандарт для многоклассовой классификации. Сегодня разберём её от А до Я: интуицию [2], шаги, формулы и хитрости.

Почему нужен SoftMax? От беспорядочных логитов к чётким вероятностям

В конце нейросети, после всех слоёв, модель выдаёт “грубые” значения- логины (logits). Это просто числа после умножений, сумм и активаций: могут быть плюсовыми, минусовыми, любыми. Например, для распознавания погоды по фото (солнечно, дождливо, снежно) логины могут быть: 5.2 для “солнечно”, 0.8 для “дождливо” и -3.1 для “снежно”.

Беда… как понять -3.1 как шанс? Вероятности от 0 до 1, сумма = 1. SoftMax фиксит это: создаёт распределение, где сильные значения доминируют, а слабые угасают, делая выводы понятными и полезными.

Разбор SoftMax по шагам: простой пример

SoftMax- два простых шага: экспонента для позитива + нормализация.

Пример: Нейросеть смотрит на фото и даёт логины: 4 для “пицца”, 2 для “бургер”, -1 для “салат”.

  1. Экспонента. Берём e^x (e ≈ 2.718). Всё становится положительным, и различия растут.

    e^4 ≈ 54.598

    e^2 ≈ 7.389

    e^{-1} ≈ 0.368 Было разница 2 между 4 и 2-> стало ~47.209. SoftMax усиливает фаворитов!

  2. Нормализация. Суммируем (54.598 + 7.389 + 0.368 ≈ 62.355) и делим каждое на сумму.

    “Пицца”: 54.598 / 62.355 ≈ 0.876 (87.6%)

    “Бургер”: 7.389 / 62.355 ≈ 0.119 (11.9%)

    “Салат”: 0.368 / 62.355 ≈ 0.006 (0.6%) Сумма = 1. Модель ставит на пиццу, но не игнорит альтернативы.

Это делает предсказания интерпретируемыми: “87% шанс, что это пицца”.

Математика SoftMax:

Вот формула в простом тексте:

S(z_i) = e^{z_i} / sum_{j=1 to K} e^{z_j}

S(z_i): Вероятность класса i.

z_i: Логит класса i.

Сумма внизу: по всем K классам.

Числитель- exp вашего логита, знаменатель- сумма exp всех. Легко дифференцировать для обучения.

Откуда “Soft” в Max? Контраст с Hard Max

SoftMax это мягкий максимум. Hard Max был бы жёстким: максимуму 1, остальным 0. В примере: 1 для пиццы, 0 для других. Как argmax.

Hard Max не подходит для обучения: градиент нулевой почти всегда, сеть застрянет.

Температура: как регулировать “уверенность”

В моделях вроде LLM добавляют T (температуру):

S(z_i) = e^{z_i / T} / sum_{j=1 to K} e^{z_j / T}

T > 1: Размывает- модель “экспериментирует”, повышая шансы слабым (для креатива).

T < 1: Обостряет- близко к Hard Max, для точности.

T=1: Обычный SoftMax.

В примере при T=3: ~0.585, 0.316, 0.099 равномернее. При T=0.3: ~0.997, 0.003, 0.000- почти наверняка пицца.

SoftMax + Cross-Entropy: дуэт для обучения

SoftMax обычно с Cross-Entropy Loss. SoftMax даёт предсказания hat{y}, Cross-Entropy меряет разницу с true y (one-hot: 1 для правильного, 0 для остальных).

Градиент пары: hat{y} – y. Просто и эффективно! Идеально для backprop в классификации.

SoftMax- фундамент DL с вероятностями

SoftMax это must-have для задач с несколькими классами: от CV до NLP. Он orderly из хаоса, усиливает уверенность, позволяет сети эволюционировать, без него модели были бы жёсткими и неэффективными.

Автор: Nikta3

Источник [3]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/24746

URLs in this post:

[1] обучении: http://www.braintools.ru/article/5125

[2] интуицию: http://www.braintools.ru/article/6929

[3] Источник: https://habr.com/ru/articles/988936/?utm_campaign=988936&utm_source=habrahabr&utm_medium=rss

www.BrainTools.ru

Rambler's Top100