Geração de legenda com os modelos Injetar e Mesclar Codificador-Decodificador

Geração de legenda com os modelos Injetar e Mesclar Codificador-Decodificador

A geração de legendas é um problema desafiador de inteligência artificial que se baseia na visão computacional e no processamento de linguagem natural.

A arquitetura de rede neural recorrente codificador-decodificador tem se mostrado eficaz neste problema. A implementação dessa arquitetura pode ser destilada em modelos baseados em injeção e fusão, e ambos fazem suposições diferentes sobre o papel da rede neural recorrente no tratamento do problema.

Nesta postagem, você descobrirá as arquiteturas de injeção e fusão para os modelos de rede neural recorrente codificador-decodificador na geração de legenda.

Depois de ler esta postagem, você saberá:

  • O desafio da geração de legendas e o uso da arquitetura codificador-decodificador.
  • O modelo de injeção que combina a imagem codificada com cada palavra para gerar a próxima palavra na legenda.
  • O modelo de mesclagem que codifica separadamente a imagem e a descrição que são decodificadas para gerar a próxima palavra na legenda.

Comece seu projeto com meu novo livro Deep Learning for Natural Language Processing, incluindo tutoriais passo a passo e a Código-fonte Python arquivos para todos os exemplos.

Vamos começar.

Geração de legenda com as arquiteturas de injeção e mesclagem para o modelo codificador-decodificador

Geração de legenda com as arquiteturas de injeção e mesclagem para o modelo codificador-decodificador
Foto de Bernard Spragg. NZ, alguns direitos reservados.

Geração de legenda de imagem

O problema de geração de legenda de imagem envolve a saída de uma descrição legível e concisa do conteúdo de uma fotografia.

É um problema desafiador de inteligência artificial, pois requer técnicas de visão computacional para interpretar o conteúdo da fotografia e técnicas de processamento de linguagem natural para gerar a descrição textual.

Recentemente, os métodos de aprendizagem profunda alcançaram resultados de última geração neste problema desafiador. Os resultados são tão impressionantes que esse problema se tornou um problema de demonstração padrão para as capacidades de aprendizado profundo.

Precisa de ajuda com Deep Learning for Text Data?

Faça meu curso intensivo de e-mail gratuito de 7 dias agora (com código).

Clique para se inscrever e também obter uma versão gratuita do Ebook em PDF do curso.

Comece Seu Crash-Course GRÁTIS Agora

Arquitetura codificador-decodificador

Uma arquitetura de rede neural recorrente de codificador-decodificador padrão é usada para resolver o problema de geração de legenda de imagem.

Isso envolve dois elementos:

  1. Codificador: Um modelo de rede que lê a entrada da fotografia e codifica o conteúdo em um vetor de comprimento fixo usando uma representação interna.
  2. Decodificador: Um modelo de rede que lê a fotografia codificada e gera a saída da descrição textual.

Para mais informações sobre a arquitetura de rede neural recorrente codificador-decodificador, consulte a postagem:

Geralmente, uma rede neural convolucional é usada para codificar as imagens e uma rede neural recorrente, como uma rede Long Short-Term Memory, é usada para codificar a sequência de texto gerada até agora e / ou gerar a próxima palavra na sequência .

Existem muitas maneiras de realizar essa arquitetura para o problema de geração de legenda.

É comum usar um modelo de rede neural convolucional pré-treinado treinado em um problema desafiador de classificação de fotografia para codificar a fotografia. O modelo pré-treinado pode ser carregado, a saída do modelo removida e a representação interna da fotografia usada como codificação ou representação interna da imagem de entrada.

Também é comum enquadrar o problema de forma que o modelo gere uma palavra da descrição textual de saída, dada a fotografia e a descrição gerada até o momento como entrada. Nesse enquadramento, o modelo é chamado recursivamente até que toda a sequência de saída seja gerada.

Enquadramento recursivo do modelo de geração de legenda

Enquadramento recursivo do modelo de geração de legenda
Retirado de “Onde colocar a imagem em um gerador de legenda de imagem.”

Este enquadramento pode ser implementado usando uma das duas arquiteturas, chamadas por Marc Tanti, et al. como os modelos de injeção e fusão.

Modelo de injeção

O modelo de injeção combina a forma codificada da imagem com cada palavra da descrição de texto gerada até agora.

A abordagem usa a rede neural recorrente como um modelo de geração de texto que usa uma sequência de informações de imagem e palavra como entrada para gerar a próxima palavra na sequência.

Nessas arquiteturas de 'injeção', o vetor de imagem (geralmente derivado dos valores de ativação de uma camada oculta em uma rede neural convolucional) é injetado no RNN, por exemplo, tratando o vetor de imagem no mesmo nível de uma 'palavra' e incluindo como parte do prefixo da legenda.

- Onde colocar a imagem em um gerador de legenda de imagem, 2017.

Arquitetura de injeção para modelo codificador-decodificador

Arquitetura de injeção para modelo codificador-decodificador
Retirado de “Qual é o papel das redes neurais recorrentes (RNNs) em um gerador de legenda de imagem?”.

Este modelo combina as preocupações da imagem com cada palavra de entrada, exigindo que o codificador desenvolva uma codificação que incorpore informações visuais e linguísticas juntas.

Em um modelo de injeção, o RNN é treinado para prever sequências com base em histórias que consistem em características linguísticas e perceptivas. Portanto, neste modelo, o RNN é o principal responsável pela geração de linguagem condicionada por imagem.

- Qual é o papel das redes neurais recorrentes (RNNs) em um gerador de legenda de imagem ?, 2017.

Modelo de mesclagem

O modelo de mesclagem combina a forma codificada da entrada da imagem com a forma codificada da descrição de texto gerada até agora.

A combinação dessas duas entradas codificadas é então usada por um modelo de decodificador muito simples para gerar a próxima palavra na sequência.

A abordagem usa a rede neural recorrente apenas para codificar o texto gerado até agora.

No caso de arquiteturas 'mescladas', a imagem é deixada de fora da sub-rede RNN, de forma que o RNN trata apenas o prefixo da legenda, ou seja, trata apenas de informações puramente linguísticas. Depois que o prefixo foi vetorizado, o vetor de imagem é então mesclado com o vetor de prefixo em uma 'camada multimodal' separada que vem após a sub-rede RNN

- Onde colocar a imagem em um gerador de legenda de imagem, 2017.

Arquitetura de fusão para o modelo codificador-decodificador

Arquitetura de fusão para modelo codificador-decodificador
Retirado de “Qual é o papel das redes neurais recorrentes (RNNs) em um gerador de legenda de imagem?”.

Isso separa a preocupação de modelar a entrada de imagem, a entrada de texto e a combinação e interpretação das entradas codificadas.

Conforme mencionado, é comum usar um modelo pré-treinado para codificar a imagem, mas da mesma forma, essa arquitetura também permite que um modelo de linguagem pré-treinado seja usado para codificar a entrada do texto da legenda.

… Na arquitetura de mesclagem, os RNNs codificam representações linguísticas, que constituem a entrada para um estágio de predição posterior que vem após uma camada multimodal. É apenas neste estágio final que os recursos de imagem são usados ​​para condicionar as previsões

- Qual é o papel das redes neurais recorrentes (RNNs) em um gerador de legenda de imagem ?, 2017.

Existem várias maneiras de combinar as duas entradas codificadas, como concatenação, multiplicação e adição, embora os experimentos de Marc Tanti, et al. mostraram adição para funcionar melhor.

Geralmente, Marc Tanti, et al. descobriram que a arquitetura de mesclagem é mais eficaz em comparação com a abordagem de injeção.

No geral, a evidência sugere que atrasar a fusão de recursos de imagem com codificações linguísticas para um estágio posterior na arquitetura pode ser vantajoso […] os resultados sugerem que uma arquitetura de mesclagem tem uma capacidade maior do que uma arquitetura de injeção e pode gerar legendas de melhor qualidade com camadas menores.

- Qual é o papel das redes neurais recorrentes (RNNs) em um gerador de legenda de imagem ?, 2017.

Mais sobre o modelo de mesclagem

O sucesso do modelo de mesclagem para a arquitetura codificador-decodificador sugere que o papel da rede neural recorrente é codificar a entrada em vez de gerar a saída.

Este é um afastamento do entendimento comum onde se acredita que a contribuição da rede neural recorrente é a de um modelo generativo.

Se o RNN tivesse a função primária de gerar legendas, ele precisaria ter acesso à imagem para saber o que gerar. Este não parece ser o caso, pois incluir a imagem no RNN geralmente não é benéfico para seu desempenho como gerador de legendas.

- Qual é o papel das redes neurais recorrentes (RNNs) em um gerador de legenda de imagem ?, 2017.

A comparação explícita dos modelos injetar e mesclar, e o sucesso de mesclar sobre injetar para geração de legenda, levanta a questão de se essa abordagem se traduz em problemas de geração de sequência a sequência relacionados.

Em vez de modelos pré-treinados usados ​​para codificar imagens, os modelos de linguagem pré-treinados podem ser usados ​​para codificar o texto de origem em problemas como resumo de texto, resposta a perguntas e tradução automática.

Gostaríamos de investigar se mudanças semelhantes na arquitetura funcionariam em tarefas sequência-a-sequência, como tradução automática, em que, em vez de condicionar um modelo de linguagem a uma imagem, estamos condicionando um modelo de linguagem alvo a frases em um idioma de origem.

- Qual é o papel das redes neurais recorrentes (RNNs) em um gerador de legenda de imagem ?, 2017.

Leitura Adicional

Esta seção fornece mais recursos sobre o tópico se você deseja se aprofundar.

Resumo

Nesta postagem, você descobriu as arquiteturas de injeção e fusão para o modelo de rede neural recorrente codificador-decodificador na geração de legenda.

Especificamente, você aprendeu:

  • O desafio da geração de legendas e do uso da arquitetura codificador-decodificador.
  • O modelo de injeção que combina a imagem codificada com cada palavra para gerar a próxima palavra na legenda.
  • O modelo de mesclagem que codifica separadamente a imagem e a descrição que são decodificadas para gerar a próxima palavra na legenda.

Você tem alguma pergunta?
Tire suas dúvidas nos comentários abaixo e farei o possível para responder.

Desenvolva modelos de aprendizado profundo para dados de texto hoje!

Aprendizado profundo para processamento de linguagem natural

Desenvolva seus próprios modelos de texto em minutos

... com apenas algumas linhas de código python

Descubra como em meu novo Ebook:
Aprendizado profundo para processamento de linguagem natural

Ele fornece tutoriais de auto-estudo em tópicos como:
Saco de palavras, incorporação de palavras, modelos de linguagem, geração de legendas, tradução de texto e muito mais...

Finalmente, leve o aprendizado profundo para seus projetos de processamento de linguagem natural

Ignore os acadêmicos. Apenas resultados.

Veja o que há dentro

Você também pode estar interessado em