O que são GANs? Como e por que você deve usá-los!



Este artigo cobre a explicação detalhada de 'O que são GANs' com limitações e desafios que abrangem o processo de treinamento e a Implementação de caso de uso.

Redes Adversariais Generativas ou GANs são uma abordagem de modelagem generativa usando Aprendizado Profundo para treinar o modelo de uma maneira inteligente para gerar dados usando a abordagem de submodelo. Neste artigo, tentaremos entender “O que são GANs” em detalhes. Os seguintes tópicos são abordados neste artigo:

O que são modelos gerativos?

Modelos gerativos nada mais são do que aqueles modelos que usam um abordagem. Em um modelo generativo, há amostras nos dados, ou seja, variáveis ​​de entrada X, mas falta a variável de saída Y. Usamos apenas as variáveis ​​de entrada para treinar o modelo generativo e ele reconhece padrões das variáveis ​​de entrada para gerar uma saída que é desconhecida e com base apenas nos dados de treinamento.





Dentro , estamos mais alinhados com a criação de modelos preditivos a partir das variáveis ​​de entrada, esse tipo de modelagem é conhecido como modelagem discriminativa. Em um problema de classificação, o modelo deve discriminar a qual classe o exemplo pertence. Por outro lado, modelos não supervisionados são usados ​​para criar ou gerar novos exemplos na distribuição de entrada.

definir caminho de classe para java

Para definir modelos generativos em termos leigos, podemos dizer que os modelos generativos são capazes de gerar novos exemplos da amostra que não são apenas semelhantes a outros exemplos, mas também são indistinguíveis.



O exemplo mais comum de um modelo gerador é um que é mais frequentemente usado como um modelo discriminativo. Outros exemplos de modelos generativos incluem o Modelo de Mistura Gaussiana e um exemplo bastante moderno que é o General Adversarial Networks. Vamos tentar entender o que são GANs?

O que são Rede Adversarial Generativa?

Generative Adversarial Networks ou GANs são um modelo generativo baseado em aprendizado profundo que é usado para Unsupervised Learning. É basicamente um sistema onde dois competidores Redes neurais competir entre si para criar ou gerar variações nos dados.

Foi descrito pela primeira vez em um artigo em 2014 por Ian Goodfellow e uma teoria do modelo padronizado e muito estável foi proposta por Alec Radford em 2016, que é conhecido como DCGAN (Deep Convolutional General Adversarial Networks). A maioria dos GANs existentes hoje usa arquitetura DCGAN.



A arquitetura GANs consiste em dois submodelos conhecidos como Modelo gerador e a Modelo Discriminador. Vamos tentar entender como os GANs realmente funcionam.

Como funciona?

Para entender como funcionam os GANs, vamos decompô-lo.

  • Gerativo - Isso significa que o modelo segue o abordagem e é um modelo gerador.
  • Contraditório - O modelo é treinado em um ambiente adversário
  • Rede - Para o treinamento do modelo, utiliza as redes neurais como algoritmos de inteligência artificial.

Nos GANs, existe uma rede Geradora que pega uma amostra e gera uma amostra de dados, e após isso, a rede Discriminadora decide se os dados são gerados ou retirados da amostra real usando um binário problema com a ajuda de uma função sigmóide que fornece a saída na faixa de 0 a 1.

fluxograma - o que são gnas - edureka

O modelo generativo analisa a distribuição dos dados de forma que, após a fase de treinamento, a probabilidade do discriminador cometer um erro seja maximizada. E o Discriminador, por outro lado, é baseado em um modelo que vai estimar a probabilidade de que a amostra seja proveniente dos dados reais e não do gerador.

Todo o processo pode ser formalizado em uma fórmula matemática fornecida a seguir.

Na fórmula acima:

G = Gerador

D = Discriminador

Pdata (x) = Distribuição de dados reais

Pdata (z) = Distribuidor do gerador

x = amostra de dados reais

z = amostra do gerador

D (x) = Rede Discriminadora

G (z) = Rede Geradora

Agora vem a parte de treinamento para um GAN, que pode ser dividida em 2 partes que são feitas sequencialmente.

Como treinar um GAN?

Parte 1:

Treine o discriminador e congele o gerador, o que significa que o conjunto de treinamento para o gerador é definido como False e a rede só fará o passe para frente e nenhuma propagação para trás será aplicada.

Basicamente, o discriminador é treinado com os dados reais e verifica se pode predizê-los corretamente, e o mesmo com os dados falsos para identificá-los como falsos.

Parte 2:

Treine o gerador e congele o discriminador. Nesta fase, obtemos os resultados da primeira fase e podemos usá-los para melhorar do estado anterior para tentar enganar melhor o discriminador.

Passos para o treinamento

  1. Defina o problema - definir o problema e coletar dados.
  2. Escolha a arquitetura de GAN - Dependendo do seu problema, escolha a aparência do seu GAN.
  3. Discriminador de trem em dados reais - Treine o discriminador com dados reais para prevê-los como reais por n número de vezes.
  4. Gerar entradas falsas para o gerador - Gerar amostras falsas do gerador
  5. Discriminador de trem em dados falsos - Treine o discriminador para prever os dados gerados como falsos.
  6. Gerador de trem com saída de discriminador - Depois de obter as previsões do discriminador, treine o gerador para enganar o discriminador

Desafios da Rede Adversarial Generativa

O conceito de GANs é bastante fascinante, mas há muitos contratempos que podem causar muitos obstáculos em seu caminho. Alguns dos principais desafios enfrentados pelos GANs são:

transformação conectada e desconectada na informática
  1. Estabilidade é necessário entre o discriminador e o gerador, caso contrário, toda a rede cairia. No caso, se o Discriminador for muito poderoso, o gerador deixará de treinar completamente. E se a rede for muito tolerante, qualquer imagem seria gerada tornando a rede inútil.
  2. Os GANs falham miseravelmente na determinação do posicionamento dos objetos em termos de quantas vezes o objeto deve ocorrer naquele local.
  3. A perspectiva 3-D perturba os GANs, pois não é capaz de entender perspectiva , muitas vezes fornecerá uma imagem plana para um objeto 3D.
  4. GANs têm problemas para entender o objetos globais . Ele não pode diferenciar ou entender uma estrutura holística.
  5. Os novos tipos de GANs são mais avançados e espera-se que superem essas deficiências por completo.

Aplicações Generativas de Rede Adversarial

A seguir estão algumas aplicações de GANs.

Previsão do próximo quadro em um vídeo

A previsão de eventos futuros em um quadro de vídeo é possível com a ajuda de GANs. DVD-GAN ou Dual Video Discriminator GAN pode gerar vídeos de 256 × 256 de notável fidelidade de até 48 quadros de comprimento. Isso pode ser usado para vários fins, incluindo vigilância em que podemos determinar as atividades em um quadro que fica distorcido devido a outros fatores como chuva, poeira, fumaça, etc.

Texto para geração de imagem

como usar pacotes em java

O GAN atento orientado a objetos (obj-GAN) realiza a síntese texto-imagem em duas etapas. Gerar o layout semântico é a etapa inicial e, em seguida, gerar a imagem sintetizando a imagem usando um gerador de imagem deconvolucional é a etapa final.

Isso pode ser usado intensamente para gerar imagens, entendendo as legendas, layouts e refinar os detalhes sintetizando as palavras. Há outro estudo sobre storyGANs que pode sintetizar todo o storyboard a partir de meros parágrafos.

Melhorar a resolução de uma imagem

Rede adversária geradora de super resolução ou SRGAN é um GAN que pode gerar imagens de super resolução a partir de imagens de baixa resolução com detalhes mais precisos e melhor qualidade.

As aplicações podem ser imensas, imagine uma imagem de qualidade superior com detalhes mais finos gerados a partir de uma imagem de baixa resolução. A quantidade de ajuda que produziria para identificar detalhes em imagens de baixa resolução pode ser usada para propósitos mais amplos, incluindo vigilância, documentação, segurança, detecção de padrões, etc.

Tradução de imagem para imagem

Pix2Pix GAN é um modelo projetado para tradução de imagem-imagem de propósito geral.

Geração de Imagem Interativa

Os GANs também podem ser usados ​​para gerar imagens interativas. O laboratório de Ciência da Computação e inteligência artificial (CSAIL) desenvolveu um GAN que pode gerar modelos 3-D com iluminação e reflexos realistas habilitados pela edição de forma e textura.

Mais recentemente, pesquisadores criaram um modelo que pode sintetizar um rosto reconstituído animado pelo movimento de uma pessoa, preservando a aparência do rosto ao mesmo tempo.

Isso nos leva ao final deste artigo, onde aprendemos ‘O que são GANs”. Espero que você tenha esclarecido tudo o que foi compartilhado com você neste tutorial.

Se você achou este artigo sobre 'O que são GANs' relevante, verifique o uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo.

Estamos aqui para ajudá-lo em cada etapa de sua jornada e criar um currículo projetado para estudantes e profissionais que desejam ser um . O curso foi desenvolvido para dar a você uma vantagem inicial na programação Python e treiná-lo para os conceitos básicos e avançados do Python, juntamente com vários gostar

Se você encontrar alguma dúvida, fique à vontade para fazer todas as suas perguntas na seção de comentários de “O que são GANs” e nossa equipe terá prazer em responder.