De o artigo que apresenta os GANs :

Um parágrafo mencionando o cenário Helvetica

Faz sentido recolher muitos $ \ vec {z} $ -valores para um único $ \ vec {x} $ -valor causará problemas. No entanto, fiquei um pouco confuso sobre como treinar $ G $ por um período mais curto antes de executar $ D $ pode consertar. Mas quando pesquisei “cenário Helvetica” no Google, tudo que consegui encontrar foram referências a um programa de paródia chamado Look Around You .

Já que parece que isso é uma coisa real, não apenas uma paródia – onde posso encontrar mais informações sobre isso e como pode ser evitado? E por que ele é chamado de “cenário Helvetica”?

Resposta

Colocando muita massa de probabilidade em um único $ x $ é realmente um grande problema com GANs. Normalmente é referido como redução do modo . A maioria dos documentos GAN discutem isso.

Fiquei um pouco confuso sobre como o treinamento 𝐺 por um período menor de tempo antes de correr 𝐷 pode consertar.

A ideia é manter o discriminador $ D $ atualizado com o gerador $ G $ . Ao treinar $ G $ menos, você está treinando $ D $ mais. Normalmente, uma otimização alternada está sendo feita com GANs, ou seja, treinar $ D $ para $ n $ iterações, em seguida, $ G $ para $ m $ iterações e assim por diante. O “trabalho” de $ D $ é ser capaz de discernir saídas $ G $ falsas de dados reais pontos. Mas, se você não treinar $ D $ o suficiente (ou seja, você treinar $ G $ demais , então $ m > n $ ) e $ G $ irá rapidamente “fugir” e explorar mínimos locais em $ D $ . De $ G $ ” ponto de vista do s, se $ D $ “curtir” alguma saída $ x = G (z) $ , então a coisa mais fácil a fazer é apenas produzir apenas $ x $ ! Treinar $ G $ a menos (e, portanto, $ D $ a mais) permite que esses mínimos se movam e evita $ G $ de explorá-los.

Observe que overtraining $ D $ não “t parece ser uma coisa ruim a priori . Na verdade, com perdas de GAN mais modernas (por exemplo, as de Wasserstein), alguém deseja $ n $ para ser o maior possível. Significa apenas que $ D $ converge para ser um ótimo discriminador em cada etapa, por isso deve ser informativo para $ G $ . (Na verdade, as provas de convergência dependem disso!) Mas, na prática, para o GAN original, overtraining $ D $ tende a levar a gradientes inúteis (veja abaixo): nada $ G $ pode fazer agradará ao discriminador, então todas as atualizações de peso são inúteis , então o GAN apenas se debate inutilmente em torno do espaço de parâmetros). Este flailing é chamado de treinamento instável por outros. 🙂

Em outras palavras, para o GAN vanilla, subtreinamento $ D $ pode levar ao colapso do modo, enquanto o overtraining pode causar instabilidade. As pessoas aparentemente se concentraram em mitigar a instabilidade de modo que simplesmente sobrecarregue $ D $ e evite o colapso do modo.

como isso pode ser evitado?

Uma maneira comum de mitigar isso é usar uma função de perda diferente, como uma perda de Wasserstein. Um problema com a formulação original de GAN é que (minimizando a divergência JS) pode ter gradientes muito pouco informativos porque a perda não lida muito bem com distribuições com muito pouca sobreposição (ou seja, quando o suporte compartilhado é pequeno). Em certo sentido, é muito difícil quando o gerador está funcionando mal. Em contraste, uma perda de transporte ótima diminui suavemente, mesmo quando as duas distribuições estão distantes uma da outra. Veja, por exemplo o artigo Wasserstein GAN e seus subseqüentes.

E por que ele é chamado de “o cenário Helvetica”?

Refere-se ao programa que você mencionou, onde muito cálcio é colocado em um lugar e causa um desastre. Aqui, um desastre ocorre quando muita densidade de probabilidade do gerador é colocada em uma pequena área do espaço de dados. 🙂

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *