Зачем нужна функция softmax? Почему не простая нормализация?

Я не знаком с глубоким обучением, поэтому это может быть вопрос для новичков. Насколько я понимаю, функция softmax в многослойных персептронах отвечает за нормализацию и распределение вероятностей для каждого класса. Если да, то почему бы нам не использовать простую нормализацию?

Допустим, мы получили вектор x = (10 3 2 1) с применением softmax, на выходе будет y = (0.9986 0.0009 0.0003 0.0001).

Применение простой нормализации (деление каждого элемента на sum(16)) будет y = (0.625 0.1875 0.125 0.166).

Кажется, что простая нормализация также может распределить вероятности. Итак, в чем преимущество использования функции softmax на выходном слое?


person soshi shimada    schedule 30.08.2017    source источник


Ответы (2)


Нормализация не всегда дает вероятности, например, она не работает, когда вы рассматриваете отрицательные значения. Или что, если сумма значений равна нулю?

Но использование экспоненты логитов меняет это, теоретически она никогда не равна нулю и может отображать полный диапазон логитов в вероятности. Так что это предпочтительнее, потому что это действительно работает.

person Dr. Snoopy    schedule 30.08.2017

Это зависит от функции потерь при обучении. Многие модели обучаются с помощью алгоритма журнала потерь, поэтому значения, которые вы видите в этом векторе, оценивают журнал каждой вероятности. Таким образом, SoftMax просто выполняет обратное преобразование к линейным значениям и нормализацию.

Эмпирическая причина проста: SoftMax используется там, где он дает лучшие результаты.

person Prune    schedule 30.08.2017