Em aprendizado de máquina, os modelos de difusão, também conhecidos como modelos generativos baseados em difusão ou modelos generativos baseados em pontuação, são uma classe de modelos generativos de variáveis latentes. Um modelo de difusão consiste em dois componentes principais: o processo de difusão direta e o processo de amostragem reversa. O objetivo dos modelos de difusão é aprender um processo de difusão para um determinado conjunto de dados, de modo que o processo possa gerar novos elementos que sejam distribuídos de forma semelhante ao conjunto de dados original. Um modelo de difusão modela dados como gerados por um processo de difusão, pelo qual um novo dado realiza um passeio aleatório com deriva através do espaço de todos os dados possíveis. Um modelo de difusão treinado pode ser amostrado de várias maneiras, com diferentes eficiência e qualidade.

Existem vários formalismos equivalentes, incluindo cadeias de Markov, modelos probabilísticos de difusão com desruído, redes de pontuação condicionadas a ruído e equações diferenciais estocásticas. Eles são tipicamente treinados usando inferência variacional. O modelo responsável pela remoção de ruído é tipicamente chamado de sua "espinha dorsal". A espinha dorsal pode ser de qualquer tipo, mas são tipicamente U-nets ou transformers.

, os modelos de difusão são usados principalmente para tarefas de visão computacional, incluindo remoção de ruído de imagem, preenchimento de imagem, super-resolução, geração de imagens e geração de vídeos. Estes tipicamente envolvem treinar uma rede neural para sequencialmente remover ruído de imagens borradas com ruído gaussiano. O modelo é treinado para reverter o processo de adicionar ruído a uma imagem. Após o treinamento até a convergência, ele pode ser usado para geração de imagem começando com uma imagem composta de ruído aleatório e aplicando a rede iterativamente para remover o ruído da imagem.

Geradores de imagem baseados em difusão têm visto amplo interesse comercial, como Stable Diffusion e DALL-E. Esses modelos tipicamente combinam modelos de difusão com outros modelos, como codificadores de texto e módulos de atenção cruzada para permitir geração condicionada a texto.

Além da visão computacional, os modelos de difusão também encontraram aplicações em processamento de linguagem natural como geração de texto e sumarização, geração de som, e aprendizado por reforço.

Modelo de difusão com desruído

Termodinâmica de não-equilíbrio Os modelos de difusão foram introduzidos em 2015 como um método para treinar um modelo que pode amostrar a partir de uma distribuição de probabilidade altamente complexa. Eles usaram técnicas da termodinâmica de não-equilíbrio, especialmente difusão.

Considere, por exemplo, como se poderia modelar a distribuição de todas as fotos que ocorrem naturalmente. Cada imagem é um ponto no espaço de todas as imagens, e a distribuição de fotos que ocorrem naturalmente é uma "nuvem" no espaço, que, ao adicionar repetidamente ruído às imagens, se difunde para o resto do espaço da imagem, até que a nuvem se torne quase indistinguível de uma distribuição gaussiana . Um modelo que pode aproximadamente desfazer a difusão pode então ser usado para amostrar a partir da distribuição original. Isso é estudado na termodinâmica de "não-equilíbrio", pois a distribuição inicial não está em equilíbrio, ao contrário da distribuição final.

A distribuição de equilíbrio é a distribuição gaussiana , com fdp . Esta é apenas a distribuição de Maxwell-Boltzmann de partículas em um poço de potencial à temperatura 1. A distribuição inicial, estando muito fora do equilíbrio, se difundiria em direção à distribuição de equilíbrio, fazendo passos aleatórios tendenciosos que são uma soma de pura aleatoriedade (como um caminhante browniano) e descida do gradiente descendo o poço de potencial. A aleatoriedade é necessária: se as partículas sofressem apenas descida do gradiente, então todas cairiam na origem, colapsando a distribuição.

Modelo Probabilístico de Difusão com Desruído (DDPM) O artigo de 2020 propôs o Modelo Probabilístico de Difusão com Desruído (DDPM), que melhora o método anterior por inferência variacional.

Difusão direta Para apresentar o modelo, alguma notação é necessária.

são constantes fixas.

é a distribuição normal com média e variância , e é a densidade de probabilidade em . Uma barra vertical denota condicionamento.

Um processo de difusão direta começa em algum ponto inicial , onde é a distribuição de probabilidade a ser aprendida, então repetidamente adiciona ruído a ela poronde são amostras IID (Variáveis aleatórias independentes e identicamente distribuídas) de . Os coeficientes e garantem que assumindo que . Os valores de são escolhidos de modo que para qualquer distribuição inicial de , se ela tem segundo momento finito, então converge para .

Todo o processo de difusão então satisfazouonde é uma constante de normalização e frequentemente omitida. Em particular, notamos que é um processo gaussiano, o que nos oferece considerável liberdade na reparametrização. Por exemplo, por manipulação padrão com processo gaussiano, Em particular, note que para grande, a variável converge para . Isto é, após um processo de difusão suficientemente longo, terminamos com algum que está muito próximo de , com todos os traços do original desaparecidos.

Por exemplo, comopodemos amostrar diretamente "em uma etapa", em vez de passar por todas as etapas intermediárias .

Difusão reversa A ideia chave do DDPM é usar uma rede neural parametrizada por . A rede recebe dois argumentos , e produz um vetor e uma matriz , de modo que cada etapa no processo de difusão direta possa ser aproximadamente desfeita por . Isso então nos dá um processo de difusão reversa definido porO objetivo agora é aprender os parâmetros de modo que seja o mais próximo possível de . Para fazer isso, usamos a estimativa de máxima verossimilhança com inferência variacional.

Inferência variacional A desigualdade ELBO afirma que , e tomando mais uma esperança, obtemosVemos que maximizar a quantidade à direita nos daria um limite inferior na verossimilhança dos dados observados. Isso nos permite realizar inferência variacional.

Defina a função de perdae agora o objetivo é minimizar a perda por descida do gradiente estocástica. A expressão pode ser simplificada paraonde não depende do parâmetro e, portanto, pode ser ignorada. Como também não depende do parâmetro, o termo também pode ser ignorado. Isso deixa apenas com a ser minimizada.

Rede de previsão de ruído Como , isso sugere que devemos usar ; no entanto, a rede não tem acesso a , e então tem que estimá-lo. Agora, como , podemos escrever , onde é algum ruído gaussiano desconhecido. Agora vemos que estimar é equivalente a estimar .

Portanto, deixe a rede produzir um vetor de ruído , e deixe-a preverResta projetar . O artigo do DDPM sugeriu não aprendê-lo (pois resultava em "treinamento instável e pior qualidade de amostra"), mas fixá-lo em algum valor , onde produziu desempenho semelhante.

Com isso, a perda se simplifica para que pode ser minimizada por descida do gradiente estocástica. O artigo observou empiricamente que uma função de perda ainda mais simplesresultou em melhores modelos.

Processo de difusão reversa Após uma rede de previsão de ruído ser treinada, ela pode ser usada para gerar pontos de dados na distribuição original em um loop como segue:

Calcule a estimativa de ruído Calcule a estimativa dos dados originais Amostre os dados anteriores Mude o tempo

Modelo generativo baseado em pontuação O modelo generativo baseado em pontuação é outra formulação da modelagem por difusão. Eles também são chamados de rede de pontuação condicionada a ruído (NCSN) ou correspondência de pontuação com dinâmica de Langevin (SMLD).

Correspondência de pontuação

A ideia das funções de pontuação Considere o problema da geração de imagens. Seja representando uma imagem, e seja a distribuição de probabilidade sobre todas as imagens possíveis. Se tivéssemos a própria , então poderíamos dizer com certeza quão provável é uma certa imagem. No entanto, isso é intratável em geral.

Na maioria das vezes, não estamos interessados em saber a probabilidade absoluta de uma certa imagem. Em vez disso, geralmente estamos apenas interessados em saber quão provável é uma certa imagem em comparação com seus vizinhos imediatos — por exemplo, quanto mais provável é uma imagem de um gato em comparação com algumas pequenas variantes dela? É mais provável se a imagem contém dois bigodes, ou três, ou com algum ruído gaussiano adicionado?

Consequentemente, estamos na verdade bastante desinteressados na própria , mas sim em . Isso tem dois efeitos principais: Um, não precisamos mais normalizar , mas podemos usar qualquer , onde é qualquer constante desconhecida que não nos diz respeito. Dois, estamos comparando os vizinhos e , por

Seja a função de pontuação ; então considere o que podemos fazer com .

Acontece que nos permite amostrar a partir de usando termodinâmica. Especificamente, se temos uma função de energia potencial , e muitas partículas no poço de potencial, então a distribuição no equilíbrio termodinâmico é a distribuição de Boltzmann . Na temperatura , a distribuição de Boltzmann é exatamente .

Portanto, para modelar , podemos começar com uma partícula amostrada a partir de qualquer distribuição conveniente (como a distribuição gaussiana padrão), então simular o movimento da partícula para frente de acordo com a equação de Langevin

e a distribuição de Boltzmann é, pela equação de Fokker-Planck, o equilíbrio termodinâmico único. Então, não importa qual distribuição tenha, a distribuição de converge em distribuição para à medida que .

Aprendendo a função de pontuação Dada uma densidade , desejamos aprender uma aproximação da função de pontuação . Isso é correspondência de pontuação. Tipicamente, a correspondência de pontuação é formalizada como a minimização da função de divergência de Fisher . Expandindo a integral e realizando uma integração por partes, nos dando uma função de perda, também conhecida como regra de pontuação de Hyvärinen, que pode ser minimizada por descida do gradiente estocástica.

Annealing da função de pontuação Suponha que precisamos modelar a distribuição de imagens, e queremos , uma imagem de ruído branco. Agora, a maioria das imagens de ruído branco não se parecem com imagens reais, então para grandes extensões de . Isso apresenta um problema para aprender a função de pontuação, porque se não há amostras em torno de um certo ponto, então não podemos aprender a função de pontuação naquele ponto. Se não conhecemos a função de pontuação naquele ponto, então não podemos impor a equação de evolução temporal em uma partícula:Para lidar com este problema, realizamos annealing. Se é muito diferente de uma distribuição de ruído branco, então adicionamos progressivamente ruído até que seja indistinguível de uma. Isto é, realizamos uma difusão direta, então aprendemos a função de pontuação, então usamos a função de pontuação para realizar uma difusão reversa.

Processos de difusão contínua

Processo de difusão direta Considere novamente o processo de difusão direta, mas desta vez em tempo contínuo:Tomando o limite , obtemos um processo de difusão contínua, na forma de uma equação diferencial estocástica:onde é um processo de Wiener (movimento browniano multidimensional).

Agora, a equação é exatamente um caso especial da equação de Langevin com amortecimentoonde é o tensor de difusão, é a temperatura, e é o campo de energia potencial. Se substituirmos , recuperamos a equação acima. Isso explica por que a frase "dinâmica de Langevin" é às vezes usada em modelos de difusão.