Treinamento de GANs em dados espaçotemporais: um guia prático (Parte 01/3)

Parte 1: Um olhar mais atento às instabilidades mais notórias no treinamento GAN.

1. Descrição

        GANs são de longe os modelos generativos profundos mais populares, principalmente porque produziram recentemente resultados incríveis em tarefas de geração de imagens. No entanto, as GANs não são fáceis de treinar porque seu design básico introduz inúmeras instabilidades. Se você já tentou treinar um GAN em algo diferente de MNIST, perceberá rapidamente que toda a conversa sobre a dor de treiná-lo (e os campos de pesquisa associados que tentam resolver esse problema) não exagera o problema.

2. A instabilidade do GAN

        Abordaremos sistematicamente as causas e soluções para essas instabilidades notórias que descobrimos funcionarem empiricamente bem em nossos experimentos, depois de tentar extensivamente quase todos os truques do livro. Esta série de três partes é um guia prático para treinar GANs, com foco na geração de dados espaço-temporais, e está estruturada da seguinte forma:

1.  Parte 1: Um olhar mais atento às instabilidades mais notórias no treinamento GAN .

2.  Parte 2: Possíveis soluções para as armadilhas comuns discutidas na Parte 1 .

3.  Parte 3: Casos especiais de treinamento de GANs em dados espaço-temporais - métricas a serem rastreadas, complexidades únicas e suas soluções

        As instabilidades e soluções discutidas nesta série são independentes de modelos e casos de uso , mas também de situações espaço-temporais. Eles são um bom ponto de partida para qualquer exercício de treinamento GAN. Neste artigo, discutimos por que o treinamento de GANs é tão difícil, detalhando as instabilidades mais notórias no treinamento de GAN. Estudaremos a) como o desequilíbrio entre o treinamento do discriminador (D) e do gerador (G) pode levar ao colapso do modo e ao aprendizado silencioso devido ao desaparecimento de gradientes; b) a sensibilidade dos GANs aos hiperparâmetros e c) a perda enganosa de GAN no modelo desempenho.

        [Observação: presumimos que o leitor deste artigo tenha um conhecimento prévio dos fundamentos da GAN e também tenha alguma experiência em treinar GANs em algum momento. Por esse motivo, pularemos “O que são GANs?” e encaminharemos os leitores para este artigo para uma rápida atualização. ]

3. Por que o treinamento do GAN é tão difícil?

        Nesta seção, detalhamos algumas das instabilidades mais notórias no treinamento GAN e detalhamos todas as soluções possíveis que funcionaram bem na prática em nossos experimentos. Dito isto, é recomendado executar as primeiras iterações nas configurações vanilla para detectar quais das seguintes armadilhas são observadas na arquitetura e na tarefa em questão. Você pode então implementar iterativamente as soluções acima ( ordenadas de acordo com sua complexidade e eficácia com base em nossa experiência ) para estabilizar ainda mais o treinamento. Observe que essas dicas servem apenas como ponto de partida para orientação e não são uma lista exaustiva de soluções únicas. Os leitores são aconselhados a explorar ainda mais sua arquitetura e dinâmica de treinamento para obter os melhores resultados.

3.1. Desequilíbrio entre gerador e discriminador

        É fácil saber se uma pintura é de Van Gogh, mas é muito difícil realmente fazer uma pintura. Portanto, a tarefa de G é considerada mais difícil que a tarefa de D. Ao mesmo tempo, a capacidade de G aprender a gerar resultados realistas depende de quão bem D foi treinado. O Optimal D dará sinais ricos a G para aprender e melhorar sua geração. Portanto, é importante equilibrar o treinamento de G e D para obter condições ideais de aprendizagem.

        GAN é baseado em um jogo não cooperativo de soma zero e tenta alcançar um equilíbrio de Nash. Porém, sabe-se que algumas funções de custo não convergem com o gradiente descendente, principalmente para jogos não convexos. Isso introduz muita instabilidade no treinamento GAN porque as etapas de treinamento G e D são desequilibradas no jogo min-max, resultando em gradientes de aprendizado abaixo do ideal. Essas instabilidades são discutidas abaixo:

        1. O gradiente desaparece:

        Se D deve ser melhor que G ou vice-versa para um treinamento GAN ideal precisa ser respondido observando os seguintes parâmetros -

a) Se D se tornar muito bom muito rápido, o gradiente de G desaparece e ele nunca poderá alcançá-lo.

b) Por outro lado, se D for subótimo, então G pode facilmente enganá-lo com bobagens, uma vez que o desempenho de previsão de D é ruim. Novamente, isso resulta em nenhum gradiente para aprender, resultando em nenhuma melhoria na saída G.

        Então, idealmente, G e D deveriam ser melhores que o outro de maneira periódica. Se você observar uma dessas perdas movendo-se monotonicamente em qualquer direção, é provável que seu treinamento GAN esteja interrompido.

        2.  Colapso do modo: Se G for treinado desproporcionalmente mais, ele convergirá para produzir o mesmo resultado repetidamente, enganando assim D sem qualquer incentivo para focar na diversidade da amostra.

3.2  Razões para o desaparecimento do gradiente

        O gerador do alvo GAN original (Ian Goodfellow, 2014) otimiza a divergência JS não saturada da seguinte forma:

        Neste caso, é fácil ver se o gerador perde certos padrões de distribuição (ou seja, a penalidade é alta quando p(x ) > 0, mas q(x) → 0), e se os dados gerados parecem irrealistas (ou seja, se p (x)  → 0 mas  q(x) > 0 , a penalidade é alta). Isso força o gerador a produzir resultados de maior qualidade, mantendo a diversidade.

        No entanto, esta formulação faz com que o gradiente do gerador desapareça quando o discriminador atinge a otimalidade. Isso fica evidente no exemplo abaixo, onde p e  q  têm distribuição gaussiana e p  tem média zero. A imagem da direita mostra que o gradiente da divergência JS desaparece de  q1  para  q3  . Isso fará com que o gerador GAN aprenda muito lentamente (ou não aprenda) quando a perda nessas regiões saturar. Esta situação manifesta-se cedo no treino GAN, quando p e q são muito diferentes, e a tarefa de D é mais fácil porque a aproximação de G está longe da distribuição real.

3.3   Bom senso sobre dobramento de padrões

        O colapso do modo é de longe o problema mais difícil e não trivial no treinamento de GANs. Embora existam muitas explicações intuitivas para o colapso modal, na prática a nossa compreensão dele ainda é muito limitada. Uma explicação intuitiva fundamental que tem ajudado os profissionais até agora é que, sem atualizações suficientes sobre D, G é treinado de forma desproporcional. O gerador eventualmente converge para encontrar a melhor imagem x* que mais engana D, ou seja, a imagem mais realista da perspectiva do discriminador. Nesse caso, x* torna-se independente de z, o que significa que para cada z gera a mesma imagem.

        Eventualmente, D (quando treinado novamente) aprende a descartar imagens desse padrão como imagens falsas. Isto, por sua vez, força o gerador a encontrar o próximo ponto de vulnerabilidade e começar a gerá-lo. A perseguição de gato e rato entre D e G continua, com G tão focado em “trapacear” que até perde a capacidade de detectar outros padrões. Isso pode ser visto na figura acima, onde a linha superior mostra o processo de aprendizagem ideal que G deveria seguir. A linha inferior demonstra o caso de dobramento de padrões, onde G se concentra em produzir bem um padrão e ignora outros padrões.

3.4 Sensibilidade aos hiperparâmetros

        GAN é muito sensível a hiperparâmetros, ponto final. Nenhuma função de custo funcionará sem bons hiperparâmetros, portanto, é recomendável ajustar extensivamente os hiperparâmetros primeiro, em vez de tentar diferentes funções de perda no início. Ajustar hiperparâmetros exige tempo e paciência, e é importante compreender a dinâmica básica de treinamento de sua arquitetura antes de começar a usar funções de perda avançadas, que apresentarão seu próprio conjunto de hiperparâmetros.

4. Correlação entre perda de GAN e qualidade de geração

        Em tarefas usuais de classificação, a função de custo está relacionada à precisão do modelo (menor perda significa menor erro significa maior precisão). No entanto, a perda de um GAN mede o desempenho de um jogador contra outro jogador em um jogo min-max (gerador vs. discriminador). É comum que as perdas do gerador aumentem, mas a qualidade da imagem melhore. Portanto, há pouca correlação entre a "convergência" de perdas e a qualidade da geração ao treinar GANs, pois as perdas instáveis ​​de GAN são frequentemente enganosas. Uma técnica muito eficaz e amplamente aceita usada em tarefas de geração de imagens é acompanhar o progresso do treinamento por meio da inspeção visual das imagens geradas em diferentes estágios de treinamento. Mas isto posteriormente torna a comparação de modelos mais difícil e complica ainda mais o processo de ajuste, pois é difícil selecionar o melhor modelo a partir desta avaliação subjetiva. No entanto, durante nossos experimentos, percebemos rapidamente que esse aspecto muito crítico do treinamento de GAN – acompanhar o progresso da geração com as métricas corretas – também é um dos aspectos mais negligenciados quando as pessoas falam sobre o treinamento de GANs. Além disso, ao contrário das imagens, não podemos avaliar eficazmente o progresso do treinamento em dados espaço-temporais "intuitivamente". Portanto, torna-se crucial projetar e rastrear métricas relacionadas aos dados espaço-temporais que indiquem objetivamente o desempenho do modelo.

        Agora que detalhamos algumas das armadilhas proeminentes do treinamento GAN, a questão que surge é como podemos detectá-las e resolvê-las? Discutiremos esse tópico em detalhes no próximo blog desta série e, depois de tentar exaustivamente todas as dicas do livro, encontramos várias soluções para cada uma. Compilamos uma lista em ordem de facilidade de implementação e respectivo impacto para sugerir melhorias iterativas no treinamento GAN . Shantanu Chandra

·

Acho que você gosta

Origin blog.csdn.net/gongdiwudu/article/details/132850693
Recomendado
Clasificación