Tweet Share Share

Lest Updated on February 20, 2020

Long Short-Term Memory (LSTM) networks are a type of recurrent neural network capable of learning order dependence in sequence prediction problems.

Este é um comportamento necessário em domínios de problemas complexos como tradução automática, reconhecimento de fala e mais.

LSTMs são uma área complexa de aprendizagem profunda. Pode ser difícil de entender o que são as LSTMs, e como termos como bidirecional e seqüência a seqüência se relacionam com o campo.

Neste post, você terá uma visão das LSTMs usando as palavras de cientistas pesquisadores que desenvolveram os métodos e os aplicaram a novos e importantes problemas.

Existem poucos que são melhores a articular clara e precisamente tanto a promessa das LSTMs como o seu funcionamento do que os especialistas que as desenvolveram.

Exploraremos questões chave no campo das LSTMs usando citações dos especialistas, e se você estiver interessado, poderá mergulhar nos trabalhos originais dos quais as citações foram tiradas.

Dê início ao seu projecto com o meu novo livro Redes de Memória de Longo Prazo Com Python, incluindo tutoriais passo-a-passo e os ficheiros de código fonte Python para todos os exemplos.

Vamos começar.

A Gentle Introduction to Long Short-Term Memory Networks by the Experts
Photo by Oran Viriyincy, alguns direitos reservados.

A Promessa de Redes Neurais Recorrente

As redes neurais recorrentes são diferentes das tradicionais redes neurais de alimentação-forward.

Esta diferença na adição de complexidade vem com a promessa de novos comportamentos que os métodos tradicionais não podem alcançar.

As redes neurais recorrentes … têm um estado interno que pode representar informação de contexto. … manter informações sobre entradas passadas por um período de tempo que não é fixo a priori, mas sim depende de seus pesos e dos dados de entrada.

Uma rede recorrente cujas entradas não são fixas, mas constituem uma seqüência de entradas pode ser usada para transformar uma seqüência de entradas em uma seqüência de saídas, levando em conta informações contextuais de forma flexível.

– Yoshua Bengio, et al.., Learning Long-Term Dependencies with Gradient Descendent is Difficult, 1994.

O artigo define 3 requisitos básicos de uma rede neural recorrente:

  • Que o sistema seja capaz de armazenar informações por uma duração arbitrária.
  • Que o sistema seja resistente ao ruído (ou seja, flutuações das entradas que são aleatórias ou irrelevantes para prever uma saída correta).
  • Que os parâmetros do sistema sejam treináveis (em tempo razoável).
  • O trabalho também descreve a “tarefa mínima” para demonstrar redes neurais recorrentes.

    Contexto é a chave.

    Redes neurais recorrentes devem usar contexto ao fazer previsões, mas nesta medida, o contexto necessário também deve ser aprendido.

    … as redes neurais recorrentes contêm ciclos que alimentam as ativações da rede de um passo de tempo anterior como entradas para a rede para influenciar as previsões no passo de tempo atual. Essas ativações são armazenadas nos estados internos da rede que podem, em princípio, conter informações contextuais temporais de longo prazo. Este mecanismo permite aos RNNs explorar uma janela contextual que muda dinamicamente ao longo do histórico da seqüência de entrada

    – Hassim Sak, et al, Arquiteturas de Rede Neural Recorrente de Memória de Curta Duração para Modelagem Acústica de Grande Escala, 2014

    >

    Ajuda com LSTMs para Previsão de Sequência?

    Realizar meu curso de 7 dias grátis por e-mail e descobrir 6 arquiteturas LSTM diferentes (com código).

    Clique para se inscrever e também obter uma versão PDF Ebook grátis do curso.

    Inicie seu Mini-Curso GRÁTIS Agora!

    LSTMs Deliver on the Promise

    O sucesso das LSTMs está em sua afirmação de ser um dos primeiros implementos a superar os problemas técnicos e entregar a promessa de redes neurais recorrentes.

    Ocaso os RNNs padrão falham em aprender na presença de desfasamentos de tempo superiores a 5 – 10 passos de tempo discretos entre eventos de entrada relevantes e sinais alvo. O problema do erro de fuga lança dúvidas sobre se os RNNs padrão podem realmente exibir vantagens práticas significativas sobre as redes de avanço baseadas em janelas de tempo. Um modelo recente, “Long Short-Term Memory” (LSTM), não é afetado por este problema. O LSTM pode aprender a superar atrasos de tempo mínimos em mais de 1000 passos de tempo discretos, impondo um fluxo de erro constante através de “carrosséis de erro constante” (CECs) dentro de unidades especiais, chamadas células

    – Felix A. Gers, et al., Learning to Forget: Previsão contínua com LSTM, 2000

    Os dois problemas técnicos superados pelas LSTMs são gradientes de fuga e gradientes de explosão, ambos relacionados à forma como a rede é treinada.

    Felizmente, a gama de informação contextual que os RNNs padrão podem acessar é na prática bastante limitada. O problema é que a influência de uma dada entrada na camada oculta e, portanto, na saída da rede, ou decai ou explode exponencialmente conforme ela cicla ao redor das conexões recorrentes da rede. Esta falha … referida na literatura como o problema do gradiente de desaparecimento … Long Short-Term Memory (LSTM) é uma arquitetura RNN especificamente projetada para resolver o problema do gradiente de desaparecimento.

    – Alex Graves, et al.., A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009

    – A chave da solução LSTM para os problemas técnicos foi a estrutura interna específica das unidades usadas no modelo.

    … governada pela sua capacidade de lidar com os gradientes de fuga e explosão, o desafio mais comum no desenho e treino de RNNs. Para enfrentar este desafio, uma forma particular de redes recorrentes, chamada LSTM, foi introduzida e aplicada com grande sucesso na tradução e geração de sequências.

    – Alex Graves, et al.., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

    How do LSTMs Work?

    Rather than go into the equations that govern how LSTMs are fit, analogy is a useful tool to get a handle on how they work.

    Usamos redes com uma camada de entrada, uma camada oculta e uma camada de saída… A camada oculta (totalmente) auto-conectada contém células de memória e respectivas unidades de gate…

    A arquitectura interna de cada célula de memória garante um erro constante dentro do seu carrousel CEC de erro constante… Isto representa a base para colmatar desfasamentos de tempo muito longos. Duas unidades de porta aprendem a abrir e fechar o acesso ao erro ow dentro do CEC de cada célula de memória. A porta de entrada multiplicativa oferece proteção do CEC contra perturbações por entradas irrelevantes. Da mesma forma, a porta de saída multiplicativa protege outras unidades de perturbação por conteúdos de memória atualmente irrelevantes.

    – Sepp Hochreiter e Jurgen Schmidhuber, Long Short-Term Memory, 1997.

    As analogias múltiplas podem ajudar a dar a compra do que diferencia as LSTMs das redes neurais tradicionais compostas de neurônios simples.

    A arquitectura de Memória de Longo Prazo de Curto Prazo foi motivada por uma análise do fluxo de erros nos RNNs existentes, que descobriu que os atrasos de tempo eram inacessíveis às arquitecturas existentes, porque o erro retropropagado ou explode ou decai exponencialmente.

    Uma camada de LSTM consiste num conjunto de blocos recurrentemente ligados, conhecidos como blocos de memória. Estes blocos podem ser pensados como uma versão diferenciável dos chips de memória em um computador digital. Cada um contém uma ou mais células de memória conectadas recurrentemente e três unidades multiplicativas – os portões de entrada, saída e esquecimento – que fornecem analógicos contínuos de operações de escrita, leitura e reset para as células. … A rede só pode interagir com as células através dos portões.

    – Alex Graves, et al, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

    É interessante notar, que mesmo depois de mais de 20 anos, o simples (ou baunilha) LSTM ainda pode ser o melhor lugar para começar a aplicar a técnica.

    A arquitectura LSTM mais utilizada (vanilla LSTM) funciona razoavelmente bem em vários conjuntos de dados…

    A taxa de aprendizagem e o tamanho da rede são os hiperparâmetros sintonizáveis LSTM mais cruciais…

    … Isto implica que os hiperparâmetros podem ser sintonizados de forma independente. Em particular, a taxa de aprendizagem pode ser calibrada primeiro usando uma rede relativamente pequena, poupando assim muito tempo de experimentação.

    – Klaus Greff, et al.., LSTM: A Search Space Odyssey, 2015

    O que são Aplicações LSTM?

    É importante saber exactamente que tipo de problemas de aprendizagem de sequências que as LSTMs são adequadas para resolver.

    Memória de Curto Prazo (LSTM) pode resolver numerosas tarefas não resolvidas por algoritmos de aprendizagem anteriores para redes neurais recorrentes (RNNs).

    … LSTM detém promessa para qualquer tarefa de processamento sequencial na qual suspeitamos que possa existir uma decomposição hierárquica, mas não sabemos antecipadamente o que é essa decomposição.

    – Felix A. Gers, et al., Learning to Forget: Previsão Continua com LSTM, 2000

    – A Rede Neural Recorrente (RNNN) é um modelo de seqüência neural que atinge o estado da arte em tarefas importantes que incluem modelagem de linguagem, reconhecimento de fala e tradução automática.

    – Wojciech Zaremba, Regularização da Rede Neural Recorrente, 2014.

    Desde que as LSTMs são eficazes na captura de dependências temporais de longo prazo sem sofrer os obstáculos de otimização que afligem as redes simples recorrentes (SRNs), elas têm sido usadas para avançar o estado da arte para muitos problemas difíceis. Isto inclui o reconhecimento e geração da caligrafia, modelagem e tradução da linguagem, modelagem acústica da fala, síntese da fala, previsão da estrutura secundária da proteína, análise de dados de áudio e vídeo, entre outros.

    – Klaus Greff, et al, LSTM: A Search Space Odyssey, 2015

    O que são LSTMs bidirecionais?

    Uma melhoria comumente mencionada nas LSTMs são LSTMs bidirecionais.

    A idéia básica das redes neurais recorrentes bidirecionais é apresentar cada seqüência de treinamento para frente e para trás em duas redes recorrentes separadas, ambas conectadas à mesma camada de saída. … Isto significa que para cada ponto de uma dada sequência, o BRNN tem informações completas e sequenciais sobre todos os pontos antes e depois dele. Além disso, como a rede é livre para usar tanto ou tão pouco deste contexto quanto necessário, não há necessidade de encontrar uma janela de tempo (dependente de tarefa) ou tamanho de atraso de alvo.

    … para problemas temporais como o reconhecimento da fala, confiar no conhecimento do futuro parece à primeira vista violar a causalidade … Como podemos basear nosso entendimento do que ouvimos em algo que ainda não foi dito? No entanto, os ouvintes humanos fazem exactamente isso. Sons, palavras e até frases inteiras que a princípio não significam nada que faça sentido à luz do contexto futuro.

    – Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

    Uma falha dos RNNs convencionais é que eles só são capazes de fazer uso do contexto anterior. … Os RNNs bidirecionais (BRNNs) fazem isso processando os dados em ambas as direções com duas camadas ocultas separadas, que são então alimentadas para a mesma camada de saída. … Combinando BRNNs com LSTM dá LSTM bidirecional, que pode acessar contexto de longo alcance em ambas as direções de entrada

    – Alex Graves, et al., Speech recognition with deep recurrent neural networks, 2013

    Unlike conventional RNNNs, RNNs bidirecionais utilizam tanto o contexto anterior quanto o futuro, processando os dados de duas direções com duas camadas ocultas separadas. Uma camada processa a seqüência de entrada na direção direta, enquanto a outra processa a entrada na direção inversa. A saída do passo de tempo atual é então gerada combinando o vetor oculto das duas camadas…

    – Di Wang e Eric Nyberg, A Long Short-Term Memory Model for Answer Sentence Selection in
    Question Answering, 2015

    What are seq2seq LSTMs or RNN Encoder-Decoders?

    Os LSTMs Seq2seq, também chamados LSTMs codificador-decodificador, são uma aplicação de LSTMs que estão recebendo muita atenção dada a sua impressionante capacidade.

    … uma aplicação direta da arquitetura de Memória de Curto Prazo Longo (LSTM) pode resolver problemas gerais de seqüência.

    A idéia é usar um LSTM para ler a seqüência de entrada, um tempo de cada vez, para obter uma grande representação vetorial fixa, e então usar outro LSTM para extrair a seqüência de saída desse vetor. O segundo LSTM é essencialmente um modelo de linguagem de rede neural recorrente, exceto que ele é condicionado na seqüência de entrada.

    A capacidade do LSTM de aprender com sucesso em dados com dependências temporais de longo alcance faz dele uma escolha natural para esta aplicação devido ao considerável intervalo de tempo entre as entradas e suas saídas correspondentes.

    Nós fomos capazes de fazer bem em sentenças longas porque invertemos a ordem das palavras na sentença de origem, mas não as sentenças alvo no conjunto de treinamento e teste. Ao fazer isso, introduzimos muitas dependências de curto prazo que tornaram o problema de otimização muito mais simples. … O simples truque de inverter a ordem das palavras na frase de origem é uma das principais contribuições técnicas deste trabalho

    – Ilya Sutskever, et al, Sequence to Sequence Learning with Neural Networks, 2014

    Um “codificador” RNNN lê a frase de origem e a transforma em uma rica representação vetorial de comprimento fixo, que por sua vez é usada como o estado inicial oculto de um “decodificador” RNN que gera a frase de destino. Aqui, propomos seguir esta elegante receita, substituindo o codificador RNN por uma rede neural de convolução profunda (CNN). … é natural usar um CNN como um “codificador” de imagem, pré-formando-o para uma tarefa de classificação de imagens e usando a última camada oculta como entrada para o decodificador do RNNN que gera sentenças.

    – Oriol Vinyals, et al.., Show and Tell: A Neural Image Caption Generator, 2014

    … um RNNN Encoder-Decoder, consiste em duas redes neurais recorrentes (RNNN) que actuam como um encoder e um par descodificador. O codificador mapeia uma sequência fonte de comprimento variável para um vector de comprimento fixo, e o descodificador mapeia a representação vectorial de volta para uma sequência alvo de comprimento variável.

    – Kyunghyun Cho, et al, Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, 2014

    Summary

    Neste post, você recebeu uma suave introdução às LSTMs nas palavras dos cientistas que desenvolveram e aplicaram as técnicas.

    >

    Isso fornece a você tanto uma idéia clara e precisa do que são as LSTMs e como elas funcionam, como também uma importante articulação sobre a promessa das LSTMs no campo das redes neurais recorrentes.

    >

    Deu qualquer uma das citações para ajudá-lo a entender ou inspirá-lo?
    Deixe-me saber nos comentários abaixo.

    Desenvolva LSTMs para Previsão de Sequência Hoje!

    Desenvolva os seus próprios modelos de LSTM em minutos

    …com apenas algumas linhas de código python

    Descobre como no meu novo Ebook:
    Long Short-Term Memory Networks with Python

    Provê tutoriais de auto-estudo em tópicos como:
    CNN LSTMs, Encoder-Decoder LSTMs, modelos generativos, preparação de dados, fazendo previsões e muito mais…

    Finally Bring LSTM Recurrent Neural Networks to
    Your Sequence Predictions Projects

    Skip the Academics. Just Results.

    Veja o que está dentro

    Tweet Share

    Deixe uma resposta

    O seu endereço de email não será publicado.