26 votos

Registro de la derivada de la función Softmax.

introduzca la descripción de la imagen aquí

¿Podría alguien explicar cómo se llegó a esa derivada?

Según yo, la derivada de $\log(\text{softmax})$ es
$$ \nabla\log(\text{softmax}) = \begin{cases} 1-\text{softmax}, & \text{si $i=j$} \\ -\text{softmax}, & \text{si $i \neq j$} \end{cases} $$ ¿De dónde proviene esa expectativa? $\phi(s,a)$ es un vector, $\theta$ también es un vector. $\pi(s,a)$ denota la probabilidad de tomar la acción a en el estado s.

48voto

Blair Fraser Puntos 366

La derivación de la función de puntuación de softmax (también conocida como vector de elegibilidad) es la siguiente:

Primero, note que: $$\pi_\theta(s,a) = softmax = \frac{e^{\phi(s,a)^\intercal\theta}}{\sum_{k=1}^Ne^{\phi(s,a_k)^\intercal\theta}}$$

Lo importante aquí es que la diapositiva solo identifica la proporcionalidad, no la función completa de softmax que requiere el factor de normalización.

Continuando con la derivación:

Usando la identidad de $\log$ $\log(x/y) = \log(x) - \log(y)$ podemos escribir $$\log(\pi_\theta(s,a)) = \log(e^{\phi(s,a)^\intercal\theta}) - \log(\sum_{k=1}^Ne^{\phi(s,a_k)^\intercal\theta})$$

Ahora tomamos el gradiente:

$$\nabla_\theta\log(\pi_\theta(s,a)) = \nabla_\theta\log(e^{\phi(s,a)^\intercal\theta}) - \nabla_\theta\log(\sum_{k=1}^Ne^{\phi(s,a_k)^\intercal\theta})$$

El término de la izquierda se simplifica de la siguiente manera:

$$left= \nabla_\theta\log(e^{\phi(s,a)^\intercal\theta}) = \nabla_\theta\phi(s,a)^\intercal\theta = \phi(s,a)$$

El término de la derecha se simplifica de la siguiente manera:

Usando la regla de la cadena: $$\nabla_x\log(f(x)) = \frac{\nabla_xf(x)}{f(x)}$$

Podemos escribir:

$$right = \nabla_\theta\log(\sum_{k=1}^Ne^{\phi(s,a_k)^\intercal\theta}) = \frac{\nabla_\theta\sum_{k=1}^Ne^{\phi(s,a_k)^\intercal\theta}}{\sum_{k=1}^Ne^{\phi(s,a_k)^\intercal\theta}}$$

Tomando el gradiente del numerador obtenemos:

$$right = \frac{\sum_{k=1}^N{\phi(s,a_k)}e^{\phi(s,a_k)^\intercal\theta}}{\sum_{k=1}^Ne^{\phi(s,a_k)^\intercal\theta}}$$

Sustituyendo la definición de $\pi_\theta(s,a)$ podemos simplificar a:

$$right = \sum_{k=1}^N{\phi(s,a_k)}\pi_\theta(s,a_k)$$

Dada la definición de Valor Esperado:

$$\mathrm{E}[X] = X \cdot P = x_1p_1+x_2p_2+ ... +x_np_n$$

Lo cual en inglés es simplemente la suma de cada característica multiplicada por su probabilidad.

$$X = características = {\phi(s,a)}$$

$$P = probabilidades =\pi_\theta(s,a)$$

Entonces ahora podemos escribir el valor esperado de las características:

$$right = \mathrm{E}_{\pi_\theta}[\phi(s,\cdot)]$$

donde $\cdot$ significa todas las posibles acciones.

Juntándolo todo: $$\nabla_\theta\log(\pi_\theta(s,a)) = left - right = \phi(s,a) - \mathrm{E}_{\pi_\theta}[\phi(s,\cdot)]$$

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