O que é uma Rede Adversária Generativa? Um guia fácil

O que é uma Rede Adversária Generativa? Um guia fácil
A inteligência artificial (IA) está a passar por uma espécie de[ explosão cambriana] (https://www.pbs.org/wgbh/evolution/library/03/4/l_034_02.html). O que parecia ser ficção científica há pouco tempo atrás, tornou-se realidade nos últimos anos. E o interesse só está a aumentar graças ao lançamento de ferramentas como o ChatGPT. Mas, tal como a explosão cambriana, o que está a sair do salto evolutivo da IA não é apenas uma coisa. Na verdade, há muitas frentes em que estamos a fazer avançar o software de IA, tudo ao mesmo tempo.
Nesta publicação, vamos falar sobre um desses tipos de IA: as redes adversárias generativas, um modelo de IA eficaz utilizado para uma variedade de tipos de tarefas.
Discriminativa vs. Generativa
Tal como classificamos os fósseis de animais em domínios, reinos e filos, também classificamos as redes de IA. Ao mais alto nível, classificamos as redes de IA como "discriminativas" e "generativas". Uma rede neural generativa é uma IA que cria algo novo. Isto difere de uma rede discriminativa, que classifica algo que já existe em determinados grupos. Mais ou menos como estamos a fazer agora, ao classificar as redes adversárias generativas (GANs) em classificações apropriadas.
Assim, se estivéssemos numa situação em que quiséssemos usar etiquetas textuais para criar uma nova imagem visual, como em [ Midjourney] (https://www.midjourney.com/home/?callbackUrl=%2Fapp%2F), usaríamos uma rede generativa. No entanto, se tivesse uma pilha gigante de dados que precisasse de classificar e etiquetar, utilizaria um modelo discriminativo.
Onde a Rede Adversária Generativa se encaixa?
O nome implica que uma GAN é generativa. Mas a segunda palavra também é importante. Uma GAN é uma aplicação inteligente de modelos discriminativos e generativos. Um modelo GAN será treinado com um grupo inicial de dados de treinamento classificados. Em seguida, o modelo generativo tentará gerar novas instâncias que ele acha que se encaixam no modelo. Numa segunda ronda, o modelo discriminativo recebe tanto o conteúdo gerado como o conteúdo do conjunto de treino. Tentará classificar o conteúdo como gerado ou como parte do conjunto de treino.
Esta é a parte adversarial do acrónimo GAN. A parte generativa do modelo continua a tentar criar conteúdos cada vez melhores até conseguir "enganar" de forma fiável o modelo discriminativo. O objetivo fundamental de um GAN é treinar um modelo generativo que gere conteúdo de alta qualidade, mas utiliza modelos generativos e discriminativos para o conseguir.
Supervisionado vs. Não supervisionado
Após a nossa classificação de domínio de discriminativo versus generativo, a nossa próxima classificação é se um modelo é "supervisionado" ou "não supervisionado". Esta é uma classificação que pode ser um pouco mais nebulosa. Embora a classificação supervisionado/não supervisionado seja instrutiva, muitos tipos de modelos de IA utilizarão uma abordagem híbrida. Um modelo supervisionado, tal como o nome indica, envolve geralmente supervisão humana durante a fase de formação. A fase de formação de um modelo supervisionado envolve várias rondas de entradas iniciais e saídas desejadas.
Os modelos não supervisionados, como o nome indica, funcionam com menos ou nenhuma intervenção humana. O objetivo é que o modelo pegue num conjunto de formação original e passe por várias rondas de formação cada vez mais aperfeiçoada, de modo a gerar melhores conteúdos após cada ronda.
Que tipo é uma rede adversária generativa?
Uma GAN é um modelo de IA não supervisionado. O estilo de ida e volta dos ciclos de treinamento adversarial é projetado para melhorar continuamente o conteúdo gerado. Para um programador que trabalhe com uma GAN, terá de fornecer classificações de alta qualidade do seu conjunto inicial de dados de treino e fornecer o poder de computação para executar várias iterações. Mas, depois de fornecer os recursos necessários, pode executar o GAN com o mínimo de interação humana.
Rede adversária generativa vs. rede neural convolucional
Uma pergunta comum para novos desenvolvedores que trabalham com um GAN é como ele se relaciona com uma rede neural convolucional (CNN). Uma CNN é um tipo de modelo discriminativo que é usado para classificar dados com base em conteúdo rotulado existente. Muitos GANs utilizam uma CNN como modelo discriminativo que desafia o conteúdo gerado no primeiro início do ciclo de formação. As CNN são frequentemente utilizadas para classificar imagens para utilização em arquitecturas de reconhecimento de imagens por computador.
Por vezes, as CNN são também utilizadas como etapa geradora na arquitetura GAN. A utilização de uma CNN para gerar conteúdo como saída da etapa generativa requer normalmente a adição de lógica adicional, como um variational autoencoder, em vez de utilizar uma CNN tradicional. Quando se utiliza esta ferramenta em combinação com uma CNN tradicional, é possível utilizar uma CNN para as etapas geracional e contraditória do processo de formação de GAN.
Perguntas frequentes
Agora que temos uma boa ideia do que é um GAN e o que ele faz, vamos abordar algumas perguntas frequentes sobre GANs e por que você pode escolher um para o seu projeto.
Quais são alguns usos comuns dos GANs?
Um dos principais benefícios de um GAN é que ele pode gerar exemplos realistas de uma ampla variedade de conteúdo. Com o tipo certo de dados de treinamento, é possível usar prompts baseados em texto para gerar qualquer um dos seguintes tipos de conteúdo:
- Imagens
- Conteúdo de áudio (como música)
- Conversão de imagens a preto e branco para cor
- Conversão de esboços desenhados à mão em representações fotorrealistas
- Previsão de futuros fotogramas de vídeo com base em fotogramas anteriores
- Criar deepfakes
Por que você escolheria uma rede adversária generativa?
Falámos muito sobre como as GANs são classificadas, como funcionam e o que podem fazer. Mas não respondemos a uma pergunta simples: por que você escolheria usar um GAN? Uma razão para usar um GAN é quando se está a lidar com problemas em que não se tem um grande conjunto de dados para usar no treino. A natureza de um GAN é que se pode trabalhar com uma quantidade limitada de dados de treino e, em seguida, deixar o GAN gerar mais dados que são introduzidos na rotina de treino. Muitos sistemas de aprendizagem automática exigem que sejam treinados com uma quantidade considerável de dados pré-rotulados. Quando se utiliza um GAN, esse requisito não existe.
Os GANs também são particularmente fortes no trabalho e na geração de imagens. Quer se trate de criar novas imagens a partir de instruções de texto ou de atualizar uma imagem de entrada com conteúdo gerado, os GAN são interessantes porque fornecem resultados visualmente impressionantes.
Por que evitar o uso de uma rede adversária generativa?
Se está a pensar em adotar uma GAN, existem alguns inconvenientes que deve considerar. Para começar, as GANs não são uma boa opção se estiver a tentar treinar o seu modelo de forma barata. Os GANs são particularmente caros de treinar, devido ao ciclo de treinamento em várias etapas e à necessidade de passar por várias rodadas de treinamento. Assim, se estiver a tentar respeitar um orçamento rigoroso, adotar um GAN pode não ser uma boa escolha.
Além disso, os GANs passam por vezes pelo que é conhecido como mode collapse, em que o conteúdo do output é um subconjunto limitado dos dados de treino, e não a gama de variedade que se espera.
GANs fornecem grande utilidade quando se encaixam
Para voltar à nossa metáfora evolutiva, um GAN não é um caranguejo ou uma tartaruga. Não é um animal que ainda desempenhará o mesmo papel daqui a alguns anos. Em vez disso, os GANs estão a evoluir. Os investigadores ainda estão a descobrir o que os GANs podem fazer e qual a melhor forma de os conceber e treinar. Se está a pensar em adotar a aprendizagem automática para os seus fluxos de trabalho, pesquisar GANs faz muito sentido, mas podem não ser a ferramenta certa para o seu trabalho. Se não lhe parecerem adequadas, então deve evitar tentar colocá-las num trabalho em que não se enquadram. Mas se estiver a fazer um trabalho que se adeqúe a um GAN, especialmente a manipulação ou criação de imagens, então a adoção e formação de um GAN irá provavelmente proporcionar grandes benefícios aos seus fluxos de trabalho.
Veja Zilliz, um algoritmo de base de dados vetorial rentável.
- Discriminativa vs. Generativa
- Supervisionado vs. Não supervisionado
- Rede adversária generativa vs. rede neural convolucional
- Perguntas frequentes
- GANs fornecem grande utilidade quando se encaixam
Conteúdo
Comece grátis, escale facilmente
Experimente o banco de dados totalmente gerenciado, construído para seus aplicativos GenAI.
Experimente o Zilliz Cloud grátis