De el documento que presenta las GAN :

Un párrafo que menciona el escenario Helvetica

Tiene sentido que colapsar demasiados $ \ vec {z} $ -valores a un solo valor $ \ vec {x} $ causarán problemas. Sin embargo, estaba un poco confundido sobre cómo entrenar $ G $ durante un período de tiempo más corto antes de ejecutar $ D $ puede arreglarlo. Pero cuando busqué en Google «Escenario Helvética», todo lo que pude encontrar fueron referencias a un programa de parodia llamado Look Around You .

Dado que parece que esto es algo real, no solo una parodia: ¿dónde puedo encontrar más información al respecto y cómo se puede prevenir? ¿Y por qué se llama «el escenario Helvética»?

Respuesta

Colocar demasiada masa de probabilidad en una sola $ x $ es de hecho un problema importante con las GAN. Por lo general, se denomina colapso del modo . La mayoría de los artículos de GAN lo discutirán.

Estaba un poco confundido sobre cómo entrenar 𝐺 durante un período de tiempo más corto antes de ejecutar 𝐷 puede solucionarlo.

La idea es mantener el discriminador $ D $ actualizado con el generador $ G $ . Al entrenar $ G $ menos, estás entrenando $ D $ más. Por lo general, se realiza una optimización alterna con GAN, es decir, entrena $ D $ para $ n $ iteraciones, luego $ G $ para $ m $ iteraciones, y así sucesivamente. El «trabajo» de $ D $ es poder distinguir los resultados falsos de $ G $ a partir de datos reales puntos. Pero, si no entrena $ D $ lo suficiente (es decir, entrena $ G $ demasiado , entonces $ m > n $ ), luego $ G $ rápidamente se «escapará» y explotará los mínimos locales en $ D $ . Desde $ G $ » s punto de vista, si $ D $ «le gusta» algún resultado $ x = G (z) $ , entonces lo más fácil de hacer es simplemente generar solo ese $ x $ . Entrenar $ G $ menos (y por lo tanto $ D $ más) permite que estos mínimos se muevan y evita que $ G $ de explotarlos.

Note que el sobreentrenamiento $ D $ no «t parece ser algo malo a priori . De hecho, con pérdidas de GAN más modernas (por ejemplo, las de Wasserstein), uno quiere $ n $ ser lo más grande posible. Solo significa que $ D $ converge para ser un gran discriminador en cada paso, por lo que debería ser informativo para $ G $ . (¡De hecho, las pruebas de convergencia dependen de hacer esto!) Pero en la práctica, para el GAN original, sobreentrenamiento $ D $ tiende a generar gradientes inútiles (ver más abajo): nada que $ G $ pueda hacer complacerá al discriminador, por lo que todas actualizaciones de peso son inútiles , entonces el GAN simplemente se agita inútilmente alrededor del espacio de parámetros). Este movimiento es llamado entrenamiento inestable por otros. 🙂

En otras palabras, para la vanilla GAN, el subentrenamiento $ D $ puede llevar al colapso del modo, mientras que el sobreentrenamiento puede causar inestabilidad. Aparentemente, la gente se ha centrado en mitigar la inestabilidad, de modo que uno simplemente sobreentrena $ D $ y evita el colapso del modo.

¿cómo se puede prevenir?

Una forma común de mitigarlo es utilizar una función de pérdida diferente, como una pérdida de Wasserstein. Un problema con la formulación GAN original es que (al minimizar la divergencia JS) puede tener gradientes muy poco informativos porque la pérdida no maneja muy bien las distribuciones con muy poca superposición (es decir, cuando el soporte compartido es pequeño). En cierto sentido, es demasiado severo cuando el generador está funcionando mal. Por el contrario, una pérdida de transporte óptima disminuye suavemente incluso cuando las dos distribuciones están lejos una de la otra. Ver p. Ej. el artículo de Wasserstein GAN y sus seguimientos.

¿Y por qué se llama «el escenario Helvética»?

Se refiere al programa que mencionaste, donde se coloca demasiado calcio en un solo lugar y causa un desastre. Aquí, ocurre un desastre cuando se coloca demasiada densidad de probabilidad del generador en un área pequeña del espacio de datos. 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *