Pergunta

Por favor, ajuda-me a compreender a diferença entre um generativa e uma discriminativo algoritmo, tendo em mente que eu sou apenas um iniciante.

Foi útil?

Solução

Vamos dizer que você tem x dados de entrada e você quiser classificar os dados em etiquetas y. Um modelo generativo aprende a joint p(x,y) distribuição de probabilidade e um modelo discriminativo aprende a distribuição p(y|x) condicional probabilidade - que devem ser lidas como "a probabilidade de y dada x" .

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

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

p(x,y) seja

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

p(y|x) seja

      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, você vai entender a diferença entre as duas distribuições de probabilidade.

O p(y|x) distribuição é a distribuição natural para a classificação de um determinado exemplo x em um y classe, razão pela qual algoritmos que modelar este directamente são chamados algoritmos discriminativos. algoritmos generativos modelo p(x,y), que pode ser transformado em p(y|x) aplicando a regra de Bayes e então utilizado para a classificação. No entanto, o p(x,y) distribuição também pode ser usado para outros fins. Por exemplo, você poderia usar p(x,y) a gerar pares provável (x,y).

A partir da descrição acima, você pode estar pensando que os modelos de geradores são mais geralmente útil e, portanto, melhor, mas não é tão simples como isso. Este artigo é uma referência muito popular sobre o tema da vs. classificadores generativas discriminativos, mas é bastante pesada indo. A essência geral é que os modelos discriminativos geralmente superam modelos generativas em tarefas de classificação.

Outras dicas

A generativa algoritmo modelos como os dados foram gerados a fim de categorizar um sinal. Ele faz a pergunta:? Com ??base em minhas suposições geração, qual categoria é mais provável para gerar este sinal

A discriminativo algoritmo não se preocupa com a forma como os dados foram gerados, ele simplesmente categoriza um sinal dado.

Imagine que a sua tarefa é classificar um discurso para um idioma.

Você pode fazê-lo por meio de:

  1. aprendendo cada idioma, e em seguida, classificando-a usando o conhecimento que você acabou de ganhar

ou

  1. determinar a diferença entre os modelos lingüísticos sem aprender as línguas, e, em seguida, classificar a fala.

O primeiro é o generativa abordagem eo segundo é o discriminativo abordagem.

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

Na prática, os modelos são usados ??como segue.

Em modelos discriminativos , para prever o y etiqueta do exemplo formação x, você deve avaliar:

enter descrição da imagem aqui

que apenas escolhe o que é o y classe x considerando mais provável. É como se estivéssemos tentando modelar a fronteira de decisão entre as classes . Este comportamento é muito clara em redes neurais, onde os pesos calculados podem ser vistos como uma curva em forma de complexamente isolar os elementos de uma classe no espaço.

Agora, usando a regra de Bayes, vamos substituir o enter descrição da imagem aqui na equação por enter descrição da imagem aqui. Desde que você está apenas interessado no max arg , você pode acabar com o denominador, que será o mesmo para cada y. Então, você é deixado com

enter descrição da imagem aqui

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

Enquanto no primeiro caso você teve a distribuição de probabilidade condicional p(y|x), que modelou o limite entre as classes, no segundo você tinha distribuição de probabilidade conjunta P (x, y), uma vez que p (x, y) = p (x |. y) p (y), que explicitamente modelos a distribuição real de cada classe

Com a função de distribuição de probabilidade conjunta, dado um y, você pode calcular ( "gerar") sua respectiva x. Por esta razão, eles são chamados modelos "geradoras".

Aqui está a parte mais importante das notas de aula de CS299 (por Andrew ng) relacionado com o tema, que realmente me ajuda a entender a diferença entre discriminativo e generativa algoritmos de aprendizagem.

Suponha que temos duas classes de animais, elefante (y = 1) e cão (y = 0). E x é o vetor de características dos animais.

Dado um conjunto de treinamento, um algoritmo como regressão logística ou o algoritmo perceptron (basicamente) tenta encontrar uma linha reta - isto é, uma fronteira de decisão - que separa os elefantes e cães. Em seguida, classificar um novo animal ou como um elefante ou um cachorro, ele verifica em qual lado da decisão limites que cai, e faz a sua previsão em conformidade. Chamamos estes aprendizagem discriminativa algoritmo .

Aqui está uma abordagem diferente. Primeiro, olhando para elefantes, podemos construir uma modelo do que os elefantes parecem. Então, olhando para cães, podemos construir uma modelo separado do que os cães parecem. Finalmente, para classificar um novo animal, que pode coincidir com o novo animal contra o modelo de elefante, e combiná-lo contra o modelo de cão, para ver se o novo animal parece mais com os elefantes ou mais como os cães que tinham visto no conjunto de treinamento. Chamamos estes aprendizagem generativa algoritmo .

Geralmente, há uma prática na comunidade de aprendizagem máquina não para aprender algo que você não quer. Por exemplo, considere um problema de classificação, onde a própria meta é atribuir rótulos y para uma dada entrada x. Se usarmos modelo generativo

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

temos de modelo p (x), que é irrelevante para a tarefa na mão. limitações práticas, como escassez de dados nos forçará a modelar p(x) com algumas suposições de independência fracos. Portanto, nós intuitivamente usar modelos discriminativos para a classificação.

Um ponto informativo disso que vai bem com a resposta por StompChicken acima.

O diferença fundamental entre modelos discriminativos e modelos generativas é a seguinte:

modelos discriminativas aprender a (duro ou mole) limite entre as classes

modelos Generative modelar o distribuição de aulas individuais

Editar:

Um modelo Generative é o que podem gerar dados . Ele modela ambas as características e a classe (ou seja, os dados completos).

Se P(x,y) modelo:. Posso usar esta distribuição de probabilidade de gerar pontos de dados - e, portanto, todos os algoritmos de modelagem P(x,y) são generativa

Por exemplo. de modelos geradores

  • Naive Bayes modelos P(c) e P(d|c) -. Onde c é a classe e d é o vetor de recurso

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

    Assim, Naive Bayes em alguns modelos de formulário, P(c,d)

  • Bayes Net

  • Markov Nets

Um modelo discriminativo é aquela que só pode ser usado para discriminar / Classificar os pontos de dados . Você só exigem o modelo P(y|x) em tais casos, (ou seja, probabilidade de classe dado o vetor de características).

Por exemplo. de modelos discriminativos:

  • regressão logística

  • Redes Neurais

  • campos aleatórios condicionais

Em geral, os modelos de geradores precisa modelo muito mais do que os modelos discriminativos e, portanto, por vezes, não são tão eficazes. Por uma questão de fato, a maioria (não tenho certeza se todos) algoritmos de aprendizagem não supervisionada, como o agrupamento etc pode ser chamado generativa, uma vez que P(d) modelo (e não há classes: P)

PS: Parte da resposta é retirado

Os diferentes modelos são somados na tabela abaixo: enter descrição da imagem aqui

Os meus dois centavos: Discriminativo aborda diferenças destaque abordagens geradoras não incidem sobre as diferenças; eles tentam construir um modelo que é representante da classe. Há uma sobreposição entre os dois. Idealmente deve ser usado duas abordagens: um será útil para encontrar semelhanças e os outros vão ser útil para encontrar dis-semelhanças.

Um modelo de algoritmo gerador vai aprender completamente a partir dos dados de treinamento e irá prever a resposta.

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

Todas as respostas anteriores são grandes, e eu gostaria de ligar mais um ponto.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top