Перейти к основному содержимому

Предсказание вероятностей и преобразование SoftMax

Часто в прикладных задачах требуется хорошо предсказывать не только метку класса y^{1,2,...C}\hat{y}\in\{1,2,...C\}, но и вероятность каждого класса p(c),c=1,2,...C.p(c), c=1,2,...C. Например, в задачах прогноза погоды важно не только предсказать, будет ли ясная погода или дождь, но и вероятность дождя, поскольку даже если она меньше 50%, но близка к ней, то имеет смысл брать зонтик.

Для предсказания вероятностей классов нужно использовать их дискриминантные функции gc(x),c=1,2,...C,g_c(\mathbf{x}), c=1,2,...C, характеризующие степень уверенности классификатора в том или ином классе. Поскольку дискриминантные функции могут принимать произвольные значения - как положительные, так и отрицательные, а сумма дискриминантных функций не обязательно равна единице, то к ним необходимо применить некоторое монотонно-возрастающее преобразование FτF_{\tau}, обеспечивающее два свойства:

  • выходы должны быть неотрицательными,

  • выходы должны суммироваться в единицу.

В качестве такого преобразования используют операцию SoftMax, используемую для перевода ненормированных рейтингов классов в их вероятности:

(g1(x)g2(x)gC(x))(eg1(x)/τi=1Cegi(x)/τeg2(x)/τi=1Cegi(x)/τegC(x)/τi=1Cegi(x)/τ)=(p^(y=1x)p^(y=2x)p^(y=Cx))\begin{pmatrix} g_1(\mathbf{x}) \\ g_2(\mathbf{x}) \\ \cdots \\ g_C(\mathbf{x}) \\ \end{pmatrix} \longrightarrow \begin{pmatrix} \cfrac{e^{g_1(\mathbf{x})/\tau}}{\sum_{i=1}^C e^{g_i(\mathbf{x})/\tau}} \\ \cfrac{e^{g_2(\mathbf{x})/\tau}}{\sum_{i=1}^C e^{g_i(\mathbf{x})/\tau}} \\ \cdots \\ \cfrac{e^{g_C(\mathbf{x})/\tau}}{\sum_{i=1}^C e^{g_i(\mathbf{x})/\tau}} \\ \end{pmatrix} = \begin{pmatrix} \hat{p}(y=1|\mathbf{x}) \\ \hat{p}(y=2|\mathbf{x}) \\ \cdots \\ \hat{p}(y=C|\mathbf{x}) \\ \end{pmatrix}

Как вы думаете, на что влияет параметр τ\tau?

Параметр τ\tau, называемый температурой (temperature), определяет контрастность получаемых вероятностей. Чем τ\tau выше, тем метод становится менее чувствительным к индивидуальным различиям дискриминантных функций, результирующее распределение вероятностей становится более близким к равномерному.

И наоборот, чем τ\tau ниже, тем сильнее SoftMax реагирует на изменения рейтингов, а выходные вероятности становятся более контрастными.

Эти случаи показаны на рисунке:

class-probs-for-diff-temperature.png

Обобщение SoftMax-преобразования.

SoftMax-преобразование можно обобщить, применяя любую монотонно возрастающую функцию Fτ()F_{\tau}(\cdot), принимающую неотрицательные значения:

(g1(x)g2(x)gC(x))(Fτ(g1(x))i=1CFτ(gi(x))Fτ(g2(x))i=1CFτ(gi(x))Fτ(gC(x))i=1CFτ(gi(x)))=(p^(y=1x)p^(y=2x)p^(y=Cx))(*)\begin{pmatrix} g_1(\mathbf{x}) \\ g_2(\mathbf{x}) \\ \cdots \\ g_C(\mathbf{x}) \\ \end{pmatrix} \longrightarrow \begin{pmatrix} \cfrac{F_{\tau}(g_1(\mathbf{x}))}{\sum_{i=1}^C F_{\tau}(g_i(\mathbf{x}))} \\ \cfrac{F_{\tau}(g_2(\mathbf{x}))}{\sum_{i=1}^C F_{\tau}(g_i(\mathbf{x}))} \\ \cdots \\ \cfrac{F_{\tau}(g_C(\mathbf{x}))}{\sum_{i=1}^C F_{\tau}(g_i(\mathbf{x}))} \\ \end{pmatrix} = \begin{pmatrix} \hat{p}(y=1|\mathbf{x}) \\ \hat{p}(y=2|\mathbf{x}) \\ \cdots \\ \hat{p}(y=C|\mathbf{x}) \\ \end{pmatrix} \tag{*}

В частном случае Fτ(g)=eg/τF_\tau(g)=e^{g/\tau} получим операцию SoftMax.