Generative Adversarial Networks (GAN): Uma introdução

As redes de adversários generativos (GANs) são uma das tecnologias modernas que oferecem muito potencial em muitos casos de uso, desde a criação de suas imagens antigas e o aumento de sua voz até o fornecimento de várias aplicações em indústrias médicas e outras.

Essa tecnologia avançada pode ajudá-lo a moldar seus produtos e serviços. Também pode ser usado para melhorar a qualidade da imagem para preservar memórias.

Embora as GANs sejam uma benção para muitos, alguns acham isso preocupante.

Mas o que é exatamente essa tecnologia?

Neste artigo, discutirei o que é uma GAN, como ela funciona e suas aplicações.

Então, vamos mergulhar direto!

O que é uma rede adversária generativa?

A Generative Adversarial Network (GAN) é uma estrutura de aprendizado de máquina que consiste em duas redes neurais competindo para produzir previsões mais precisas, como imagens, músicas exclusivas, desenhos e assim por diante.

GANs foi projetado em 2014 por um cientista da computação e engenheiro, Ian Goodfellow, e alguns de seus colegas. São redes neurais profundas únicas capazes de gerar novos dados semelhantes aos que estão sendo treinados. Eles disputam um jogo de soma zero que resulta em um agente perdendo o jogo enquanto o outro vence.

Originalmente, as GANs foram propostas como um modelo generativo para aprendizado de máquina, principalmente aprendizado não supervisionado. Mas as GANs também são úteis para aprendizado totalmente supervisionado, aprendizado semissupervisionado e aprendizado por reforço.

Os dois blocos em competição em um GAN são:

O gerador: é uma rede neural convolucional que produz artificialmente saídas semelhantes aos dados reais.

O discriminador: é uma rede neural deconvolucional que pode identificar as saídas criadas artificialmente.

Conceitos chave

Para entender melhor o conceito de GAN, vamos entender rapidamente alguns conceitos importantes relacionados.

Aprendizado de máquina (ML)

O aprendizado de máquina é uma parte da inteligência artificial (IA) que envolve o aprendizado e a construção de modelos que aproveitam os dados para melhorar o desempenho e a precisão ao executar tarefas ou tomar decisões ou previsões.

Os algoritmos de ML criam modelos baseados em dados de treinamento, melhorando com o aprendizado contínuo. Eles são usados ​​em vários campos, incluindo visão computacional, tomada de decisão automatizada, filtragem de e-mail, medicina, bancos, qualidade de dados, segurança cibernética, reconhecimento de fala, sistemas de recomendação e muito mais.

Modelo de discriminação

Em deep learning e machine learning, o modelo discriminativo funciona como um classificador para distinguir entre um conjunto de níveis ou duas classes.

Por exemplo, diferenciar entre diferentes frutas ou animais.

Modelo Gerador

Nos modelos generativos, as amostras aleatórias são consideradas para criar novas imagens realistas. Ele aprende com imagens reais de alguns objetos ou seres vivos para gerar suas próprias ideias realistas, mas imitadas. Esses modelos são de dois tipos:

Autoencoders Variacionais: Eles utilizam codificadores e decodificadores que são redes neurais separadas. Isso funciona porque uma determinada imagem realista passa por um codificador para representar essas imagens como vetores em um espaço latente.

Em seguida, um decodificador é usado para levar essas interpretações para produzir algumas cópias realistas dessas imagens. No início, a qualidade da imagem pode ser baixa, mas melhorará depois que o decodificador se tornar totalmente funcional e você poderá desconsiderar o codificador.

Redes contraditórias generativas (GANs): Conforme discutido acima, uma GAN é uma rede neural profunda capaz de gerar dados novos e semelhantes a partir da entrada de dados fornecida. Ele está sob o aprendizado de máquina não supervisionado, que é um dos tipos de aprendizado de máquina discutidos abaixo.

Aprendizado supervisionado

No treinamento supervisionado, uma máquina é treinada usando dados bem rotulados. Isso significa que alguns dados já estarão marcados com a resposta certa. Aqui, a máquina recebe alguns dados ou exemplos para permitir que o algoritmo de aprendizado supervisionado analise os dados de treinamento e produza um resultado preciso a partir desses dados rotulados.

  Os 8 melhores temas de conchas de gnomos

Aprendizado não supervisionado

O aprendizado não supervisionado envolve o treinamento de uma máquina com a ajuda de dados que não são rotulados nem classificados. Ele permite que o algoritmo de aprendizado de máquina trabalhe nesses dados sem orientação. Nesse tipo de aprendizado, a tarefa da máquina é categorizar dados não classificados com base nos padrões, semelhanças e diferenças sem treinamento prévio de dados.

Portanto, as GANs estão associadas à realização de aprendizado não supervisionado em ML. Ele tem dois modelos que podem descobrir e aprender automaticamente os padrões dos dados de entrada. Esses dois modelos são gerador e discriminador.

Vamos entendê-los um pouco mais.

Partes de uma GAN

O termo “adversário” está incluído no GAN porque tem duas partes – gerador e denominador concorrentes. Isso é feito para capturar, examinar e replicar variações de dados em um conjunto de dados. Vamos entender melhor essas duas partes de uma GAN.

Gerador

Um gerador é uma rede neural capaz de aprender e gerar pontos de dados falsos, como imagens e áudio, que parecem realistas. É usado em treinamento e melhora com o aprendizado contínuo.

Os dados gerados pelo gerador são usados ​​como exemplo negativo para a outra parte – o denominador que veremos a seguir. O gerador recebe um vetor aleatório de comprimento fixo como entrada para produzir uma saída de amostra. Ele tem como objetivo apresentar a saída antes do discriminador para que ele possa classificar se é real ou falso.

O gerador é treinado com estes componentes:

  • Vetores de entrada ruidosos
  • Uma rede geradora para transformar uma entrada aleatória na instância de dados
  • Uma rede discriminadora para classificar os dados gerados
  • Uma perda de gerador para penalizar o gerador, pois não engana o discriminador

O gerador funciona como um ladrão para replicar e criar dados realistas para enganar o discriminador. Destina-se a contornar várias verificações realizadas. Embora possa falhar terrivelmente nos estágios iniciais, continua melhorando até gerar vários dados realistas e de alta qualidade e evitar os testes. Depois que essa habilidade for alcançada, você poderá utilizar apenas o gerador sem precisar de um discriminador separado.

Discriminador

Um discriminador também é uma rede neural que pode diferenciar entre uma imagem falsa e real ou outros tipos de dados. Como um gerador, desempenha um papel vital durante a fase de treinamento.

Ele age como a polícia para pegar o ladrão (dados falsos pelo gerador). Ele visa detectar imagens falsas e anormalidades em uma instância de dados.

Conforme discutido anteriormente, o gerador aprende e continua melhorando para chegar a um ponto em que se torna autossuficiente para produzir imagens de alta qualidade que não requerem um discriminador. Quando os dados de alta qualidade do gerador passam pelo discriminador, ele não consegue mais diferenciar entre uma imagem real e uma falsa. Então, você é bom para ir apenas com o gerador.

Como funciona o GAN?

Em uma rede adversarial generativa (GAN), três coisas envolvem:

  • Um modelo generativo para descrever a forma como os dados são gerados.
  • Um cenário adversário onde um modelo é treinado.
  • Redes neurais profundas como algoritmos de IA para treinamento.

As duas redes neurais do GAN – gerador e discriminador – são empregadas para jogar um jogo contraditório. O gerador usa os dados de entrada, como arquivos de áudio, imagens, etc., para gerar uma instância de dados semelhante, enquanto o discriminador valida a autenticidade dessa instância de dados. O último determinará se a instância de dados revisada é real ou não.

Por exemplo, você deseja verificar se uma determinada imagem é real ou falsa. Você pode usar entradas de dados geradas manualmente para alimentar o gerador. Ele criará novas imagens replicadas como saída.

Ao fazê-lo, o gerador visa que todas as imagens geradas sejam consideradas autênticas, apesar de falsas. Ele quer criar resultados aceitáveis ​​para mentir e evitar ser pego.

  Por que meu iPhone não está carregando?

Em seguida, essa saída irá para o discriminador junto com um conjunto de imagens de dados reais para detectar se essas imagens são autênticas ou não. Ele funciona negativamente no gerador, não importa o quanto ele tente imitar; o discriminador ajudará a distinguir dados factuais de falsos.

O discriminador levará dados falsos e reais para retornar uma probabilidade de 0 ou 1. Aqui, 1 representa autenticidade enquanto 0 representa falso.

Existem dois ciclos de feedback neste processo:

  • O gerador une um loop de feedback com um discriminador
  • O discriminador une outro loop de feedback com um conjunto de imagens reais

Um treinamento GAN funciona porque tanto o gerador quanto o discriminador estão em treinamento. O gerador aprende continuamente passando entradas falsas, enquanto o discriminador aprenderá a melhorar a detecção. Aqui, ambos são dinâmicos.

O discriminador é uma rede convolucional capaz de categorizar as imagens que lhe são fornecidas. Funciona como um classificador binomial para rotular imagens como falsas ou reais.

Por outro lado, o gerador é como uma rede convolucional inversa que coleta amostras de dados aleatórias para produzir imagens. Mas, o discriminador verifica os dados com a ajuda de técnicas de downsampling, como max-pooling.

Ambas as redes tentam otimizar uma perda ou função objetiva oposta e diferente em um jogo adversário. Suas perdas permitem que eles se esforcem ainda mais.

Tipos de GAN

As redes adversárias generativas são de diferentes tipos com base na implementação. Aqui estão os principais tipos de GAN usados ​​ativamente:

  • GAN Condicional (CGAN): É uma técnica de aprendizado profundo que envolve parâmetros condicionais específicos para ajudar a diferenciar entre dados reais e falsos. Também inclui um parâmetro adicional – “y” na fase do gerador para produzir os dados correspondentes. Além disso, os rótulos são adicionados a essa entrada e alimentados ao discriminador para permitir que ele verifique se os dados são autênticos ou falsos.
  • Vanilla GAN: É um tipo de GAN simples onde o discriminador e o gerador são perceptrons mais simples e multicamadas. Seus algoritmos são simples, otimizando a equação matemática com a ajuda da descida do gradiente estocástico.
  • Deep convolutional GAN ​​(DCGAN): É popular e considerado a implementação de GAN de maior sucesso. DCGAN é composto de ConvNets em vez de perceptrons multicamadas. Essas ConvNets são aplicadas sem usar técnicas como max-pooling ou conectar totalmente as camadas.
  • Super Resolution GAN (SRGAN): É uma implementação de GAN que usa uma rede neural profunda ao lado de uma rede adversária para ajudar a produzir imagens de alta qualidade. O SRGAN é especialmente útil no upscaling eficiente de imagens originais de baixa resolução para que seus detalhes sejam aprimorados e os erros sejam minimizados.
  • GAN da Pirâmide Laplaciana (LAPGAN): É uma representação invertível e linear que inclui várias imagens passa-banda que são colocadas a oito espaços de distância com resíduos de baixa frequência. O LAPGAN utiliza várias redes discriminadoras e geradoras e vários níveis da Pirâmide Laplaciana.

O LAPGAN é amplamente utilizado, pois produz uma qualidade de imagem de alto nível. Essas imagens são reduzidas primeiro em cada camada da pirâmide e depois aumentadas em cada camada, onde as ideias recebem algum ruído até ganharem o tamanho original.

Aplicações de GAN

As redes adversárias generativas são usadas em vários campos, como:

Ciência

As GANs podem fornecer uma maneira precisa e rápida de modelar a formação de jatos de alta energia e realizar experimentos físicos. Essas redes também podem ser treinadas para estimar gargalos na realização de simulações para física de partículas que consomem recursos pesados.

As GANs podem acelerar a simulação e melhorar a fidelidade da simulação. Além disso, os GANs podem ajudar a estudar a matéria escura simulando lentes gravitacionais e aprimorando imagens astronômicas.

Videogames

O mundo dos videogames também aproveitou as GANs para aumentar a escala de dados bidimensionais de baixa resolução usados ​​em videogames mais antigos. Ele o ajudará a recriar esses dados em resoluções de 4k ou até mais altas por meio de treinamento de imagem. Em seguida, você pode reduzir a resolução dos dados ou imagens para torná-los adequados para a resolução real do videogame.

  Como bloquear sites com senha

Forneça treinamento adequado para seus modelos GAN. Eles podem oferecer imagens 2D mais nítidas e claras de qualidade impressionante em comparação com os dados nativos, mantendo os detalhes da imagem real, como cores.

Os videogames que alavancaram GANs incluem Resident Evil Remake, Final Fantasy VIII e IX e muito mais.

Arte e moda

Você pode usar GANs para gerar arte, como criar imagens de indivíduos que nunca existiram, fotografias pintadas, produzir fotos de modelos de moda irreais e muito mais. Também é usado em desenhos gerando sombras e esboços virtuais.

Publicidade

Usar GANs para criar e produzir seus anúncios economizará tempo e recursos. Como visto acima, se você quiser vender suas joias, você pode criar um modelo imaginário parecido com um humano real com a ajuda do GAN.

Dessa forma, você pode fazer a modelo usar suas joias e mostrá-las aos seus clientes. Isso evitará que você contrate um modelo e pague por isso. Você pode até eliminar as despesas extras, como pagar o transporte, alugar um estúdio, arranjar fotógrafos, maquiadores, etc.

Isso ajudará significativamente se você for uma empresa em crescimento e não puder contratar um modelo ou abrigar uma infraestrutura para filmagens de anúncios.

Síntese de áudio

Você pode criar arquivos de áudio a partir de um conjunto de clipes de áudio com a ajuda de GANs. Isso também é conhecido como áudio generativo. Por favor, não confunda isso com Amazon Alexa, Apple Siri ou outras vozes de IA onde os fragmentos de voz são bem costurados e produzidos sob demanda.

Em vez disso, o áudio generativo usa redes neurais para estudar as propriedades estatísticas de uma fonte de áudio. Em seguida, ele reproduz diretamente essas propriedades em um determinado contexto. Aqui, a modelagem representa a maneira como a fala muda após cada milissegundo.

Transferência de Aprendizagem

Os estudos avançados de aprendizado por transferência utilizam GANs para alinhar os espaços de recursos mais recentes, como aprendizado por reforço profundo. Para isso, os embeddings da fonte e a tarefa pretendida são alimentados ao discriminador para determinar o contexto. Em seguida, o resultado é propagado de volta através do codificador. Dessa forma, o modelo continua aprendendo.

Outras aplicações de GANs incluem:

  • Diagnóstico de perda total ou parcial da visão através da detecção de imagens glaucomatosas
  • Visualize design industrial, design de interiores, itens de vestuário, sapatos, bolsas e muito mais
  • reconstruir características faciais forenses de uma pessoa doente
  • criar modelos 3D de um item a partir de uma imagem, produzir novos objetos como uma nuvem de pontos 3D, modelar padrões de movimento em um vídeo
  • Mostrar a aparência de uma pessoa com a mudança de idade
  • Aumento de dados, como aprimorar o classificador DNN
  • Pintar um recurso ausente em um mapa, melhorar as visualizações de ruas, transferir estilos de mapeamento e muito mais
  • Produza imagens, substitua um sistema de busca de imagens, etc.
  • Gere entradas de controle para um sistema dinâmico não linear usando uma variação GAN
  • Analisar os efeitos das mudanças climáticas em uma casa
  • Crie o rosto de uma pessoa usando sua voz como entrada
  • Criar novas moléculas para vários alvos proteicos em câncer, fibrose e inflamação
  • Animar gifs de uma imagem normal

Existem muitas outras aplicações de GANs em várias áreas, e seu uso está se expandindo. No entanto, existem vários casos de seu uso indevido também. Imagens humanas baseadas em GAN foram usadas para casos de uso sinistros, como produzir vídeos e fotos falsos.

As GANs também podem ser usadas para criar fotos e perfis realistas de pessoas nas mídias sociais que nunca existiram na Terra. Outros usos indevidos preocupantes de GNAs são a criação de pornografia falsa sem consentimento de indivíduos em destaque, distribuição de vídeos falsificados de candidatos políticos e assim por diante.

Embora os GNAs possam ser uma benção em muitos campos, seu uso indevido também pode ser desastroso. Portanto, diretrizes adequadas devem ser aplicadas para seu uso.

Conclusão

As GANs são um exemplo notável de tecnologia moderna. Ele fornece uma maneira única e melhor de gerar dados e auxiliar em funções como diagnóstico visual, síntese de imagens, pesquisa, aumento de dados, artes e ciências e muito mais.

Você também pode estar interessado em plataformas de aprendizado de máquina com código baixo e sem código para criar aplicativos inovadores.