Autor: Steven Wang

“O que não posso criar, não entendo.” -

Richard Feynman

Prefácio

Crie belas imagens com Stable Diffusion e MidJourney ao seu lado.

Você tem habilidade no uso de ChatGPT e LLaMa para criar textos elegantes.

Você alterna entre MuseNet e MuseGAN para criar a música de montanhas e água corrente.

Não há dúvida de que a capacidade mais singular do ser humano é a criação, mas hoje com o rápido desenvolvimento da tecnologia, criamos criando máquinas! As máquinas podem desenhar obras de arte originais em um determinado estilo (desenhar), escrever um artigo longo e coerente (escrever), criar belas músicas (compor) e desenvolver estratégias vencedoras para jogos complexos (jogar). Esta tecnologia é a Inteligência Artificial Generativa (GenAI). Agora é apenas o começo da revolução GenAI. Agora é o melhor momento para aprender GenAI.

1. Geração e discriminação de modelos

GenAI é uma palavra da moda e a essência por trás dela é modelo generativo, que é um ramo do aprendizado de máquina. O objetivo é treinar um modelo para gerar novos dados semelhantes a um determinado conjunto de dados.

Digamos que temos um conjunto de dados de cavalos. Primeiro, podemos treinar um modelo generativo neste conjunto de dados para capturar as regras que governam as relações complexas entre pixels em imagens de cavalos. Em seguida, você faz uma amostra desse modelo para criar imagens realistas de cavalos que não estão presentes no conjunto de dados original, conforme mostrado abaixo.

Para compreender verdadeiramente os objetivos e a importância dos modelos generativos, é necessário compará-los com os modelos discriminativos. Na verdade, a maioria dos problemas de aprendizado de máquina são resolvidos por modelos discriminantes. Veja os exemplos a seguir.

Suponha que temos um conjunto de dados de pinturas, algumas pintadas por Van Gogh e outras pintadas por outros artistas. Com dados suficientes, podemos treinar um modelo discriminante para prever se uma determinada pintura foi pintada por Van Gogh, conforme mostrado na figura abaixo.

Ao usar o modelo discriminativo, cada exemplo no conjunto de treinamento tem um rótulo. Para o problema de duas classificações acima, geralmente o rótulo da pintura de Van Gogh é 1 e o rótulo da pintura que não é de Van Gogh é 0. A última probabilidade prevista do modelo da imagem acima é 0,83, então é mais provável que tenha sido feito por Van Gogh. Ao contrário do modelo discriminativo, o modelo generativo não exige que os exemplos contenham rótulos porque o seu objetivo é gerar novos dados em vez de prever rótulos para os dados.

Depois de ler o exemplo, vamos usar a notação matemática para definir com precisão o modelo generativo e o modelo discriminativo:

  • O modelo discriminativo modela P(y|x), estimando a probabilidade condicional de um rótulo y dado um recurso x.

  • Os modelos generativos modelam P(x), estimam diretamente a probabilidade do recurso x e fazem uma amostra dessa distribuição de probabilidade para gerar novos recursos.

É importante notar que mesmo que pudéssemos construir um modelo discriminativo que fosse perfeito para identificar as pinturas de Van Gogh, ainda assim não saberíamos como criar uma pintura que se parecesse com Van Gogh. a imagem era de Van Gogh a possibilidade da mão. Pode-se observar que gerar modelos é muito mais difícil do que discriminar modelos.

2. Estrutura para geração de modelos

Antes de compreender a estrutura do modelo generativo, vamos jogar. Suponha que os pontos da figura abaixo sejam gerados por uma determinada regra, vamos chamar essa regra de Pdata, e agora vamos gerar um x = (x1, x2) diferente para que esse ponto pareça ter sido gerado pela mesma regra Pdata.

Como você geraria esse ponto? Você pode usar os pontos fornecidos para gerar um modelo Pmodel em sua mente, e as posições ocupadas por este modelo podem gerar os pontos que você deseja. Pode-se observar que o modelo Pmodel é a estimativa de Pdata. Então o modelo mais simples Pmodel é como a caixa laranja na figura abaixo. Os pontos só podem ser gerados dentro da caixa, mas não fora da caixa.

Para gerar novos pontos, podemos selecionar aleatoriamente um ponto dentro da caixa, ou mais estritamente falando, uma amostra da distribuição do modelo Pmodel. Este é um modelo generativo minimalista. Você cria um modelo (caixa laranja) a partir dos dados de treinamento (pontos pretos) e, em seguida, faz uma amostragem do modelo, esperando que os pontos resultantes sejam semelhantes aos pontos do conjunto de treinamento.

Agora podemos propor formalmente uma estrutura para a aprendizagem generativa.

Vamos agora revelar a distribuição real de geração de dados Pdata e ver como aplicar a estrutura acima a este exemplo. Na figura abaixo podemos ver que a regra de geração de dados Pdata é que os pontos são distribuídos apenas uniformemente na terra e não aparecem no oceano.

É óbvio que o nosso modelo Pmodel é uma simplificação da regra Pdata. A verificação dos pontos A, B e C na figura acima pode nos ajudar a entender se o modelo Pmodel imita com sucesso a regra Pdata.

  • O ponto A não atende à regra Pdata porque ocorre no mar, mas pode ser gerado pelo modelo Pmodel porque ocorre dentro da caixa laranja.

  • O ponto B não pode ser gerado pelo modelo Pmodel porque aparece fora da caixa laranja, mas está em conformidade com a regra Pdata porque ocorre em terra.

  • O ponto C é gerado pelo modelo Pmodel e obedece à regra Pdata.

Este exemplo demonstra os conceitos básicos por trás da modelagem generativa Embora o uso de modelos generativos na realidade seja muito mais complicado, a estrutura básica é a mesma.

3. O primeiro modelo generativo

Suponha que você seja o Chief Fashion Officer (CFO) de uma empresa e seu trabalho seja criar novas roupas da moda. Este ano você recebe 50 conjuntos de dados sobre combinações de moda (conforme mostrado abaixo) e precisa criar 10 novas combinações de moda.

Embora você seja o Diretor de Moda, você também é um cientista de dados, então decide usar um modelo generativo para resolver esse problema. Depois de olhar as 50 fotos acima, você decide usar cinco recursos: tipo de acessórios, cor da roupa, tipo de roupa, cor do cabelo e tipo de cabelo.

Os 10 principais recursos de dados de imagem são os seguintes.

Cada recurso também possui um número diferente de autovalores:

  • 3 tipos de acessos:

    • Em branco, redondo, óculos de sol

  • 8 cores de roupas:

    • Preto, Azul01, Cinza01, PastelVerde, PastelLaranja, Rosa, Vermelho, Branco

  • 4 tipos de roupas:

    • Moletom com capuz, macacão, ShirtScoopNeck, ShirtVNeck

  • 6 cores de cabelo:

    • Preto, Loiro, Marrom, Rosa Pastel, Vermelho, Cinza Prateado

  • 7 tipos de cabelo:

    • NoHair, LongHairBun, LongHairCurly, LongHairStraight, ShortHairShortWaved, ShortHairShortFlat, ShortHairFrizzle

Existem 3 * 8 * 4 * 6 * 7 = 4.032 combinações de recursos, então pode-se imaginar que o espaço amostral contém 4.032 pontos. A partir dos 50 pontos de dados fornecidos, podemos ver que o Pdata prefere determinados valores de recursos para diferentes recursos. Pela tabela acima, podemos perceber que há mais cores de roupas brancas e cabelos cinza-prateados nas imagens. Como não conhecemos os Pdata reais, só podemos usar esses 50 dados para construir um Pmodel para que fique próximo dos Pdata.

3.1 Modelo minimalista

Um dos métodos mais simples é atribuir um parâmetro de probabilidade a cada ponto nas 4.032 combinações de recursos, então o modelo contém 4.031 parâmetros, porque todos os parâmetros de probabilidade somam 1. Agora vamos verificar os 50 dados um por um e depois atualizar os parâmetros do modelo (θ1, θ2,…, θ4031).

Entre eles, N é o número de dados de observação, que é 50, e nj é o número de j-ésimas combinações de características que aparecem em 50 dados.

Por exemplo, a combinação de recursos (chamada combinação 1) de (LongHairStraight, Red, Round, ShirtScoopNeck, White) aparece duas vezes e, em seguida,

Por exemplo, a combinação de recursos (chamada combinação 2) de (LongHairStraight, Red, Round, ShirtScoopNeck, Blue01) não aparece, então

De acordo com as regras acima, calculamos um valor θ para todas as 4.031 combinações. Não é difícil ver que muitos valores θ são 0. O pior é que não podemos gerar novas imagens invisíveis (θ = 0 significa Sem imagens. com esta combinação de características foram observadas). Para resolver esse problema, basta adicionar o número total de recursos d ao denominador e 1 ao numerador, um truque chamado suavização de Laplace.

Agora, cada combinação (incluindo aquelas que não estão no conjunto de dados original) tem uma probabilidade de amostragem diferente de zero, no entanto, este ainda não é um modelo generativo satisfatório porque a probabilidade de um ponto que não está no conjunto de dados original é uma constante. Se tentarmos usar tal modelo para gerar uma pintura de Van Gogh, então ele irá operar em ambas as pinturas com igual probabilidade:

  1. Reprodução da pintura original de Van Gogh (não no conjunto de dados original)

  2. Pintura feita de pixels aleatórios (não no conjunto de dados original)

Obviamente, este não é o modelo generativo que queremos, queremos que ele aprenda alguma estrutura inerente dos dados e, assim, seja capaz de aumentar os pesos de probabilidade das regiões no espaço amostral que ele considera mais prováveis, em vez de colocar todos os pesos de probabilidade em o ponto de existência do conjunto de dados.

3.2 Modelo de simplicidade secundária

O modelo Naive Bayes pode reduzir bastante o número de combinações dos recursos acima. De acordo com seu modelo, assume-se que cada recurso é independente um do outro. Voltando aos dados acima, não há conexão entre a cor do cabelo de uma pessoa (característica xj) e a cor de suas roupas (característica xk).

p(xj | xk) = p(xk)

Com esta suposição, podemos calcular

O modelo Naive Bayes simplifica o problema original de "fazer uma estimativa de probabilidade para cada combinação de recursos" em "fazer uma estimativa de probabilidade para cada recurso". Apenas 23 (3 + 8 + 4 + 6 + 7) parâmetros são necessários e a expressão de cada parâmetro é:

Entre eles, N é o número de dados de observação, que é 50, e nkl é o número de l-ésimos autovalores para o k-ésimo recurso.

Contando 50 dados, a tabela a seguir fornece os valores dos parâmetros do modelo Naive Bayes.

Para calcular a probabilidade de o modelo gerar uma determinada característica dos dados, basta multiplicar as probabilidades da tabela, por exemplo:

A combinação acima não aparece no conjunto de dados original, mas o modelo ainda atribui a ela uma probabilidade diferente de zero, portanto ainda pode ser gerada pelo modelo. Portanto, o modelo Naive Bayes é capaz de aprender alguma estrutura dos dados e usá-la para gerar novos exemplos não vistos no conjunto de dados original. A foto abaixo mostra 10 novas combinações de moda geradas pela modelo.

Neste problema, apenas 5 recursos pertencem a dados de baixa dimensão. É razoável que o modelo ingênuo de Bayes assuma que eles são independentes um do outro, portanto, os resultados gerados pelo modelo não são ruins. colapso.

4. Dificuldades na geração de modelos

4.1 Dados de alta dimensão

Como diretor de moda, você gerou com sucesso 10 novos looks de moda usando Naive Bayes. Você está extremamente confiante e sente que seu modelo é invencível até encontrar o seguinte conjunto de dados.

Este conjunto de dados não é mais representado por cinco recursos, mas por 32*32 = 1024 pixels. Cada valor de pixel pode ser de 0 a 255, com 0 representando branco e 255 representando preto. A tabela a seguir lista os primeiros 10 valores de pixel da imagem de 1 a 5.

Use o mesmo modelo para gerar 10 novos conjuntos de correspondência de moda. A seguir estão os resultados gerados pelo modelo. Cada um é muito semelhante em aparência e não é possível distinguir recursos diferentes.

Em primeiro lugar, como o modelo Naive Bayes amostra pixels de forma independente, os pixels adjacentes são, na verdade, muito semelhantes. Para roupas, os pixels deveriam ser aproximadamente os mesmos, mas o modelo faz amostras aleatórias, então as roupas na imagem acima são todas coloridas. Em segundo lugar, existem muitas possibilidades no espaço amostral de alta dimensão, das quais apenas uma pequena parte é identificável. Se um modelo Naive Bayes lidar diretamente com valores de pixel altamente correlacionados, a chance de encontrar uma combinação satisfatória de valores é muito pequena.

Resumindo, para um espaço amostral de baixa dimensão com baixa correlação de características, o efeito Naive Bayes é muito bom por meio de amostragem independente, mas para um espaço amostral de alta dimensão com alta correlação de características, o efeito efetivo é encontrado por meio de amostragem independente de pixels; . Rostos humanos são quase impossíveis.

Este exemplo destaca duas dificuldades que os modelos generativos devem superar para terem sucesso:

  1. Como o modelo lida com dependências condicionais entre recursos de alta dimensão?

  2. Como o modelo encontra uma proporção muito pequena de observações que atendem às condições de um espaço amostral de alta dimensão?

Se os modelos generativos desejam ter sucesso em um espaço amostral com grandes dimensões e características altamente correlacionadas, eles devem fazer uso de modelos de aprendizagem profunda. Precisamos de um modelo que possa inferir estruturas relevantes a partir dos dados, em vez de ser informado antecipadamente sobre quais suposições fazer. O aprendizado profundo pode formar seus próprios recursos em um espaço de baixa dimensão, e esta é uma forma de aprendizado de representação.

4.2 Aprendizagem de representação

Aprendizagem de representação significa aprender representações de dados de alta dimensão.

Suponha que você vá encontrar uma amiga online que nunca conheceu antes. Quando você chega ao local do encontro, há tantas pessoas que você não consegue encontrá-la. Você liga para ela para descrever sua aparência. Acredito que você não diria que a cor do pixel 1 da sua imagem é preta, a cor do pixel 2 é preto claro, a cor do pixel 3 é cinza, etc. Pelo contrário, você pensaria que os internautas teriam uma compreensão geral da aparência das pessoas comuns e, então, usariam esse entendimento para descrever as características do grupo de pixels. Por exemplo, você tem cabelo preto curto e usa óculos brilhantes. , etc. Normalmente, com no máximo 10 dessas descrições, um internauta pode gerar uma imagem sua em sua mente. A imagem pode ser grosseira, mas não impede que o internauta o encontre entre centenas de pessoas, mesmo que nunca o tenha conhecido.

Esta é a ideia central por trás do aprendizado de representação. Em vez de tentar modelar diretamente um espaço amostral de alta dimensão, usamos algum espaço latente de baixa dimensão para descrever cada item no conjunto de treinamento. Observe os resultados e então aprenda uma função de mapeamento necessária. um ponto no espaço latente e mapeia-o para o espaço amostral original. Em outras palavras, cada ponto no espaço latente representa as características dos dados de alta dimensão.

Se o que foi dito acima não for fácil de entender, consulte o conjunto de treinamento abaixo, que consiste em algumas imagens de jar em tons de cinza.

Não é difícil perceber que esses potes podem ser descritos por apenas duas características: altura e largura. Portanto, podemos converter o espaço de pixels de alta dimensão da imagem em um espaço latente bidimensional, conforme mostrado na figura abaixo. Desta forma podemos amostrar o espaço latente (pontos azuis) e convertê-lo em uma imagem através da função de mapeamento f.

Reconhecer que o conjunto de dados original pode ser representado por um espaço latente mais simples não é fácil para a máquina. Primeiro, a máquina precisa determinar que a altura e a largura são as duas dimensões do espaço latente que melhor descrevem o conjunto de dados e, em seguida, aprender o mapeamento. A função $$f$$ pode pegar um ponto neste espaço e mapeá-lo para um mapa de pote em escala de cinza. O aprendizado profundo nos permite treinar máquinas para encontrar essas relações complexas sem orientação humana.

5. Classificação dos modelos generativos

Todos os tipos de modelos generativos visam, em última análise, resolver a mesma tarefa, mas todos modelam a função de densidade de maneiras ligeiramente diferentes. De modo geral, eles se enquadram em duas categorias:

  • Modelando explicitamente a função de densidade,

    • Mas restrinja o modelo de alguma forma para que a função de densidade possa ser calculada, como um modelo FLOW de normalização

    • Mas aproximando a função de densidade, como autoencoder variacional (VAE) e modelo de difusão (modelo de difusão)

  • Modelar implicitamente a função de densidade por um processo estocástico que gera diretamente os dados. Por exemplo, rede adversária generativa (GAN)

Resumir

A inteligência artificial generativa (GenAI) é um tipo de inteligência artificial que pode ser usada para criar novos conteúdos e ideias, incluindo textos, imagens, vídeos e músicas. Como toda inteligência artificial, GenAI é um modelo muito grande pré-treinado por um modelo de aprendizagem profunda baseado em uma grande quantidade de dados, geralmente chamado de modelo básico (FM). Com o GenAI, podemos desenhar imagens mais legais, escrever textos mais bonitos e compor músicas mais comoventes, mas o primeiro passo exige que entendamos como o GenAI cria coisas novas, como disse o chefe do artigo, Richard Feynman, sobre “Eu ganhei' Não entendo o que não consigo criar.”