O que o professor está forçando para redes neurais recorrentes?

O que o professor está forçando para redes neurais recorrentes?

Forçar o professor é um método para treinar de forma rápida e eficiente modelos de rede neural recorrentes que usam a verdade básica de uma etapa de tempo anterior como entrada.

É um método de treinamento de rede fundamental para o desenvolvimento de modelos de linguagem de aprendizado profundo usados ​​em tradução automática, resumo de texto e legendagem de imagens, entre muitas outras aplicações.

Nesta postagem, você descobrirá a força do professor como método de treinamento de redes neurais recorrentes.

Depois de ler esta postagem, você saberá:

  • O problema com o treinamento de redes neurais recorrentes que usam a saída de etapas de tempo anteriores como entrada.
  • O professor força o método para lidar com a convergência lenta e a instabilidade ao treinar esses tipos de redes recorrentes.
  • Extensões ao forçamento do professor que permitem que modelos treinados lidem melhor com as aplicações de malha aberta desse tipo de rede.

Comece seu projeto com meu novo livro Long Short-Term Memory Networks With Python, incluindo tutoriais passo a passo e a Código-fonte Python arquivos para todos os exemplos.

Vamos começar.

O que o professor está forçando para redes neurais recorrentes?

O que o professor está forçando para redes neurais recorrentes?
Foto de Nathan Russell, alguns direitos reservados.

Usando a saída como entrada na previsão de sequência

Existem modelos de previsão de sequência que usam a saída da última etapa de tempo y (t-1) como entrada para o modelo na etapa de tempo atual X

Este tipo de modelo é comum em modelos de linguagem que produzem uma palavra por vez e usam a palavra de saída como entrada para gerar a próxima palavra na sequência.

Por exemplo, este tipo de modelo de linguagem é usado em uma arquitetura de rede neural recorrente Codificador-Decodificador para problemas de geração de sequência a sequência, como:

  • Maquina de tradução
  • Geração de legenda
  • Resumo de Texto

Depois que o modelo é treinado, um token de "início de sequência" pode ser usado para iniciar o processo e a palavra gerada na sequência de saída é usada como entrada na etapa de tempo subsequente, talvez junto com outra entrada como uma imagem ou um Texto original.

Esse mesmo processo recursivo de saída como entrada pode ser usado ao treinar o modelo, mas pode resultar em problemas como:

  • Convergência lenta.
  • Instabilidade do modelo.
  • Habilidade ruim.

Forçar o professor é uma abordagem para melhorar a habilidade e estabilidade do modelo ao treinar esses tipos de modelos.

O que é o professor forçando?

Forçar o professor é uma estratégia para treinar redes neurais recorrentes que usa a saída do modelo de uma etapa de tempo anterior como uma entrada.

Os modelos que têm conexões recorrentes de suas saídas que levam de volta ao modelo podem ser treinados com o forçamento do professor.

- Página 372, Deep Learning, 2016.

A abordagem foi originalmente descrita e desenvolvida como uma técnica alternativa para retropropagação ao longo do tempo para treinar uma rede neural recorrente.

Uma técnica interessante que é frequentemente usada em tarefas de aprendizagem supervisionada dinâmica é substituir a saída real y

- Um algoritmo de aprendizagem para redes neurais totalmente recorrentes em execução contínua, 1989.

O forçamento do professor funciona usando a saída real ou esperada do conjunto de dados de treinamento na etapa de tempo atual y

Forçar o professor é um procedimento […] em que, durante o treinamento, o modelo recebe a saída de verdade fundamental y

- Página 372, Deep Learning, 2016.

Exemplo Trabalhado

Vamos concretizar o forçamento do professor com um pequeno exemplo trabalhado

Dada a seguinte sequência de entrada:

Imagine que queremos treinar um modelo para gerar a próxima palavra na sequência dada a sequência anterior de palavras.

Primeiro, devemos adicionar um token para sinalizar o início da sequência e outro para sinalizar o final da sequência. Nós vamos usar "[START]" e "[END]”Respectivamente.

Em seguida, alimentamos o modelo “[START]”E deixe o modelo gerar a próxima palavra.

Imagine que o modelo gera a palavra “uma“, Mas é claro, esperávamos“Mary“.

Ingenuamente, poderíamos alimentar “uma”Como parte da entrada para gerar a palavra subsequente na sequência.

Você pode ver que o modelo está fora do caminho e será punido por cada palavra subsequente que gerar. Isso torna o aprendizado mais lento e o modelo instável.

Em vez disso, podemos usar a força do professor.

No primeiro exemplo, quando o modelo gerou “uma”Como saída, podemos descartar esta saída após calcular o erro e alimentar“Mary”Como parte da entrada na etapa de tempo subsequente.

Podemos então repetir esse processo para cada par de palavras de entrada-saída.

O modelo aprenderá a sequência correta ou as propriedades estatísticas corretas para a sequência rapidamente.

Extensões para Forçar o Professor

Forçar o professor é uma maneira rápida e eficaz de treinar uma rede neural recorrente que usa a saída de etapas de tempo anteriores como entrada para o modelo.

Mas, a abordagem também pode resultar em modelos que podem ser frágeis ou limitados quando usados ​​na prática quando as sequências geradas variam do que foi visto pelo modelo durante o treinamento.

Isso é comum na maioria das aplicações desse tipo de modelo, pois as saídas são de natureza probabilística. Este tipo de aplicação do modelo é freqüentemente denominado malha aberta.

Infelizmente, este procedimento pode resultar em problemas na geração como pequeno composto de erro de predição no contexto de condicionamento. Isso pode levar a um desempenho de predição ruim, pois o contexto de condicionamento do RNN (a sequência de amostras geradas anteriormente) diverge das sequências vistas durante o treinamento.

- Professor Forcing: A New Algorithm for Training Recurrent Networks, 2016.

Existem várias abordagens para lidar com essa limitação, por exemplo:

Pesquisar Sequências de Saída de Candidatos

Uma abordagem comumente usada para modelos que prevêem uma saída de valor discreto, como uma palavra, é realizar uma pesquisa nas probabilidades previstas para cada palavra para gerar um número de possíveis sequências de saída candidatas.

Essa abordagem é usada em problemas como tradução automática para refinar a sequência de saída traduzida.

Um procedimento de pesquisa comum para essa operação post-hoc é a pesquisa de feixe.

Esta discrepância pode ser mitigada pelo uso de uma heurística de pesquisa de feixe mantendo várias sequências alvo geradas

- Amostragem programada para predição de sequência com redes neurais recorrentes, 2015.

Aprendizagem de currículo

A abordagem de busca de feixe é adequada apenas para problemas de previsão com valores de saída discretos e não pode ser usada para saídas de valor real.

Uma variação do aprendizado forçado é introduzir resultados gerados a partir de etapas de tempo anteriores durante o treinamento para encorajar o modelo a aprender como corrigir seus próprios erros.

Propomos mudar o processo de treinamento para forçar gradativamente o modelo a lidar com seus próprios erros, como teria que fazer durante a inferência.

- Amostragem programada para predição de sequência com redes neurais recorrentes, 2015.

A abordagem é chamada de aprendizado de currículo e envolve a escolha aleatória de usar a saída de verdade do solo ou a saída gerada da etapa de tempo anterior como entrada para a etapa de tempo atual.

O currículo muda ao longo do tempo no que é chamado de amostragem programada, em que o procedimento começa no aprendizado forçado e diminui lentamente a probabilidade de uma entrada forçada ao longo dos períodos de treinamento.

Existem também outras extensões e variações de força do professor e encorajo você a explorá-las se estiver interessado.

Leitura Adicional

Esta seção fornece mais recursos sobre o tópico se você estiver procurando ir mais fundo.

Papéis

Livros

  • Seção 10.2.1, Forçamento do professor e redes com recorrência de saída, Aprendizado profundo, 2016.

Resumo

Nesta postagem, você descobriu a força do professor como um método para treinar redes neurais recorrentes que usam a saída de uma etapa de tempo anterior como entrada.

Especificamente, você aprendeu:

  • O problema com o treinamento de redes neurais recorrentes que usam a saída de etapas de tempo anteriores como entrada.
  • O professor força o método para abordar a convergência lenta e a instabilidade ao treinar esses tipos de redes recorrentes.
  • Extensões ao forçamento do professor que permitem que modelos treinados lidem melhor com as aplicações de loop aberto desse tipo de rede.

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

Desenvolva LSTMs para Predição de Sequência hoje!

Redes de memória de longo prazo com Python

Desenvolva seus próprios modelos LSTM em minutos

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

Descubra como em meu novo Ebook:
Redes de memória de longo prazo com Python

Ele fornece tutoriais de auto-estudo em tópicos como:
CNN LSTMs, codificador-decodificador LSTMs, modelos generativos, preparação de dados, fazer previsões e muito mais...

Finalmente traga redes neurais recorrentes LSTM para
Seus projetos de previsão de sequência

Ignore os acadêmicos. Apenas resultados.

Veja o que há dentro

Você também pode estar interessado em