¿Cuál es la diferencia entre un algoritmo generativo y uno discriminativo?

587

Por favor, ayúdame a comprender la diferencia entre un algoritmo generativo y uno discriminativo , teniendo en cuenta que soy solo un principiante.

unj2
fuente
44
Este documento (también señalado por anguyen8 a continuación) es bueno: cs229.stanford.edu/notes/cs229-notes2.pdf
GuSuku
55
Ver también la misma pregunta sobre estadísticas. SE: Generativo vs. Discriminatorio
Lenar Hoyt
Para obtener una respuesta simple y visual, haga clic aquí stackoverflow.com/a/52412379/7160346
Ravi G

Respuestas:

840

Supongamos que tiene datos de entrada xy desea clasificar los datos en etiquetas y. Un modelo generativo aprende la distribución de probabilidad conjuntap(x,y) y un modelo discriminativo aprende la distribución de probabilidad condicionalp(y|x) , que debe leerse como "la probabilidad ydada x" .

Aquí hay un ejemplo realmente simple. Supongamos que tiene los siguientes datos en el formulario (x,y):

(1,0), (1,0), (2,0), (2, 1)

p(x,y) es

      y=0   y=1
     -----------
x=1 | 1/2   0
x=2 | 1/4   1/4

p(y|x) es

      y=0   y=1
     -----------
x=1 | 1     0
x=2 | 1/2   1/2

Si se toma unos minutos para mirar esas dos matrices, comprenderá la diferencia entre las dos distribuciones de probabilidad.

La distribución p(y|x)es la distribución natural para clasificar un ejemplo dado xen una clase y, razón por la cual los algoritmos que modelan esto directamente se llaman algoritmos discriminativos. Modelo de algoritmos generativos p(x,y), que puede transformarse p(y|x)mediante la aplicación de la regla de Bayes y luego usarse para la clasificación. Sin embargo, la distribución p(x,y)también se puede utilizar para otros fines. Por ejemplo, podría usar p(x,y)para generar(x,y) pares probables .

Según la descripción anterior, podría estar pensando que los modelos generativos son más útiles en general y, por lo tanto, mejores, pero no es tan simple como eso. Este artículo es una referencia muy popular sobre el tema de los clasificadores discriminativos frente a los generadores, pero es bastante pesado. La esencia general es que los modelos discriminativos generalmente superan a los modelos generativos en las tareas de clasificación.

Stompchicken
fuente
48
Gracias por el trabajo. El autor ahora es profesor en Stanford y tiene recursos maravillosos en stanford.edu/class/cs229/materials.html
unj2
26
Una buena explicación también por Andrew Ng aquí
clyfe
39
Al mirar las matrices, observe que en la primera, todas las entradas suman 1.0, mientras que en la segunda cada fila suma una. Esto acelerará la iluminación (y reducirá la confusión)
Maxim Khesin
55
Una nota de Andrew Ng aquí también es muy útil: cs229.stanford.edu/notes/cs229-notes2.pdf
anh_ng8
1
"por eso los algoritmos que modelan esto directamente se llaman algoritmos discriminativos", aún no estoy seguro de por qué p(y|x)implica que los algoritmos que lo modelan se denominan "modelos discriminativos".
nbro
291

Un algoritmo generativo modela cómo se generaron los datos para clasificar una señal. Hace la pregunta: según mis supuestos de generación, ¿qué categoría es más probable que genere esta señal?

Un algoritmo discriminativo no le importa cómo se generaron los datos, simplemente clasifica una señal dada.

Carlos Rendon
fuente
66
Esta respuesta me confunde. Ambas clases de algoritmos entran en la clase de algoritmos de aprendizaje supervisados, que aprenden un modelo de datos de entrenamiento etiquetados para derivar una función que predice otros datos. El algoritmo discriminatorio que usted describe suena como si no creara un modelo, ¿es correcto? Me alegraría si pudiera mejorar su respuesta a ese respecto.
Lenar Hoyt
42
@mcb Un algoritmo generativo modela cómo se "generaron" los datos, por lo que se pregunta "¿cuál es la probabilidad de que esta o aquella clase haya generado esta instancia?" y elige el que tenga la mejor probabilidad. Un algoritmo discriminativo utiliza los datos para crear un límite de decisión, por lo que se pregunta "¿en qué lado del límite de decisión se encuentra esta instancia?" Por lo tanto, no crea un modelo de cómo se generaron los datos, crea un modelo de cómo se ve el límite entre clases.
Anthony
1
Entonces, un modelo generativo como Naive Bayes, ¿no tiene un límite de decisión?
sheetal_158
44
¿Entonces los modelos generativos parecen ser mejores para la interpretabilidad?
Candic3
157

Imagine que su tarea es clasificar un discurso a un idioma.

Puedes hacerlo ya sea:

  1. aprender cada idioma y luego clasificarlo usando el conocimiento que acaba de adquirir

o

  1. determinar la diferencia en los modelos lingüísticos sin aprender los idiomas y luego clasificar el discurso.

El primero es el enfoque generativo y el segundo es el enfoque discriminativo .

Consulte esta referencia para obtener más detalles: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .

madCode
fuente
2
¿No es al revés? Teniendo en cuenta que aprendió el idioma, ¿está operando en una distribución condicional y, por lo tanto, debería ser un enfoque discriminatorio?
Chico de Londres
Creo que es al revés también después de leer las respuestas a continuación - Ejemplo de las notas de clase de CS299 por Ghrua
Mitali Cyrus
132

En la práctica, los modelos se utilizan de la siguiente manera.

En modelos discriminativos , para predecir la etiqueta ydel ejemplo de capacitación x, debe evaluar:

ingrese la descripción de la imagen aquí

que simplemente elige cuál es la clase más probable yconsiderando x. Es como si estuviéramos tratando de modelar el límite de decisión entre las clases . Este comportamiento es muy claro en las redes neuronales, donde los pesos calculados pueden verse como una curva de forma compleja que aísla los elementos de una clase en el espacio.

Ahora, usando la regla de Bayes, reemplacemos ingrese la descripción de la imagen aquíen la ecuación por ingrese la descripción de la imagen aquí. Como solo está interesado en el argumento arg max , puede eliminar el denominador, que será el mismo para todos y. Entonces, te quedas con

ingrese la descripción de la imagen aquí

cual es la ecuación que usas en modelos generativos .

Mientras que en el primer caso tenía la distribución de probabilidad condicional p(y|x) , que modelaba el límite entre clases, en el segundo tenía la distribución de probabilidad conjunta p(x, y) , ya p(x | y) p(y) = p(x, y)que modela explícitamente la distribución real de cada clase .

Con la función de distribución de probabilidad conjunta, dada a y, puede calcular ("generar") sus respectivos x. Por esta razón, se llaman modelos "generativos".

Saul Berardo
fuente
3
Según este razonamiento, ¿no son iguales el modelo generativo y el discriminativo cuando se aplican a la misma distribución? ¿Por qué hay una diferencia en el comportamiento de clasificación entonces? ¿O son simplemente iguales en este contexto de máxima verosimilitud?
Sebastian Graf
Para saber si son "iguales" o no, primero debemos definir qué queremos decir con eso. Hay muchas cosas en común, pero la diferencia más fuerte es la estrategia empleada: modelar la distribución (generativa) versus predecir una clase, independientemente de la distribución (discriminativa); piense en KNN por un segundo como ejemplo.
Saul Berardo
90

Aquí está la parte más importante de las notas de clase de CS299 (por Andrew Ng) relacionadas con el tema, que realmente me ayuda a entender la diferencia entre algoritmos de aprendizaje discriminativos y generativos .

Supongamos que tenemos dos clases de animales, elefante ( y = 1) y perro ( y = 0). Y x es el vector característico de los animales.

Dado un conjunto de entrenamiento, un algoritmo como la regresión logística o el algoritmo perceptrón (básicamente) intenta encontrar una línea recta, es decir, un límite de decisión, que separe a los elefantes y los perros. Luego, para clasificar un nuevo animal como un elefante o un perro, comprueba de qué lado del límite de decisión cae y realiza su predicción en consecuencia. Llamamos a estos algoritmo de aprendizaje discriminativo .

Aquí hay un enfoque diferente. Primero, mirando a los elefantes, podemos construir un modelo de cómo se ven los elefantes. Luego, mirando a los perros, podemos construir un modelo separado de cómo se ven los perros. Finalmente, para clasificar un nuevo animal, podemos comparar el nuevo animal con el modelo de elefante, y compararlo con el modelo de perro, para ver si el nuevo animal se parece más a los elefantes o más a los perros que habíamos visto en el conjunto de entrenamiento. . Llamamos a estos algoritmo de aprendizaje generativo .

Ghrua
fuente
33

En general, existe una práctica en la comunidad de aprendizaje automático para no aprender algo que no desea. Por ejemplo, considere un problema de clasificación donde el objetivo de uno es asignar etiquetas y a una entrada x dada. Si usamos modelo generativo

p(x,y)=p(y|x).p(x)

tenemos que modelar p (x) que es irrelevante para la tarea en cuestión. Las limitaciones prácticas como la escasez de datos nos obligarán a modelar p(x)con algunos supuestos de independencia débiles. Por lo tanto, intuitivamente utilizamos modelos discriminativos para la clasificación.

Sriwantha Attanayake
fuente
30

Los diferentes modelos se resumen en la tabla a continuación: ingrese la descripción de la imagen aquí

Ravi G
fuente
2
¿Podría agregar una fuente a esta imagen? Creo que es una de las mejores respuestas aquí
Alex L
44
La imagen está tomada desde aquí: stanford.edu/~shervine/teaching/cs-229/…
Ali Abbas Jaffri
22

Un punto informativo adicional que va bien con la respuesta de StompChicken anterior.

La diferencia fundamental entre modelos discriminativos y modelos generativos es:

Los modelos discriminativos aprenden el límite (duro o blando) entre clases

Los modelos generativos modelan la distribución de clases individuales.

Editar:

Un modelo generativo es el que puede generar datos . Modela tanto las características como la clase (es decir, los datos completos).

Si modelamos P(x,y): puedo usar esta distribución de probabilidad para generar puntos de datos y, por lo tanto, todos los modelos de algoritmos P(x,y)son generativos.

P.ej. de modelos generativos

  • Modelos ingenuos de Bayes P(c)y P(d|c)- dónde cestá la clase y del vector de características.

    También, P(c,d) = P(c) * P(d|c)

    Por lo tanto, Naive Bayes en algunos modelos de forma, P(c,d)

  • Bayes Net

  • Redes de Markov

Un modelo discriminativo es el que solo puede usarse para discriminar / clasificar los puntos de datos . Solo necesita modelar P(y|x)en tales casos (es decir, probabilidad de clase dado el vector de características).

P.ej. de modelos discriminativos:

  • Regresión logística

  • Redes neuronales

  • Campos aleatorios condicionales

En general, los modelos generativos necesitan modelar mucho más que los modelos discriminativos y, por lo tanto, a veces no son tan efectivos. De hecho, la mayoría (no estoy seguro si todos) de los algoritmos de aprendizaje no supervisados, como el agrupamiento, etc. pueden llamarse generativos, ya que modelan P(d)(y no hay clases: P)

PD: parte de la respuesta está tomada de la fuente

Prakhar Agrawal
fuente
8

La respuesta corta

Muchas de las respuestas aquí se basan en la definición matemática ampliamente utilizada [1]:

  • Los modelos discriminativos aprenden directamente la distribución predictiva condicional p(y|x).
  • Los modelos generativos aprenden la distribución conjunta p(x,y)(o más bien, p(x|y)y p(y)).
    • La distribución predictiva p(y|x)se puede obtener con la regla de Bayes.

Aunque es muy útil, esta definición limitada asume el entorno supervisado y es menos útil cuando se examinan métodos no supervisados ​​o semi-supervisados. Tampoco se aplica a muchos enfoques contemporáneos para el modelado generativo profundo . Por ejemplo, ahora tenemos modelos generativos implícitos, por ejemplo, Redes Adversarias Generativas (GAN), que se basan en el muestreo y ni siquiera modelan explícitamente la densidad de probabilidad p(x)(en cambio, aprenden una medida de divergencia a través de la red discriminadora). Pero los llamamos "modelos generativos", ya que se utilizan para generar muestras (de alta dimensión [10]).

Una definición más amplia y fundamental [2] parece igualmente adecuada para esta pregunta general:

  • Los modelos discriminativos aprenden el límite entre clases.
    • Por lo tanto, pueden discriminar entre diferentes tipos de instancias de datos.
  • Los modelos generativos aprenden la distribución de datos.
    • Para que puedan generar nuevas instancias de datos.

De http://primo.ai/index.php?title=Discriminative_vs._Generative Fuente de imagen


Una mirada más cercana

Aun así, esta pregunta implica una especie de falsa dicotomía [3]. La "dicotomía" discriminativa-generativa es, de hecho, un espectro que incluso se puede interpolar suavemente [4].

Como consecuencia, esta distinción se vuelve arbitraria y confusa, especialmente cuando muchos modelos populares no caen perfectamente en uno u otro [5,6], o de hecho son modelos híbridos (combinaciones de modelos clásicos "discriminativos" y "generativos") .

Sin embargo, sigue siendo una distinción muy útil y común. Podemos enumerar algunos ejemplos claros de modelos generativos y discriminatorios, tanto canónicos como recientes:

  • Generativo: Naive Bayes, asignación de Dirichlet latente (LDA), Redes Adversarias Generativas (GAN), Autoencoders Variacionales (VAE), flujos de normalización.
  • Discriminativo: máquina de vectores de soporte (SVM), regresión logística, redes neuronales más profundas.

También hay mucho trabajo interesante que examina en profundidad la división generativa-discriminativa [7] y el espectro [4,8], e incluso transforma los modelos discriminativos en modelos generativos [9].

Al final, las definiciones evolucionan constantemente, especialmente en este campo de rápido crecimiento :) Es mejor tomarlas con una pizca de sal, y tal vez incluso redefinirlas para usted y para los demás.


Fuentes

  1. Posiblemente originario de "Machine Learning - Discriminative and Generative" (Tony Jebara, 2004).
  2. Curso intensivo en aprendizaje automático de Google
  3. La falacia discriminativa generacional
  4. "Híbridos basados ​​en principios de modelos generativos y discriminativos" (Lasserre et al., 2006)
  5. Pregunta de @ shimao
  6. La respuesta de Binu Jasim
  7. Comparando la regresión logística y la ingenua Bayes:
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. "Su clasificador es secretamente un modelo basado en la energía" (Grathwohl et al., 2019)
  10. Stanford CS236 señala : Técnicamente, un modelo discriminativo probabilístico es también un modelo generativo de las etiquetas condicionadas a los datos. Sin embargo, el término modelos generativos está típicamente reservado para datos de alta dimensión.
Christabella Irwanto
fuente
1
Esto realmente debería tener más votos a favor. Tu fue la única respuesta que tocó la idea de "falsa dicotomía" que encontré. Mi pregunta es similar a esta: stats.stackexchange.com/questions/408421/…
Antonio Luis Sombra
1

Todas las respuestas anteriores son geniales, y me gustaría agregar un punto más.

De los modelos de algoritmos generativos, podemos derivar cualquier distribución; mientras que solo podemos obtener la distribución condicional P (Y | X) de los modelos de algoritmos discriminativos (o podemos decir que solo son útiles para discriminar la etiqueta de Y), y es por eso que se llama modelo discriminativo. El modelo discriminativo no asume que las X son independientes dado el Y ($ X_i \ perp X _ {- i} | Y $) y, por lo tanto, generalmente es más poderoso para calcular esa distribución condicional.

Lerner Zhang
fuente
0

Mis dos centavos: los enfoques discriminativos resaltan las diferencias Los enfoques generativos no se centran en las diferencias; intentan construir un modelo que sea representativo de la clase. Hay una superposición entre los dos. Idealmente, se deben utilizar ambos enfoques: uno será útil para encontrar similitudes y el otro será útil para encontrar disimilitudes.

Arun
fuente
0

Un modelo de algoritmo generativo aprenderá completamente de los datos de entrenamiento y predecirá la respuesta.

Un trabajo de algoritmo discriminativo es solo clasificar o diferenciar entre los 2 resultados.

Nages
fuente
Lo que obtengo es que el modelo generativo se basa en el aprendizaje supervisado, mientras que el modelo discriminatorio se basa en el aprendizaje no supervisado. Estoy en lo cierto?
Waseem Ahmad Naeem
@WaseemAhmadNaeem Más o menos, pero no. y siempre es el objetivo y se necesita como parte de los datos de entrada, por lo que ambos son supervisados. Generative parece no supervisado porque el primer paso es obtener la distribución completa (en todos los vars, sin considerar y como especial). Si se detuvo allí y no lo trata como algo especial, esa parte por sí sola no está supervisada.
Mitch
@ Mitch, ¿puedo pedirle que comparta algún documento / notas / enlace sobre la diferencia de ambos? En realidad estoy un poco confundido sobre este concepto. Gracias de antemano
Waseem Ahmad Naeem
@WaseemAhmadNaeem Busque en Cross Validated.SE (sitio de estadísticas / ML SE) en particular Modelos generativos versus discriminatorios o generativos versus discriminativos en un contexto bayesiano . Ejemplos elementales Naive Bayes es generativo, la regresión logística es discriminativa. Más ejemplos de ambos .
Mitch
0

Este artículo me ayudó mucho a entender el concepto.

En resumen,

  • Ambos son modelos probabilísticos, lo que significa que ambos usan la probabilidad (probabilidad condicional, para ser precisos ) para calcular las clases de los datos desconocidos.
  • Los clasificadores generativos aplican el teorema conjunto de PDF y Bayes en el conjunto de datos y calculan la probabilidad condicional utilizando valores de esos.
  • Los clasificadores discriminativos encuentran directamente la probabilidad condicional en el conjunto de datos

Algún buen material de lectura: probabilidad condicional , PDF conjunto

ansh sachdeva
fuente