Um modelo para aprender todos eles

Uma arquitetura de modelo que pode ser treinada em diferentes formatos de dados (imagens, texto, fala) e alcança bons resultados em todos eles.

Sharif Elfouly em Em direção a Data Science Follow Jul 13 · 4 min ler O MultiModel, fonte: ( https://arxiv.org/abs/1706.05137 )

Eu recentemente deparei com este artigo pela equipe do Google Brain chamada “Um modelo para aprender todos eles”. Eu só tive que abri-lo e dar uma olhada no papel por causa de seu ótimo título (melhor título de papel ML de todos os tempos?). Rapidamente descobri que se trata de uma ideia muito fascinante e interessante.

Neste artigo, quero resumir rapidamente o que eu pessoalmente achei mais interessante. Essa ideia que os autores tentaram resolver, poderia ser resumida pela seguinte pergunta:

Podemos criar um modelo unificado de aprendizagem profunda para resolver tarefas em vários domínios?

Mas o que exatamente essa pergunta significa? Bem, normalmente, em aprendizado profundo, temos um conjunto de treinamento que contém apenas um formato de dados, por exemplo, imagens. Se você treina sua rede nesse conjunto de imagens, pode usá-lo para fazer fala em texto ou traduzir alemão para francês? Claro que não… Este artigo quer mudar isso.

MultiModel

No artigo, eles introduzem a arquitetura MultiModel. Este modelo pode aprender simultaneamente várias tarefas de vários domínios. Para ser preciso, eles usaram dados desses 8 corpora:

  1. Corpus da fala do WSJ
  2. Banco de dados ImageNet
  3. Conjunto de dados de legendas de imagens COCO
  4. WSJ analisando o conjunto de dados
  5. WMT tradução Inglês-Alemão corpus
  6. WMT dicionário de tradução Alemão-Inglês
  7. WMT tradução Inglês-Francês corpus
  8. WMT Dicionário de tradução Francês-Inglês

O primeiro problema que essa abordagem precisa resolver é a representação de dados. Você precisará representar todos os seus dados em uma representação unificada. Para isso, eles usam sub-redes chamadas redes de modalidade. Estes são específicos para cada tipo de entrada (imagem, fala, texto). Eles usam apenas uma rede de modalidade para um tipo de dados. Por exemplo, eles usam uma rede de modalidade para a tarefa de tradução, o que incentiva a generalização entre problemas do mesmo domínio.

Codificador, Mixer de E / S, Decodificador

O corpo do MultiModel consiste em 3 partes:

  1. Encoder: processa apenas a entrada.
  2. Mixer de E / S: Mistura as entradas codificadas com as saídas anteriores.
  3. Decodificador: processa a entrada e a mistura para gerar novas saídas.

O codificador e o decodificador são constituídos de três componentes principais. Estas são convoluções, camadas de atenção e uma mistura de blocos de especialistas.

Se você quiser saber mais sobre convoluções ou camadas de atenção, aqui estão alguns ótimos recursos:

Mas por que precisamos desses três blocos de construção? Bem, lembre-se de que temos todos os tipos de formatos de dados. Uma convolução seria suficiente se tivéssemos apenas imagens e um LSTM ou GRU seria suficiente se tivéssemos uma sequência de palavras. Mas como temos os dois e mais, precisamos que todas essas unidades diferentes trabalhem juntas.

Curiosamente, na minha opinião e uma conclusão principal do documento foi a seguinte conclusão:

Adicionar esses blocos computacionais nunca prejudica o desempenho, mesmo em tarefas para as quais eles não foram projetados. Na verdade, descobrimos que tanto a atenção quanto a mistura de camadas de especialistas melhoram um pouco o desempenho do MultiModel no ImageNet, a tarefa que menos precisa deles.

Que grande descoberta! Mesmo adicionando blocos computacionais que não ajudam nessa tarefa específica, você pode melhorar seu desempenho.

Conclusão

Eu acho que esse campo de pesquisa é muito interessante, promissor e importante. Tentar aprender algo de diferentes domínios ao mesmo tempo imita como os humanos aprendem e operam na palavra. Ele tenta usar o aprendizado de transferência em todo o seu potencial, o que pode ser crucial em pequenos conjuntos de dados.

Curiosamente, mas é de se esperar que o modelo não tenha arquivado nenhum resultado de última geração em nenhum dos domínios, mas arquivou resultados muito bons em todos eles. Eu acho que estes são resultados muito bons, considerando que o modelo pode fazer muito mais do que os modelos de última geração que são treinados em apenas um tipo de dados para resolver um problema específico. A tabela a seguir ilustra alguns resultados:

Comparando o MultiModel com o estado-da-arte

Pela primeira vez, não me arrependi de ter clicado em um título desse tipo. Eu recomendo que você dê uma olhada no papel você mesmo (é uma leitura muito agradável), você pode encontrá-lo aqui: https://arxiv.org/abs/1706.05137

Obrigado por ler e manter o aprendizado!

Se você quiser mais e ficar atualizado, pode me encontrar aqui:

Texto original em inglês.