Generativo x discriminativo

153

Eu sei que generativo significa "baseado em " e discriminativo significa "baseado em ", mas estou confuso em vários pontos:P(x,y)P(y|x)

  • A Wikipedia (+ muitas outras ocorrências na web) classificam coisas como SVMs e árvores de decisão como discriminatórias. Mas estes nem sequer têm interpretações probabilísticas. O que significa discriminativo aqui? Discriminatório passou a significar algo que não é generativo?

  • Naive Bayes (NB) é generativo porque captura e , e, portanto, você tem (assim como ). Não é trivial fazer, digamos, a regressão logística (o garoto-propaganda dos modelos discriminativos) "generativa" simplesmente computando maneira semelhante (mesma suposição de independência que NB, de modo que , onde o MLE para são apenas frequências)?P(x|y)P(y)P(x,y)P(y|x)P(x)P(x)=P(x0 0)P(x1)...P(xd)P(xEu)

  • Eu sei que os modelos discriminativos tendem a superar os generativos. Qual é a utilidade prática de trabalhar com modelos generativos? Ser capaz de gerar / simular dados é citado, mas quando isso ocorre? Pessoalmente, só tenho experiência com regressão, classificação e colaboração. filtrando dados estruturados, então os usos são irrelevantes para mim aqui? O argumento "falta de dados" ( para a falta de ) parece oferecer apenas uma vantagem nos dados de treinamento (quando você realmente conhece e não precisa marginalizar sobre para obter uma aparência relativamente burra que você poderia ter estimado diretamente de qualquer maneira), e mesmo assim a imputação é muito mais flexível (pode prever com base não apenas emx i y P ( y ) P ( x i ) y x iP(xEu|y)xEuyP(y)P(xEu)ymas outros também).xEu

  • O que há com as citações completamente contraditórias da Wikipedia? "modelos generativos são tipicamente mais flexíveis que modelos discriminativos na expressão de dependências em tarefas complexas de aprendizagem" vs. "modelos discriminativos geralmente podem expressar relações mais complexas entre as variáveis ​​observadas e alvo"

Pergunta relacionada que me fez pensar sobre isso.

Yang
fonte
5
(+1) Acho que a terminologia é confusa e penso que um modelo de é generativo para a distribuição condicional em contraste com o SVM, digamos, que apenas modela aspectos dessa distribuição condicional para uma discriminação puramente discriminatória. objetivo. Como mostra seu segundo marcador, um modelo de pode ser aumentado para se tornar um modelo totalmente generativo. A distinção é relevante do ponto de vista da aprendizagem, porque podemos modelar e computar ou podemos modelar . P ( y | x ) P ( x , y ) P ( y | x ) P ( y | x )P(y|x)P(y|x)P(x,y)P(y|x)P(y|x)
NRH 28/06
2
Eu não acho que sua afirmação sobre SVMs seja verdadeira: "Mas elas nem têm interpretações probabilísticas". Qualquer coisa com uma função de perda pode ser claramente interpretada em um sentido probabilístico, encontrando a configuração MAP de um PDF adequado.
gmatt

Respostas:

135

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

  • Modelos discriminativos aprendem o limite (rígido ou flexível) entre as classes
  • Modelos generativos modelam a distribuição de classes individuais

Para responder suas perguntas diretas:

  • Os SVMs e as árvores de decisão são discriminativos porque aprendem limites explícitos entre as classes. O SVM é um classificador de margem máxima, o que significa que ele aprende um limite de decisão que maximiza a distância entre amostras das duas classes, considerando um kernel. A distância entre uma amostra e o limite de decisão aprendido pode ser usada para tornar o SVM um classificador "flexível". As DTs aprendem o limite da decisão particionando recursivamente o espaço de uma maneira que maximize o ganho de informações (ou outro critério).

  • É possível fazer uma forma generativa de regressão logística dessa maneira. Observe que você não está usando o modelo generativo completo para tomar decisões de classificação.

  • Existem várias vantagens que os modelos generativos podem oferecer, dependendo da aplicação. Digamos que você esteja lidando com distribuições não estacionárias, onde os dados de teste on-line podem ser gerados por distribuições subjacentes diferentes dos dados de treinamento. Normalmente, é mais simples detectar alterações na distribuição e atualizar um modelo generativo adequadamente do que fazer isso para um limite de decisão em um SVM, especialmente se as atualizações on-line precisarem ser não supervisionadas. Modelos discriminativos também geralmente não funcionam para detecção de valores extremos, embora modelos generativos geralmente funcionem. O que é melhor para um aplicativo específico deve, é claro, ser avaliado com base no aplicativo.

  • (Essa citação é complicada, mas é o que eu acho que está tentando dizer) Os modelos generativos são normalmente especificados como modelos gráficos probabilísticos, que oferecem representações ricas das relações de independência no conjunto de dados. Modelos discriminativos não oferecem representações claras de relações entre recursos e classes no conjunto de dados. Em vez de usar recursos para modelar totalmente cada classe, eles se concentram na modelagem rica do limite entre as classes. Dada a mesma quantidade de capacidade (digamos, bits em um programa de computador executando o modelo), um modelo discriminativo pode, portanto, produzir representações mais complexas desse limite do que um modelo generativo.

Benhamner
fonte
Um comentário trivial: limites entre clusters ficam cada vez mais difíceis de plotar / entender / medir à medida que aumenta. Assim, por exemplo, o k-clustering, visto como um modelo discriminativo, fica mais barulhento e ad hoc. (Exemplo: compare políticas em sistemas de dois partidos contra cinco partidos na Alemanha). kk(k2)kk
Denis
63

(a resposta de hamner é ótima, portanto, basta postar minha resposta no MetaOptimize para garantir a integridade.)

Penso nos algoritmos generativos como um modelo de como os dados são realmente gerados (penso neles como um modelo de e , em vez de , embora eu ache que seja equivalente) e algoritmos discriminativos simplesmente fornecendo divisões de classificação (e não necessariamente de maneira probabilística).P(X|Y)P(Y)P(X,Y)

Compare, por exemplo, modelos de mistura gaussiana e agrupamento k-mean. No primeiro, temos um bom modelo probabilístico de como os pontos são gerados (escolha um componente com alguma probabilidade e depois emita um ponto por amostragem da distribuição gaussiana do componente), mas não há nada que possamos realmente dizer sobre o último.

Observe que algoritmos generativos têm propriedades discriminativas, pois você pode obter depois de ter e (pelo Teorema de Bayes), embora algoritmos discriminativos não tenham realmente propriedades generativas.P(Y|X)P(X|Y)P(Y)

1: Os algoritmos discriminativos permitem classificar pontos, sem fornecer um modelo de como os pontos são realmente gerados. Portanto, estes podem ser:

  • algoritmos probabilísticos tentam aprender (por exemplo, regressão logística);P(Y|X)
  • ou algoritmos não probabilísticos que tentam aprender os mapeamentos diretamente dos pontos para as classes (por exemplo, perceptron e SVMs simplesmente fornecem um hiperplano separador, mas nenhum modelo para gerar novos pontos).

Portanto, sim, classificadores discriminativos são quaisquer classificadores que não são generativos.

Outra maneira de pensar sobre isso é que algoritmos generativos fazem algum tipo de suposição de estrutura em seu modelo , mas algoritmos discriminativos fazem menos suposições. Por exemplo, Naive Bayes assume independência condicional de seus recursos, enquanto a regressão logística (a "contraparte" discriminativa de Naive Bayes) não.

2: Sim, Naive Bayes é generativo porque captura e . Por exemplo, se soubermos que e , juntamente com as probabilidades de palavras em inglês e francês, agora podemos gerar um novo documento escolhendo primeiro o idioma do documento ( Inglês com probabilidade 0,7, francês com probabilidade 0,3) e, em seguida, gerando palavras de acordo com as probabilidades de palavras do idioma escolhido.P(X|Y)P(Y)P(Y=EngeuEush)=0,7P(Y=French)=0,3

Sim, acho que você pode tornar a regressão logística generativa dessa maneira, mas é apenas porque você está adicionando algo à regressão logística que ainda não está lá. Ou seja, quando você está executando uma classificação Naive Bayes, está computando diretamente (os termos à direita, e , é o que permite gerar um novo documento); mas quando você está computando em regressão logística, não está computando essas duas coisas, apenas aplicando uma função logística a um produto escalar.P(Y|X)P(X|Y)P(Y)P(X|Y)P(Y)P(Y|X)

3: Os modelos generativos geralmente superam os modelos discriminativos em conjuntos de dados menores porque suas suposições generativas colocam alguma estrutura em seu modelo que evita o super ajuste . Por exemplo, vamos considerar Naive Bayes vs. Regressão logística. É claro que a suposição de Naive Bayes raramente é satisfeita; portanto, a regressão logística tende a superar a Naive Bayes à medida que o conjunto de dados cresce (uma vez que pode capturar dependências que Naive Bayes não pode). Mas quando você tem apenas um conjunto de dados pequeno, a regressão logística pode pegar padrões espúrios que realmente não existem, então o Naive Bayes atua como uma espécie de regularizador no seu modelo que evita o ajuste excessivo. Há um artigo de Andrew Ng e Michael Jordan sobre classificadores discriminativos versus geradores que fala mais sobre isso.

4: Eu acho que o que isso significa é que modelos generativos podem realmente aprender a estrutura subjacente dos dados se você especificar seu modelo corretamente e o modelo realmente for válido, mas modelos discriminativos poderão superar o desempenho caso suas suposições generativas não sejam satisfeitas (uma vez que algoritmos discriminativos são menos vinculado a uma estrutura específica, e o mundo real é confuso e as suposições raramente são perfeitamente satisfeitas). (Eu provavelmente ignoraria essas citações se elas fossem confusas.)

raegtin
fonte