Memória longa de curto prazo - Long short-term memory

A célula Long Short-Term Memory (LSTM) pode processar dados sequencialmente e manter seu estado oculto ao longo do tempo.

A memória de longo prazo ( LSTM ) é uma arquitetura de rede neural recorrente artificial (RNN) usada no campo do aprendizado profundo . Ao contrário das redes neurais feedforward padrão , o LSTM tem conexões de feedback. Ele pode processar não apenas pontos de dados únicos (como imagens), mas também sequências inteiras de dados (como fala ou vídeo). Por exemplo, o LSTM é aplicável a tarefas como não segmentado, reconhecimento de manuscrito conectado , reconhecimento de voz e detecção de anomalias no tráfego de rede ou IDSs (sistemas de detecção de intrusão).

Uma unidade LSTM comum é composta de uma célula , uma porta de entrada , uma porta de saída e uma porta de esquecimento . A célula lembra valores em intervalos de tempo arbitrários e as três portas regulam o fluxo de informações para dentro e para fora da célula.

As redes LSTM são adequadas para classificar , processar e fazer previsões com base em dados de série temporal , uma vez que pode haver atrasos de duração desconhecida entre eventos importantes em uma série temporal. Os LSTMs foram desenvolvidos para lidar com o problema do gradiente de desaparecimento que pode ser encontrado ao treinar RNNs tradicionais. A insensibilidade relativa ao comprimento do gap é uma vantagem do LSTM em relação aos RNNs, modelos de Markov ocultos e outros métodos de aprendizado de sequência em inúmeras aplicações.

Ideia

Em teoria, os RNNs clássicos (ou "vanilla") podem rastrear dependências arbitrárias de longo prazo nas sequências de entrada. O problema com RNNs vanilla é computacional (ou prático) por natureza: ao treinar um RNN vanilla usando retropropagação , os gradientes de longo prazo que são retropropagados podem "desaparecer" (isto é, eles podem tender a zero) ou " explodem "(isto é, eles podem tender para o infinito), por causa dos cálculos envolvidos no processo, que usam números de precisão finita . Os RNNs que usam unidades LSTM resolvem parcialmente o problema do gradiente de desaparecimento , porque as unidades LSTM permitem que os gradientes também fluam inalterados . No entanto, as redes LSTM ainda podem sofrer com o problema do gradiente de explosão.

Variantes

Nas equações abaixo, as variáveis ​​em minúsculas representam vetores. As matrizes e contêm, respectivamente, os pesos das conexões de entrada e recorrentes, onde o subscrito pode ser a porta de entrada , a porta de saída , a porta de esquecimento ou a célula de memória , dependendo da ativação que está sendo calculada. Nesta seção, estamos usando uma "notação vetorial". Portanto, por exemplo, não é apenas uma célula de uma unidade LSTM, mas contém células da unidade LSTM.

LSTM com um portão para esquecer

As formas compactas das equações para a passagem para frente de uma unidade LSTM com uma porta de esquecimento são:

onde os valores iniciais são e e o operador denota o produto Hadamard ( produto elemento-sábio). O subscrito indexa o intervalo de tempo.

Variáveis

  • : vetor de entrada para a unidade LSTM
  • : esqueça o vetor de ativação do portão
  • : vetor de ativação da porta de entrada / atualização
  • : vetor de ativação da porta de saída
  • : vetor de estado oculto, também conhecido como vetor de saída da unidade LSTM
  • : vetor de ativação de entrada de célula
  • : vetor de estado celular
  • , e : matrizes de peso e parâmetros de vetor de polarização que precisam ser aprendidos durante o treinamento

onde os sobrescritos e referem-se ao número de recursos de entrada e ao número de unidades ocultas, respectivamente.

Funções de ativação

  • : função sigmóide .
  • : função tangente hiperbólica .
  • : função tangente hiperbólica ou, como sugere o olho mágico do LSTM ,.

Peephole LSTM

Uma unidade LSTM de olho mágico com portas de entrada (isto é ), saída (isto é ) e esquecimento (isto é ).

A figura à direita é uma representação gráfica de uma unidade LSTM com conexões de olho mágico (ou seja, um olho mágico LSTM). As conexões do olho mágico permitem que as portas acessem o carrossel de erro constante (CEC), cuja ativação é o estado da célula. não é usado, é usado na maioria dos lugares.

Cada uma das portas pode ser pensada como um neurônio "padrão" em uma rede neural feed-forward (ou multicamadas): isto é, eles calculam uma ativação (usando uma função de ativação) de uma soma ponderada. e representam as ativações das portas de entrada, saída e esqueça, no intervalo de tempo .

As 3 setas de saída da célula de memória para os 3 portões e representam as conexões do olho mágico . Essas conexões de olho mágico na verdade denotam as contribuições da ativação da célula de memória no intervalo de tempo , ou seja, a contribuição de (e não , como a imagem pode sugerir). Em outras palavras, as portas e calculam suas ativações na etapa de tempo (ou seja, respectivamente, e ) considerando também a ativação da célula de memória na etapa de tempo , ou seja .

A única seta da esquerda para a direita saindo da célula de memória não é uma conexão de olho mágico e denota .

Os pequenos círculos contendo um símbolo representam uma multiplicação por elemento entre suas entradas. Os grandes círculos contendo uma curva semelhante a S representam a aplicação de uma função diferenciável (como a função sigmóide) a uma soma ponderada.

Olho mágico convolucional LSTM

Peephole convolucional LSTM. O denota o operador de convolução .

Treinamento

Um RNN usando unidades LSTM pode ser treinado de forma supervisionada, em um conjunto de sequências de treinamento, usando um algoritmo de otimização, como gradiente descendente , combinado com retropropagação ao longo do tempo para calcular os gradientes necessários durante o processo de otimização, a fim de alterar cada peso da rede LSTM em proporção à derivada do erro (na camada de saída da rede LSTM) em relação ao peso correspondente.

Um problema com o uso de gradiente descendente para RNNs padrão é que gradientes de erro desaparecem exponencialmente rapidamente com o tamanho do intervalo de tempo entre eventos importantes. Isso ocorre se o raio espectral de for menor que 1.

No entanto, com unidades LSTM, quando os valores de erro são propagados de volta da camada de saída, o erro permanece na célula da unidade LSTM. Este "carrossel de erro" alimenta continuamente o erro de volta para cada uma das portas da unidade LSTM, até que eles aprendam a cortar o valor.

Função de pontuação CTC

Muitos aplicativos usam pilhas de LSTM RNNs e os treinam por classificação temporal conexionista (CTC) para encontrar uma matriz de peso RNN que maximize a probabilidade das sequências de rótulo em um conjunto de treinamento, dadas as sequências de entrada correspondentes. O CTC alcança alinhamento e reconhecimento.

Alternativas

Às vezes, pode ser vantajoso treinar (partes de) um LSTM por neuroevolução ou por métodos de gradiente de política, especialmente quando não há "professor" (isto é, rótulos de treinamento).

Sucesso

Existem várias histórias de sucesso de treinamento, de forma não supervisionada, RNNs com unidades LSTM.

Em 2018, Bill Gates chamou isso de “um grande marco no avanço da inteligência artificial” quando os bots desenvolvidos pela OpenAI foram capazes de derrotar os humanos no jogo Dota 2. O OpenAI Five consiste em cinco redes neurais independentes, mas coordenadas. Cada rede é treinada por um método de gradiente de política sem supervisão do professor e contém uma memória de longo-curto prazo de 1024 unidades de camada única que vê o estado atual do jogo e emite ações por meio de várias cabeças de ação possíveis.

Em 2018, a OpenAI também treinou um LSTM semelhante por gradientes de política para controlar uma mão de robô semelhante a um humano que manipula objetos físicos com destreza sem precedentes.

Em 2019, o programa AlphaStar da DeepMind usou um núcleo LSTM profundo para se destacar no complexo videogame Starcraft II . Isso foi visto como um progresso significativo em direção à Inteligência Artificial Geral.

Formulários

As aplicações do LSTM incluem:

Linha do tempo de desenvolvimento

1995 - 1997: LSTM foi proposto por Sepp Hochreiter e Jürgen Schmidhuber . Ao introduzir unidades de carrossel de erro constante (CEC), o LSTM lida com o problema do gradiente de desaparecimento . A versão inicial do bloco LSTM incluía células, portas de entrada e saída.

1999: Felix Gers e seu consultor Jürgen Schmidhuber e Fred Cummins introduziram o portão de esquecimento (também chamado de “portão de manutenção”) na arquitetura LSTM, permitindo que o LSTM redefinisse seu próprio estado.

2000: Gers & Schmidhuber & Cummins adicionaram conexões de olho mágico (conexões da célula aos portões) na arquitetura. Além disso, a função de ativação de saída foi omitida.

2009: Um modelo baseado em LSTM venceu a competição de reconhecimento de manuscrito conectado ICDAR . Três desses modelos foram apresentados por uma equipe liderada por Alex Graves . Um era o modelo mais preciso da competição e outro o mais rápido.

2013: As redes LSTM foram um componente importante de uma rede que atingiu uma taxa de erro de fonema recorde de 17,7% no conjunto de dados de fala natural clássico TIMIT .

2014: Kyunghyun Cho et al. apresentou uma variante simplificada chamada Gated Recurrent Unit (GRU).

2015: o Google começou a usar um LSTM para reconhecimento de fala no Google Voice. De acordo com o post oficial do blog, o novo modelo reduziu os erros de transcrição em 49%.

2016: o Google começou a usar um LSTM para sugerir mensagens no aplicativo de conversa Allo. No mesmo ano, o Google lançou o sistema de tradução automática do Google Neural para o Google Translate, que usava LSTMs para reduzir os erros de tradução em 60%.

A Apple anunciou em sua Conferência Mundial de Desenvolvedores que começaria a usar o LSTM para quicktype no iPhone e para Siri.

A Amazon lançou o Polly , que gera as vozes por trás de Alexa, usando um LSTM bidirecional para a tecnologia text-to-speech.

2017: o Facebook realizou cerca de 4,5 bilhões de traduções automáticas todos os dias usando redes de memória de longo prazo.

Pesquisadores da Michigan State University , IBM Research e Cornell University publicaram um estudo na conferência Knowledge Discovery and Data Mining (KDD). O estudo descreve uma nova rede neural com melhor desempenho em determinados conjuntos de dados do que a amplamente usada rede neural de memória de curto prazo longa.

A Microsoft relatou ter alcançado uma precisão de reconhecimento de 94,9% no corpus do Switchboard , incorporando um vocabulário de 165.000 palavras. A abordagem usou "memória de longo-curto prazo baseada em sessão de diálogo".

2019: Pesquisadores da Universidade de Waterloo propuseram uma arquitetura RNN relacionada que representa janelas de tempo contínuas. Ele foi derivado usando os polinômios de Legendre e supera o LSTM em alguns benchmarks relacionados à memória.

Um modelo LSTM subiu para o terceiro lugar no Benchmark de compressão de texto grande.

Veja também

Referências

links externos