Почему мы должны использовать температуру в softmax? - PullRequest
0 голосов
/ 08 ноября 2019

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

1 Ответ

1 голос
/ 08 ноября 2019

Температура - это гиперпараметр нейронных сетей, используемый для контроля случайности прогнозов путем масштабирования логитов перед применением softmax. Например, в TensorFlow's Magenta [реализация] [1] LSTM температура представляет, на сколько разделить логиты до вычисления softmax.

Когда температура равна 1, мы вычисляем softmax непосредственно на логитах (немасштабированный выход более ранних слоев) и с использованием температуры 0,6 модель вычисляет softmax на logits/0.6, что приводит к большему значению. Выполнение softmax при больших значениях делает LSTM более уверенным (требуется меньше входных данных для активации выходного слоя), но также более консервативно в его выборках (вероятность выбора из маловероятных кандидатов меньше)). Использование более высокой температуры обеспечивает более мягкое распределение вероятностей по классам и делает RNN более «легко возбуждаемым» выборками, что приводит к большему разнообразию , а также большему количеству ошибок .

Функция softmax нормализует кандидатов на каждой итерации сети на основе их экспоненциальных значений, гарантируя, что выходы сети все находятся между нулем и единицей на каждом временном шаге.

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

- из Статья в Википедии о функции softmax

Ссылка

Хинтон, Джеффри, Ориол Виньялс и Джефф Дин. «Перегонка знаний в нейронной сети». Препринт arXiv arXiv: 1503.02531 (2015). Arxiv

...