Cómo medir qué tan bueno es un modelo generativo

Fundamentalmente es el problema de medir alguna divergencia de la distribución del modelo de la distribución de datos reales.

Se podría medir qué tan bueno es un modelo generativo midiendo la divergencia KL entre la distribución del modelo y la distribución real, que se puede demostrar que es equivalente al método de máxima verosimilitud. Sin embargo, la divergencia KL no es simétrica para [matemática] Pr_ {generada} [/ matemática] y [matemática] Pr_ {real} [/ matemática], y esta medida asigna costos extremos cuando [matemática] Pr_ {generada} \ rightarrow 0 [/ math] o cuando [math] Pr_ {real} \ rightarrow 0 [/ math].

Para resolver este problema, se propuso la divergencia de Jensen-Shannon como una medida, que se define como [matemáticas] 0.5KL (Pr_ {generado} || \ overline {Pr_ {real} + Pr_ {generado}}) + 0.5KL (Pr_ {real} || \ overline {Pr_ {real} + Pr_ {generado}}) [/ math]

Y esta es la base de las redes de confrontación generativas (GAN). Sin embargo, el hecho de que exista un problema de gradiente de desaparición en el generador en las GAN hace que la capacitación bajo tal medida sea inestable.

En respuesta, las personas probaron la distancia de Wasserstein con cierto éxito, especialmente en la generación de imágenes.

En la generación del lenguaje, la perplejidad se usa para medir el modelo generativo, en este caso el modelo del lenguaje. La perplejidad como medida es equivalente a una entropía cruzada empíricamente estimada, que, a su vez, es lo mismo que medir la divergencia KL.

La cuestión de “probar modelos generativos” se ha estudiado desde el comienzo de las estadísticas, bajo el tema de “pruebas de bondad de ajuste” o “selección de modelos”. Sin embargo, aunque es un tema tan antiguo, de ninguna manera está resuelto. Las predicciones de puntuación realizadas a partir de los modelos generativos (por ejemplo, mediante validación cruzada) podrían ser un nuevo enfoque prometedor para el antiguo problema. En el contexto de la construcción de modelos bayesianos, Gelman sugiere una serie de métodos para la “verificación de modelos” en su libro.

Bueno, en realidad los modelos generativos también se pueden utilizar para la clasificación.

Usted entrenaría un modelo generativo para cada clase y luego calcularía un posterior. Por ejemplo, la clase [math] c [/ math], la clase condicional generativa cdf es [math] f (x | c; \ theta_c) [/ math]. Para calcular un posterior, necesitamos usar las clases previas [matemáticas] p (c) [/ matemáticas] (a menudo se usa el uniforme no informativo previo [matemáticas] p (c) = \ frac {1} {M} [ / math] para las clases [math] M [/ math]). La parte posterior es simplemente [matemáticas] p (c | x) = \ frac {p (c) f (x | c; \ theta_c)} {\ sum_d {p (d) f (x | d; \ theta_d)} } [/ math] donde [math] \ theta_d [/ math] son ​​los parámetros para el modelo de la clase [math] d [/ math]. Para la clasificación, simplemente elige la clase con la posterior más alta.