Sobes.tech
Middle
27

Как температура влияет на распределение вероятностей в softmax?

Компании, где спрашивали
Магнит

Ответ от нейросети

sobes.tech AI

Температура в функции softmax — это параметр, который масштабирует входные логиты перед применением экспоненты. Формально, если у нас есть вектор логитов (z = (z_1, z_2, ..., z_n)), то softmax с температурой (T) вычисляется как:

[ \text{softmax}(z_i) = \frac{e^{z_i / T}}{\sum_{j} e^{z_j / T}} ]

Влияние температуры:

  • Высокая температура ((T > 1)) делает распределение более "плоским", то есть вероятности становятся более равномерными. Это снижает уверенность модели в выборе наиболее вероятного класса.

  • Низкая температура ((T < 1)) усиливает различия между логитами, делая распределение более "острым" и сконцентрированным на наиболее вероятных классах.

  • При (T \to 0) softmax приближается к функции выбора максимума (argmax), выдавая почти детерминированный результат.

Пример:

import numpy as np

def softmax_with_temperature(logits, T=1.0):
    scaled_logits = logits / T
    exps = np.exp(scaled_logits - np.max(scaled_logits))
    return exps / np.sum(exps)

logits = np.array([2.0, 1.0, 0.1])
print(softmax_with_temperature(logits, T=0.5))  # более "острое" распределение
print(softmax_with_temperature(logits, T=2.0))  # более "плоское" распределение

Таким образом, температура позволяет контролировать степень уверенности модели в предсказаниях, что полезно, например, при генерации текста или в методах обучения с подкреплением.