Um preâmbulo, mais ou menos
Enquanto escrevemos isto — é abril de 2023 — é difícil exagerar a atenção, as esperanças associadas e os medos em torno da geração de imagens e textos com tecnologia de aprendizado profundo. Os impactos na sociedade, na política e no bem-estar humano merecem mais do que um parágrafo curto e respeitoso. Portanto, adiamos o tratamento apropriado deste tópico para publicações dedicadas e gostaríamos apenas de dizer uma coisa: quanto mais você souber, melhor; menos você ficará impressionado com declarações simplificadoras e que negligenciam o contexto feitas por figuras públicas; mais fácil será para você tomar sua própria posição sobre o assunto. Dito isso, começamos.
Neste publish, apresentamos um R torch
implementação de Modelos implícitos de difusão de redução de ruído (J. Tune, Meng e Ermon (2020)). O código está ligado
GitHube vem com um README extenso detalhando tudo, desde fundamentos matemáticos por meio de escolhas de implementação e organização de código até treinamento de modelo e geração de amostra. Aqui, damos uma visão geral de alto nível, situando o algoritmo no contexto mais amplo de aprendizado profundo generativo. Sinta-se à vontade para consultar o README para quaisquer detalhes nos quais você esteja particularmente interessado!
Modelos de difusão em contexto: Aprendizagem profunda generativa
No aprendizado profundo generativo, os modelos são treinados para gerar novos exemplares que provavelmente viriam de alguma distribuição acquainted: a distribuição de imagens de paisagens, digamos, ou versos poloneses. Embora a difusão seja o assunto do momento, a última década teve muita atenção voltada para outras abordagens, ou famílias de abordagens. Vamos enumerar rapidamente algumas das mais comentadas e dar uma rápida caracterização.
Primeiro, modelos de difusão eles mesmos. Difusão, o termo geral, designa entidades (moléculas, por exemplo) que se espalham de áreas de maior concentração para áreas de menor concentração, aumentando assim a entropia. Em outras palavras, informação é perdida. Em modelos de difusão, essa perda de informação é intencional: em um processo “ahead”, uma amostra é retirada e sucessivamente transformada em ruído (gaussiano, geralmente). Um processo “reverso” então deve pegar uma instância de ruído e sequencialmente des-ruído até que pareça que veio da distribuição unique. Com certeza, porém, não podemos reverter a flecha do tempo? Não, e é aí que entra o aprendizado profundo: durante o processo ahead, a rede aprende o que precisa ser feito para “reversão”.
Uma ideia totalmente diferente está subjacente ao que acontece nas GANs, Redes Adversariais Generativas. Em uma GAN, temos dois agentes em ação, cada um tentando ser mais esperto que o outro. Um tenta gerar amostras que pareçam tão realistas quanto possível; o outro concentra sua energia em detectar as falsificações. Idealmente, ambos melhoram com o tempo, resultando no resultado desejado (assim como um “regulador” que não é ruim, mas sempre um passo atrás).
Depois, temos os VAEs: Autoencoders Variacionais. Em um VAE, como em um GAN, há duas redes (um codificador e um decodificador, dessa vez). No entanto, em vez de cada um se esforçar para minimizar sua própria função de custo, o treinamento está sujeito a uma única perda – embora composta. Um componente garante que as amostras reconstruídas se assemelhem muito à entrada; o outro, que o código latente confirme as restrições pré-impostas.
Por último, deixe-nos mencionar fluxos (embora estes tendam a ser usados para um propósito diferente, veja a próxima seção). Um fluxo é uma sequência de mapeamentos diferenciáveis e invertíveis de dados para alguma distribuição “authorized”, agradável significando “algo que podemos facilmente amostrar, ou obter uma probabilidade de”. Com fluxos, assim como com difusão, o aprendizado acontece durante o estágio de avanço. A invertibilidade, assim como a diferenciabilidade, asseguram que podemos voltar para a distribuição de entrada com a qual começamos.
Antes de mergulharmos na difusão, esboçamos – muito informalmente – alguns aspectos a serem considerados ao mapear mentalmente o espaço de modelos generativos.
Modelos generativos: Se você quisesse desenhar um mapa psychological…
Acima, dei caracterizações bastante técnicas das diferentes abordagens: Qual é a configuração geral, o que otimizamos para… Mantendo o lado técnico, poderíamos olhar para categorizações estabelecidas, como modelos baseados em probabilidade vs. não baseados em probabilidade. Modelos baseados em probabilidade parametrizam diretamente a distribuição de dados; os parâmetros são então ajustados maximizando a probabilidade dos dados sob o modelo. Das arquiteturas listadas acima, este é o caso com VAEs e fluxos; não é com GANs.
Mas também podemos adotar uma perspectiva diferente – a do propósito. Primeiramente, estamos interessados em aprendizagem de representação? Ou seja, gostaríamos de condensar o espaço de amostras em um mais esparso, um que exponha características subjacentes e dê dicas de categorização útil? Se sim, VAEs são os candidatos clássicos a serem observados.
Alternativamente, estamos principalmente interessados em geração e gostaríamos de sintetizar amostras correspondentes a diferentes níveis de granulação grossa? Então algoritmos de difusão são uma boa escolha. Foi demonstrado que
(…) representações aprendidas usando diferentes níveis de ruído tendem a corresponder a diferentes escalas de características: quanto maior o nível de ruído, maior a escala das características que são capturadas.
Como exemplo ultimate, e se não estivermos interessados em síntese, mas gostaríamos de avaliar se um dado pedaço de dados poderia provavelmente fazer parte de alguma distribuição? Se sim, fluxos podem ser uma opção.
Ampliando: Modelos de difusão
Assim como quase toda arquitetura de deep-learning, os modelos de difusão constituem uma família heterogênea. Aqui, vamos apenas citar alguns dos membros mais em voga.
Quando, acima, dissemos que a ideia dos modelos de difusão period transformar sequencialmente uma entrada em ruído, e então des-ruído sequencialmente novamente, deixamos em aberto como essa transformação é operacionalizada. Esta, de fato, é uma área onde abordagens rivais tendem a diferir.
Y. Tune e outros. (2020)por exemplo, fazem uso de uma equação diferencial estocástica (EDS) que mantém a distribuição desejada durante a fase de avanço de destruição de informações. Em contraste gritante, outras abordagens, inspiradas por Ho, Jain e Abbeel (2020)dependem de cadeias de Markov para realizar transições de estado. A variante introduzida aqui – J. Tune, Meng e Ermon (2020) – mantém o mesmo espírito, mas melhora a eficiência.
Nossa implementação – visão geral
O LEIA-ME fornece uma introdução muito completa, cobrindo (quase) tudo, desde o contexto teórico, passando pelos detalhes de implementação, até o procedimento de treinamento e ajuste. Aqui, apenas delineamos alguns fatos básicos.
Como já foi sugerido acima, todo o trabalho acontece durante o estágio de avanço. A rede recebe duas entradas, as imagens, bem como informações sobre a relação sinal-ruído a serem aplicadas em cada etapa do processo de corrupção. Essas informações podem ser codificadas de várias maneiras e, então, são incorporadas, de alguma forma, em um espaço de dimensão superior mais propício ao aprendizado. Aqui está como isso poderia parecer, para dois tipos diferentes de agendamento/incorporação:
Em termos de arquitetura, entradas e saídas pretendidas sendo imagens, o principal burro de carga é uma U-Web. Ela faz parte de um modelo de nível superior que, para cada imagem de entrada, cria versões corrompidas, correspondendo às taxas de ruído solicitadas, e executa a U-Web nelas. A partir do que é retornado, ela tenta deduzir o nível de ruído que estava governando cada instância. O treinamento consiste então em fazer com que essas estimativas melhorem.
Modelo treinado, o processo reverso – geração de imagem – é direto: consiste em redução de ruído recursiva de acordo com o cronograma de taxa de ruído (conhecido). No geral, o processo completo pode se parecer com isto:
Para finalizar, este publish, por si só, é realmente apenas um convite. Para saber mais, confira o Repositório GitHub. Caso você exact de motivação adicional para fazer isso, aqui estão algumas imagens de flores.
Obrigado pela leitura!
Português Dieleman, Sander. 2022. “Modelos de difusão são autocodificadores.” https://benanne.github.io/2022/01/31/diffusion.html.
Ho, Jonathan, Ajay Jain e Pieter Abbeel. 2020. “Modelos probabilísticos de difusão de redução de ruído”. https://doi.org/10.48550/ARXIV.2006.11239.
Tune, Jiaming, Chenlin Meng e Stefano Ermon. 2020. “Modelos implícitos de difusão de redução de ruído”. https://doi.org/10.48550/ARXIV.2010.02502.
Tune, Yang, Jascha Sohl-Dickstein, Diederik P. Kingma, Abhishek Kumar, Stefano Ermon e Ben Poole. 2020. “Modelagem generativa baseada em pontuação por meio de equações diferenciais estocásticas.” CoRR abs/2011.13456. https://arxiv.org/abs/2011.13456.