¿Qué hay de nuevo con Wasserstein GAN?

Una respuesta más detallada aquí: implementación de Tensorflow de Wasserstein GAN – arxiv: https://arxiv.org/abs/1701.07875.

Citando a Sarath Shekkizhar [1] :

“Un documento bastante interesante que aborda el problema de la estabilidad en las GAN y la interpretabilidad de la función de pérdida durante el entrenamiento. Básicamente, las GAN son modelos que intentan aprender la distribución de datos reales minimizando la divergencia f (diferencia en la distribución de probabilidad) generando datos adversos. La convergencia en el objetivo min max de la GAN propuesta originalmente puede interpretarse como minimizar la divergencia de Jensen Shannon (JS). En este documento, los autores señalan las deficiencias en tales métricas cuando el soporte de las dos distribuciones que se comparan no se superponen y proponen usar la distancia de los motores de tierra / wasserstein como una alternativa a JS. El ejemplo de líneas paralelas proporciona una buena intuición de las diferencias en las métricas de divergencia f. Tenga en cuenta que cuando la divergencia f es discreta como en JS, KL, podemos enfrentar problemas en el aprendizaje de modelos con gradientes, ya que la pérdida de divergencia no es diferenciable en todas partes.

El teorema 1 propuesto en el documento es probablemente la conclusión clave para cualquiera que se pregunte por qué la distancia wasserstein podría ayudar en el entrenamiento de GANS. El teorema básicamente establece que una función de mapeo de distribución (crítica) que es continua con respecto a sus parámetros y localmente lipschitz tiene una distancia wasserstein continua y casi en todas partes diferenciable.

Una métrica continua y casi diferenciable en todas partes significaría que podemos entrenar fuertemente al discriminador antes de hacer una actualización del generador que a su vez recibiría gradientes confiables mejorados para entrenar desde el discriminador. Con las formulaciones anteriores de GAN dicha capacitación no fue posible ya que el discriminador de capacitación conduciría fuertemente a la desaparición de los gradientes.

Dado que las redes neuronales son generalmente continuas en sus parámetros, lo que hay que asegurarse es que el crítico sea Lipschitz. Al recortar los parámetros de peso en la crítica, evitamos que el modelo se sature mientras que el crecimiento se realiza como máximo. Esto significaría que los gradientes de la función están delimitados por la pendiente de esta linealidad que se convierte en límite de Lipschitz “.

Nota sobre la implementación:

  • “Después de pasar bastante tiempo para obtener la teoría en el documento, me sorprendió y me complació lo simple que fue la implementación.
    • Los principales cambios desde el punto de vista de las implementaciones son
    • El discriminador / crítico ya no produce una salida sigmoidea o probabilística.
    • La pérdida en el discriminador es simple, la diferencia en la salida entre imágenes reales y generadas.
    • Entrene al crítico varias veces para cada actualización del generador.
    • Los pesos en la crítica están sujetos a valores pequeños alrededor de cero.
    • Requiere una baja tasa de aprendizaje y optimizadores que no utilizan el impulso “.

Notas al pie

[1] shekkizh (Sarath Shekkizhar) · GitHub

En términos de la forma en que el algoritmo realmente cambia, eliminan algunas no linealidades. Para las GAN normales, aplicaría la no linealidad softplus a la salida del último matmul en el discriminador al calcular la pérdida. Aquí, toman la salida del matmul directamente.

EDITAR: también restringen el rango de los pesos, para garantizar la continuidad de Lipschitz. (Esto se ha hecho antes ocasionalmente, pero no de manera consistente o con esa interpretación, por ejemplo, goodfeli / adversarial)

Grabé una entrevista con el primer autor de este artículo (Martin Arjovsky) sobre Wasserstein GAN, que cubre su explicación de cómo es novedoso:

More Interesting

¿Por qué el uso de información mutua / ganancia de información / funciones similares funciona mejor que simplemente usar el error promedio (usando probabilidad) para un booleano (conjunto de datos de 2 clases) al construir un árbol de decisión?

¿Ha publicado Factual.com algún trabajo de investigación (o algún asunto técnico importante) sobre las técnicas de aprendizaje automático que utilizan para rastrear y extraer de la web?

¿Qué tan rápido es Theano en comparación con otras implementaciones de DBN? ¿Cómo se compara con otras implementaciones de GPU (potencialmente no públicas) para la velocidad de entrenamiento en grandes conjuntos de datos?

¿Por qué todas las principales empresas de tecnología abren fuentes principales de su tecnología de inteligencia artificial?

¿Cómo entrenamos redes neuronales en imágenes en lugar de datos numéricos?

¿Qué hace que un modelo sea interpretable?

Quiero hacer aplicaciones de visión por computadora. ¿Dónde empiezo?

¿Realizar el blanqueamiento de datos antes del entrenamiento mejora la capacidad de generalización de un SVM?

¿Cómo son útiles las redes neuronales convolucionales para las empresas e industrias normales?

¿El aprendizaje automático es algo que no llegará demasiado lejos si no tiene la formación académica adecuada? Dado que hay tanto en Internet, ¿se puede entender?

¿Cuáles son algunos casos de uso para el aprendizaje automático en realidad virtual?

¿Cómo se utiliza el aprendizaje automático en el análisis de sentimientos?

¿Cuáles son algunos de los mejores cursos de ML para una maestría en India?

¿Qué empresas del área legal usan Machine Learning?

Cómo aprender machine learning para construir startups