¿Qué métricas debo usar para evaluar un modelo generativo cuantitativamente y qué tan confiables son?

Hay dos ideas generales introducidas por [1606.03498] Técnicas mejoradas para entrenar GAN (y probablemente también autores anteriores a ellas) que describen métricas para evaluar modelos generativos, como GAN, cuantitativamente. En términos generales, estas dos métricas son:

  1. ¿Puede un humano saber si los datos generados son reales o falsos?
  2. ¿Puede un modelo entrenado clasificando datos reales asignar alta probabilidad a los datos generados (o partes relevantes de los mismos)?

Hay varias formas diferentes de medir estas dos métricas; por ejemplo, los ensayos en humanos pueden tener una estructura ligeramente diferente, y hay diferentes formas en que podemos imaginarnos usando una red auxiliar para probar nuestros puntos de datos generados.

En aras de la explicación, dejemos que los datos con los que trabajamos sean imágenes. En Salimans et. Alabama.’ En el artículo, informaron que los resultados de los ensayos en humanos sobre la evaluación de imágenes generadas pueden variar enormemente según la forma en que los anotadores reciben retroalimentación. La alternativa a los ensayos en humanos es utilizar un modelo previamente entrenado para evaluar las imágenes generadas.

En otras palabras, dada una imagen [matemática] x [/ matemática], queremos la distribución condicional [matemática] P (y | x) [/ matemática] donde [matemática] P [/ matemática] representa el modelo, y [matemática ] y [/ math] representa la etiqueta que se le asignó. Debido a que queremos un alto nivel de realismo, esta distribución debería tener baja entropía , o en otras palabras, la salida de softmax debería centrarse principalmente en una etiqueta, y no extenderse sobre muchas de ellas. Al mismo tiempo, la distribución marginal sobre todas las imágenes generadas:

[matemáticas] \ displaystyle \ int P (y | x = G (z)) dz [/ matemáticas]

debería tener una entropía alta (distribuida en muchas clases) , porque queremos que nuestro generador exhiba una gran variación sobre las imágenes generadas. De lo contrario, nos encontramos con el problema del colapso del modo , donde el generador solo generará unos pocos, si es que hay alguno, tipos de imágenes diferentes. La combinación de estos dos conduce a una única métrica cohesiva:

[math] \ exp \ mathbb {E} _x KL (p (y | x) | p (y)) [/ math].

En Salimans et. Según la formulación de al., el modelo previamente entrenado es el modelo InceptionNet, por lo que llaman a esta métrica el puntaje Inception .

Otros autores han propuesto ligeras variantes a estas dos métricas. En [1611.07004v1] Traducción de imagen a imagen con redes adversas condicionales y [1703.10593] Traducción de imagen a imagen no emparejada utilizando redes adversas compatibles con el ciclo, discuten el uso de un tipo particular de prueba humana, que denominan Amazon Mechanical Turk (AMT) puntuación perceptiva y detalla su diseño experimental. Además, en lugar de usar InceptionNet, usan el modelo FCN8 para la segmentación semántica para evaluar sus imágenes traducidas.

A pesar del progreso, evaluar la realidad de los modelos generativos sigue siendo un problema abierto y difícil. Sería ideal tener simplemente una función objetiva que mida la cantidad de realidad que un humano asignaría a una imagen generada y maximizarla directamente, en lugar de maximizar otras representaciones, como lo hacemos ahora. Sin embargo, esta área está recibiendo mucha atención, por lo que pronto podríamos encontrar una respuesta. 🙂

Hay varias formas de evaluar modelos generativos.

Puntuación inicial : esta métrica se inventa en Salimans et al. 2016 (Técnicas mejoradas para la formación de GAN) y se basa en la heurística de que las muestras “realistas” generadas por la red generativa deben tener un vector de predicción softmax de baja entropía cuando pasan a través de una red pre-entrenada, como Inception en Imagenet. Una baja entropía para una sola muestra indica que la red reconoce esta imagen como una clase particular de objeto. Sin embargo, la “realistaidad” es solo un aspecto del buen desempeño de un modelo generativo.

Otro aspecto muy importante es la ” cobertura de modo” , es decir, qué tan diversas son las muestras generadas. Esto sirve como una medida aproximada de si se produjo algún fenómeno de ” colapso de modo ” durante el entrenamiento, lo que resulta en muestras con muy poca variación entre ellos. (Esta es una falla común en el entrenamiento GAN). La varianza de las muestras se mide por alta entropía sobre las muestras generadas:

donde x es la muestra, y es las predicciones softmax del modelo Inception, KL es la divergencia Kullback-Leibler y E es la expectativa sobre las muestras generadas. La exponenciación es simplemente para generar diferencias más grandes con dígitos menos significativos, no afecta el rendimiento relativo de diferentes conjuntos de muestras, ya que es monotónica.

Esta métrica no se basa en ninguna teoría concreta, por lo que los resultados no son rigurosos. En general, las puntuaciones iniciales de los datos reales se comparan con las muestras del método propuesto en un lote grande junto con algunos métodos de referencia recientes. Siempre ha sido el caso que los datos reales siempre tienen puntajes más altos que los datos generados hasta ahora. La puntuación de inicio de datos reales en un conjunto de datos es como un límite superior teórico (!) En esta métrica de rendimiento. La principal utilidad de esta métrica es ver cómo varios métodos propuestos se comparan entre sí.

Interpolación de espacio latente: esta es una evaluación de rendimiento muy heurística, práctica y divertida. Sabemos que la generalización está asociada con la suavidad, ¿verdad? Así que esperamos ver transiciones suaves entre muestras cuando interpolamos sobre el espacio latente. Aquí hay una muestra de interpolación que se ve muy suave para mí. Lo único es: no tenemos una forma de cuantificar la suavidad mediante este método.

Fuente de la imagen: Visualización del espacio latente – Deep Learning bits # 2 – Julien Despois – Medium

More Interesting

¿Cuál es la mejor biblioteca SVM utilizable desde Python?

¿Qué es el aprendizaje automático en términos simples?

El aprendizaje profundo hará que los humanos sean innecesarios para qué trabajos.

¿Tiene sentido el uso de bosques aleatorios en los datos financieros si se supone que los rendimientos dependen en serie (es decir, que los rendimientos actuales dependen de los rendimientos pasados)?

En la minería de texto, ¿por qué deberíamos eliminar el término disperso de la matriz de términos del documento?

Cómo desarrollar software que se afinará

¿Cuáles son los poderes de clasificación sobre la agrupación? ¿Por qué elegiría una clasificación?

¿Qué biblioteca de Java utilizas para los algoritmos genéticos? ¿Por qué?

¿Cuáles son las implicaciones epistemológicas del hecho de que no podríamos haber programado conscientemente una red neuronal para hacer lo que hace?

¿Qué puedo hacer si soy un experto en aprendizaje automático supervisado?

¿Qué opinas de la biblioteca de aprendizaje profundo de código abierto de Amazon 'DSSTNE' (pronunciado Destiny)?

Los hiperparámetros del modelo de sintonización no encontraron los parámetros óptimos que uso en mi modelo. ¿Por qué?

¿Es posible verificar manualmente si los vectores de soporte siguen hiperplanos teóricos en SVM usando un núcleo de base radial?

¿Alguien ha usado ML para hacer un diseño * no trivial * de algoritmos CS de bajo nivel (ver comentarios)?

¿Cuál es la diferencia entre tagger, chunker y NER?