Análise DDPM do algoritmo de núcleo de difusão estável

DDPM: Modelo Probabilístico de Difusão de Denoising, modelo de probabilidade de difusão de denoising

Referência neste artigo: Um vídeo para entender a derivação principal do modelo de difusão DDPM | Modelo subjacente de pintura de IA_哔哩哔哩_bilibili

1. Princípio geral

Da direita para a esquerda x_0\seta para a direita x_Testá o processo de adição de ruído direto e da esquerda para a direita x_t\seta direita x_0está o processo reverso de redução de ruído.

Adicionando continuamente ruído no processo de avanço, após T vezes x_T, esperamosx_T\simN(0,1)

Desta forma, durante a inferência, podemos N(0,1) retirar do aleatório x_T{'}(adicionar 'para indicar que este é um novo valor).

Se pudermos aprender x_t\rightarrow x_{t-1}o método de redução de ruído, poderemos finalmente passar x_T{'}\rightarrow x_0{'}a nova imagem.

2. O que prevê o método de redução de ruído do modelo de difusão

Agora é o método de redução de ruído que precisa ser aprendidox_t\rightarrow x_{t-1}x_{t-1} . O algoritmo DDPM não é um método para aprender diretamente o valor previsto , mas a x_{t-1}distribuição de probabilidade condicionalp(x_{t-1}|x_t) prevista e, em seguida, o valor obtido tomando o valor da distribuição x_{t-1}. Este método é semelhante ao método de previsão profunda, pois as distribuições são previstas em vez de valores.

Então, por que prever distribuições em vez de x_{t-1}valores exatos?

Como a distribuição pode ser amostrada x_{t-1}{'}, o modelo possui aleatoriedade.

Além disso, se você conseguir , poderá obtê-lo por amostragem , para que possa obtê-lo passo a passo . Portanto, o que queremos aprender é a distribuição de p, e não um gráfico exato.p(x_{t-2}|x_{t-1})x_{t-2}{'}x_T{'}\rightarrow x_0{'}

Conclusão: Todo o processo de aprendizagem está prevendo a distribuição p .

Mais tarde veremos que o modelo está prevendo ruído, que não é o ruído entre x_te , mas o ruído envolvido no cálculo x_{t-1}da distribuição normal p .\mu\varepsilon

Então, \varepsilonobtemos isso por previsão \mue, em seguida, obtemos p. Também verificou a nossa conclusão, ou seja, todo o processo de aprendizagem está prevendo a distribuição p .

3. Desmontagem da distribuição de probabilidade condicional

Fórmula 1 :p(x_{t-1}|x_t)=\frac{p(x_t|x_{t-1})\cdot p(x_{t-1})}{p(x_t)}, a distribuição de probabilidade condicional original é transformada de acordo com a fórmula bayesiana e a nova fórmula contém 3 distribuições de probabilidade.

(1) Cálculo do primeiro p

O primeiro p é:p(x_t|x_{t-1})

Da distribuição de probabilidade no processo de adição de ruído, porque o processo de adição de ruído é definido antecipadamente, a distribuição de probabilidade p também pode ser definida x_{t-1}.x_t

Agora definimos o processo de rampa da seguinte forma:

Equação 2 :,x_t=\sqrt{\alpha _t}\cdot x_{t-1} + \sqrt{\beta_t}\varepsilon _tonde\varepsilon _t\sim N(0,1)o ruído\beta_t=1-\alfa_t,.

Porque \varepsilon _t\sim N(0,1), então \sqrt{\beta_t} \varepsilon_t \sim N(0, \beta_t). (ps: a variância precisa ser elevada ao quadrado)

Pode ser vista \beta_tcomo a variância do ruído, ela precisa ser muito pequena perto de 0. Somente quando o ruído adicionado é pequeno, as direções para frente e para trás obedecem à distribuição normal.

Derivação adicional, x_t \sim N(\sqrt{\alpha_t} \cdot x_{t-1}, \beta_t), a saber:

Fórmula 3:p(x_t|x_{t-1}) \sim N(\sqrt{\alpha_t} \cdot x_{t-1}, \beta_t) .

(2) Cálculo do terceiro p

O terceiro p é: p(x_t), que é semelhante ao segundo p. Se você encontrar um método de cálculo para um, o outro poderá ser obtido de forma semelhante.

Na etapa anterior, obtivemos a fórmula 2 de cada etapa do processo de adição de ruído, e a fórmula 3 da distribuição de probabilidade condicional de cada etapa de adição de ruído.

Para o processo de adição de ruído, x_0 \rightarrow x_t \rightarrow \cdots \rightarrow x_{t-1} \rightarrow x_tportanto, pode x_0ser usado x_t.

Para modificar a fórmula 1:

Fórmula 4:p(x_{t-1}|x_t,x_0)=\frac{p(x_t|x_{t-1},x_0)\cdot p(x_{t-1}|x_0)}{p(x_t|x_0 )}

Como o processo de aquecimento é um processo de Markov, ele está p(x_t|x_{t-1},x_0)relacionado apenas à etapa anterior, e não tem nada a ver com a etapa anterior, ou seja, a soma x_0não tem nada a ver, entãop(x_t|x_{t-1},x_0)=p(x_t|x_{t-1})

Ép(x_t|x_0) obtido passo a x_0passo x_t, portanto nenhuma simplificação adicional é possível. Além disso, a Equação 4 simplifica para:

Fórmula 5 :p(x_{t-1}|x_t,x_0)=\frac{p(x_t|x_{t-1})\cdot p(x_{t-1}|x_0)}{p(x_t|x_0)}

Agora comece a calcular o valor do novo terceiro p novamente e deduza-o da fórmula 2 da seguinte forma (ps: colchetes indicam que alguns parâmetros estão incluídos, mas não escritos, e informações sem importância são omitidas):

x_t=\sqrt{\alpha_t} \cdot x_{t-1} + \sqrt{\beta_t} \cdot \varepsilon_t \\ =\sqrt{\alpha_t}(\sqrt{\alpha_{t-1}} \cdot x_{t-2}+\sqrt{\beta_{t-1} }\cdot \varepsilon_{t-1}) + \sqrt{\beta_t} \cdot \varepsilon_t \\ = \cdots \\ =\sqrt{ \alpha_t \cdots \alpha_1} \cdot x_0 + ()\varepsilon_t + \cdots + ()\varepsilon_2 + ()\varepsilon_1 \\ = \sqrt{\alpha_t \cdots \alpha_1} \cdot x_0 + ()\varepsilon

Finalmente, após uma derivação imprecisa, damos o resultado oficial:

Equação 6 :p(x_t|x_0) \sim N(\sqrt{\bar{\alpha_t}} \cdot x_0, (1- \bar{\alpha_t}) \cdot \varepsilon_t ^{2}), que\bar{\alpha_t} = \alpha_t \cdots \alpha_0representa a multiplicação contínua.

(3) Solução de fórmula de difusão

Se obtido na etapa anterior p(x_t|x_0), também pode ser obtido de forma semelhante p(x_{t-1}|x_0).

O resultado oficial da fórmula 4 é dado diretamente:

Fórmula 7 :p(x_{t-1}|x_t, x_0) \sim N(\bar \mu (x_0,x_t), \tilde{\beta_t})

Entre eles \tilde{\beta_t}está o hiperparâmetro, \bar{\mu} (x_0,x_t)a fórmula é a seguinte:

Fórmula 8 :\bar{\mu }(x_0,x_t)=\frac{\sqrt{\bar{\alpha_{t-1}}} \cdot \beta_t}{1-\bar{\alpha_t}} \cdot x_0 + \ frac{\sqrt{\alpha_t} \cdot(1-\bar{\alpha_{t-1}})}{1-\bar{\alpha_t}} \cdot x_t

Por \tilde{\beta_t}ser fixa, p(x_{t-1}|x_t,x_0)a tarefa de buscar torna-se busca \bar{\mu} (x_0,x_t).

Se sim \bar{\mu }(x_0,x_t), então o valor de inferência previsto pode ser obtido de acordo com a seguinte fórmula:

x_{t-1}=\bar{\mu }(x_0, x_t)+ \sqrt{\tilde{\beta_t}} \cdot \varepsilon _tFórmula 9 :,\varepsilon _t \sim N(0,1)

Se você p(x_{t-1}|x_t,x_0)retirar x_{t-1}, o processo não é derivável (inserindo diretamente o valor médio e o valor da variância por meio do pacote python), então há um problema com o processo reverso, então ele pode ser convertido para a fórmula 9 através da técnica de parâmetros pesados. Fórmula guiada para expressar x_{t-1}.

Na fase de inferência x_0está o valor que queremos, que é desconhecido, portanto é necessária uma fórmula para converter em um fator conhecido.

A Equação 6 é transformada pela técnica de parâmetros pesados ​​da seguinte forma:

Fórmula 10 :x_t=\sqrt{\bar{\alpha_t}} \cdot x_0 + \sqrt{1-\bar{\alpha_t}} \cdot \varepsilon _te, em seguida, obtenha:

Fórmula 11 :x_0=\frac{1}{\sqrt{\bar{\alpha_t}}}(x_t - \sqrt{1-\bar{\alpha_t}} \cdot \varepsilon _t), onde t é o número atual de estágios de adição de ruído, que mudará. Ao mesmo tempo, estex_0é o valor do parâmetro do processo intermediário e não pode ser usado como o valor final previsto, porque o processo p de raciocínio precisa seguir o processo de Markov, portanto deve ser derivado passo a passox_0.

Na Fórmula 7, o valor desconhecido é \bar{\mu} (x_0,x_t), e o valor desconhecido no valor é x_0, e x_0o valor desconhecido em é \varepsilon_t, que não pode ser calculado e derivado por fórmulas existentes .

Então usamos a rede UNet, input x_t, output \varepsilon_t.

Substituindo a Equação 11 na Equação 8, obtemos:

Equação 12 : \bar{\mu }(x_0, x_t)=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha_t}}} \cdot \varepsilon_t), onde entre \varepsilonoutras coisas são conhecidas.

É\varepsilon previsto pela rede UNet, que pode ser expresso como \varepsilon _\theta (x_t, t)um \thetaparâmetro do modelo UNet.

*************O processo do modelo de difusão obtendo a imagem prevista através da rede UNet**************** :

UNet \rightarrow \varepsilon _t \rightarrow x_0 -> \bar{\mu }(x_0,x_t) \rightarrow p(x_{t-1}|x_t,x_0) \rightarrow x_{t-1}{'} \rightarrow \cdots\rightarrow x_0{'}

O acima é a lógica mais importante do modelo de difusão DDPM .

4. Treinamento de modelo

De acordo com a Equação 12, pode-se observar que a rede UNet é treinada com ruído normalmente distribuído \varepsilon.

Pergunta 1: Qual é a entrada e a saída durante o treinamento do modelo?

Resposta: entrada x_t, saída \varepsilon_t.

Questão 2: Então qual processo realiza o treinamento dos parâmetros da rede UNet?

Resposta: o processo de adição de ruído. O processo de remoção de ruído é a fase de treinamento, e o processo de remoção de ruído é a fase de inferência.

De acordo com a fórmula 2, o ruído do processo de adição de ruído é definido pela implementação, para que possamos comparar o ruído previsto \hat{\varepsilon }e a \varepsilondivergência KL real para calcular o valor da perda.Na descrição oficial, a fórmula da divergência KL pode ser simplificada para calcular os dois O valor mse de um valor.

Pergunta 3: É deduzido passo a passo durante o treinamento?

Resposta: Não há necessidade. Durante o processo de treinamento , conforme fórmula 10  x_t=\sqrt{\bar{\alpha_t}} \cdot x_0 + \sqrt{1-\bar{\alpha_t}} \cdot \varepsilon _t, x_tpode ser calculado por \bar{\alpha_t},,,,  esses quatro valores.x_0\varepsilon_tt

\bar{\alpha_t}Ele pode ser calculado antecipadamente e armazenado na memória, x_0que é o conjunto de imagens de entrada, \varepsilon_to ruído de entrada te o número de estágios de adição de ruído.

Portanto, cada passo na direção direta pode obter x_to valor diretamente.

5. Implementação de pseudocódigo de treinamento e inferência

(1) Estágio de treinamento

Interpretação:

q(x_0)Representa tirar fotos do conjunto de dados

Uniforme(\esquerda \{1,...,T \direita \})Indica que um número de estágios de adição de ruído é selecionado aleatoriamente. Como mencionado anteriormente, o processo de adição de ruído não precisa ser feito passo a passo.

\sqrt{\bar{\alpha_t}} \cdot x_0 + \sqrt{1-\bar{\alpha_t}} \cdot \varepsilon _tparax_t

(2) Estágio de raciocínio

 

 Interpretação:

para t=T,...,1 faça Isso significa que o processo inverso precisa ser feito passo a passo.

O cálculo complexo na etapa 4 corresponde à Equação 9, e a primeira fórmula do cálculo corresponde à Equação 12.

Acho que você gosta

Origin blog.csdn.net/benben044/article/details/132331725
Recomendado
Clasificación