Modelos generativos (em inglês: generative models) são uma classe de modelos computacionais frequentemente utilizados para classificação. Em aprendizado de máquina, um modelo generativo normalmente modela a distribuição conjunta das entradas e das saídas, como P(X,Y), ou modela a forma como as entradas se distribuem dentro de cada classe, como P(X∣Y), em conjunto com uma probabilidade a priori da classe, P(Y). Por descrever um processo completo de geração de dados, um modelo generativo pode ser usado para extrair novas amostras semelhantes aos dados observados, processo frequentemente chamado de geração de dados sintéticos. Os modelos generativos são empregados em estimação de densidade, simulação e aprendizado com dados ausentes ou parcialmente rotulados. Na classificação, podem prever rótulos combinando P(X∣Y) e P(Y) e aplicando a regra de Bayes. Costumam ser contrapostos aos modelos discriminativos, que se concentram em prever diretamente as saídas a partir das entradas.
Entre as abordagens de modelagem generativa que utilizam uma distribuição de probabilidade conjunta estão os classificadores naive Bayes, os modelos de mistura gaussiana, os autocodificadores variacionais, as redes adversárias generativas, entre outros.
Na classificação estatística, as duas principais abordagens são chamadas de abordagem generativa e abordagem discriminativa. Elas constroem classificadores por meio de procedimentos distintos, que diferem quanto ao grau de modelagem estatística. A terminologia não é uniforme, mas é possível distinguir três tipos principais:
A distinção entre estas duas últimas classes não é feita de maneira consistente; Jebara (2004) denomina essas três classes de aprendizado generativo, aprendizado condicional e aprendizado discriminativo, ao passo que Ng & Jordan (2002) distinguem apenas duas classes, que chamam de classificadores generativos (distribuição conjunta) e classificadores discriminativos (distribuição condicional ou nenhuma distribuição), sem separar as duas últimas. De modo análogo, um classificador baseado em um modelo generativo é um classificador generativo, enquanto um classificador baseado em um modelo discriminativo é um classificador discriminativo, embora este último termo também designe classificadores que não se baseiam em um modelo.
Aplicado à classificação, o objetivo é partir de uma observação x para chegar a um rótulo y (ou a uma distribuição de probabilidade sobre os rótulos). Isso pode ser calculado diretamente, sem recorrer a uma distribuição de probabilidade (classificador livre de distribuição); pode-se estimar a probabilidade de um rótulo dada uma observação, (modelo discriminativo), e basear a classificação nessa estimativa; ou pode-se estimar a distribuição conjunta (modelo generativo), calcular a partir dela a probabilidade condicional e, então, basear a classificação nesse resultado. Essas abordagens são cada vez mais indiretas, porém cada vez mais probabilísticas, o que permite aplicar mais conhecimento do domínio e mais teoria das probabilidades. Na prática, empregam-se abordagens diferentes conforme o problema em questão, e abordagens híbridas podem combinar os pontos fortes de vários métodos.
Uma divisão alternativa define essas classes de forma simétrica:
Independentemente da definição exata, a terminologia é constitutiva, já que um modelo generativo pode ser usado para "gerar" instâncias aleatórias (resultados), seja de uma observação e de um alvo , seja de uma observação x dado um valor-alvo y, enquanto um modelo discriminativo ou um classificador discriminativo (sem modelo) pode ser usado para "discriminar" o valor da variável-alvo Y, dada uma observação x. A diferença entre "discriminar" (distinguir) e "classificar" é sutil, e os dois termos nem sempre são diferenciados. (A expressão "classificador discriminativo" torna-se um pleonasmo quando "discriminação" equivale a "classificação".)
O termo "modelo generativo" também é usado para descrever modelos que geram instâncias de variáveis de saída sem uma relação clara com distribuições de probabilidade sobre possíveis amostras das variáveis de entrada. As redes adversárias generativas são exemplos dessa classe de modelos generativos e são avaliadas principalmente pela semelhança entre determinadas saídas e possíveis entradas. Esses modelos não são classificadores.
Aplicada à classificação, a variável observável X é frequentemente uma variável contínua, ao passo que a variável-alvo Y costuma ser uma variável discreta formada por um conjunto finito de rótulos. A probabilidade condicional também pode ser interpretada como uma função-alvo (não determinística) , considerando X como entradas e Y como saídas.
Dado um conjunto finito de rótulos, as duas definições de "modelo generativo" estão intimamente relacionadas. Um modelo da distribuição condicional é um modelo da distribuição de cada rótulo, e um modelo da distribuição conjunta equivale a um modelo da distribuição dos valores dos rótulos, , combinado com a distribuição das observações dado um rótulo, ; simbolicamente, Assim, embora um modelo da distribuição de probabilidade conjunta seja mais informativo do que um modelo da distribuição de cada rótulo (sem as respectivas frequências relativas), a diferença entre eles é relativamente pequena, razão pela qual nem sempre são distinguidos.
Dado um modelo da distribuição conjunta, , a distribuição de cada variável pode ser calculada por meio das distribuições marginais e (considerando X como contínua, e portanto integrando sobre ela, e Y como discreta, e portanto somando sobre ela), e qualquer uma das distribuições condicionais pode ser calculada pela definição de probabilidade condicional: e .
Dado um modelo de uma das probabilidades condicionais e distribuições de probabilidade estimadas para as variáveis X e Y, denotadas por e , é possível estimar a probabilidade condicional inversa por meio da regra de Bayes:
Por exemplo, dado um modelo generativo para , pode-se estimar:
e, dado um modelo discriminativo para , pode-se estimar:
Observe-se que a regra de Bayes (cálculo de uma probabilidade condicional em função da outra) e a definição de probabilidade condicional (cálculo da probabilidade condicional em função da distribuição conjunta) também são frequentemente confundidas.
Um algoritmo generativo modela a forma como os dados foram gerados para categorizar um sinal. Ele se pergunta: com base nas minhas hipóteses de geração, qual categoria tem maior probabilidade de gerar este sinal? Um algoritmo discriminativo, por sua vez, não se preocupa com a forma como os dados foram gerados e simplesmente categoriza o sinal recebido. Assim, os algoritmos discriminativos procuram aprender diretamente a partir dos dados e, em seguida, classificá-los. Já os algoritmos generativos procuram aprender , que pode depois ser transformada em para classificar os dados. Uma das vantagens dos algoritmos generativos é a possibilidade de usar para gerar novos dados semelhantes aos existentes. Por outro lado, já se demonstrou que alguns algoritmos discriminativos têm desempenho superior a alguns algoritmos generativos em tarefas de classificação.
Embora os modelos discriminativos não precisem modelar a distribuição das variáveis observadas, em geral não conseguem expressar relações complexas entre as variáveis observadas e as variáveis-alvo. Ainda assim, de modo geral, não têm necessariamente desempenho superior ao dos modelos generativos em tarefas de classificação e de regressão. As duas classes são vistas como complementares ou como visões diferentes de um mesmo procedimento.
Suponha que os dados de entrada sejam , que o conjunto de rótulos para seja e que haja os seguintes 4 pontos de dados:
Para esses dados, a estimativa da distribuição de probabilidade conjunta a partir da medida empírica é a seguinte:
enquanto é a seguinte:
Shannon (1948) apresenta um exemplo em que uma tabela de frequências de pares de palavras da língua inglesa é usada para gerar uma frase que começa com "representing and speedily is an good". A frase não é um inglês correto, mas se aproxima cada vez mais dele à medida que a tabela passa de pares de palavras para trios de palavras, e assim por diante.
Entre os tipos de modelos generativos estão:
Se os dados observados forem de fato amostrados a partir do modelo generativo, ajustar os parâmetros do modelo de modo a maximizar a verossimilhança dos dados é um método comum. No entanto, como a maioria dos modelos estatísticos é apenas uma aproximação da distribuição verdadeira, caso o modelo seja aplicado para fazer inferências sobre um subconjunto de variáveis condicionadas a valores conhecidos de outras, pode-se argumentar que a aproximação faz mais suposições do que o necessário para resolver o problema em questão. Nesses casos, pode ser mais preciso modelar diretamente as funções de densidade condicional por meio de um modelo discriminativo (ver acima), embora os detalhes específicos de cada aplicação acabem por determinar qual abordagem é mais adequada em cada caso.
Com a ascensão do aprendizado profundo, surgiu uma nova família de métodos, denominada modelos generativos profundos (deep generative models, DGMs), a partir da combinação de modelos generativos com redes neurais profundas. O aumento da escala das redes neurais costuma vir acompanhado de um aumento da escala dos dados de treinamento, e ambos são necessários para obter um bom desempenho.
Entre os DGMs mais conhecidos estão os autocodificadores variacionais (VAEs), as redes adversárias generativas (GANs) e os modelos autorregressivos. A partir do final da década de 2010, observou-se uma tendência de construir modelos generativos profundos de dimensões muito grandes. Por exemplo, o GPT-3 e seu antecessor, o GPT-2, são modelos de linguagem neurais autorregressivos com bilhões de parâmetros; o BigGAN e o VQ-VAE, usados na geração de imagens, podem ter centenas de milhões de parâmetros; e o Jukebox é um modelo generativo de áudio musical de grandes dimensões, com bilhões de parâmetros.