Qual é a diferença entre um algoritmo generativo e um discriminativo?

587

Por favor, ajude-me a entender a diferença entre um algoritmo generativo e um discriminativo , tendo em mente que sou apenas iniciante.

unj2
fonte
4
Este documento (também apontado por anguyen8 abaixo) é bom: cs229.stanford.edu/notes/cs229-notes2.pdf
GuSuku 25/15
5
Veja também a mesma pergunta em stats.SE: Generative vs. Discriminative #
Lenar Hoyt
Para uma resposta simples e visual, clique aqui stackoverflow.com/a/52412379/7160346
Ravi G

Respostas:

840

Digamos que você tenha dados de entrada xe queira classificá-los em rótulos y. Um modelo generativo aprende a distribuição de probabilidade conjuntap(x,y) e um modelo discriminativo aprende a distribuição de probabilidade condicionalp(y|x) - que você deve ler como "a probabilidade de um ydado x" .

Aqui está um exemplo muito simples. Suponha que você tenha os seguintes dados no formulário (x,y):

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

p(x,y) é

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

p(y|x) é

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

Se você demorar alguns minutos para olhar para essas duas matrizes, entenderá a diferença entre as duas distribuições de probabilidade.

A distribuição p(y|x)é a distribuição natural para classificar um determinado exemplo xem uma classe y, e é por isso que os algoritmos que modelam isso diretamente são chamados de algoritmos discriminativos. Modelo de algoritmos generativos p(x,y), que pode ser transformado p(y|x)pela aplicação da regra de Bayes e depois usado para classificação. No entanto, a distribuição p(x,y)também pode ser usada para outros fins. Por exemplo, você pode usar p(x,y)para gerar(x,y) pares prováveis .

A partir da descrição acima, você pode estar pensando que os modelos generativos são geralmente mais úteis e, portanto, melhores, mas não é tão simples assim. Este artigo é uma referência muito popular sobre classificadores discriminativos versus geradores, mas é bastante pesado. A essência geral é que os modelos discriminativos geralmente superam os modelos generativos nas tarefas de classificação.

Stompchicken
fonte
48
Obrigado pelo artigo. O autor é agora professor em Stanford e tem recursos maravilhosos em stanford.edu/class/cs229/materials.html
unj2
26
Uma boa explicação também por Andrew Ng aqui
clyfe
39
Ao olhar para as matrizes, observe que na primeira, todas as entradas somam 1,0, enquanto na segunda cada linha soma até uma. Isto irá acelerar o esclarecimento (e reduzir a confusão)
Maxim Khesin
5
Uma observação de Andrew Ng aqui também é muito útil: cs229.stanford.edu/notes/cs229-notes2.pdf
anh_ng8
1
"é por isso que os algoritmos que modelam isso diretamente são chamados de algoritmos discriminativos", ainda não sabemos por p(y|x)que os algoritmos que modelam isso são chamados de "modelos discriminativos".
Nbro 3/1118
291

Um algoritmo generativo modela como os dados foram gerados para categorizar um sinal. Ele faz a pergunta: com base nas minhas suposições de geração, qual categoria é mais provável de gerar esse sinal?

Um algoritmo discriminativo não se importa com a forma como os dados foram gerados, simplesmente categoriza um determinado sinal.

Carlos Rendon
fonte
6
Essa resposta me confunde. As duas classes de algoritmos se enquadram na classe de algoritmos de aprendizado supervisionado, que aprendem um modelo de dados de treinamento rotulados para derivar uma função que prevê outros dados. O algoritmo discrimitivo que você descreve parece que não cria um modelo, está correto? Ficaria feliz se você pudesse dar sua resposta a esse respeito.
Lenar Hoyt 20/03/14
42
@mcb Um algoritmo generativo modela como os dados foram "gerados", então você pergunta "qual é a probabilidade de que essa ou aquela classe tenha gerado essa instância?" e escolha aquele com a melhor probabilidade. Um algoritmo discriminativo usa os dados para criar um limite de decisão, então você pergunta "em que lado do limite de decisão está essa instância?" Portanto, ele não cria um modelo de como os dados foram gerados, mas sim um modelo de como os limites entre as classes se parecem.
Anthony
1
Portanto, um modelo generativo como Naive Bayes, não tem um limite de decisão?
sheetal_158
4
Então, modelos generativos parecem melhores para interpretabilidade?
precisa saber é o seguinte
157

Imagine que sua tarefa é classificar um discurso em um idioma.

Você pode fazer isso:

  1. aprender cada idioma e depois classificá-lo usando o conhecimento que você acabou de adquirir

ou

  1. determinar a diferença nos modelos linguísticos sem aprender as línguas e depois classificar o discurso.

O primeiro é a abordagem generativa e o segundo é a abordagem discriminativa .

Verifique esta referência para obter mais detalhes: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .

madCode
fonte
2
Não é o contrário? Considerando que você aprendeu o idioma, você está operando em uma distribuição condicional e, portanto, deve ser uma abordagem discriminatória?
London guy
Eu acho que é o contrário, bem depois de ler as respostas abaixo - Exemplo das notas de aula de CS299 por Ghrua
Mitali Cyrus
132

Na prática, os modelos são usados ​​da seguinte maneira.

Em modelos discriminativos , para prever o rótulo ydo exemplo de treinamento x, você deve avaliar:

insira a descrição da imagem aqui

que apenas escolhe qual é a classe mais provável yconsiderando x. É como se estivéssemos tentando modelar o limite de decisão entre as classes . Esse comportamento é muito claro nas redes neurais, onde os pesos computados podem ser vistos como uma curva de forma complexa que isola os elementos de uma classe no espaço.

Agora, usando a regra de Bayes, vamos substituir o insira a descrição da imagem aquina equação por insira a descrição da imagem aqui. Como você está interessado apenas no arg max , pode apagar o denominador, que será o mesmo para todos y. Então, você fica com

insira a descrição da imagem aqui

qual é a equação que você usa em modelos generativos .

Enquanto no primeiro caso, você tinha a distribuição de probabilidade condicional p(y|x) , que modelava o limite entre as classes, no segundo, a distribuição de probabilidade conjunta p(x, y) , pois p(x | y) p(y) = p(x, y), que modela explicitamente a distribuição real de cada classe .

Com a função de distribuição de probabilidade conjunta, dada a y, você pode calcular ("gerar") seus respectivos x. Por esse motivo, eles são chamados de modelos "generativos".

Saul Berardo
fonte
3
Por esse raciocínio, o modelo generativo e o discriminativo não são iguais quando aplicados à mesma distribuição? Por que existe uma diferença no comportamento da classificação então? Ou eles são iguais neste contexto de máxima probabilidade?
Sebastian Graf
Para saber se eles são "iguais" ou não, precisamos primeiro definir o que queremos dizer com isso. Existem muitas coisas em comum, mas a diferença mais forte é a estratégia empregada: modelar a distribuição (generativa) vs. prever uma classe, independentemente da distribuição (discriminativa) - pense no KNN por um segundo, por exemplo.
Saul Berardo
90

Aqui está a parte mais importante das notas de aula do CS299 (de Andrew Ng) relacionadas ao tópico, o que realmente me ajuda a entender a diferença entre algoritmos de aprendizado discriminativos e generativos .

Suponha que tenhamos duas classes de animais, elefante ( y = 1) e cachorro ( y = 0). E x é o vetor de característica dos animais.

Dado um conjunto de treinamento, um algoritmo como a regressão logística ou o perceptron (basicamente) tenta encontrar uma linha reta - isto é, um limite de decisão - que separa os elefantes e os cães. Então, para classificar um novo animal como um elefante ou um cachorro, ele verifica de que lado do limite de decisão ele cai e faz sua previsão de acordo. Chamamos isso de algoritmo discriminatório de aprendizado .

Aqui está uma abordagem diferente. Primeiro, olhando para os elefantes, podemos construir um modelo de como os elefantes se parecem. Então, olhando para os cães, podemos construir um modelo separado da aparência dos cães. Finalmente, para classificar um novo animal, podemos combinar o novo animal com o modelo de elefante e com o modelo de cachorro, para ver se o novo animal se parece mais com os elefantes ou mais com os cães que vimos no conjunto de treinamento . Chamamos isso de algoritmo de aprendizado generativo .

Ghrua
fonte
33

Geralmente, existe uma prática na comunidade de aprendizado de máquina para não aprender algo que você não deseja. Por exemplo, considere um problema de classificação em que o objetivo é atribuir rótulos y a uma determinada entrada x. Se usarmos modelo generativo

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

temos que modelar p (x) que é irrelevante para a tarefa em questão. Limitações práticas, como a escassez de dados, nos forçará a modelar p(x)com algumas suposições de independência fracas. Portanto, usamos intuitivamente modelos discriminativos para classificação.

Sriwantha Attanayake
fonte
30

Os diferentes modelos estão resumidos na tabela abaixo: insira a descrição da imagem aqui

Ravi G
fonte
2
Você poderia adicionar uma fonte a esta imagem? Eu acho que é uma das melhores respostas aqui
Alex L
4
A imagem é tirada daqui: stanford.edu/~shervine/teaching/cs-229/…
Ali Abbas Jaffri 12/02/19
22

Um ponto informativo adicional que combina bem com a resposta de StompChicken acima.

A diferença fundamental entre modelos discriminativos e modelos generativos é:

Modelos discriminativos aprendem a fronteira (rígida ou flexível) entre classes

Modelos generativos modelam a distribuição de classes individuais

Editar:

Um modelo generativo é aquele que pode gerar dados . Ele modela os recursos e a classe (ou seja, os dados completos).

Se modelarmos P(x,y): eu posso usar essa distribuição de probabilidade para gerar pontos de dados - e, portanto, toda modelagem de algoritmos P(x,y)é generativa.

Por exemplo. de modelos generativos

  • Modelos ingênuos de Bayes P(c)e P(d|c)- onde cestá a classe e do vetor de característica.

    Além disso, P(c,d) = P(c) * P(d|c)

    Portanto, Naive Bayes, em alguns modelos, P(c,d)

  • Bayes Net

  • Redes de Markov

Um modelo discriminativo é aquele que só pode ser usado para discriminar / classificar os pontos de dados . Você só precisa modelar P(y|x)nesses casos (ou seja, probabilidade de classe, dado o vetor de recurso).

Por exemplo. de modelos discriminativos:

  • regressão logística

  • Redes neurais

  • Campos aleatórios condicionais

Em geral, os modelos generativos precisam modelar muito mais do que os modelos discriminativos e, portanto, às vezes não são tão eficazes. Por uma questão de fato, a maioria (não tenho certeza se todos) de algoritmos de aprendizado não supervisionado, como clustering etc, pode ser chamada de generativa, uma vez que modelam P(d)(e não há classes: P)

PS: Parte da resposta é retirada da fonte

Prakhar Agrawal
fonte
8

A resposta curta

Muitas das respostas aqui se baseiam na definição matemática amplamente usada [1]:

  • Modelos discriminativos aprendem diretamente a distribuição preditiva condicional p(y|x).
  • Modelos generativos aprendem a distribuição conjunta p(x,y)(ou melhor, p(x|y)e p(y)).
    • A distribuição preditiva p(y|x)pode ser obtida com a regra de Bayes.

Embora muito útil, essa definição restrita assume a configuração supervisionada e é menos útil ao examinar métodos não supervisionados ou semi-supervisionados. Também não se aplica a muitas abordagens contemporâneas para modelagem generativa profunda . Por exemplo, agora temos modelos generativos implícitos, por exemplo, Redes Adversares Generativas (GANs), que são baseadas em amostragem e nem modelam explicitamente a densidade de probabilidade p(x)(em vez disso, aprendemos uma medida de divergência por meio da rede discriminadora). Mas nós os chamamos de "modelos generativos", pois são usados ​​para gerar amostras (de alta dimensão [10]).

Uma definição mais ampla e mais fundamental [2] parece igualmente adequada para esta questão geral:

  • Modelos discriminativos aprendem a fronteira entre classes.
    • Para que eles possam discriminar entre diferentes tipos de instâncias de dados.
  • Modelos generativos aprendem a distribuição de dados.
    • Para que eles possam gerar novas instâncias de dados.

De http://primo.ai/index.php?title=Discriminative_vs._Generative Fonte da imagem


Um olhar mais atento

Mesmo assim, essa questão implica uma espécie de falsa dicotomia [3]. A "dicotomia" generativa-discriminativa é de fato um espectro que você pode interpolar suavemente entre [4].

Como conseqüência, essa distinção se torna arbitrária e confusa, especialmente quando muitos modelos populares não se enquadram perfeitamente em um ou outro [5,6], ou são de fato modelos híbridos (combinações de modelos classicamente "discriminativos" e "generativos"). .

No entanto, ainda é uma distinção altamente útil e comum de se fazer. Podemos listar alguns exemplos claros de modelos generativos e discriminativos, tanto canônicos quanto recentes:

  • Generative: Naive Bayes, alocação latente de Dirichlet (LDA), redes adversas generativas (GAN), auto-codificadores variacionais (VAE), normalização de fluxos.
  • Discriminativo: Máquina de vetores de suporte (SVM), regressão logística, redes neurais mais profundas.

Também há muitos trabalhos interessantes que examinam profundamente a divisão discriminativa-generativa [7] e o espectro [4,8] e até mesmo transformam modelos discriminativos em modelos generativos [9].

No final, as definições estão em constante evolução, especialmente neste campo em rápido crescimento :) É melhor levá-las com uma pitada de sal e talvez até redefini-las para você e para os outros.


Fontes

  1. Possivelmente originário de "Machine Learning - Discriminative and Generative" (Tony Jebara, 2004).
  2. Curso Rápido de Aprendizado de Máquina pelo Google
  3. A Falácia Gerativa-Discriminativa
  4. "Híbridos de princípios de modelos generativos e discriminativos" (Lasserre et al., 2006)
  5. pergunta de @ shimao
  6. Resposta de Binu Jasim
  7. Comparando regressão logística e Bayes ingênuo:
  8. https://www.microsoft.com/pt-br/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. "Seu classificador é secretamente um modelo baseado em energia" (Grathwohl et al., 2019)
  10. Stanford CS236 observa : Tecnicamente, um modelo discriminativo probabilístico também é um modelo generativo dos rótulos condicionados aos dados. No entanto, o termo modelos generativos geralmente é reservado para dados de alta dimensão.
Christabella Irwanto
fonte
1
Isso realmente deveria ter mais votos positivos. Sua foi a única resposta que tocou na idéia de "falsa dicotomia" que encontrei. Minha pergunta é semelhante a esta: stats.stackexchange.com/questions/408421/…
Antonio Luis Sombra
1

Todas as respostas anteriores são ótimas e eu gostaria de acrescentar mais um ponto.

A partir de modelos de algoritmos generativos, podemos derivar qualquer distribuição; embora apenas possamos obter a distribuição condicional P (Y | X) a partir dos modelos de algoritmos discriminativos (ou podemos dizer que eles são úteis apenas para discriminar o rótulo de Y), e é por isso que é chamada de modelo discriminativo. O modelo discriminativo não assume que os X são independentes, dado o Y ($ X_i \ perp X _ {- i} | Y $) e, portanto, geralmente é mais poderoso para calcular essa distribuição condicional.

Lerner Zhang
fonte
0

Meus dois centavos: Abordagens discriminatórias destacam diferenças Abordagens generativas não se concentram nas diferenças; eles tentam construir um modelo que é representativo da classe. Há uma sobreposição entre os dois. Idealmente, ambas as abordagens devem ser usadas: uma será útil para encontrar semelhanças e a outra será útil para encontrar desar semelhanças.

Uma corrida
fonte
0

Um modelo de algoritmo generativo aprenderá completamente com os dados de treinamento e preverá a resposta.

Um trabalho de algoritmo discriminativo é apenas para classificar ou diferenciar entre os dois resultados.

Nages
fonte
O que recebo é que o modelo generativo é baseado no aprendizado supervisionado, enquanto o modelo discriminante se baseia no aprendizado não supervisionado. Estou certo?
Waseem Ahmad Naeem
@WaseemAhmadNaeem Mais ou menos. y é sempre o destino e é necessário como parte dos dados de entrada; portanto, ambos são supervisionados. Generative parece não supervisionado, porque o primeiro passo é obter a distribuição completa (em todos os aspectos, sem considerar y como especial). Se você parou por aí e não o trata como especial, essa parte por si só não é supervisionada.
Mitch
@ Mitch posso pedir que você compartilhe algum papel / anotações / link sobre a diferença de ambos? na verdade, estou um pouco confuso com esse conceito. Agradeço antecipadamente
Waseem Ahmad Naeem
@WaseemAhmadNaeem Pesquise no Cross Validated.SE (site de estatísticas / ML SE), em particular modelos Generativo vs Discriminativo ou Generativo vs Discriminativo em um contexto bayesiano . Exemplos elementares Naive Bayes é generativo, Regressão logística é discriminativa. Mais exemplos de ambos .
Mitch
0

Este artigo me ajudou muito na compreensão do conceito.

Em suma,

  • Ambos são modelos probabilísticos, o que significa que ambos usam probabilidade (probabilidade condicional, para ser mais preciso ) para calcular classes para os dados desconhecidos.
  • Os Classificadores Generativos aplicam o PDF Conjunto e o Teorema de Bayes no conjunto de dados e calculam a probabilidade condicional usando valores desses.
  • Os classificadores discriminativos encontram diretamente a probabilidade condicional no conjunto de dados

Algum bom material de leitura: probabilidade condicional , PDF em conjunto

ansh sachdeva
fonte