Softmax

shemanovskiy
2 min readMar 11, 2019

--

Softmax — это логистическая функция для многомерного случая. Интересно, что русскоязычного термина для этой функции так и не появилось и в русской статье википедии она так и зовётся — softmax.

Что такое “для многомерного случая”? Это означает, что функцию применяют не к отдельному значению, а к вектору. Например, её можно использовать в том случае, когда стоит задача многоклассовой классификации. Для подобной классификации сеть строят таким образом, что на последнем слое количество нейронов оказывается равным количеству искомых классов. При этом каждый нейрон должен выдавать значение вероятности принадлежности объекта к классу, то есть значение между нулём и единицей, а все нейроны в сумме должны дать единицу.

Вот так выглядит формула softmax:

большая K здесь указывает на количество классов.

Для того, чтобы было понятно, как работает эта формула, рассмотрим простой пример, в котором нужно найти принадлежность объекта к одному из пяти классов. Допустим, на последнем слое мы посчитали z по формуле:

и получили вот такой вектор значений:

Сначала посчитаем, знаменатель формулы, то есть, просуммируем все элементы вектора:

значение при этом окажется приблизительно равным 30.62:

Остаётся каждое из значений вектора поделить на получившуюся сумму, что на выходе даст вот такой вектор:

В итоге, с вероятностью 66% объект из этого примера можно отнести к третьему классу (если счёт начинать с нуля).

*Для простоты восприятия все значения в примере округлены, поэтому в сумме получается чуть-чуть больше единицы.

https://ru.wikipedia.org/wiki/Softmax

--

--

No responses yet