A geração de legendas é o desafio do problema da inteligência artificial de gerar uma descrição textual legível por humanos, dada uma fotografia.
Requer tanto a compreensão da imagem do domínio da visão por computador como um modelo de linguagem do campo do processamento de linguagem natural.
É importante considerar e testar várias formas de enquadrar um determinado problema de modelagem preditiva e, de fato, existem muitas formas de enquadrar o problema de geração de legendas para fotografias.
Neste tutorial, você descobrirá 3 maneiras de enquadrar a criação de legenda e como desenvolver um modelo para cada um.
Os modelos de geração de três legenda que vamos analisar são:
- Modelo 1: Gerar a Seqüência Inteira
- Modelo 2: Gerar Palavra do Word
- Modelo 3: Gerar Palavra da Sequência
Também analisaremos algumas práticas recomendadas a serem consideradas ao preparar dados e desenvolver modelos de geração de legendas em geral.
Vamos começar.
Precisa de ajuda com Deep Learning for Text Data?
Pegue meu curso gratuito de e-mail de 7 dias agora (com código de exemplo).
Clique para se inscrever e também obter uma versão gratuita do PDF Ebook do curso.
Comece seu Curso de Crash GRATUITO agora
Modelo 1: Gerar a Seqüência Inteira
A primeira abordagem envolve a geração de toda a descrição textual para a foto dada uma fotografia.
- Entrada : Fotografia
- Saída : Complete a descrição textual.
Este é um modelo de previsão de seqüência de um a muitos que gera a produção inteira de uma maneira única.
Este modelo coloca um pesado fardo no modelo de linguagem para gerar as palavras certas na ordem correta.
A fotografia passa por um modelo de extração de recursos, como um modelo pré-treinado no conjunto de dados ImageNet.
Uma codificação quente é usada para a seqüência de saída, permitindo que o modelo preveja a distribuição de probabilidade de cada palavra na seqüência em todo o vocabulário.
Todas as seqüências são preenchidas no mesmo comprimento. Isso significa que o modelo é forçado a gerar várias etapas de tempo ” sem palavra ” na seqüência de saída.
Ao testar esse método, descobri que é necessário um modelo de linguagem muito grande e, mesmo assim, é difícil superar o modelo que gera o equivalente em PNL de persistência, por exemplo, gerando a mesma palavra repetida para todo o comprimento da seqüência como a saída.
Modelo 2: Gerar Palavra do Word
Esta é uma abordagem diferente em que o LSTM gera uma previsão de uma palavra dada uma fotografia e uma palavra como entrada.
- Entrada 1 : Fotografia.
- Entrada 2 : palavra gerada anteriormente, ou início do token de sequência.
- Saída : próxima palavra em sequência.
Este é um modelo de previsão de sequência um-para-um que gera a descrição textual através de chamadas recursivas para o modelo.
A entrada de uma palavra é um token para indicar o início da seqüência no caso da primeira vez que o modelo é chamado ou é a palavra gerada a partir do tempo anterior ao qual o modelo foi chamado.
A fotografia passa por uma característica extraccomo um modelo pré-treinado no conjunto de dados ImageNet. A palavra de entrada é codificada inteiro e passa através de uma incorporação de palavras.
A palavra de saída é uma codificação quente para permitir que o modelo preveja as probabilidades de palavras em todo o vocabulário.
O processo recursivo de geração de palavras é repetido até que um token de fim de sequência seja gerado.
Ao testar este método, descobri que o modelo gera algumas boas sequências de n-gramas, mas é pego em um loop, repetindo as mesmas seqüências de palavras para descrições longas. Não há memória suficiente no modelo para lembrar o que foi gerado anteriormente.
Modelo 3: Gerar Palavra da Sequência
Dada uma fotografia e uma seqüência de palavras já geradas para a fotografia como entrada, preveja a próxima palavra na descrição.
- Entrada 1 : Fotografia.
- Entrada 2 : seqüências de palavras geradas anteriormente, ou início do token de seqüência.
- Saída : próxima palavra em sequência.
Este é um modelo de previsão de seqüência de várias-para-um que gera uma descrição textual através de chamadas recursivas para o modelo.
É uma generalização do Modelo 2 acima, onde a seqüência de entrada de palavras dá ao modelo um contexto para gerar a próxima palavra na seqüência.
A fotografia passa por um modelo de extração de recursos, como um modelo pré-treinado no conjunto de dados ImageNet. A fotografia pode ser fornecida a cada passo do tempo com a seqüência, ou uma vez no início, que pode ser a abordagem preferida.
A sequência de entrada é preenchida em um comprimento fixo e inteiro codificado para passar por uma incorporação de palavras.
A palavra de saída é uma codificação quente para permitir que o modelo preveja as probabilidades de palavras em todo o vocabulário.
O processo recursivo de geração de palavras é repetido até que um token de fim de sequência seja gerado.
Este parece ser o modelo preferido descrito em artigos sobre o assunto e pode ser a melhor estrutura que temos para esse tipo de problema por enquanto.
Ao testar este método, descobri que o modelo facilita a criação de descrições legíveis, cuja qualidade é muitas vezes refinada por modelos maiores treinados por mais tempo. A chave para a habilidade deste modelo é o mascaramento de seqüências de entrada acolchoadas. Sem mascarar, as sequências de palavras geradas resultantes são terríveis, por exemplo, o token de fim de sequência é repetido repetidamente.
Modelando Melhores Práticas
Esta seção lista algumas dicas gerais ao desenvolver modelos de geração de legendas.
- Modelo pré-treinado de extração de características fotográficas . Use um modelo de extração de recursos de fotos pré-treinado em um grande conjunto de dados como o ImageNet. Isso é chamado de transferência de aprendizagem. Os modelos Oxford Vision Geometry Group (VGG) que ganharam o concurso ImageNet em 2014 são um bom começo.
- Modelo pré-treinado de incorporação de palavras . Use um modelo de incorporação de palavras pré-treinadas com vetores treinados em grande corpus médio ou treinados em seus dados de texto específicos.
- Modelos pré-treinados finos . Explore fazer com que os modelos pré-treinados se formem em seu modelo para ver se eles podem ser discados para o seu problema específico e resultar em uma leve habilidade.
- Texto pré-processamento . Pre-processar descrições textuais para reduzir o vocabulário de palavras para gerar, e, por sua vez, o tamanho do modelo.
- Fotos de pré-processamento . Preprocesse fotos para o modelo de extração de recursos fotográficos e até recursos de pré-extração para que o modelo completo de extração de recursos não seja necessário ao treinar seu modelo.
- Texto de preenchimento . Seqüências de entrada de almofada para um comprimento fixo; Este é de fato uma exigência de vetorizar sua contribuição para bibliotecas de aprendizado profundo.
- Masking Padding . Use o mascaramento na camada de incorporação para ignorar os passos de tempo ” sem palavra “, muitas vezes um valor zero quando as palavras são codificadas inteiras.
- Atenção . Use a atenção na seqüência de entrada ao gerar a palavra de saída para alcançar um melhor desempenho e entender onde o modelo está ” olhando ” quando cada palavra está sendo gerada.
- Avaliação . Avalie o modelo usando a tradução de texto padrão eucomo BLEU e compare as descrições geradas contra legendas de imagens de referências múltiplas.
Você tem suas próprias práticas recomendadas para o desenvolvimento de modelos de legenda robustos?
Deixe-me saber nos comentários abaixo.
Leitura adicional
Esta seção fornece mais recursos sobre o assunto se você estiver olhando, vá mais fundo.
- Mostrar e dizer: um gerador de legenda de imagem neural , 2015.
- Mostrar, Participar e dizer: geração de legenda da imagem neural com atenção visual , 2015.
- Onde colocar a imagem em um gerador de legendas de imagem , 2017.
- Geração de Descrição Automática a partir de Imagens: Uma Pesquisa de Modelos, Conjuntos de Dados e Medidas de Avaliação , 2016.
Resumo
Neste tutorial, você descobriu 3 modelos de previsão de seqüência que podem ser usados para abordar o problema de geração de descrições textuais legíveis para fotografias.
Você experimentou algum desses modelos?
Compartilhe suas experiências nos comentários abaixo.
Você tem alguma pergunta?
Faça suas perguntas nos comentários abaixo e farei o meu melhor para responder.
A publicação Uma introdução suave aos modelos de geração de legenda de profundidade apareceu primeiro no domínio da aprendizagem de máquinas .