Температура - это гиперпараметр нейронных сетей, используемый для контроля случайности прогнозов путем масштабирования логитов перед применением 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