Por favor, ayúdame a comprender la diferencia entre un algoritmo generativo y uno discriminativo , teniendo en cuenta que soy solo un principiante.
Por favor, ayúdame a comprender la diferencia entre un algoritmo generativo y uno discriminativo , teniendo en cuenta que soy solo un principiante.
Respuestas:
Supongamos que tiene datos de entrada x
y 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 y
dada 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 x
en 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.
p(y|x)
implica que los algoritmos que lo modelan se denominan "modelos discriminativos".
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.
Imagine que su tarea es clasificar un discurso a un idioma.
Puedes hacerlo ya sea:
o
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 .
En la práctica, los modelos se utilizan de la siguiente manera.
En modelos discriminativos , para predecir la etiqueta y
del ejemplo de capacitación x
, debe evaluar:
que simplemente elige cuál es la clase más probable y
considerando 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 en la ecuación por . Como solo está interesado en el argumento arg max , puede eliminar el denominador, que será el mismo para todos y
. Entonces, te quedas con
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".
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 .
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.
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 c
está la clase y d
el 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
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)
yp(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.
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:
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.
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.
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.
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.
Este artículo me ayudó mucho a entender el concepto.
En resumen,
Algún buen material de lectura: probabilidad condicional , PDF conjunto