Fluxos normalizadores são uma classe de modelos generativos em aprendizado de máquina que modelam explicitamente uma distribuição de probabilidade aplicando uma sequência de transformações invertíveis a uma distribuição base simples. O método utiliza a lei da mudança de variáveis em probabilidade para converter uma distribuição simples, como uma Gaussiana, em uma distribuição alvo complexa. Essa modelagem direta da verossimilhança oferece vantagens: a log-verossimilhança negativa pode ser calculada e minimizada como função de perda, e novas amostras podem ser geradas amostrando da distribuição base e aplicando a transformação do fluxo. Em contraste, outros métodos de modelagem generativa, como autoencoders variacionais (VAEs), redes adversárias generativas (GANs) e modelos de difusão, não representam explicitamente a função de verossimilhança.
O termo 'fluxo normalizador' reflete dois aspectos:'normalizador' refere-se ao fato de que as transformações produzem uma densidade de probabilidade normalizada ( integrando a um), e 'fluxo' refere-se à composição sequencial de transformações que 'fluem' a distribuição base para a alvo. Modelos baseados em fluxo têm sido aplicados em campos como geração de imagens, estimativa de densidade, e detecção de anomalias, e eles formam a base para arquiteturas mais avançadas como RealNVP e Glow.
Método
Seja \( z_0 \) uma variável aleatória ( possivelmente multivariada) com distribuição \( p_0(z_0) \). Para \( i = 1, \dots, K \), seja \( z_i = f_i(z_{i-1}) \) uma sequência de variáveis aleatórias transformadas de \( z_0 \). As funções \( f_1, \dots, f_K \) devem ser invertíveis, o que significa que a função inversa \( f_i^{-1} \) existe. A saída final \( z_K \) modela a distribuição alvo.
A log-verossimilhança de \( z_K \) é dada por:
\[ \log p_K(z_K)) = \log p_0(z_0)) - \sum_{i=1}^K \log \left| \det \frac{d f_i(z_{i-1})}{d z_{i-1}} \right| \]
Esta fórmula surge da regra da mudança de variáveis, que ajusta a densidade pelo determinante absoluto do Jacobiano de cada transformação. Para calcular eficientemente a log-verossimilhança, as funções \( f_1, \dots, f_K \) devem ser facilmente invertíveis, e os determinantes de seus Jacobianos devem ser simples de calcular. Na prática, essas funções são modeladas usando redes neurais profundas, treinadas para minimizar a log-verossimilhança negativa de amostras de dados da distribuição alvo. Arquiteturas são projetadas de modo que apenas a passagem direta da rede seja necessária tanto para a inversa quanto para os cálculos do determinante Jacobiano. Exemplos incluem NICE, RealNVP, e Glow.
Derivação da log-verossimilhança
Considere \( z_1 \) e \( z_0 \). Note que \( z_0 = f_1^{-1}(z_1) \). Pela fórmula da mudança de variáveis, a distribuição de \( z_1 \) é:
\[ p_1(z_1)) = p_0(z_0)) \left| \det \frac{d f_1^{-1}(z_1)}{d z_1} \right| \]
Usando o teorema da função inversa, o determinante do Jacobiano da inversa é o recíproco do determinante do Jacobiano da transformação direta, levando à expressão da log-verossimilhança acima. Esta derivação se estende a múltiplas transformações por indução.
Inovações Arquiteturais
Os primeiros modelos baseados em fluxo focaram em projetar transformações com Jacobianos tratáveis. NICE ( Estimativa de Componentes Independentes Não Lineares), introduzido por Dinh et al. em 2014, usou camadas de acoplamento aditivas que particionam a entrada e aplicam transformações afins simples, tornando o Jacobiano triangular com determinante um. RealNVP ( Fluxo de Valor Real Não Preservador de Volume) estendeu isso para camadas de acoplamento afins, permitindo operações de escala e deslocamento, o que melhorou a expressividade enquanto mantinha a invertibilidade. Glow, introduzido por Kingma e Dhariwal em 2018, adicionou convoluções 1x1 invertíveis e camadas actnorm, permitindo treinamento eficiente em imagens de alta resolução.
Essas arquiteturas são frequentemente compostas de múltiplas camadas de acoplamento, cada uma com uma permutação ou convolução para misturar dimensões. A invertibilidade é garantida por construção, e o determinante Jacobiano é calculado como o produto dos elementos diagonais do Jacobiano triangular, o que é eficiente.
Aplicações e Comparações
Fluxos normalizadores são usados para estimativa de densidade, onde aprendem a distribuição de probabilidade de um conjunto de dados, e para amostragem generativa, onde produzem novos pontos de dados. Eles têm sido aplicados à geração de imagens, síntese de áudio, e geração de conformações moleculares. Em contraste com GANs, que são conhecidas por amostras nítidas mas carecem de estimativa de verossimilhança, fluxos fornecem log-verossimilhanças exatas, o que pode ser útil para comparação de modelos e detecção de outliers. Comparados a modelos de difusão, fluxos são frequentemente mais rápidos para amostrar porque requerem apenas uma única passagem direta, enquanto modelos de difusão requerem remoção iterativa de ruído.
No entanto, fluxos podem ser computacionalmente caros de treinar devido à necessidade de arquiteturas invertíveis e cálculos Jacobianos. Eles também podem exigir mais parâmetros para capturar distribuições complexas em comparação com outros métodos.
##Treinamento e Otimização
Treinar um fluxo normalizador envolve minimizar a log-verossimilhança negativa dos dados de treinamento. A função de perda é:
\[ \mathcal{L} = -\frac{1}{N} \sum_{n=1}^N \log p_K(x_n) \]
onde \( x_n \) são amostras de dados. Isso é tipicamente feito usando descida de gradiente estocástica. A invertibilidade das transformações garante que a log-verossimilhança seja bem definida, e o determinante Jacobiano é calculado como parte da passagem direta. Técnicas de regularização, como decaimento de peso e dropout, podem ser aplicadas aos parâmetros da rede.
Conceitos Relacionados
Fluxos normalizadores fazem parte do campo mais amplo de inteligência artificial e redes neurais. Eles são frequentemente comparados com outros modelos generativos como redes adversárias generativas e autoencoders variacionais. Pesquisa nesta área tem sido avançada por instituições como Stanford AI Lab e Berkeley AI Research, e por pesquisadores como Daphne Koller e Anima Anandkumar. Os fundamentos teóricos se conectam a aprendizado de máquina e aprendizado profundo.