O esquema de falsificação, restauração e verificação de frutas em uma mercearia. Trecho do livro

imagem

Olá, habrozhiteli! Até agora, em tal situação fora da janela, decidimos compartilhar um trecho interessante do nosso livro Generative Deep Learning. O potencial criativo das redes neurais ”de David Foster.

Maçãs e laranjas


Granny Smith e Flórida são co-proprietários de uma quitanda. Para alcançar a máxima eficiência, cada um cuida de suas prateleiras na loja. Por exemplo, Granny Smith se orgulha de sua escolha de maçãs e a Flórida coloca laranjas por horas, alcançando a localização perfeita. Ambos estão tão confiantes em si mesmos que concordaram em um acordo: os lucros da venda de maçãs irão para Granny Smith, os lucros da venda de laranjas serão para a Flórida.

Infelizmente, nem Granny Smith nem a Flórida pretendem competir honestamente. Quando a Flórida não vê, Granny Smith vai até a janela com laranjas e começa a pintá-las de vermelho para que pareçam maçãs! A Flórida faz exatamente o mesmo: ela tenta fazer as maçãs de Granny Smith parecerem mais laranjas, usando um spray de cor adequada quando ela vira as costas. Por esse motivo, os clientes geralmente escolhem as frutas erradas que pretendem comprar. Aqueles que estavam prestes a comprar laranjas às vezes escolhem erroneamente maçãs coloridas da Flórida, e aqueles que queriam comprar maçãs erroneamente escolhem laranjas mascaradas por Granny Smith. No final, o lucro de cada fruta é somado e dividido de acordo com os acordos - Granny Smith perde dinheiro sempre que uma de suas maçãs é vendida como laranja,e Flórida, quando uma de suas laranjas é vendida como uma maçã.

Depois que a loja fecha, ambos começam a restaurar a ordem nas prateleiras de frutas. Mas, em vez de tentar lavar a tinta causada pelo rival, ambos simplesmente pintam as falsificações, tentando trazê-las de volta à sua forma original. É importante que eles façam esse trabalho corretamente: se os frutos não parecerem como deveriam, não poderão vendê-los no dia seguinte e novamente perderão lucros. Para garantir que suas ações sejam corretas, eles às vezes testam seus métodos com seus próprios frutos. A Flórida polvilha suas laranjas e verifica se elas parecem exatamente iguais às originais. Granny Smith testa suas “habilidades” em maçãs. Se eles encontrarem discrepâncias óbvias, terão que gastar lucro suado no estudo de métodos mais avançados (Fig. 5.2).

No início, os compradores costumam fazer a escolha errada. No entanto, com o tempo, eles adquirem experiência e aprendem a determinar quais frutas foram falsificadas. Isso força Granny Smith e a Flórida a aperfeiçoarem-se fingindo os frutos um do outro, além de restaurar as falsificações à aparência original. Além disso, eles precisam periodicamente garantir que os truques que usam não alterem a aparência de seus próprios frutos.

Depois de muitos dias e semanas desse jogo ridículo, eles perceberam que algo incrível havia acontecido. Os clientes não distinguem mais entre frutas reais e falsas. Na fig. 5.3 mostra como são os frutos após falsificação e restauração, bem como após o teste.

imagem

imagem

CycleGAN


A história anterior é uma alegoria que descreve o desenvolvimento de uma das áreas principais da modelagem generativa, conhecida como transferência de estilo: uma rede geradora-competitiva coordenada por ciclismo, ou CycleGAN. O artigo que descreve esta rede é um avanço significativo no campo da transferência de estilos e mostra como treinar um modelo que pode copiar um estilo de um conjunto de imagens de referência para outra imagem sem usar um conjunto de exemplos de pares.

Modelos de transferência de estilo preexistentes, como pix2pix, exigiam que cada imagem no conjunto de treinamento existisse na forma de origem e de destino. Para algumas tarefas de transferência de estilo (por exemplo, para converter fotografias em preto-e-branco em fotografias coloridas, mapas em imagens de satélite), você pode criar esse conjunto de dados, mas para outros simplesmente não é possível. Por exemplo, não temos fotografias originais da lagoa da qual Monet escreveu sua série “Nenúfares” e pinturas de Picasso com a imagem do Empire State Building. Por analogia, seriam necessários enormes esforços para obter fotografias de cavalos e zebras em poses idênticas. Um artigo que descreve o CycleGAN saiu alguns meses depois de um artigo que descreve o método pix2pix e mostra como treinar um modelo para resolver os mesmos problemas,mas na ausência de pares de imagens de origem e destino. Na fig. A Figura 5.4 mostra a diferença entre os conjuntos de dados pix2pix e CycleGAN emparelhados e não emparelhados, respectivamente. Se o método pix2pix permitir simular alterações em apenas uma direção (do estilo de origem ao destino), o CycleGAN treina o modelo nas duas direções ao mesmo tempo, para que o modelo aprenda a converter imagens de origem em destino e vice-versa. Essa propriedade é devida à arquitetura do modelo, para que você possa converter automaticamente na direção oposta.graças ao qual o modelo aprende a converter imagens de origem em destino e vice-versa. Essa propriedade é devida à arquitetura do modelo, para que você possa converter automaticamente na direção oposta.graças ao qual o modelo aprende a converter imagens de origem em destino e vice-versa. Essa propriedade é devida à arquitetura do modelo, para que você possa converter automaticamente na direção oposta.

imagem

Vamos ver como construir um modelo CycleGAN usando Keras. Para começar, vamos tomar o exemplo anterior com maçãs e laranjas como base, percorrer todas as partes do CycleGAN e experimentar sua arquitetura. Em seguida, aplicamos a mesma abordagem para criar um modelo que possa aplicar o estilo de um determinado artista à fotografia de sua escolha.

Sua primeira rede CycleGAN


A maior parte do código a seguir foi emprestada do repositório Keras-GAN (http://bit.ly/2Za68J2), mantido por Erik Linder-Norén. Este maravilhoso recurso contém muitos exemplos de redes competitivas entre gerações de vários livros implementados com Keras.

Primeiro, você precisa baixar os dados que serão usados ​​para o treinamento. Na pasta em que você clonou o repositório com exemplos para o livro, execute o comando:

bash ./scripts/download_cyclegan_data.sh apple2orange

No conjunto de imagens baixadas de maçãs e laranjas, que usaremos posteriormente, os dados são divididos em quatro pastas: trainA e testA contêm imagens de maçãs e trainB e testB contêm imagens de laranjas. Ou seja, A representa o espaço de imagens de maçãs e B representa o espaço de imagens de laranjas. Nosso objetivo é treinar o modelo nos conjuntos de dados nas pastas de trem para converter imagens do conjunto A no conjunto B e vice-versa. Imagens nas pastas de teste que usamos para testar a qualidade do modelo.

»Mais informações sobre o livro podem ser encontradas no site do editor
» Conteúdo
» Trecho

All Articles