¿Por qué se congelan los pesos en el discriminador de GAN durante el entrenamiento?

Como has escuchado, el generador y el discriminador son “adversarios”: quieren maximizar las funciones objetivas opuestas. El discriminador quiere distinguir con precisión real de falso al minimizar la entropía cruzada de sus predicciones con “0” para muestras generadas y “1” para muestras reales. Mientras tanto, el generador quiere hacer muestras tan convincentes como sea posible minimizando la entropía cruzada binaria entre la salida de discriminadores para sus muestras y la etiqueta ‘real’ 1.

Las GAN son diferenciables de extremo a extremo, lo que significa que tenemos el lujo de entrenarlas con propagación hacia atrás + descenso en gradiente. Debido a que la pérdida del generador depende del discriminador, en cada iteración la señal de error debe fluir desde la salida, de regreso a través del discriminador al generador para obtener los gradientes necesarios para entrenarlo.

La implementación que vinculó utiliza el método Keras ‘model.train_on_batch (X, y), que (sensatamente) calcula y resta gradientes para una sola función de pérdida a la vez. Recuerde, el generador y el discriminador tienen diferentes funciones de pérdida, pero los gradientes del generador tienen que fluir primero a través del discriminador. Esto significa que debe detener manualmente que los keras entrenen al discriminador cuando entrena al generador; si no lo hiciéramos, el discriminador aprendería a estar * más * convencido por el generador cada vez que se entrena el generador, deshaciendo cualquier cosa útil. podría haber aprendido!

Espero que esto haya ayudado!

Ah sí, bienvenido al oscuro arte de entrenar GAN.

Lo que mencionó específicamente se hace para evitar un colapso de confrontación en el que las actualizaciones de gradiente debilitan al discriminador. Sin embargo, hay una pregunta ortogonal que explica por qué a veces “debilitamos” al discriminador. Resulta que hay razones empíricas para hacerlo, pero se ha establecido una analogía interesante, que si el discriminador es demasiado fuerte, el generador “se rinde” y deja de entrenar bien.