¿El discriminador o el generador tienen que ser más poderosos en una GAN?

Supongo que se pregunta por qué se necesita el Truco # 14 de Soumith Chintala. Considere lo siguiente: si el discriminador tiende a ser siempre mejor que el generador y asume que usa el truco ‘log’ propuesto por Goodfellow para entrenar la GAN donde G tiene que minimizar [math] -log (D (G (z)) [ / math] en lugar de minimizar [math] log (1-D (G (z)) [/ math] (página 27). Si el discriminador es malo y predice que la imagen del generador es real ([math] D (G (z )) = 1, log (D (G (Z)) = 0 [/ math]) todo el tiempo, el objetivo mencionado anteriormente va a cero. Si los objetivos siempre están cerca de cero todo el tiempo, el generador no tiene gradientes amplios para actualizar sus pesos. En otras palabras, si el discriminador ya está llamando a las imágenes del generador como reales, el generador no tiene ningún incentivo para hacerlo mejor. Es por eso que siempre quiere que el discriminador esté por delante del generador.

Una manera simple de hacer esto en la implementación es usar un valor más alto para [math] k [/ math], que es cuántas veces actualiza el discriminador para cada actualización del generador.

¿Más poderoso que qué?

El objetivo de aprender las GAN es establecer el equilibrio entre los errores del generador y del discriminador. Entonces, la fase de aprendizaje finaliza cuando Generator es lo suficientemente “inteligente” como para engañar al Discriminador en el 50% de los casos.

Aquí hay una gran publicación sobre GAN -> Redes generativas adversas – Tema candente en el aprendizaje automático