O que é uma GAN?
Uma rede adversária generativa (GAN) corresponde a uma arquitetura de aprendizado profundo. Ela treina duas redes neurais para competirem entre si para gerar novos dados mais autênticos a partir de um determinado conjunto de dados de treinamento. Por exemplo, você pode gerar novas imagens de um banco de dados de imagens existente ou músicas originais de um banco de dados de músicas. Uma GAN é chamada de adversária porque treina duas redes diferentes e as coloca uma contra a outra. Uma rede gera novos dados pegando uma amostra de dados de entrada e modificando-a o máximo possível. A outra rede tenta prever se a saída de dados gerada pertence ao conjunto de dados original. Em outras palavras, a rede de previsão determina se os dados gerados são falsos ou reais. O sistema gera versões mais novas e aprimoradas de valores de dados falsos até que a rede de previsão não consiga mais distinguir o falso do original.
Quais são alguns casos de uso de redes adversárias generativas?
A arquitetura GAN possui diversas aplicações em diferentes setores. Confira alguns exemplos a seguir.
Gerar imagens
Redes adversárias generativas criam imagens realistas por meio de instruções baseadas em texto ou modificando imagens existentes. Elas podem ajudar a criar experiências visuais realistas e imersivas em videogames e entretenimento digital.
A GAN também pode editar imagens, como converter uma imagem de baixa resolução em alta resolução ou transformar uma imagem em preto e branco em cores. Ela também pode criar rostos, personagens e animais realistas para animação e vídeo.
Gerar dados de treinamento para outros modelos
No machine learning (ML), o aumento de dados amplia artificialmente o conjunto de treinamento criando cópias modificadas de um conjunto de dados usando dados existentes.
Você pode usar modelos generativos para aumentar os dados para criar dados sintéticos com todos os atributos dos dados do mundo real. Por exemplo, é possível gerar dados de transações fraudulentas que você usa para treinar outro sistema de ML de detecção de fraudes. Esses dados podem ensinar o sistema a distinguir com precisão entre transações suspeitas e genuínas.
Preencher as informações faltantes
Às vezes, você pode querer que o modelo generativo adivinhe e complete com precisão algumas informações faltantes em um conjunto de dados.
Por exemplo, você pode treinar a GAN para gerar imagens da superfície abaixo do solo (subsuperfície) entendendo a correlação entre os dados da superfície e as estruturas subterrâneas. Ao estudar imagens conhecidas do subsolo, ela pode criar novas usando mapas de terreno para aplicações de energia, como mapeamento geotérmico ou captura e armazenamento de carbono.
Gerar modelos 3D a partir de dados 2D
A GAN pode gerar modelos 3D a partir de fotos 2D ou imagens digitalizadas. Por exemplo, na área da saúde, a GAN combina raios-X e outros exames corporais para criar imagens realistas de órgãos para planejamento e simulação cirúrgica.
Como funciona uma rede adversária generativa?
Um sistema de rede adversária generativa compreende duas redes neurais profundas: a rede geradora e a rede discriminadora. Ambas as redes treinam em um jogo adversário, em que uma tenta gerar novos dados e a outra tenta prever se a saída é falsa ou real.
Tecnicamente, a GAN funciona da seguinte maneira. Uma equação matemática complexa forma a base de todo o processo de computação, mas essa é uma visão geral simplista:
- A rede neural geradora analisa o conjunto de treinamento e identifica os atributos dos dados
- A rede neural discriminadora também analisa os dados do treinamento inicial e distingue os atributos de forma independente
- A geradora modifica alguns atributos de dados adicionando ruído (ou alterações aleatórias) a determinados atributos
- A geradora passa os dados modificados para a discriminadora
- A discriminadora calcula a probabilidade de que a saída gerada pertença ao conjunto de dados original
- A discriminadora fornece algumas orientações à geradora para reduzir a randomização do vetor de ruído no próximo ciclo
A geradora tenta maximizar a probabilidade de erro da discriminadora, mas a discriminadora tenta minimizar a probabilidade de erro. Nas iterações de treinamento, tanto a geradora quanto a discriminadora evoluem e se confrontam continuamente até atingirem um estado de equilíbrio. No estado de equilíbrio, a discriminadora não consegue mais reconhecer dados sintetizados. Nesse ponto, o processo de treinamento acabou.
Exemplo de treinamento em GAN
Vamos contextualizar o exposto acima com um exemplo do modelo de GAN na tradução de imagem para imagem.
Considere que a imagem de entrada é um rosto humano que a GAN tenta modificar. Por exemplo, os atributos podem ser as formas dos olhos ou ouvidos. Digamos que a geradora altere as imagens reais adicionando óculos de sol a elas. A discriminadora recebe um conjunto de imagens, algumas de pessoas reais com óculos escuros e algumas imagens geradas que foram modificadas para incluir óculos de sol.
Se a discriminadora conseguir diferenciar entre falso e real, a geradora atualiza seus parâmetros para gerar imagens falsas ainda melhores. Se a geradora produzir imagens que enganam a discriminadora, a discriminadora atualiza seus parâmetros. A competição melhora as duas redes até que o equilíbrio seja alcançado.
Quais são os tipos de redes adversárias generativas?
Existem diferentes tipos de modelos de GAN, dependendo das fórmulas matemáticas usadas e das diferentes maneiras pelas quais a geradora e a discriminadora interagem entre si.
A seguir, apresentaremos alguns modelos comumente usados, mas a lista não é abrangente. Existem vários outros tipos de GAN, como StyleGAN, CycleGAN e Discogan, que resolvem diferentes tipos de problemas.
Vanilla GAN
Esse é o modelo básico de GAN que gera variação de dados com pouco ou nenhum feedback da rede discriminadora. Uma GAN básica normalmente requer aprimoramentos para a maioria dos casos de uso do mundo real.
GAN Condicional
Uma GAN condicional (CGaN) introduz o conceito de condicionalidade, permitindo a geração de dados direcionados. A geradora e a discriminadora recebem informações adicionais, normalmente como rótulos de classe ou alguma outra forma de dados de condicionamento.
Por exemplo, ao gerar imagens, a condição pode ser um rótulo que descreva o conteúdo da imagem. O condicionamento permite que a geradora produza dados que atendam a condições específicas.
GAN convolucional profunda
Reconhecendo o poder das redes neurais convolucionais (CNNs) no processamento de imagens, a GAN convolucional profunda (DCGAN) integra arquiteturas CNN às GANs.
Com a DCGAN, a geradora usa convoluções transpostas para aprimorar a distribuição de dados, e a discriminadora também usa camadas convolucionais para classificar os dados. A DCGAN também apresenta diretrizes arquitetônicas para tornar o treinamento mais estável.
GAN de Super-resolução
As GANS de super-resolução (sRGANs) se concentram em aumentar a escala de imagens de baixa resolução para alta resolução. O objetivo é aprimorar as imagens para uma resolução mais alta, mantendo a qualidade e os detalhes da imagem.
As GANs da Pirâmide Laplaciana (LAPGANs) enfrentam o desafio de gerar imagens de alta resolução dividindo o problema em estágios. Elas usam uma abordagem hierárquica, com várias geradoras e discriminadoras trabalhando em diferentes escalas ou resoluções da imagem. O processo começa com a geração de uma imagem de baixa resolução que melhora a qualidade nos estágios progressivos da GAN.
Como a AWS pode oferecer suporte aos seus requisitos de rede adversária generativa?
A Amazon Web Services (AWS) oferece muitos serviços para atender aos seus requisitos de GAN.
O Amazon SageMaker é um serviço totalmente gerenciado que você pode usar para preparar dados e criar, treinar e implantar modelos de machine learning. Esses modelos podem ser usados em diversos cenários, e o SageMaker vem com infraestrutura, ferramentas e fluxos de trabalho totalmente gerenciados. Ele possui uma ampla variedade de recursos para acelerar o desenvolvimento e o treinamento de GAN para qualquer aplicação.
O Amazon Bedrock é um serviço totalmente gerenciado. Você pode usá-lo para acessar modelos de base (FMs) ou redes neurais profundas treinadas da Amazon e das principais startups de inteligência artificial (IA). Esses FMs estão disponíveis por meio de APIs, para que você possa escolher entre diversas opções para encontrar o melhor modelo para suas necessidades. Você pode usar esses modelos em suas próprias aplicações de GAN. Com o Amazon Bedrock, você pode desenvolver e implantar mais rapidamente aplicações de IA generativa escaláveis, confiáveis e seguras. E você não precisa gerenciar a infraestrutura.
O AWS DeepComposer oferece uma forma criativa de começar a usar o ML. Você pode começar a praticar com um teclado musical e as técnicas de ML mais atuais, desenvolvidas para ampliar suas habilidades de ML. Independentemente de sua experiência em ML ou música, seus desenvolvedores podem começar a usar GANs. E eles podem treinar e otimizar os modelos de GAN para criar música original.
Comece a usar redes adversárias generativas na AWS criando uma conta hoje mesmo.
Próximas etapas na AWS
Obtenha acesso instantâneo ao nível gratuito da AWS.