Funciones de pérdida

Las GAN intentan replicar una distribución de probabilidad. Por lo tanto, deben usar funciones de pérdida que reflejen la distancia entre la distribución de los datos generados por la GAN y la distribución de los datos reales.

¿Cómo puedes capturar la diferencia entre dos distribuciones en las funciones de pérdida de GAN? Esta pregunta es un área de investigación activa y se han propuesto muchos enfoques. Abordaremos dos funciones comunes de pérdida de GAN aquí, ambas implementadas en TF-GAN:

  • minimax loss: La función de pérdida que se usó en el artículo que introdujo GAN.
  • Pérdida de Wasserstein: La función de pérdida predeterminada para los Estimadores de TF-GAN. Se describió por primera vez en un artículo de 2017.

TF-GAN también implementa muchas otras funciones de pérdida.

¿Una función de pérdida o dos?

Una GAN puede tener dos funciones de pérdida: una para el entrenamiento de generadores y otra para el entrenamiento de discriminadores. ¿Cómo pueden funcionar juntas dos funciones de pérdida para reflejar una medida de distancia entre distribuciones de probabilidad?

En los esquemas de pérdida que analizaremos aquí, las pérdidas del generador y del discriminante derivan de una única medida de distancia entre las distribuciones de probabilidad. Sin embargo, en ambos esquemas, el generador solo puede afectar un término en la medida de distancia: el término que refleja la distribución de los datos falsos. Durante el entrenamiento del generador, descartamos el otro término, que refleja la distribución de los datos reales.

Las pérdidas del generador y del discriminador se ven diferentes al final, a pesar de que derivan de una sola fórmula.

Pérdida máxima

En el artículo sobre las GAN, el generador intenta minimizar la siguiente función mientras que el discriminante intenta maximizarla:

$$E_x[log(D(x))] + E_z[log(1 - D(G(z)))]$$

En esta función:

  • D(x) es la estimación del discriminador de la probabilidad de que la instancia x de datos real sea real.
  • Ex es el valor esperado para todas las instancias de datos reales.
  • G(z) es la salida del generador cuando se proporciona z de ruido.
  • D(G(z)) es la estimación del discriminador de la probabilidad de que una instancia falsa sea real.
  • Ez es el valor esperado en todas las entradas aleatorias del generador (en efecto, el valor esperado en todas las instancias falsas generadas G(z)).
  • La fórmula deriva de la entropía cruzada entre las distribuciones reales y generadas.

El generador no puede afectar directamente el término log(D(x)) en la función. Por lo tanto, para el generador, minimizar la pérdida es equivalente a minimizar log(1 - D(G(z))).

En TF-GAN, consulta minimax_discriminator_loss y minimax_generator_loss para ver una implementación de esta función de pérdida.

Pérdida modificada máxima

En el informe original de GAN, se indica que la función de pérdida minimax anterior puede hacer que el GAN se detenga en las primeras etapas del entrenamiento de la GAN, cuando el trabajo del discriminante es muy fácil. Por lo tanto, en el documento se sugiere modificar la pérdida del generador para que el generador intente maximizar log D(G(z)).

En TF-GAN, consulta modified_generator_loss para ver una implementación de esta modificación.

Pérdida de Wasserstein

De forma predeterminada, TF-GAN usa la pérdida de Wasserstein.

Esta función de pérdida depende de una modificación del esquema de GAN (denominado “WANserstein GAN”) o en la que el discriminante no clasifica instancias. Para cada instancia, da como resultado un número. Este número no debe ser menor que uno o mayor que 0, por lo que no podemos usar 0.5 como límite para decidir si una instancia es real o falsa. El entrenamiento de discriminación solo trata de agrandar el resultado para instancias reales que para instancias falsas.

Debido a que no se puede discriminar entre el real y el falso, el discriminante de WGAN en realidad se denomina "crítico" en lugar de "discriminador". Esta distinción tiene una importancia teórica, pero para fines prácticos, se la puede considerar como un reconocimiento de que las entradas a las funciones de pérdida no tienen que ser probabilidades.

Las funciones de pérdida son engañosamente simples:

Pérdida de críticos: D(x) - D(G(z))

El discriminante intenta maximizar esta función. En otras palabras, intenta maximizar la diferencia entre su resultado en instancias reales y su resultado en instancias falsas.

Pérdida del generador: D(G(z))

El generador intenta maximizar esta función. En otras palabras, intenta maximizar el resultado del discriminante para sus instancias falsas.

En estas funciones:

  • D(x) es el resultado de un crítico para una instancia real.
  • G(z) es la salida del generador cuando se proporciona z de ruido.
  • D(G(z)) es el resultado de un crítico para una instancia falsa.
  • El resultado del crítico D no tiene que estar entre 1 y 0.
  • Las fórmulas derivan de la distancia del desplazador de la Tierra entre las distribuciones reales y generadas.

En TF-GAN, consulta wasserstein_generator_loss y wasserstein_discriminator_loss para conocer las implementaciones.

Requisitos

La justificación teórica de la GAN (o WGAN) de Wasserstein requiere que las ponderaciones en toda la GAN se recorten para que permanezcan dentro de un rango restringido.

Beneficios

Las GAN de Wasserstein son menos vulnerables a los bloqueos que las GAN basadas en minimax y evitan los problemas con gradientes que desaparecen. La distancia del movimiento de la Tierra también tiene la ventaja de ser una métrica real: una medida de la distancia en un espacio de distribuciones de probabilidad. La entropía cruzada no es una métrica en este sentido.