Loading [MathJax]/jax/element/mml/optable/MathOperators.js

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(softmax) es
log(softmax)={1softmax,si i=jsoftmax,si ij ¿De dónde proviene esa expectativa? ϕ(s,a) es un vector, θ también es un vector. π(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: πθ(s,a)=softmax=eϕ(s,a)

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