Escolar Documentos
Profissional Documentos
Cultura Documentos
Abstract – Generative Adversarial Networks (GANs) are being widely used in machine learning for the creation
of new images based on a given dataset. GANs have two main components: a discriminator (D), a binary classifier
that learns to recognize and differentiate the data set images from "fakes"; and a generator (G) that learns to create,
from random noise, images that pass the D’s criteria. This project aims to compare the original GAN implementation
and a recent implementation, called Relativistic GAN. The networks were trained using the MNIST handwritten
digits database and used to successfully create new images.
Keywords – Keras; Python; Generative Adversarial Networks; Relativistic GAN; MNIST
3. Metodologia
Figura 2. Treinamento de G
A implementação foi feita em Python utilizando a
biblioteca Keras. A arquitetura do gerador G é:
• Input aleatório de 100 variáveis aleatórias
• Durante esta etapa só permitimos a otimiza-
gaussianas com média 0 e variância 1.
ção dos parâmetros da rede G.
• Três camadas fully connected com 256, 512
• Para que uma entrada em G corresponda em
e 1024 neurônios; batch normalization e
"1"após percorrer as redes G+D.
função de ativação ReLu.
• Com G, geramos um mini-batch de n amos-
• Camada de saída com 784 neurônios e fun-
tras com etiquetas "1"para a rede D e treina-
ção de ativação tanh, ao fim a saída é re-
mos o conjunto G+D.
modelada em uma imagem 28x28 pixels.
Assim temos um caso muito parecido com A arquitetura do descriminador D é:
nossa analogia, a cada ciclo completo D aprende
• Entrada 784 neurônios.
a discriminar melhor as "falsificações"e G aprende
• Duas camadas fully connected com 512
como "falsificar"melhor.
neurônios, função de ativação ReLu e dro-
pout de 20%.
1.2. GAN de média relativística (RaGAN) • Camada de saída com 1 neurônio, ativação
Existe um dilema conceitual na formulação origi- sigmóide.
nal do GAN (chamada daqui pra frente de standard Para o treino foram usados 60000 imagens de 28x28
GAN ou SGAN). Para o treinamento do discrimi- pixels do MNIST, obtidas pela separação padrão do
nador, as imagens do gerador são sempre rotuladas conjunto em dados de treinamento (60000 imagens)
como falsas. Isso pode ser conflitante quando o ge- e dados de teste (10000 imagens). A arquitetura do
rador aprende a gerar imagens mais parecidas com GAN e do RaGAN é a mesma, a diferença é a mo-
o conjunto real, que serão igualmente penalizadas dificação da função de custo no treinamento do dis-
pelo discriminador. Essa pode ser uma causa de ins- criminador, como explicado previamente. Ambos
tabilidade no treinamento, um dos problemas mais foram treinados por 100 épocas, com o otimizador
notáveis das redes GANs [7]. Adam com parâmetros: learning rate = 2e-4, beta1
O RaGAN (Relativistic avarage GAN), pro- = 0.5 e beta2 = 0.99. Para ambos, foi escolhido o
posto em [3], utiliza uma formulação que busca con- critério de minimizar a entropia cruzada.
tornar essa contradição. A função de custo de trei-
namento do discriminador é alterada para que as 4. Resultados
imagens originais sejam mais "realistas"do que uma Na figura 3, observamos as imagens geradas pelo
média de imagens geradas. Para o treinamento do SGAN, RaGAN e as imagens originais da database
gerador, o oposto, que as imagens geradas sejam MNIST. Podemos observar que o SGAN conseguiu
mais "realistas"do que uma média de imagens ori- replicar com fidelidade satisfatória os algarismos do
ginais. Dessa forma, o discriminador penaliza mais MNIST. Visualmente, notamos que a performance
as imagens que parecem falsas e menos as que pare- do RaGAN foi ligeiramente inferior, especialmente
cem reais, atuando mais como um "crítico". É possí- para alguns algarismos (como o 2, 5 e 7). A evo-
vel mostrar que essa formulação tende a trazer mais lução das imagens dos geradores a partir de ruído
estabilidade para o treinamento da rede, comparado aleatório pode ser visto na figura 4.
com a formulação original [3].
Um cenário indesejado no treinamento de
GANs é o caso em que o gerador fica restrito a um
2. Proposta subconjunto do conjunto original de treinamento.
O objetivo do nosso projeto foi criar e avaliar a per- Para avaliar a qualidade e diversidade das imagens
formance de dois tipos diferentes de GAN (con- geradas pelos GANs, propomos o seguinte teste.
Projeto final
IA006 - Tópicos em Sistemas Inteligentes II - Aprendizado de Máquina Campinas, 01 de julho de 2019
Figura 3. Dígitos de 0 a 9 originais e gerados. Na primeira linha, exemplos retirados das base de dados
MNIST, na segunda, exemplos gerados pelo SGAN e na terceira, exemplos geradas pelo RaGAN, ambos
após 100 épocas de treinamento.
Amostras (N) MNIST SGAN RaGAN gans. In Advances in neural information pro-
5000 98% 96% 96% cessing systems, pages 2234–2242, 2016.
2000 97% 95% 95%
1000 97% 94% 94% Códigos
500 95% 92% 91%
200 92% 89% 89% Os scripts realizados em Python estão disponibiliza-
100 91% 87% 86% dos em arquivos separados, assim como os modelos
50 86% 85% 85% treinados e algumas das imagens geradas. Gostaría-
20 84% 83% 83% mos de creditar que os nossos scripts foram inspira-
dos pelos seguintes códigos disponibilizados publi-
Tabela 1. Acurácia dos classificadores multi- camente:
classe no conjunto de teste original. Os clas-
sificadores foram treinados com N amostras 1. https://github.
por dígito, com imagens originais (MNIST) ou com/IShengFang/
com imagens geradas pelos GANs (SGAN e
Relativistic-average-GAN-Keras
RaGAN).
2. https://github.com/
eriklindernoren/Keras-GAN
melhorar o desempenho em situações em que há ins- 3. https://keras.io/examples/
tabilidade no treinamento de GANs convencionais. mnist_mlp/
Tentamos explorar o problema com ima-
gens coloridas e maior resolução (dataset CIFAR-
10), porém fomos desencorajados por algumas di-
ficuldades técnicas. As redes MLP não conseguem
bons resultados nesses conjuntos. Conseguimos ob-
ter resultados melhores com redes neurais convolu-
cionais, porém o longo tempo de treinamento dessas
redes em computadores convencionais inviabilizou
uma análise mais detalhada.
Referências
[1] Ian J. Goodfellow. Generative adversarial nets.
arXiv:1406.2661v1 [stat.ML], 2014.
[2] Yongjun Hong. How generative adversarial
networks and their variants work: An overview.
arXiv:1711.05914v10 [cs.LG], 2019.
[3] Alexia Jolicoeur-Martineau. The relativistic
discriminator: a key element missing from stan-
dard gan. arXiv:1807.00734v3 [cs.LG], 2018.
[4] Tero Karras. A style-based generator architec-
ture for generative adversarial networks. ar-
Xiv:1812.04948v3 [cs.NE], 2019.
[5] Christian Ledig. Photo-realistic single image
super-resolution using a generative adversarial.
arXiv:1609.04802v5 [cs.CV], 2017.
[6] Mario Lucic, Karol Kurach, Marcin Michalski,
Sylvain Gelly, and Olivier Bousquet. Are gans
created equal. A Large-Scale Study. ArXiv e-
prints, 2(4), 2017.
[7] Tim Salimans, Ian Goodfellow, Wojciech Za-
remba, Vicki Cheung, Alec Radford, and
Xi Chen. Improved techniques for training