6 votos

¿Lo que ' s detener un gradiente desde hacer una probabilidad negativa?

Supongamos que tengo una 1000-la longitud del vector de ceros y unos, y estoy de modelado de cada uno de sus componentes como yo.yo.d. De Bernoulli. Entonces la probabilidad de que el vector es

$$p(x | \theta) =\prod_{d=1}^{1000}\theta_d^{x_d}(1-\theta_d)^{1-x_d} $$

Quiero maximizar el logaritmo de la probabilidad a través de la gradiente de la pendiente.

$$\nabla_\theta logp(x|\theta) = \frac{1}{p(x|\theta)} \nabla_\theta\prod_{d=1}^{1000}\theta_d^{x_d}(1-\theta_d^{1-x_d}) $$

Así, por $\frac{\partial{logp(x|\theta)}}{\theta_i} $

$$\frac{\partial{logp(x|\theta)}}{\theta_i} = \frac{1}{p(x|\theta)} \prod_{d = 1, d\ne i}^{1000}\theta_d^{x_d}(1-\theta_d^{1-x_d})(x_i\theta_i^{x_i-1}(1-\theta_i)^{1-x_i}-(1-x_i)(1-\theta_i)^{-x_i})$$

donde la última parte es simplemente la derivada (regla del producto) de una de Bernoulli. Debido a que el $x$'s son 0 o 1, la última parte,

$$ (x_i\theta_i^{x_i-1}(1-\theta_i)^{1-x_i}-(1-x_i)(1-\theta_i)^{-x_i})$$

funciona a 1 o -1. Por lo que el gradiente con respecto a $\theta$ puede ser negativo.

Lo que está deteniendo de decisiones $\theta_i$ menor que cero? Estoy tratando de implementar este y estoy corriendo en este problema. Porque las probabilidades son tan pequeñas que tengo a la suma de los registros, pero a veces $\theta$ termina negativo.

8voto

throwaway Puntos 18

Hay un par de problemas con las expresiones. Voy a tratar de estos, a continuación, responder a la pregunta de abajo.

En su expresión, $p(x \mid \theta)$ siempre será 0 si $x=1$. Debería ser $\theta^{x_d} (1 - \theta)^{1-x_d}$ en lugar de $\theta^{x_d} (1 - \theta^{1-x_d})$. No hay necesidad de subíndice de las thetas; los datos son yo.yo.d. por lo $\theta$ es un único valor escalar que es compartida por todos los puntos de datos. Si, al realizar la gradiente de la pendiente te gustaría trabajar con la negativa de registro de la probabilidad (de lo contrario se estaría minimizando la probabilidad en lugar de la maximización). Utilizar el registro de probabilidad si se utiliza el gradiente de ascenso.

La negativa de registro de probabilidad debe ser:

$$L(\theta) = -\log \prod_{d=1}^{n} \theta^{x_d} (1 - \theta)^{1-x_d}$$

El registro de un producto es una suma de registros:

$$L(\theta) = -\sum_{d=1}^{n} \log \left ( \theta^{x_d} (1 - \theta)^{1-x_d} \right )$$

La diferenciación de w.r.t. $\theta$, tenemos:

$$\frac{d}{d\theta} L(\theta) = -\sum_{d=1}^{n} \left ( \frac{x_d}{\theta} + \frac{x_d-1}{1 - \theta} \right )$$

Puede gradiente de la pendiente poner la $\theta$ a ser menor que 0 o mayor que 1? Una cosa que tienden a evitar esto es que, cuando el conjunto de datos contiene una combinación de ceros y unos, la negativa de registro de probabilidad enfoques infinito como $\theta$ se aproxima a 0 o 1. Esto desalienta a los de gradiente de la pendiente de que se acercan o exceden estos valores; el gradiente se tire $\theta$ en un rango razonable.

Por ejemplo, aquí está la negativa de registro de la probabilidad y el gradiente de algunos de los puntos muestreados yo.yo.d. a partir de una distribución de Bernoulli con cierto $\theta=0.7$:

enter image description here

Pero, dicen los que podemos establecer el tamaño del paso demasiado grande. Por ejemplo, dicen que el actual $\theta$ es de 0,5 (así gradiente de la pendiente de un paso en la dirección positiva), y el tamaño de paso es algo de gran valor. Podemos atinar a la óptima ($\theta=0.7$), e incluso superan el parámetro válido rango; $\theta$ podría terminar mayor que 1. Si esto sucede, la expresión para el registro negativo de probabilidad devolverá un valor complejo porque estaríamos tomando el logaritmo de un número negativo. De esta forma se rompe la optimización.

El caso es diferente cuando el conjunto de datos contiene todo ceros o todo unos. Por ejemplo, aquí está la negativa de registro de la probabilidad y el gradiente de 100 valores que todos son uno:

enter image description here

El verdadero valor de $\theta$ es 1, el cual tiene un registro negativo de probabilidad de 0. Pero, en cuanto a las expresiones anteriores, la pendiente es de -100. Esto significa gradiente de la pendiente se mantenga dando un paso en la dirección positiva. Y, en este caso, la expresión para el registro negativo de probabilidad producirá cada vez más los valores negativos. Así, el gradiente de descenso continuará aumentando $\theta$ sin límite.

El problema es que el gradiente de la pendiente es un algoritmo de optimización sin restricciones, pero este problema requiere que el $\theta \in [0, 1]$. Resolver el problema correctamente requiere de imponer esta restricción. Por supuesto, este problema puede ser resuelto simplemente calculando la frecuencia de los datos (no es necesario para iterativo de optimización). Pero, por el bien de la ilustración, hay un par de métodos de trabajo. Es una manera de volver a parametrizar el problema. Por ejemplo, podríamos dejar $\theta = \exp(\alpha)$, lo $\alpha$ puede tomar cualquier valor real y $\theta$ siempre será positivo. A continuación, podemos utilizar un algoritmo de optimización sin restricciones para minimizar la negativa de registro de probabilidad w.r.t. $\alpha$. Otro enfoque es el uso de un algoritmo de optimización que nos permite imponer obligado restricciones, lo que obligará a $\theta$, se encuentra en el rango correcto. Hay dedicado solucionadores de problemas que se pueden aplicar a muchos tipos de restricciones, y la mejor opción dependerá del problema concreto. Un ejemplo sencillo en este caso sería modificar gradiente de la pendiente de clip theta para el rango permitido después de cada paso: $\theta = \min(\max(\theta, 0), 1)$. Este es un ejemplo de un "gradiente método de proyección'. Hay otros métodos con una convergencia más rápida.

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