Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Long Short-Term Memory (LSTM)

Uma LSTM é uma rede recorrente cujo estado celular com portas transporta informações ao longo de sequências extensas. Abrange suas portas, equações, comparação com GRU e código.

A memória de longo e curto prazo (LSTM) é uma arquitetura de rede neural recorrente (RNN) que acrescenta uma memória controlada por portas, o estado da célula, ao estado oculto de uma RNN simples. Assim, pode transportar informação ao longo de centenas ou milhares de passos temporais. Sepp Hochreiter e Jürgen Schmidhuber apresentaram-na em 1997 para resolver o problema do gradiente evanescente, que impede as RNNs simples de aprender dependências de longo alcance; o artigo demonstrou a ligação de intervalos temporais superiores a 1.000 passos. Na década de 2010, as LSTMs impulsionaram o reconhecimento de voz, a tradução automática e o reconhecimento de escrita manual, até os transformers assumirem a maioria das tarefas de linguagem. Continuam a ser comuns na análise de séries temporais, em fluxos de dados de sensores e em modelos executados no dispositivo, onde são importantes um estado de tamanho constante e um custo constante por passo.

Como funciona uma célula LSTM#

Em cada passo temporal t, uma LSTM lê a entrada xₜ e o estado oculto anterior hₜ₋₁ e calcula três portas e um candidato, cada um com os seus próprios pesos. As portas usam a função sigmoide, pelo que cada elemento fica entre 0 e 1; o candidato usa tanh, pelo que fica entre −1 e 1:

  • Porta de esquecimento: fₜ = σ(W_f xₜ + U_f hₜ₋₁ + b_f) decide quanto manter de cada elemento do estado antigo da célula.
  • Porta de entrada: iₜ = σ(W_i xₜ + U_i hₜ₋₁ + b_i) decide quanto do candidato escrever.
  • Candidato: gₜ = tanh(W_g xₜ + U_g hₜ₋₁ + b_g) propõe novo conteúdo.
  • Porta de saída: oₜ = σ(W_o xₜ + U_o hₜ₋₁ + b_o) decide quanto do conteúdo da célula expor.

Em seguida, os dois estados são atualizados como cₜ = fₜ ⊙ cₜ₋₁ + iₜ ⊙ gₜ e hₜ = oₜ ⊙ tanh(cₜ), em que ⊙ representa a multiplicação elemento a elemento. O estado da célula é a memória de longo prazo, e o estado oculto é a saída de curto prazo que alimenta a camada seguinte e o passo seguinte.

A atualização da célula é aditiva. O gradiente de cₜ em relação a cₜ₋₁ é fₜ, elemento a elemento; assim, quando a porta de esquecimento se mantém próxima de 1, o sinal de erro propaga-se para trás por muitos passos quase sem alterações, um percurso que o artigo original chamou de carrossel de erro constante. A LSTM de 1997 não tinha porta de esquecimento e as suas células só podiam acumular informação. Em 2000, Felix Gers, Schmidhuber e Fred Cummins acrescentaram a porta de esquecimento para permitir reiniciar as células; atualmente, todas as LSTMs padrão incluem uma. Inicializar o enviesamento da porta de esquecimento em 1, como Rafal Jozefowicz e colegas recomendaram em 2015, mantém a porta aberta no início do treino, para que a rede comece por se lembrar.

LSTM em PyTorch#

nn.LSTM do PyTorch executa a célula numa sequência completa e devolve o estado oculto em cada passo, além dos estados finais oculto e da célula. O trecho de código abaixo classifica clipes de vídeo curtos a partir de vetores de características por fotograma, como os que uma rede neural convolucional (CNN) extrai de cada fotograma:

import torch
from torch import nn

# 8 video clips, 16 frames each, 512 features per frame: (batch, time, features)
clips = torch.randn(8, 16, 512)

# One LSTM layer with a 128-dim hidden state, and a classifier over 5 actions
lstm = nn.LSTM(input_size=512, hidden_size=128, batch_first=True)
classifier = nn.Linear(128, 5)

# output holds h at every step; h_n and c_n are the final hidden and cell states
output, (h_n, c_n) = lstm(clips)
logits = classifier(h_n[-1])
print(f"output {tuple(output.shape)}, h_n {tuple(h_n.shape)}, c_n {tuple(c_n.shape)}, logits {tuple(logits.shape)}")

# Each weight matrix stacks four blocks of 128 rows: input gate, forget gate, candidate, output gate
print(f"Input weights {tuple(lstm.weight_ih_l0.shape)}, recurrent weights {tuple(lstm.weight_hh_l0.shape)}")

O código imprime output (8, 16, 128), h_n (1, 8, 128), c_n (1, 8, 128), logits (8, 5) e Input weights (512, 512), recurrent weights (512, 128). O estado oculto final resume cada clipe de 16 fotogramas para o classificador de cinco classes, e cada matriz de pesos tem 4 × 128 = 512 linhas, porque PyTorch armazena os quatro blocos de portas numa única matriz.

  • RNN simples: Reescreve todo o estado através de uma única camada tanh em cada passo, pelo que os gradientes diminuem ou aumentam geometricamente com o comprimento da sequência e é difícil aprender dependências de longo alcance.
  • GRU: Combina os estados da célula e oculto e usa duas portas em vez de três, com três blocos de pesos em vez de quatro e três quartos dos parâmetros de uma LSTM com a mesma dimensão. Nenhuma das duas vence consistentemente em todas as tarefas.
  • Transformer: Processa todas as posições em paralelo com autoatenção, o que permite um treino muito mais rápido em GPUs e acesso direto a contextos distantes. Por isso, os transformers substituíram as LSTMs na modelação de linguagem e na tradução. O custo da atenção aumenta com o comprimento do contexto, enquanto uma LSTM usa a mesma computação e memória em cada novo passo.
  • xLSTM: A xLSTM, criada pelo grupo de Hochreiter em 2024, acrescenta portas exponenciais e uma memória matricial que permite o treino em paralelo. O seu modelo de linguagem com 7 mil milhões de parâmetros, xLSTM 7B, foi apresentado na ICML 2025 com desempenho comparável ao de transformers de dimensão semelhante e inferência mais rápida.

Aplicações#

  • Reconhecimento de voz: Em 2015, a Google passou a usar modelos acústicos LSTM treinados com classificação temporal conexionista (CTC) na pesquisa por voz; os sistemas de reconhecimento executados no dispositivo dependeram durante muito tempo de LSTMs empilhadas.
  • Tradução automática: O Google Neural Machine Translation, lançado em 2016, empilhava oito camadas LSTM no codificador e oito no descodificador.
  • Previsão de cheias: O sistema de previsão de cheias da Google, descrito na Nature em 2024, usa redes LSTM para prever o caudal dos rios com base em dados meteorológicos e prevê cheias extremas em bacias hidrográficas sem estações de medição até cinco dias antes.
  • Reconhecimento de ações: Uma CNN codifica cada fotograma de vídeo e uma LSTM lê a sequência de características dos fotogramas para classificar o clipe; é esta a estrutura usada no trecho de código acima.
  • Previsão de trajetórias: A Social LSTM executa uma LSTM por peão e agrega os estados ocultos das pessoas próximas para prever trajetórias em multidões. O YOLO26 no modo de rastreamento atribui a cada pessoa um ID persistente entre fotogramas de vídeo, transformando deteções por fotograma nos históricos de posição usados por esse tipo de previsor.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina