Por favor, ajude-me a entender a diferença entre um algoritmo generativo e um discriminativo , tendo em mente que sou apenas iniciante.
587
Por favor, ajude-me a entender a diferença entre um algoritmo generativo e um discriminativo , tendo em mente que sou apenas iniciante.
Respostas:
Digamos que você tenha dados de entrada
x
e queira classificá-los em rótulosy
. 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 umy
dadox
" .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)
ép(y|x)
é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 exemplox
em uma classey
, e é por isso que os algoritmos que modelam isso diretamente são chamados de algoritmos discriminativos. Modelo de algoritmos generativosp(x,y)
, que pode ser transformadop(y|x)
pela aplicação da regra de Bayes e depois usado para classificação. No entanto, a distribuiçãop(x,y)
também pode ser usada para outros fins. Por exemplo, você pode usarp(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.
fonte
p(y|x)
que os algoritmos que modelam isso são chamados de "modelos discriminativos".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.
fonte
Imagine que sua tarefa é classificar um discurso em um idioma.
Você pode fazer isso:
ou
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 .
fonte
Na prática, os modelos são usados da seguinte maneira.
Em modelos discriminativos , para prever o rótulo
y
do exemplo de treinamentox
, você deve avaliar:que apenas escolhe qual é a classe mais provável
y
considerandox
. É 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 na equação por . Como você está interessado apenas no arg max , pode apagar o denominador, que será o mesmo para todos
y
. Então, você fica comqual é 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 conjuntap(x, y)
, poisp(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 respectivosx
. Por esse motivo, eles são chamados de modelos "generativos".fonte
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 .
fonte
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
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.fonte
Os diferentes modelos estão resumidos na tabela abaixo:
fonte
Um ponto informativo adicional que combina bem com a resposta de StompChicken acima.
A diferença fundamental entre modelos discriminativos e modelos generativos é:
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 algoritmosP(x,y)
é generativa.Por exemplo. de modelos generativos
Modelos ingênuos de Bayes
P(c)
eP(d|c)
- ondec
está a classe ed
o 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
fonte
A resposta curta
Muitas das respostas aqui se baseiam na definição matemática amplamente usada [1]:
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:
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:
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
fonte
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.
fonte
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.
fonte
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.
fonte
Este artigo me ajudou muito na compreensão do conceito.
Em suma,
Algum bom material de leitura: probabilidade condicional , PDF em conjunto
fonte