Modelos discriminativos y generativos en deep learning

Una pregunta que siempre nos planteamos en machine learning y en deep learning es la diferencia entre algoritmos discriminativos y generativos y cuál escoger para un problema concreto.

Los algoritmos discriminativos modelan la dependencia de una variable objetivo Y  en función de una variable observada X.  De esta forma se puede predecir la variable Y  a partir de X. En función de si nuestro modelo es probabilístico o no, tendremos:

  • Algoritmos que aprenden la distribución de probabilidad condicional P(Y/X). Por ejemplo la regresión logística donde se modela la probabilidad de un evento en función de las variables independientes. También estarían las ampliamente utilizadas redes neuronales de varias capas donde a la última capa se le aplica un softmax (convierte un vector de k dimensiones en una distribución de probabilidad de k posibles salidas), de forma que la salida es una probabilidad condicional, P(Y/X)=softmax(RedNeuronal(X)). P.e. la probabilidad de que la imagen de entrada se corresponda con un tipo de objeto.
  • Algoritmos no probabilísticos donde se aprende un mapeo o función directa desde las variables de entrada a las clases o variables objetivo.

Pero aprender sólo la probabilidad condicional es resolver solo una parte del problema general. Si se le añade ruido a los datos de entrada o la probabilidad de los datos de entrada es baja, el modelo podría fallar.

Los algoritmos generativos, en cambio, proporcionan un modelo de cómo los datos se generan. Aprenden la distribución de probabilidad conjunta P(X,Y). Una vez que se tiene el modelo de cómo se generan los datos, se pregunta qué clase o valor de la variable objetivo los ha generado.

Equivalentemente, el algoritmo generativo modela la distribución P(X/Y) y P(Y). Por ejemplo si la variable Y indica clases de animales, entonces la distribución P(X/Y) modela como se distribuyen las características (datos de entrada) de cada tipo de animal.

En la imagen podemos ver que los algoritmos discriminativos directamente estiman la distribución de probabilidad condicional P(Y/X), por ejemplo la probabilidad de que sea un perro para una entrada en pixels determinada. Los algoritmos generativos modelan qué distribución de probabilidad tiene la entrada para una clase determinada y a partir de ahí deducen la probailidad de que sea una clase u otra (un perro o un gato).

Algoritmos discriminativos vs generativos

Esto es muy importante porque los algoritmos generativos abordan un problema más general y aprenden realmente como se estructuran y distribuyen los datos de entrada mientras que los discriminativos simplemente aprenden a categorizar una variable objetivo en función de la entrada.

Debido a que el algoritmo generativo hace más suposiciones sobre la estructura del modelo, es normal que cuando se tienen pocos datos de entrenamiento el algoritmo generativo se comporte mejor pero a medida que crece el conjunto de datos de entrenamiento este comportamiento se invierta, como demostraron Andrew Ng y Michael Jordan en una comparativa del “Naive Bayes” frente a la regresión logística.

En los últimos años hemos visto una revolución en deep learning con los modelos generativos de deep learning. En general, los modelos generativos de deep learning se pueden clasificar en:

  • Modelos autorregresivos. Modelamos la probabilidad condicional, P(x_d/x_1,…,x_(d-1)), es decir la probabilidad de un elemento en función de los elementos anteriores. Se pueden usar modelos con redes neuronales recurrentes, LSTMs o transformers que usan la auto-atención, en función de la dependencia temporal entre los elementos de la secuencia.
  • Modelos basados en flujo: Se construyen con una secuencia de transformaciones invertibles y el modelo aprende explícitamente la distribución P(X).
  • Modelos basados en energía: Encuentran los valores de la variable latente que minimizan la energía de una serie de observaciones.
  • Modelos basados en variables latentes. Se usan unas variables latentes que residen en un espacio de dimensión inferior que la variable y se aprende el proceso generativo P(X/Z). Aquí estarían los autoencoders y las populares generative adversarial networks (GAN). En las GAN hay un generador y un discriminador. El generador aprende a mapear del espacio latente Z a la distribución de interés X y el discriminador aprende a distinguir entre los datos generados por el generador y los datos de la distribución real. El generador y el discriminador se modelan con redes neuronales que aprenden sus parámetros en un ciclo de entrenamiento en el que el primero intenta incrementar el error del segundo. De esta forma, el generador acaba generando mejores muestras de la distribución P(X). Las GAN han conseguidos generar imágenes de personas y objetos que son indistinguibles de las imágenes reales.

Los modelos generativos de deep learning han supuesto una revolución ya que permiten pasar de solamente clasificar o predecir datos a que los modelos generen y creen nuevos elementos como texto, imágenes, vídeo, música, código de programación, grafos, etc. Esto ha llevado a la inteligencia artificial de una etapa analítica a una nueva etapa creativa e imaginativa que tendrá multitud de aplicaciones como el diseño, el arte, la creación automática de programas de ordenador, la creación musical, la redacción de textos, etc.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Orgullosamente ofrecido por WordPress | Tema: Baskerville 2 por Anders Noren.

Subir ↑

A %d blogueros les gusta esto: