29 votos

Invertir la función softmax

¿Es posible revertir la función softmax para obtener los valores originales $x_i$?

$$S_i=\frac{e^{x_i}}{\sum e^{x_i}} $$

En caso de 3 variables de entrada, este problema se reduce a encontrar $a$, $b$, $c$ dados $x$, $y$ y $z$:

\begin{cases} \frac{a}{a+b+c} &= x \\ \frac{b}{a+b+c} &= y \\ \frac{c}{a+b+c} &= z \end{cases}

¿Es solucionable este problema?

27voto

Mouffette Puntos 205

Ten en cuenta que en tus tres ecuaciones debes tener $x+y+z=1$. La solución general a tus tres ecuaciones son $a=kx$, $b=ky$ y $c=kz$ donde $k$ es un escalar cualquiera.

Por lo tanto, si quieres recuperar $x_i$ de $S_i$, nota que $\sum_i S_i = 1$, lo cual da la solución $x_i = \log (S_i) + c$ para todos los $i$, para alguna constante $c$.

17voto

La función softmax se define como:

$$S_i = \frac{\exp(x_i)}{\sum_{j} \exp(x_j)}$$

Tomando el logaritmo natural de ambos lados:

$$\ln(S_i) = x_i - \ln(\sum_{j} \exp(x_j))$$

Reorganizando la ecuación:

$$x_i = \ln(S_i) + \ln(\sum_{j} \exp(x_j))$$

El segundo término del lado derecho es una constante para todos los $i$ y se puede escribir como $C$. Por lo tanto, podemos escribir:

$$x_i = \ln(S_i) + C$$

Esta respuesta está adaptada de esta publicación en Reddit.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X