O objetivo do processo de difusão para a frente é transformar dados limpos do conjunto de dados de treinamento, como uma imagem ou amostra de áudio, em ruído puro. O método mais comum envolve a injeção iterativa de ruído gaussiano até que toda a distribuição de dados seja gaussiana.
Em termos matemáticos, esse processo passo a passo é formulado como uma cadeia de Markov: um tipo de processo estocástico, um processo aleatório que segue certas regras probabilísticas, para modelar dados sequenciais de séries temporais. Em uma cadeia de Markov, o resultado em cada etapa de tempo é influenciado apenas pela etapa de tempo imediatamente anterior a ela. Simplificando: xt, o estado da cadeia de Markov x na etapa de tempo t, é diretamente influenciado apenas por xt-1. A função matemática que define a transição de qualquer xt para xt+1 é chamada de kernel de transição.
Em cada etapa de tempo t, uma pequena quantidade de ruído gaussiano é adicionada a xt-1 e a imagem é, então, redimensionada, para manter um tamanho de imagem constante, apesar da injeção contínua de pixels aleatórios. Nessa formulação, x0 é o ponto de dados limpos original; x1 é o ponto de dados após a primeira etapa de tempo, com uma pequena quantidade de ruído gaussiano adicionado a ele; xT é o estado final do processo de difusão para a frente. Se T for grande o suficiente (ou seja, após etapas suficientes), xT convergirá para ruído gaussiano puro.
Definimos cada etapa para a frente como prever o estado da distribuição de dados q (xt), dado q(xt-1). Em um DDPM padrão, esse processo para a frente não envolve nenhum aprendizado de máquina: o resultado final da cadeia de Markov será sempre uma distribuição gaussiana e, portanto, não requer otimização.