Explicação detalhada do modelo de difusão e do modelo generativo

Difusão e outros modelos generativos

O que é Modelo de Difusão

Introdução aos modelos de difusão

A modelagem generativa é uma das tarefas seminais para entender as distribuições de dados naturais. As famílias de modelos VAE, GAN e Flow dominaram o campo nos últimos anos devido ao seu desempenho prático. Apesar de seu sucesso comercial, suas falhas teóricas e de design (cálculos complicados de probabilidade, arquiteturas restritivas, dinâmicas de treinamento instáveis, etc.) levaram a uma nova classe de desenvolvimento de modelos generativos

Um modelo generativo é uma classe de modelos que podem gerar aleatoriamente observações com base em alguns parâmetros ocultos .

Nos últimos anos, o modelo de difusão tornou -se um modelo generativo emergente devido à sua forte capacidade generativa . Hoje, grandes conquistas foram feitas.

Além da visão computacional, geração de fala, bioinformática e processamento de linguagem natural, o campo tem muito mais aplicações a serem exploradas.


Desvantagens dos Modelos de Difusão

Os modelos de difusão têm suas desvantagens reais: geração lenta, tipos de dados monolíticos, baixa verossimilhança e nenhuma redução de dimensionalidade . Eles levam a muitos trabalhos melhorados como segue:

  • Visando os problemas existentes no campo do modelo de difusão, uma técnica de melhoria de classificação é proposta .
  • Para acelerar a melhoria do modelo, há uma variedade de técnicas avançadas para acelerar os modelos de difusão - cronogramas de treinamento, amostragem sem treinamento, modelagem de mistura e unificação de pontuação e difusão.
  • Para a diversificação da estrutura de dados, propomos técnicas aprimoradas para a aplicação de modelos de difusão em espaços contínuos, discretos e restritos .
  • Para otimização de verossimilhança, propomos métodos teóricos para melhorar ELBO e minimizar diferenças variacionais.
  • Em termos de redução de dimensionalidade, propomos várias técnicas para resolver problemas de alta dimensão.
  • Para modelos existentes, também fornecemos benchmarks para pontuação FID, IS e NLL de acordo com a NFE específica.

Princípios Simples e Classificação de Modelos

A finalidade do modelo de difusão é transformar a distribuição de dados anterior em ruído aleatório e, em seguida , modificar gradualmente a transformação para reconstruir uma nova amostra com a mesma distribuição anterior .

Os modelos de difusão são inspirados na termodinâmica de não-equilíbrio. Eles definem uma cadeia de etapas de difusão Markoviana para adicionar lentamente ruído aleatório aos dados e, em seguida, aprendem a reverter o processo de difusão para construir as amostras de dados desejadas a partir do ruído. Ao contrário dos VAEs ou modelos de fluxo, os modelos de difusão são aprendidos com um procedimento fixo e as variáveis ​​latentes são de alta dimensionalidade (iguais aos dados originais).

insira a descrição da imagem aqui

Vários modelos generativos baseados em difusão foram propostos, incluindo o Modelo de Probabilidade de Difusão (Sohl-Dickstein et al. 2015), Rede de Pontuação de Condição de Ruído ( NCSN ; Yang & Ermon, 2019) e Modelo de Probabilidade de Difusão Denoising ( DDPM ; He et al. , 2020).

Dividido em processo direto (de X0 a XT) e processo reverso (de XT a X0) ou processo de reconstrução.

O processo de conversão do estado inicial em ruído processável é o processo de avanço/difusão.

O processo na direção oposta ao processo direto é chamado de processo reverso/redução de ruído.

O processo reverso amostra progressivamente o gradiente de ruído em amostras como o estado inicial.

Em qualquer processo, a troca entre quaisquer dois estados é implementada pelo kernel de transição.

cadeia de Markov

Todos nós sabemos que a probabilidade de cada número 1-6 aparecer em uma amostra infinita é 1/6, mas se quisermos saber o resultado de cada lançamento de dados, nunca poderemos calcular com precisão a previsão. A melhor maneira que podemos pensar em é usar generalizações para descrever o resultado.


processo estocástico

Assim como a lei de Newton desempenha o papel da análise mecânica na mecânica, o processo estocástico é o método de estudar o movimento das coisas na teoria da probabilidade e descreve matematicamente com precisão o movimento sob incerteza. Assim como as definições matemáticas de conceitos como velocidade e aceleração na mecânica, dois conceitos mais importantes também são definidos em processos aleatórios: espaço de probabilidade e variáveis ​​aleatórias, que não serão discutidos em profundidade aqui.

Na mecânica newtoniana, o processo determinístico estuda a mudança de uma quantidade ao longo do tempo, enquanto o processo estocástico descreve a possível mudança de uma quantidade ao longo do tempo. Nesse processo, a direção da mudança em cada momento é incerta , e o processo aleatório é composto por uma série de variáveis ​​aleatórias incertas . O estado do sistema em cada momento é expresso por uma variável aleatória, e todo o processo constitui a realização de um processo aleatório .

insira a descrição da imagem aqui


Definição de cadeia de Markov

Após saber o que é um processo aleatório, podemos imaginar o processo aleatório mais simples, que consiste em N passos, cada passo tem duas escolhas (0, 1), então existem 2 N potências de caminhos possíveis, esse processo aleatório será descrito por a probabilidade do número de níveis exponenciais de 2^N, vamos olhar para o nível exponencial! Não iria simplesmente explodir com uma dimensão tão grande? ? ?

Neste momento, **Processos de Markov** são empurrados: o resultado de cada etapa do processo aleatório está relacionado e apenas relacionado à etapa anterior , e nada tem a ver com as outras.

O processo de Makov expresso em linguagem matemática é a cadeia de Markov (cadeia de Markov). Na cadeia de Markov, a mudança do processo aleatório depende apenas da mudança atual e não do histórico.Esta propriedade simplifica o cálculo enorme instantaneamente.


Uma instância de uma cadeia de Markov

Suponha que alguém tenha três estados por dia: jogar, estudar, dormir (essa é a distribuição de estado ). Sabendo que ele está jogando hoje, qual é a probabilidade de ele estudar, brincar e dormir amanhã? Qual é a probabilidade de estudar, brincar e dormir depois de amanhã ou mesmo N dias depois?

Claro, se quisermos saber a probabilidade de aprender, brincar e dormir depois de N dias, precisamos de duas condições:

  • Uma condição preditiva : conheça seu estado no primeiro dia ( matriz ou vetor de distribuição de estado , denotado por S),

  • Uma hipótese : ou seja, a transição de seu estado é regular , ou seja, a probabilidade de estudar hoje, brincar ou dormir amanhã ou continuar estudando é certa, em suma, temos uma matriz de probabilidade de transição de estado previsível e definida P .

insira a descrição da imagem aqui

A matriz acima é a matriz de probabilidade de transição determinada P , que tem homogeneidade de tempo . Em outras palavras, a matriz de probabilidade de transição P permanece inalterada. A matriz de probabilidade de transição do primeiro dia para o segundo dia é a mesma do segundo dia. a matriz de probabilidade de transição é a mesma até o terceiro dia.

Com esta matriz de probabilidade de transição P, mais a matriz de distribuição de estado conhecida do primeiro dia (a probabilidade de ele estar brincando, aprendendo ou dormindo no primeiro dia), a distribuição de estado do enésimo dia pode ser calculada (a probabilidade de ele estar brincando ou estudando ou dormindo no enésimo dia).

Agora temos todas as condições para medir se ele está brincando, estudando ou dormindo após n dias, ou seja, a matriz de distribuição de estado inicial S e a matriz de probabilidade de transição P.

Suponha que sua matriz de distribuição de estado S1 = [0,3, 0,4, 0,3] no primeiro dia, os números dentro representam a probabilidade de jogar, a probabilidade de aprender e a probabilidade de dormir no primeiro dia.

Então

A matriz de distribuição de estado S2 = S1 * P (multiplicando as duas matrizes) para brincar e aprender a dormir no dia seguinte.

No terceiro dia, a matriz de distribuição de estados de brincar e aprender a dormir é S3 = S2 * P (relacionado apenas a S2).

No quarto dia, a matriz de distribuição do estado de brincar e aprender a dormir é S4 = S3 * P (relacionado apenas a S3).

A matriz de distribuição de estado Sn = Sn-1 * P (apenas relacionada a Sn-1) para brincar e aprender a dormir no enésimo dia .

Pode-se ver que a cadeia de Markov é um processo intencional, **sua distribuição de estado futuro depende apenas do presente e não tem nada a ver com o passado! **Esta é a personificação dos Processos de Markov, e seu conjunto de estados possíveis diários constitui uma cadeia de Markov.

Portanto, o processo da cadeia de Markov é um processo iterativo contínuo , que pode ser realizado por meio de loops , bastando registrar a probabilidade condicional de cada etapa com base na etapa anterior e, finalmente, concluir o processo de cálculo final por meio da multiplicação .

insira a descrição da imagem aqui


Código

Código Python:

import numpy as np

matrix = np.matrix([[0.05, 0.75, 0.2],
                    [0.8, 0.05, 0.15],
                    [0.25, 0.5, 0.25]])
vector1 = np.matrix([[0.2, 0.6, 0.2]])

for i in range(100):
    vector1 = vector1 * matrix
    print('第{}轮'.format(i+1))
    print(vector1)

resultado da operação:

...96[[0.39781591 0.41341654 0.18876755]]97[[0.39781591 0.41341654 0.18876755]]98[[0.39781591 0.41341654 0.18876755]]99[[0.39781591 0.41341654 0.18876755]]100[[0.39781591 0.41341654 0.18876755]]

A partir dos resultados, pode-se descobrir que o estado inicial e a matriz de transição de um dia são calculados de trás para frente. Quando o cálculo começa em um determinado dia, a distribuição de probabilidade do estado futuro permanecerá inalterada e sempre permanecerá [0,39781591, 0,41341654, 0,18876755]. Isso pode ser uma coincidência?


Propriedades das Cadeias de Markov

Convergência:

Inferido do exposto, uma propriedade muito importante pode ser obtida: a distribuição de probabilidade estável para a qual converge a matriz de transição de estado do modelo da cadeia de Markov não tem nada a ver com a distribuição de probabilidade de estado inicial .

Ou seja, a matriz de estado de teste inicial no exemplo acima pode começar com qualquer amostra de distribuição de probabilidade , desde que a matriz de transição de estado do modelo de cadeia de Markov seja conhecida, após uma certa escala de transformação, podemos obter o A correspondente amostra de uma distribuição de probabilidade estacionária .

O estado finalmente alcançado torna-se o estado de equilíbrio (estado de equilíbrio) ou distribuição estacionária (distribuição estacionária) , o que significa que a distribuição de probabilidade dessa cadeia não mudará com o tempo , e pode-se dizer que a cadeia de Markov atingiu a convergência.

Recorrência, irredutibilidade:

insira a descrição da imagem aqui

Em alguns processos de Markov, certos estados só podem aparecer um número limitado de vezes (0 na figura), o que é chamado de transiente ou não recorrente .

Os estados que podem ocorrer em um número infinito de iterações são chamados de estados recorrentes (1 e 2 na figura).

Quando alguns estados da cadeia não podem ser alcançados, diz-se que a marca da cadeia é redutível.A intenção original é que seja impossível decompor a cadeia em uma cadeia de Markov redutível.
insira a descrição da imagem aqui

Qualquer vértice do grafo é alcançável quando uma aresta ao ponto 0 é adicionada, chamada de link irredutível .

Como funcionam os modelos de difusão

insira a descrição da imagem aqui

Modelo generativo: entendido como o processo inverso do modelo de difusão de XT a X0, é um processo de redução de entropia, sendo que a distribuição fuzzy original gera a distribuição que queremos.

A difusão pode ser entendida como uma gota de água pingando no rio, ela vai se fundindo lentamente no rio, gradualmente se livrando de sua distribuição original e se integrando à nova distribuição, que é um processo de aumento de entropia, de ordenado a infinito .

Adicione gradualmente um ruído e, finalmente, ele se tornará uma distribuição gaussiana com itens independentes.


O que o modelo de difusão realmente precisa fazer é: temos um monte de dados X0 (fotos dessa pessoa) e, em seguida, descobrimos o processo de difusão inversa de XT para X0 (princípio ou fórmula), para que possamos gerar aleatoriamente um ruído Distribution , Em seguida, use essa distribuição de ruído para gerar os dados de que precisamos (novas fotos dessa pessoa).


Para imagens, existem basicamente dois processos:

  1. Um processo de difusão direta fixo (ou predefinido) q de nossa escolha adiciona gradualmente ruído gaussiano à imagem até que você termine com ruído puro.
  2. Um processo aprendido de difusão reversa de redução de ruído pθ, onde a rede neural é treinada para reduzir gradualmente imagens a partir de ruído puro até que finalmente a imagem real seja obtida.

A indexação dos processos direto e reverso por t ocorre em um número finito de passos de tempo T (os autores do DDPM usam T = 1000 T = 1 0 0 0). Onde você amostra a imagem real na posição x 0 de sua distribuição de dados em t = 0, o processo direto amostra algum ruído t de uma distribuição gaussiana a cada intervalo de tempo , que será adicionado à imagem no intervalo de tempo anterior. Dado um T grande o suficiente e um bom cronograma para adicionar ruído a cada intervalo de tempo, você acaba com a chamada distribuição gaussiana isotrópica t = T , por um processo assintótico.

insira a descrição da imagem aqui

**A primeira linha de imagens: **O processo de obtenção de uma distribuição gaussiana a partir dos dados de distribuição originais, no qual são geradas as principais etapas de aprendizado.

**A segunda linha do gráfico:** O processo de obtenção de uma nova distribuição original a partir de uma distribuição Gaussiana gerada aleatoriamente é um processo inverso do processo anterior.

Ambas as partes requerem um grande número de iterações para serem concluídas.

A terceira linha de gráficos: A diferença no cálculo desse processo é chamada de diferença de deriva .

Processo de difusão direta

  1. Dada a distribuição de dados inicial X0 ~ q(x), o ruído gaussiano pode ser adicionado continuamente à distribuição. O desvio padrão do ruído é determinado por um valor fixo β e a média é determinada por um valor fixo β e os dados atuais Xt no tempo t Sim, este processo é um processo em cadeia de Markov.

    O processo de encaminhamento é completamente livre de parâmetros e todos os parâmetros necessários são conhecidos.

    A distribuição gaussiana à qual adicionamos ruído a cada vez está relacionada apenas a Xt no momento atual e a um determinado valor β, e não contém parâmetros treináveis.

    O processo de encaminhamento é iterar continuamente dessa maneira.

    β aqui é um número decimal de 0 a 1, mas aumentará gradualmente (em vez de diminuir gradualmente a taxa de aprendizado)

insira a descrição da imagem aqui

  1. À medida que t aumenta, a distribuição de dados final XT torna-se uma distribuição gaussiana independente em todas as direções.

insira a descrição da imagem aqui

  1. A derivação de q(Xt) a qualquer momento também pode ser calculada inteiramente com base em X0 e β, sem iteração, e o cálculo pode ser concluído em uma etapa.

    Truque de renormalização: Escreva Xt como Xt-1 e uma quantidade aleatória normalmente distribuída e gerada aleatoriamente.

    Em seguida, renormalize Xt-1 para Xt-2.

insira a descrição da imagem aqui

Processo de difusão reversa

O processo inverso é restaurar os dados originais do ruído gaussiano.Podemos assumir que também é uma distribuição gaussiana, mas não pode ajustar a distribuição passo a passo, por isso é necessário construir uma distribuição de parâmetros para estimação. O processo inverso ainda é um processo em cadeia de Markov.

insira a descrição da imagem aqui

Aqui assume-se que uma introdução condicional com parâmetros está de acordo com a distribuição normal, e a entrada também está relacionada a Xt e t, e finalmente escrita na forma de uma série de cadeias de produção.

Uma Exploração Aprofundada dos Modelos de Difusão

insira a descrição da imagem aqui
insira a descrição da imagem aqui

Amostragem de modelo de difusão acelerada

A geração de amostras de um DDPM (Denoising Diffusion Probability Model) seguindo uma cadeia de Markov de um processo de retrodifusão é muito lenta, pois T pode levar no máximo uma etapa ou milhares de etapas. Por exemplo, leva cerca de 20 horas para amostrar imagens de 50.000 de tamanho 32 × 32 do DDPM, mas menos de um minuto para amostrar da GAN na GPU Nvidia 2080 Ti.

Uma abordagem simples é executar um plano de amostragem rápido reduzindo as etapas T do processo de S etapas a cada ⌈T/S⌉ . O novo plano de amostragem generativo é {τ1,...,τS} onde τ1<τ2<⋯<τS∈[1,T] e S<T.

Para outra abordagem, vamos reescrever qσ(xt−1|xt,x0) parametrizado pelo desvio padrão desejado σ

Derivação matemática e comparação de processos intermediários

insira a descrição da imagem aqui

Tais modelos são conhecidos como Denoising Diffusion Implicit Models ( DDIM ).

O DDIM tem a mesma distribuição de ruído marginal, mas mapeia de forma determinística o ruído de volta às amostras de dados originais.


modelo de difusão latente

O Latent Diffusion Model ( LDM ) executa o processo de difusão em espaço latente em vez de espaço de pixel , tornando o treinamento mais barato e a inferência mais rápida.

É motivado pela observação de que a maioria dos bits de uma imagem contribui para o detalhe perceptivo e que as combinações semânticas e conceituais persistem após a compressão agressiva.

O LDM aprende a decompor compactação perceptual e compactação semântica por meio de modelagem generativa, primeiro eliminando a redundância em nível de pixel com um codificador automático e, em seguida, manipulando/gerando conceitos semânticos por meio de um processo de difusão baseado no latente aprendido.

A figura abaixo é um gráfico da compensação entre taxa de compressão e distorção, ilustrando a compressão em dois estágios - comparação perceptiva e semântica

insira a descrição da imagem aqui

insira a descrição da imagem aqui

  • KL-reg: Uma pequena penalidade de KL para aprender distribuições normais padrão latentes, semelhantes aos VAEs (autoencoders variacionais).
  • VQ-reg: Use uma camada de quantização vetorial no decodificador, como VQVAE (um tipo de VAE, ainda não introduzido), mas a camada de quantização é absorvida pelo decodificador.

Os processos de difusão e redução de ruído ocorrem em vetores latentes. O modelo de redução de ruído z é uma U-Net temporalmente condicional aumentada com um mecanismo de atenção cruzada para lidar com informações de condicionamento flexível para geração de imagem (por exemplo, rótulos de classe, mapas semânticos, variante difusa de imagem de ). Esse design equivale a fundir representações fundidas de diferentes modalidades em um modelo com um mecanismo de atenção cruzada. Cada tipo de informação de condicionamento é emparelhado com um codificador específico de domínio τθ projeta a entrada condicional y para uma representação intermediária que pode ser mapeada para um componente de atenção cruzada, τθ(y) ∈ RM×dτ

A figura a seguir mostra a estrutura básica do modelo de difusão latente:
insira a descrição da imagem aqui


Resolução e qualidade de construção expandidas

Para gerar imagens de alta qualidade em alta resolução, Ho e outros (2021) sugeriram o uso de um pipeline de múltiplos modelos de difusão em resoluções mais altas .

O aumento do condicionamento de ruído entre os modelos de pipeline é crítico para a qualidade da imagem final, ou seja, um poderoso aumento de dados é aplicado à entrada de condicionamento z para cada modelo de super-resolução Pθ(X|z), o ruído de condicionamento ajuda a reduzir a composição no erro de configuração do pipeline. U-net é uma escolha comum de arquitetura de modelo em modelagem de difusão para geração de imagem de alta resolução.

A figura a seguir mostra um pipeline em cascata de vários modelos de difusão com resolução crescente:

insira a descrição da imagem aqui

Eles descobriram que o ruído mais eficaz era aplicar ruído gaussiano em baixas resoluções e desfoque gaussiano em altas resoluções. Além disso, eles exploraram duas formas de aumento de condicionamento que exigiam pequenas modificações no procedimento de treinamento. Observe que o ruído de condicionamento é útil apenas para treinamento, não para inferência.

  • A condição de truncamento melhora a interrupção do processo de difusão no início da etapa T > 0 para baixa resolução.
  • O aumento condicional não truncado executa o processo reverso completo de baixa resolução até a etapa 0, mas então alimenta ZTs humanos corrompidos no modelo de super-resolução via Zt∼q(xt|x0).

O modelo de difusão de dois estágios unCLIP (Ramesh et al., 2022) faz uso extensivo do codificador de texto CLIP para gerar imagens guiadas por texto de alta qualidade. Dado um modelo CLIP pré-treinado c e dados de treinamento pareados para o modelo de difusão, (x, y) onde x é uma imagem e y é a legenda correspondente, podemos calcular texto CLIP e incorporações de imagem, CT(y) e Ci(x) respectivamente. unCLIP aprende dois modelos em paralelo:

  • Modelo anterior P(ci|y): imagem de clipe de saída incorporando CI dado o texto y.
  • Decodificador P(x|Ci, [y]): Gera a imagem x dada a imagem recortada que incorpora o CI e, opcionalmente, o texto bruto y.

Ambos os modelos suportam geração condicional porque

insira a descrição da imagem aqui

O unCLIP segue um processo de geração de imagens em duas etapas:

  1. Dado um texto y, um texto incorporado CT(y) é primeiro gerado usando o modelo CLIP, que permite o processamento de imagem zero-shot através do texto usando o espaço latente CLIP.
  2. Difusão ou prior autorregressivo P(ci|y) processa esta incorporação de texto CLIP para primeiro construir uma imagem, então constrói um decodificador de difusão P(x|Ci, [y]) para gerar uma imagem, condicionada no prior. O decodificador também pode gerar variantes de imagem condicionadas à entrada da imagem, preservando seu estilo e semântica.

Resultados representativos do modelo generativo DALL·E2 : A arquitetura do unCLIP Imagem generativa clássica: Corgi tocando trompete:

insira a descrição da imagem aqui

Tipos de modelos generativos

  1. Generative Adversarial Networks: GANs fornecem uma solução inteligente para modelar a geração de dados (problemas de aprendizado não supervisionados) como problemas supervisionados. O modelo discriminador aprende a distinguir entre dados reais e amostras falsas produzidas pelo modelo gerador. Dois modelos são treinados durante o jogo min-max .
  2. **Autoencoders variacionais:**VAEs otimizam explicitamente a verossimilhança logarítmica dos dados maximizando o Limite Inferior de Evidência (ELBO).
  3. **Modelos generativos baseados em fluxo: **Os modelos generativos baseados em fluxo são construídos a partir de uma sequência de transformações reversíveis. Ao contrário dos outros dois modelos, este modelo aprende explicitamente a distribuição de dados p(x) e, portanto, a função de perda é apenas o log-verossimilhança negativo.

insira a descrição da imagem aqui

Rede Adversária Generativa GAN

Introdução às GANs

As GANs mostraram resultados promissores em muitas tarefas generativas, replicando conteúdo rico do mundo real, como imagens, linguagem humana e música.

É inspirado na teoria dos jogos: dois modelos, um gerador e um crítico, competem entre si enquanto se fortalecem. No entanto, o treinamento de modelos GAN é bastante desafiador, pois enfrenta problemas como instabilidade de treinamento ou falha na convergência.


A composição do modelo de GAN

GAN consiste em dois modelos:

  • Discriminador D : Estima a probabilidade de que uma determinada amostra venha do conjunto de dados real. Ele atua como um crítico e é otimizado para distinguir amostras falsas de amostras reais .
  • Gerador G : Emite amostras sintéticas z dada uma entrada variável de ruído (z traz diversidade de saída potencial). Ele é treinado para capturar a distribuição real dos dados para que suas amostras geradas sejam as mais realistas possíveis, ou seja, possam enganar o discriminador para fornecer altas probabilidades .

Os dois modelos competem entre si durante o treinamento : o gerador G está tentando enganar o discriminador, enquanto o modelo detrator D está tentando não ser enganado. Este interessante jogo de soma zero entre os dois modelos incentiva ambas as partes a melhorar sua funcionalidade.

insira a descrição da imagem aqui

  • Por um lado, queremos garantir que a decisão do discriminador D sobre dados reais seja precisa maximizando Ex∼pr(x)[logD(x)]. Enquanto isso, dada uma amostra falsa G(z), z∼pz(z), espera-se que o discriminador produza uma probabilidade, D(G(z)), aproximando-se de zero maximizando Ez∼pz(z)[log(1− D(G(z)))].

  • Por outro lado, o gerador é treinado para aumentar D para gerar alta probabilidade de exemplos falsos, minimizando assim Ez∼pz(z)[log(1−D(G(z)))].

símbolo significado
Pz Distribuição de dados z na entrada ruidosa
página A distribuição x do gerador sobre os dados
Pr Distribuição de dados x em amostras reais

Otimização do parâmetro GAN e função de perda

[Falha na transferência da imagem do link externo, o site de origem pode ter um mecanismo anti-leeching, é recomendável salvar a imagem e carregá-la diretamente (img-tPdcKngE-1677906324018)(11.jpg)]

A função de perda que usamos :

insira a descrição da imagem aqui

Modo ótimo Quando G e D estão no melhor valor, temos pg=pr e D∗(x)=1/2 A função de perda se torna:

insira a descrição da imagem aqui

Essencialmente, a função de perda do GAN quantifica a similaridade entre a distribuição de dados gerada Pg e a verdadeira distribuição amostral Pr quando o discriminador é ótimo, via divergência JS. O melhor G∗ replicando a distribuição de dados reais resulta em um mínimo L(G∗, D∗) = −2log2 que é consistente com a equação acima.

Outras variantes de GANs: existem muitas variantes de GANs em diferentes contextos ou projetadas para diferentes tarefas. Por exemplo, para aprendizado semi-supervisionado, uma ideia é atualizar o discriminador para produzir rótulos de classe verdadeiros, 1,...,K−1 e um rótulo de classe falso K. O modelo do gerador visa enganar o discriminador para que produza menos agradecer.


Problemas em GANs

Apesar do grande sucesso das GANs para geração de imagens realistas, o treinamento não é fácil e o processo é notoriamente lento e instável.

  • Difícil de alcançar o equilíbrio de Nash : treine dois modelos simultaneamente para encontrar o equilíbrio de Nash de um jogo não cooperativo para dois jogadores . No entanto, cada modelo atualiza seu custo independentemente, independentemente dos outros jogadores no jogo. Atualizar os gradientes de ambos os modelos ao mesmo tempo não garante a convergência .

insira a descrição da imagem aqui

insira a descrição da imagem aqui

  • Suportes dimensionais baixos : as dimensões de muitos conjuntos de dados reais, por PR, parecem artificialmente altas . Eles foram encontrados agrupados em variedades de baixa dimensão. Este é realmente o pressuposto básico da aprendizagem múltipla . Pense em imagens do mundo real, uma vez que o assunto ou os objetos contidos são fixados, a imagem tem muitas restrições a seguir, ou seja, um cachorro deve ter duas orelhas e um rabo, um arranha-céu deve ter um corpo reto e alto, etc. Essas limitações impedem que as imagens tenham possibilidades de forma livre de alta dimensão.

    Pg também se encontra em variedades de dimensão inferior. Sempre que o gerador é solicitado a obter uma imagem maior (como 64x64) dado um tamanho pequeno (digamos 100), a variável de ruído insere z, a distribuição de cores sobre esses 4096 pixels foi determinada por um pequeno vetor de número aleatório de 100 dimensões Definição, é quase impossível preencher todo o espaço de alta dimensão.

insira a descrição da imagem aqui

  • Vanishing gradient problem : Quando o discriminador é perfeito, garantimos que D(x)=1, ∀x∈pr e D(x)=0, ∀x∈Pg então a função de perda L cai para zero, acabamos sem gradiente para atualizar a perda durante as iterações de aprendizado.
    Então GAN enfrenta um dilema:

    • Se o discriminador se comportar mal, o gerador não tem feedback preciso e a função de perda não pode representar a realidade.
    • Se o discriminador fizer um bom trabalho, o gradiente da função de perda cai próximo de zero e o aprendizado torna-se muito lento ou até trava.
  • Modo de colapso : durante o treinamento, o gerador pode entrar em colapso para uma configuração que sempre produz a mesma saída. Essa é uma condição de falha comum de GANs, geralmente chamada de colapso de modo . Embora o gerador possa enganar o discriminador correspondente, ele não pode aprender a representar distribuições de dados complexas do mundo real e fica preso em um espaço pequeno com uma variedade extremamente baixa.

insira a descrição da imagem aqui

Do Autoencoder ao Beta-VAE

Autoencoders foram inventados para reconstruir dados de alta dimensão usando um modelo de rede neural com uma camada estreita de gargalo no meio (este pode não ser o caso de autoencoders variacionais). Um bom subproduto é a redução de dimensionalidade: a camada de gargalo captura a codificação subjacente da compactação. Essa representação de baixa dimensão pode ser usada como vetores de incorporação em vários aplicativos (ou seja, pesquisa), auxiliando na compactação de dados ou revelando fatores geradores de dados subjacentes.


Introdução aos Autoencoders

Um autoencoder é uma rede neural projetada para aprender uma função de identidade de maneira não supervisionada para reconstruir a entrada original enquanto comprime os dados no processo, descobrindo assim representações compactadas e mais eficientes. É composto por duas redes:

  • Rede codificadora : transforma a entrada original de alta dimensão em um código latente de baixa dimensão . O tamanho de entrada é maior que o tamanho de saída.
  • Rede do decodificador : A rede do decodificador recupera dados do código , possivelmente com camadas de saída cada vez maiores.

insira a descrição da imagem aqui

As redes de codificadores atingem essencialmente a redução de dimensionalidade , assim como fazemos com a Análise de Componentes Principais (PCA) ou a Fatoração de Matrizes (MF) . Além disso, os autoencoders são explicitamente otimizados para reconstrução de dados no código. Uma boa representação intermediária pode não apenas capturar variáveis ​​latentes, mas também facilitar o processo de descompressão completo.

O modelo consiste em uma função codificadora g(.) parametrizada por φ e uma função decodificadora f(.) parametrizada por θ.

O código de baixa dimensão x aprendido para a entrada é z=gφ(x) na camada gargalo, e a entrada reconstruída é x′=fθ(gφ(x)).

Os **parâmetros (θ, φ)** são aprendidos juntos para produzir a mesma amostra de dados reconstruída como a entrada original, x≈fθ(gφ(x)), ou em outras palavras, aprender a função de identidade. Existem várias métricas que quantificam a diferença entre dois vetores, como a entropia cruzada quando a função de ativação é sigmoide, ou algo tão simples quanto a perda do MSE:

insira a descrição da imagem aqui


Codificador Automático de Redução de Ruído

Como o autoencoder aprende a função de identidade, corremos o risco de "overfitting" quando a rede tiver mais parâmetros do que o número de pontos de dados.

Para evitar o overfitting e melhorar a robustez, os autoencoders de redução de ruído (Vincent et al. 2008) propõem modificações nos autoencoders básicos. A entrada é parcialmente corrompida, x ∼ MD(x |x), adicionando ruído ao vetor de entrada ou mascarando alguns valores do vetor de entrada de maneira aleatória, e o modelo é então treinado para restaurar a entrada original (nota : não a entrada corrompida).

insira a descrição da imagem aqui

A motivação para este projeto é que os humanos podem facilmente reconhecer objetos ou cenas mesmo quando a visão está parcialmente obstruída ou danificada . Para " reparar " entradas parcialmente corrompidas, os autoencoders de redução de ruído devem descobrir e capturar relações entre as dimensões de entrada para inferir as partes ausentes.

Para entradas de alta dimensão com alta redundância, como imagens, o modelo pode contar com evidências coletadas de combinações de muitas dimensões de entrada para recuperar uma versão sem ruído, em vez de superajustar em uma dimensão. Isso estabelece uma boa base para aprender representações latentes robustas .

O ruído é governado pelo mapeamento aleatório MD(x~|x) e não é específico para um tipo específico de processo de corrupção (ou seja, ruído mascarado, ruído gaussiano, ruído sal pimenta, etc.).

insira a descrição da imagem aqui


Codificador automático esparso

Autoencoders esparsos aplicam uma restrição " esparsa " em ativações de unidades ocultas para evitar superajuste e melhorar a robustez. Ele força o modelo a ativar apenas um pequeno número de unidades ocultas por vez, ou seja, um neurônio oculto deve ser ativado na maioria das vezes.

Lembre-se de que as funções de ativação comuns incluem sigmóide, tanh, relu, relu com vazamento, etc. Os neurônios são ativados quando o valor está próximo de 1 e desativados quando o valor está próximo de 0.

Suponha que existam neurônios SL na l-ésima camada oculta e os neurônios da função de ativação j- nesta camada sejam rotulados como aj(l)(.), j=1,...,sl. A fração de ativação ρj deste neurônio é esperada O pequeno número de pessoas ρ é chamado de parâmetro de esparsidade .

Uma configuração comum é ρ=0,05.

insira a descrição da imagem aqui

Essa restrição é implementada adicionando um termo de penalidade na função de perda . KL - Divergência D KL mede a diferença entre duas distribuições de Bernoulli, uma com média ρ e outra com média ρ^j(l) O hiperparâmetro β controla a força da penalidade que queremos aplicar à perda de esparsidade.

insira a descrição da imagem aqui


VAE: Autoencoder variacional

Variational Autoencoder é um acrônimo para VAE , e a ideia na verdade não é muito semelhante a todos os modelos de autoencoder mencionados acima, mas sim uma abordagem profundamente enraizada nos modelos gráficos e Bayesianos Variacionais .

Em vez de mapear a entrada para um vetor fixo, nós a mapeamos em uma distribuição. Vamos denotar esta distribuição Pθ, parametrizada como θ. A relação entre as entradas de dados x e o vetor de codificação latente z pode ser totalmente definida:

  • Prior Pθ(z)
  • Possibilidade Pθ(X|z)
  • O seguinte Pθ(z|x)

Suponha que conheçamos o verdadeiro parâmetro θ∗ para esta distribuição. Para gerar amostras x(i) que se pareçam com pontos de dados reais, seguimos estas etapas:

  1. Primeiro, os exemplos aZ(i) vêm da distribuição anterior Pθ∗(z)
  2. Então um valor x(i) é gerado pela distribuição condicional pθ∗( x|z=z(i) )

O parâmetro ótimo θ∗ é aquele que maximiza a probabilidade de gerar uma amostra de dados reais:

insira a descrição da imagem aqui

Normalmente, convertemos o produto sobre RHS em uma soma usando a probabilidade logarítmica:

insira a descrição da imagem aqui

Agora vamos atualizar a fórmula para demonstrar melhor o processo de geração de dados para que os vetores de codificação sejam envolvidos:

insira a descrição da imagem aqui

Infelizmente, não é fácil calcular Pθ(x(i)) assim, pois é muito caro verificar todos os valores possíveis de z e somar. Para reduzir o espaço de valores para facilitar buscas mais rápidas, gostaríamos de introduzir uma nova função de aproximação que gera possíveis códigos x para uma dada entrada, Qφ(Z|x), parametrizada como φ.

insira a descrição da imagem aqui

Agora a estrutura se parece muito com um autoencoder :

  • A probabilidade condicional Pθ(X|z) define um modelo generativo, semelhante ao decodificador fθ(x|z) introduzido acima. Pθ(X|z) também é chamado de decodificador probabilístico.
  • A função de aproximação Qφ(Z|x) é um codificador probabilístico que funciona de forma semelhante ao grama φ(Z|x) acima.
    insira a descrição da imagem aqui

Beta-LEGS

Se se inferir que a representação latente z de cada variável é apenas sensível a um único fator gerador e relativamente invariante a outros fatores, dizemos que essa representação é desemaranhada ou decomposta . Um benefício que as representações desemaranhadas geralmente trazem é a boa interpretabilidade e a fácil generalização para várias tarefas .

Por exemplo, um modelo treinado em fotos de rostos humanos pode capturar suavidade, tom de pele, cor do cabelo, comprimento do cabelo, emoção, se usa óculos e muitos outros fatores relativamente independentes em dimensões separadas. Essa representação desemaranhada é muito benéfica para a geração de imagens faciais.

β-VAE é uma melhoria em autoencoders variacionais com ênfase especial na descoberta de fatores latentes desemaranhados . Seguindo os mesmos incentivos em VAEs , desejamos maximizar a probabilidade de gerar dados verdadeiros , mantendo pequena a distância entre a distribuição verdadeira e a distribuição posterior estimada (por exemplo, sob uma pequena constante). δ:

insira a descrição da imagem aqui

Podemos reescrevê-lo como a quantidade de Lagrange β com multiplicadores Lagrangianos sob a condição KKT . O problema de otimização acima com apenas uma restrição de desigualdade é equivalente a maximizar a seguinte equação F(θ,φ,β):

insira a descrição da imagem aqui

A função de perda β-VAE é definida como:

insira a descrição da imagem aqui

onde o multiplicador lagrangiano β é considerado como um hiperparâmetro.

Como negar beta(φ, β) é um limite inferior F(θ, φ, β) no Lagrangiano, minimizar a perda é equivalente a maximizar o Lagrangiano e, portanto, aplica-se ao nosso problema de otimização inicial.

  • β=1, que é o mesmo que VAE.
  • β > 1, impõe uma restrição mais forte em gargalos potenciais, limitando z. Para alguns geradores condicionalmente independentes, desenredá-los é a representação mais eficiente.
  • Um β mais alto estimula uma codificação latente mais eficiente e mais desemaranhamento, possivelmente com uma compensação entre a qualidade da reconstrução e o grau de desemaranhamento.

Burgess e outros (2017) discutem que β-VAE baseia-se fortemente na teoria do gargalo de informação e propõe ainda melhor controle sobre as capacidades de representação de codificação para β-VAE.

Modelo Gerativo Baseado em Stream

Nem GANs nem VAEs aprendem explicitamente a função de densidade de probabilidade de dados reais, p(x) (onde x ∈ D) — porque é muito difícil!

Tomando como exemplo um modelo generativo com variáveis ​​latentes, p(x)=∫p(x|z)p(z)dz é quase impossível de calcular , pois é difícil iterar sobre todos os valores possíveis de z para o código latente.

Modelos generativos profundos baseados em fluxo superam esse desafio com a ajuda do fluxo normalizado , uma poderosa ferramenta estatística para estimativa de densidade. Uma boa estimativa de p(x) pode realizar com eficiência muitas tarefas a jusante: amostragem de novos pontos de dados não observados, mas realistas (geração de dados), previsão da raridade de eventos futuros (estimativa de densidade), inferência de variáveis ​​latentes, preenchimento de amostras de dados incompletas, etc.


Streaming canônico

Ser capaz de fazer boas estimativas de densidade tem aplicações diretas em muitos problemas de aprendizado de máquina, mas é muito difícil. Por exemplo, como precisamos executar a propagação reversa em um modelo de aprendizado profundo, espera-se que a distribuição de probabilidade incorporada (ou seja, o p(z|x) posterior) seja simples o suficiente para calcular derivadas com facilidade e eficiência. É por isso que as distribuições gaussianas são frequentemente usadas em modelos generativos de variáveis ​​latentes, embora a maioria das distribuições do mundo real sejam muito mais complexas do que as distribuições gaussianas.

Aqui está um modelo de fluxo normalizado (NF) para aproximações de distribuição melhores e mais robustas. Fluxos de normalização transformam distribuições simples em distribuições complexas aplicando uma série de funções de transformação reversíveis. Por meio de uma série de transformações , substituímos repetidamente as variáveis ​​por novas variáveis ​​de acordo com o teorema da mudança de variável e, finalmente, obtemos a distribuição de probabilidade da variável alvo final.

insira a descrição da imagem aqui
insira a descrição da imagem aqui
insira a descrição da imagem aqui

O caminho Zi=fi(Zi−1) percorrido pela variável aleatória é o fluxo formado pela distribuição contínua e a cadeia completa πi é chamada de fluxo normalizado .

A computação na Eq. requer que a função de transformação fi satisfaça duas propriedades:

  1. É facilmente revertida.
  2. Seu jacobiano é fácil de calcular.

modelo de fluxo regularizado

Ao normalizar o fluxo em nossa caixa de ferramentas, o log exato log-verossimilhança p(x) dos dados de entrada torna-se tratável.

Portanto, o critério de treinamento para modelos generativos baseados em fluxo é simplesmente o log-likelihood negativo (NLL) D no conjunto de dados de treinamento:

insira a descrição da imagem aqui

Mais representativo: O modelo RealNVP (Real-Valued Non-Volume Preservado) implementa o fluxo normalizado empilhando uma série de funções de transformação bijetiva invertível.

Em cada bijeção f:x↦y, chamada de camada de acoplamento afim , as dimensões de entrada são divididas em duas partes:

  • A primeira dimensão d permanece a mesma;
  • A segunda parte, D+1 da dimensão D, executa uma transformação afim ("escala e deslocamento"), e os parâmetros de escala e deslocamento são ambos a primeira função d dimensão.

insira a descrição da imagem aqui

Agora, vamos verificar se esta transformação satisfaz as duas propriedades fundamentais das transformações de fluxo.

Condição 1 : "É fácil reverter e bastante simples.

Condição 2 : Seu determinante jacobiano é fácil de calcular, e não é difícil obter a matriz jacobiana e os determinantes dessa transformação. O jacobiano é uma matriz triangular inferior, o determinante é simplesmente o produto dos termos na diagonal.

insira a descrição da imagem aqui

Até agora, a camada de acoplamento afim parece ótima para criar fluxos normalizados :)

Melhor ainda, uma vez que (i) calcular f−1 não requer calcular o inverso s ou t (ii) calcular o jacobiano não envolve calcular o jacobiano s ou t, essas funções podem ser arbitrariamente complexas; ou seja, ambos E alguns s e t pode ser modelado por rede neural profunda.

Em uma camada de acoplamento afim, certas dimensões (canais) permanecem constantes. Para garantir que todas as entradas possam ser alteradas, o modelo inverte a ordem em cada camada para que os diferentes componentes permaneçam os mesmos. Seguindo esse padrão alternado, o conjunto de unidades que permanecem as mesmas em uma camada conv são sempre modificados na próxima camada conv. Verificou-se que a normalização em lote ajuda a treinar modelos com pilhas muito profundas de camadas acopladas.

Além disso, o RealNVP pode trabalhar em arquiteturas multiescala para construir modelos mais eficazes para grandes entradas. A arquitetura multiescala aplica várias operações de "amostragem" a camadas afins comuns, incluindo máscara de tabuleiro de xadrez espacial, operações de compressão e máscara de canal.

Os outros dois modelos de fluxo regularizados são NICE e glow , que são essencialmente melhorias no RealNVP.


modelo de fluxo autorregressivo

Restrições autorregressivas são uma forma de modelar dados sequenciais, x = [x1,...,xD]: cada saída depende apenas de dados observados no passado, não de dados futuros. Em outras palavras, a probabilidade de observar onze condições é x1,...,xi−1 O produto dessas probabilidades condicionais nos dá a probabilidade de observar a sequência completa:

insira a descrição da imagem aqui

Como modelar a densidade condicional é uma escolha sua. Pode ser um gaussiano univariado com média e desvio padrão calculados como x1:i−1, ou ter x1:i−1 como entrada.

Se a transformação de fluxo em um fluxo normalizado for enquadrada como um modelo autorregressivo (cada dimensão na variável de vetor é condicionada na dimensão anterior), este é um fluxo autoregressivo .

Vários modelos autorregressivos clássicos (MADE, PixelRNN, WaveNet, MAF e IAF).


Autoencoders mascarados para estimativa de distribuição MADE

MADE ( Masked Autoencoders for Distribution Estimation) é uma arquitetura especialmente projetada para reforçar com eficiência as propriedades autorregressivas em autoencoders . Ao usar um autoencoder para prever probabilidades condicionais, em vez de alimentar o autoencoder com uma entrada D de diferentes janelas de observação, o MADE remove a contribuição de algumas unidades ocultas multiplicando por uma matriz de máscara binária para que cada dimensão de entrada seja A passagem é reconstruída a partir do dimensões anteriores na ordem dada.

Por exemplo, em uma rede neural multicamada totalmente conectada, temos L camadas ocultas W1,...,WL com matrizes de peso e uma camada de saída V com matrizes de peso. A saída x tem cada dimensão x i=p(xi | x1 : i−1).

Na ausência de qualquer máscara, o cálculo através das camadas fica assim:

insira a descrição da imagem aqui

Sua estrutura básica é uma rede neural feedforward: MADE=autoencoder+grayscale 01 matrix

A fórmula de cálculo do autoencoder é:

insira a descrição da imagem aqui

A fórmula de cálculo da matriz 01 em tons de cinza é:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui


Modelos generativos profundos para imagens PixelRNN

PixelRNN é um modelo generativo profundo para imagens , onde as imagens são geradas um pixel por vez, e cada novo pixel é amostrado condicionado em pixels vistos anteriormente.

A função básica pode ser entendida como extrair pixels da imagem original para aprendizado e então gerar uma nova imagem de complemento de pixels ou tornar a imagem mais completa.

Por exemplo, para uma imagem de tamanho n×n, x={x1,...,xn2}, o modelo começa a gerar pixels do canto superior esquerdo, da esquerda para a direita e de cima para baixo.

insira a descrição da imagem aqui

Cada pixel é amostrado a partir da condição de distribuição de probabilidade da imagem original: quando na mesma linha, o pixel está acima ou à esquerda dela .

Essa definição de contexto parece bastante arbitrária, pois a forma como a atenção visual se concentra nas imagens é mais flexível. De alguma forma, modelos generativos com suposições tão fortes funcionaram magicamente.

Uma implementação que pode capturar todo o contexto é o Diagonal BiLSTM .

  • Primeiro, uma operação de inclinação é aplicada deslocando cada linha do mapa de recursos de entrada em uma posição em relação à linha anterior , para que o cálculo de cada linha possa ser paralelizado.
  • O estado LSTM é então calculado em relação ao pixel atual e ao pixel à esquerda.

insira a descrição da imagem aqui

As camadas BiLSTM diagonais são capazes de lidar com campos de contexto infinitos, mas são computacionalmente caras devido às dependências sequenciais entre os estados.

Uma implementação mais rápida usa várias camadas convolucionais sem agrupamento para definir caixas de contexto limitadas.

O kernel convolutivo é mascarado para que não possa ver o contexto futuro, semelhante ao MADE, esta versão convolucional é chamada de PixelCNN.

PixelCNN com convolução mascarada, construído a partir do produto elementar de um tensor de máscara e um kernel de convolução antes de aplicá-lo.

insira a descrição da imagem aqui


rede de ondas WaveNet

O WaveNet é muito semelhante ao PixelCNN, mas aplicado a sinais de áudio 1-D. O WaveNet consiste em uma pilha de convoluções causais , um tipo de operação convolucional projetada para respeitar a ordem: as previsões em um carimbo de data/hora específico podem consumir apenas dados observados no passado e não dependem do futuro.

No PixelCNN, a convolução causal é implementada por um kernel de convolução mascarado. A convolução causal no WaveNet simplesmente desloca a saída em um número de carimbos de data/hora para o futuro, de modo que a saída se alinhe com o último elemento de entrada.

Uma grande desvantagem das camadas convolucionais é que o tamanho do campo receptivo é muito limitado. A saída dificilmente pode depender da entrada centenas ou milhares de passos de tempo atrás, o que pode ser um requisito crítico para modelar sequências longas.

Portanto, o WaveNet emprega convoluções dilatadas , onde os kernels são aplicados a um subconjunto de amostras distribuído uniformemente dentro de um campo receptivo maior de entrada.

Abaixo está uma visualização de um modelo WaveNet com uma pilha de (superior) camadas convolucionais causais e (inferior) camadas convolucionais dilatadas.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

WaveNet usa unidades de ativação fechadas como camadas não lineares porque funciona melhor que ReLU para modelar dados de áudio unidimensionais. As conexões restantes são aplicadas após a ativação do gating.

Aplicações de Modelos de Difusão

insira a descrição da imagem aqui


Origem da Difusão DALL·E

Em 2020, a equipe OpenAl lançou o modelo GPT-3 - um modelo multimodal de linguagem versátil capaz de tradução automática, geração de texto, análise semântica, etc. O modelo foi rapidamente reconhecido como uma solução de modelagem de linguagem de última geração, e o DALL E pode ser visto como uma extensão natural dos recursos do Transformer no campo da visão computacional .

A figura a seguir mostra o método de visualização do CLIP em comparação com o pré-treinamento:

insira a descrição da imagem aqui

DALL·E usa um método autorregressivo e propõe um elegante método de dois estágios:

  • Treine um modelo VAE discreto que comprime imagens em tokens de imagem,
  • Concatene fragmentos de texto codificados com tokens de imagem e treine um transformador autorregressivo para aprender a distribuição conjunta de texto e imagens.

A versão final foi treinada em 250 milhões de pares texto-imagem obtidos na internet .

Durante a inferência, o modelo é capaz de produzir todo o lote de imagens geradas. Mas como estimamos quais imagens são as melhores?

A equipe OpenAI da DALL E propôs uma solução para vinculação de imagem e texto chamada CLIP .

Resumindo, o CLIP fornece uma maneira robusta de emparelhar fragmentos de texto com suas representações de imagem . Deixando de lado todos os aspectos técnicos, a ideia de treinar esse tipo de modelo é bastante simples - pegue um trecho de texto e codifique, pegue uma imagem e codifique. Faça isso para muitos exemplos (400 milhões de pares (imagem, texto)) e treine o modelo de maneira contrastiva.

De fato, DALL·E não pertence à aplicação do modelo de difusão, é essencialmente um transformador multifuncional.

Mas é de fato um dos predecessores importantes do modelo de difusão.


Difusão guiada por texto usando GLIDE

Embora o artigo que descreve a arquitetura GLIDE tenha recebido a menor publicidade de todas as publicações discutidas neste post, é indiscutivelmente a ideia mais nova e interessante . Combina bem todos os conceitos do modelo de difusão. As duas questões atualmente a serem abordadas são:

  • Como podemos usar informações textuais para guiar modelos de difusão?
  • Como podemos garantir que a qualidade do modelo seja boa o suficiente?

A arquitetura do GLIDE pode ser resumida em três componentes principais :

  1. Um modelo baseado em UNet responsável pela parte da visão do aprendizado por difusão,
  2. um modelo baseado em transformador responsável por criar incorporações de texto a partir de um trecho de texto,
  3. Um modelo de difusão upsampled é usado para aumentar a resolução da imagem de saída.

Os dois primeiros trabalham juntos para criar saída de imagem guiada por texto, enquanto o último é usado para melhorar a imagem, mantendo a qualidade.

No centro do modelo está a conhecida arquitetura UNet para Diffusion de Dhariwal e Nichol.O modelo, como suas versões anteriores, empilha camadas residuais com convoluções de downsampling e upsampling. Também consiste em camadas de atenção, que são cruciais para o processamento de texto simultâneo. O modelo proposto pelos autores possui cerca de 2,3 bilhões de parâmetros e é treinado no mesmo conjunto de dados do DALL·E.

O texto para orientação é codificado em tokens e inserido no modelo do transformador. O modelo utilizado no GLIDE possui cerca de 1,2 bilhão de parâmetros e é construído a partir de 24 blocos residuais de largura 2048. A saída do transformador serve a dois propósitos:

  • O token de incorporação final é usado como a incorporação de classe yy em εθ(xt,t∣y)εθ(xt,t∣y),
  • A camada final de incorporações de token será adicionada a cada camada de atenção do modelo.

Claramente, muito esforço foi feito para garantir que o modelo receba contexto relacionado ao texto suficiente para gerar imagens precisas. O modelo é condicionado a incorporações de fragmentos de texto, codificando texto com conexões de contexto atencionais, durante o treinamento, usando orientação livre de classificadores.

Quanto ao último componente, os desenvolvedores usaram o modelo Diffusion para ir de imagens de baixa resolução para alta resolução usando o upsampler ImageNet.

insira a descrição da imagem aqui

A foto acima mostra os resultados da difusão do GLIDE no "Corgi in the Field".

GLIDE incorpora algumas conquistas notáveis ​​desenvolvidas nos últimos anos e fornece uma nova perspectiva sobre o conceito de geração de imagens guiadas por texto. Dado que o modelo DALL·E é baseado em uma estrutura diferente, pode-se dizer que a publicação do GLIDE representa o início da era da geração de texto para imagem baseada em difusão .


DALL·E2 prioris e decodificadores mais avançados

O DALL·E2 adota principalmente elementos dos dois primeiros predecessores: ele depende fortemente do CLIP , mas grande parte da solução gira em torno da arquitetura GLIDE . DALL·E2 tem dois componentes subjacentes principais chamados a priori e um decodificador , que quando empilhados juntos são capazes de produzir saída de imagem . Todo o mecanismo é denominado unCLIP .

A figura abaixo mostra o modelo de difusão do " Corgi Blowing Flame Trumpet ", gerado pelo unCLIP:

insira a descrição da imagem aqui

Após a incorporação do texto, vem a parte interessante - agora queremos obter uma incorporação de imagem semelhante à obtida pelo modelo CLIP . Queremos que ele encapsule todas as informações importantes das incorporações de texto, pois serão usadas para gerar imagens por difusão. Bem, não é exatamente para isso que serve o CLIP? Se quisermos encontrar a incorporação de imagem correspondente para uma frase de entrada, podemos olhar para algo próximo à incorporação de texto no espaço de codificação CLIP. Dahl E 2 explica bem por que essa solução falha e por que a priori é necessário - "Um número infinito de imagens pode coincidir com uma determinada legenda, portanto, as saídas de dois codificadores não coincidirão exatamente. Portanto, um modelo anterior separado para "traduzir "incorporações de texto em incorporações de imagem que podem ser razoavelmente correspondidas".

Mais importante ainda, os autores examinam empiricamente a importância dos priores na rede. Passar incorporações de imagens geradas a partir de textos anteriores é muito superior à geração usando apenas legendas ou títulos com incorporações de texto CLIP.

Os autores testaram o prior para duas classes de modelos: modelos autorregressivos e modelos de difusão. Este post cobrirá apenas Diffusion Before, pois é considerado melhor do que Autoregressive, especialmente do ponto de vista computacional. Para o treinamento anterior, foi escolhido um modelo de conversor somente decodificador. Ele é treinado usando várias sequências de entrada:

  • texto codificado,
  • incorporação de texto de clipe,
  • Incorporação passo a passo de tempo de difusão,
  • incorporação de imagem ruidosa,

Apresentamos a parte anterior do unCLIP, que visa gerar um modelo capaz de encapsular todas as informações importantes em texto em incorporações de imagem semelhantes a CLIP. Agora, queremos usar essa incorporação de imagem para gerar a saída visual real. É aí que o nome unCLIP se desenrola - estamos incorporando imagem a imagem, ao contrário do que acontece ao treinar um codificador de imagem CLIP.

Como diz o ditado: "Depois de um modelo de difusão, é hora de usar outro modelo de difusão! Este já conhecemos - é GLIDE, embora ligeiramente modificado. Apenas ligeiramente, pois a única grande mudança é a incorporação de imagens CLIP adicionais (geradas anteriormente ) adicionado ao codificador de texto vanilla GLIDE. Afinal, é para isso que serve o treinamento anterior - para informar o decodificador. O bootstrap é usado da mesma forma que o GLIDE normal. Para melhorá-lo, a incorporação do CLIP é definida como ∅ em 10% dos casos e título do texto em 50% dos casos.

Outra coisa que não mudou é a ideia de aumentar a resolução da imagem depois de gerada. A saída é lançada em outros modelos baseados em difusão. Desta vez, dois modelos de upsampling são usados ​​(em vez do GLIDE original), um leva a imagem de 64x64 para 256x256 e o ​​outro aumenta ainda mais a resolução para 1024x1024.


Modelo de difusão de imagens de última geração do Google Brain Imagen

A estrutura da arquitetura Imagen é surpreendentemente simples:

Modelos de texto pré-treinados são usados ​​para criar incorporações que se difundem nas imagens. Em seguida, para aumentar a resolução por meio do modelo de difusão de super-resolução , dispersamos muitas das novidades do DALL E2 em diferentes partes da arquitetura, algumas no próprio modelo e outras no processo de treinamento. Juntos, eles oferecem um pequeno upgrade em comparação com outras soluções. Dado a maior parte do conhecimento já apresentado, podemos explicar este modelo por suas diferenças em relação ao modelo descrito anteriormente:

insira a descrição da imagem aqui

1. Use um transformador pré-treinado em vez de treiná-lo do zero.

Isso é visto como uma melhoria central em comparação com o trabalho da OpenAI. Para tudo sobre incorporação de texto, os autores do GLIDE usam um novo modelo de transformador especialmente treinado. Os autores do Imagen usaram um modelo T5-XXL congelado pré-treinado. A ideia é que esse modelo tenha mais contexto em termos de processamento de linguagem do que um modelo treinado apenas em legendas de imagens e, portanto, seja capaz de produzir embeddings mais valiosos, sem ajuste fino dele.

2. Tornar a rede neural subjacente mais eficiente.

Uma versão atualizada da rede neural chamada Efficient U-net foi usada como a espinha dorsal do modelo de difusão de super-resolução. Diz-se que é mais eficiente em termos de memória, mais simples e mais rápido de convergir do que as versões anteriores. Essas variações são introduzidas principalmente nos blocos residuais e por meio de escalonamento adicional de valores dentro da rede.

3. Use o aprimoramento de condicionamento para aprimorar a fidelidade da imagem.

Como a solução pode ser vista como uma série de modelos de difusão, um argumento precisa ser feito em relação ao aprimoramento das regiões vinculadas ao modelo. Uma solução chamada aumento condicional foi proposta por Ho et al. Em termos simples, é equivalente a aplicar várias técnicas de aumento de dados (como o desfoque Gaussiano) a imagens de baixa resolução antes de alimentá-las em modelos de super-resolução.

A conclusão é retirada do Modelo Probabilístico de Difusão Denoising

Demonstramos amostras de imagens de alta qualidade usando modelos de difusão e encontramos conexões entre modelos de difusão e inferência variacional para treinar cadeias de Markov, correspondência de pontuação de redução de ruído e dinâmica de Langevin de recozimento (e, por extensão, modelos baseados em energia), modelos autorregressivos e perdas progressivas compressão. Como os modelos de difusão parecem ter bons vieses indutivos para dados de imagem, esperamos investigar sua utilidade em outras formas de dados, bem como componentes em outros tipos de modelos generativos e sistemas de aprendizado de máquina.

Nosso trabalho em modelos de difusão é de escopo semelhante ao trabalho existente em outros tipos de modelos generativos profundos, como o trabalho para melhorar a qualidade da amostra para GANs, fluxo, modelos autorregressivos, etc. Nosso artigo representa um progresso no sentido de tornar os modelos difusionais uma ferramenta geralmente útil nesta família de técnicas, de modo que possa ampliar qualquer impacto que os modelos generativos tiveram (e terão) no mundo em geral.

Infelizmente, existem muitos usos maliciosos bem conhecidos de modelos generativos. As técnicas de geração de amostras podem ser usadas para criar imagens e vídeos falsos de figuras de destaque para fins políticos. Embora imagens falsas tenham sido criadas à mão muito antes de existirem ferramentas de software, modelos generativos como o nosso facilitam o processo. Felizmente, as imagens geradas pela CNN atualmente apresentam alguns defeitos sutis que podem ser detectados, mas melhorias nos modelos generativos podem tornar a detecção mais difícil. Os modelos generativos também refletem o viés nos conjuntos de dados em que foram treinados. Como muitos grandes conjuntos de dados são coletados da Internet por sistemas automatizados, pode ser difícil remover esses vieses, especialmente se as imagens não forem rotuladas. Esses vieses só serão reforçados se amostras de modelos generativos treinados nesses conjuntos de dados proliferarem na Internet.

A espinha dorsal do modelo de taxa de difusão. Diz-se que é mais eficiente em termos de memória, mais simples e mais rápido de convergir do que as versões anteriores. Essas variações são introduzidas principalmente nos blocos residuais e por meio de escalonamento adicional de valores dentro da rede.

3. Use o aprimoramento de condicionamento para aprimorar a fidelidade da imagem.

Como a solução pode ser vista como uma série de modelos de difusão, um argumento precisa ser feito em relação ao aprimoramento das regiões vinculadas ao modelo. Uma solução chamada aumento condicional foi proposta por Ho et al. Em termos simples, é equivalente a aplicar várias técnicas de aumento de dados (como o desfoque Gaussiano) a imagens de baixa resolução antes de alimentá-las em modelos de super-resolução.

A conclusão é retirada do Modelo Probabilístico de Difusão Denoising

Demonstramos amostras de imagens de alta qualidade usando modelos de difusão e encontramos conexões entre modelos de difusão e inferência variacional para treinar cadeias de Markov, correspondência de pontuação de redução de ruído e dinâmica de Langevin de recozimento (e, por extensão, modelos baseados em energia), modelos autorregressivos e perdas progressivas compressão. Como os modelos de difusão parecem ter bons vieses indutivos para dados de imagem, esperamos investigar sua utilidade em outras formas de dados, bem como componentes em outros tipos de modelos generativos e sistemas de aprendizado de máquina.

Nosso trabalho em modelos de difusão é de escopo semelhante ao trabalho existente em outros tipos de modelos generativos profundos, como o trabalho para melhorar a qualidade da amostra para GANs, fluxo, modelos autorregressivos, etc. Nosso artigo representa um progresso no sentido de tornar os modelos difusionais uma ferramenta geralmente útil nesta família de técnicas, de modo que possa ampliar qualquer impacto que os modelos generativos tiveram (e terão) no mundo em geral.

Infelizmente, existem muitos usos maliciosos bem conhecidos de modelos generativos. As técnicas de geração de amostras podem ser usadas para criar imagens e vídeos falsos de figuras de destaque para fins políticos. Embora imagens falsas tenham sido criadas à mão muito antes de existirem ferramentas de software, modelos generativos como o nosso facilitam o processo. Felizmente, as imagens geradas pela CNN atualmente apresentam alguns defeitos sutis que podem ser detectados, mas melhorias nos modelos generativos podem tornar a detecção mais difícil. Os modelos generativos também refletem o viés nos conjuntos de dados em que foram treinados. Como muitos grandes conjuntos de dados são coletados da Internet por sistemas automatizados, pode ser difícil remover esses vieses, especialmente se as imagens não forem rotuladas. Esses vieses só serão reforçados se amostras de modelos generativos treinados nesses conjuntos de dados proliferarem na Internet.

Os modelos de difusão, por outro lado, podem ser úteis para a compactação de dados, o que pode ser crítico para garantir a acessibilidade da Internet a um público amplo, à medida que os dados se tornam de maior resolução e o tráfego global da Internet aumenta. Nosso trabalho pode facilitar o aprendizado de representação para uma série de tarefas a jusante em dados brutos não rotulados, desde a classificação de imagens até o aprendizado por reforço, e os modelos de difusão também podem se tornar viáveis ​​para aplicações criativas em arte, fotografia e música.

Acho que você gosta

Origin blog.csdn.net/wwx1239021388/article/details/129333253
Recomendado
Clasificación