Clicky

Introdução a GAN’s – Redes Adversárias Generativas

Nos últimos anos, as GAN’s (Generative Adversarial Networks) receberam um destaque bastante forte. Existem muitas notícias relacionadas ao resultado do que elas estão produzindo, bem como palestras e documentários; isto porque as GAN’s estão trabalhando numa área muito interessante que é a geração de conteúdo falso, ou conteúdo fake.

Teclado com a palavra "fake"

Aprender x Criar

Vamos tomar como exemplo um dataset de dígitos escritos à mão. O que podemos ver é que uma rede neural consegue aprender a relação que os dados possuem e, com isso, consegue entender o que parece com um dígito 0 e o que parece um dígito 1.

A pergunta que podemos fazer agora, para darmos um passo além, é a seguinte: Se a rede neural consegue aprender o que caracteriza cada um dos dígitos, será que ela não conseguiria criar um dígito em vez de simplesmente dizer que se trata de um dígito 0 ou 1? Será que ela conseguiria criar um dígito 1 ou um dígito 0, que se assemelha muito a um dígito escrito à mão?

É exatamente isso que as GAN’s conseguem fazer. Em vez de simplesmente classificar, as GAN’s criam imagens.

Uma das dúvidas que surgem neste momento é se isso não é ruim para humanidade: redes neurais criando conteúdo falso. Hoje já existe toda uma polêmica e discussão a respeito das notícias fake que são compartilhadas pelas massas. O que acontecerá quando tivermos conteúdo fake criado? Isso pode trazer prejuízos? Com certeza, isso pode ser um problema!

Criar x Reconstruir

Para tanto, ao mesmo tempo que temos uma máquina geradora de conteúdo fake, temos que aprimorar as máquinas verificadoras que conseguem identificar o que é conteúdo fake e o que não é.

As redes neurais adversariais – as GAN’s – não servem apenas para criar um conteúdo fake. GANs podem servir para reconstruir o que foi perdido, e isso é muito útil para a humanidade.

Por exemplo, se a imagem de um elefante ficou cortada e temos uma rede neural que sabe desenhar elefantes, podemos usar essa GAN para reconstruir aquela parte que ficou cortada. Isto é muito útil para não perder toda a imagem por causa daquele prejuízo que se teve com o corte da imagem! Imagine agora imagens antigas, históricas, que possuem alguns ruídos ou borrões, podem ser reconstruídas totalmente com o auxílio das GAN’s. Isso já está sendo feito atualmente.

Pixar

A Pixar, que trabalha com desenhos de animação, já tem utilizado a técnica de GAN nos seus últimos filmes, na área de aumento de resolução. É mais barato computacionalmente renderizar os filmes em baixa resolução e depois converter para alta resolução utilizando GANs do que fazer a renderização diretamente em alta resolução. Por isso, as GANs têm ganhado um novo mercado.

Qualidade de imagens

Isto é uma novidade porque, nas técnicas de visão computacional (utilizando redes neurais densas ou convolucionais), quando queremos aumentar a dimensão de uma imagem, fazemos isso via interpolação ou, ainda, repetição dos pixels; mas isso não aumenta a qualidade da imagem. A qualidade depende de quantos pixels foram coletados no momento que aquela imagem foi tirada! E a partir daquilo, não conseguimos mais manipular para recriar uma imagem com mais qualidade. Isso antes das GANs.

O que as GAN’s estão fazendo é justamente aumentar de verdade a qualidade da imagem, criando pixels que não existiam. Pixels que estão sendo criados não com base numa média dos pixels que estão ao redor, nem usando alguma técnica baseada na imagem que já está ali; as redes neurais adversariais estão criando esses pixels novos com base em um conhecimento que essas redes possuem de outras imagens que elas viram.

Essas redes entenderam que, se tiramos uma foto de um rosto com uma resolução ruim, é possível que aquela resolução ruim daquele pigmento específico possa ser aprimorada, afinal ela conhece bem um rosto em alta resolução.

Qualidade de vídeos

Da mesma forma, isso ser estendido para vídeos e outros tipos de conteúdo. É impressionante pensar que, nos próximos anos, provavelmente seja possível pegar qualquer vídeo em baixa resolução e convertê-lo automaticamente para alta resolução, com baixo custo, graças ao auxílio das GAN’s. Isso é o que a Pixar já está fazendo!

Vídeo em edição

Técnicas utilizadas

Agora que já fizemos essa introdução, é possível entrar na arquitetura das redes neurais adversariais. Em nosso módulo 4 de Machine Learning com Python, explicamos com detalhes as técnicas e arquiteturas das GANs, bem como construímos algoritmos para geração de conteúdo a partir de GANs.

Abordamos tanto a teoria quanto a prática necessária para sua construção, sempre focando na didática. Conheça nossos cursos!

cursos