Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Long Short-Term Memory (LSTM)

LSTM은 게이트가 있는 셀 상태를 통해 긴 시퀀스에 걸쳐 정보를 전달하는 순환 신경망입니다. 게이트, 방정식, GRU와의 비교, 코드를 다룹니다.

장단기 메모리(LSTM)는 단순 RNN의 은닉 상태와 함께 셀 상태라는 게이트형 메모리를 추가한 순환 신경망(RNN) 아키텍처입니다. 이를 통해 수백 또는 수천 개의 타임스텝에 걸쳐 정보를 유지할 수 있습니다. Sepp Hochreiter와 Jürgen Schmidhuber는 단순 RNN이 장거리 의존성을 학습하지 못하게 하는 기울기 소실 문제를 해결하기 위해 1997년에 LSTM을 소개했으며, 논문에서는 1,000개가 넘는 타임스텝의 시간 간격을 연결했다고 보고했습니다. 2010년대에는 기계 번역과 필기 인식, 음성 인식 분야에서 LSTM이 널리 활용되다가 트랜스포머가 대부분의 언어 작업을 대체했습니다. 일정한 크기의 상태와 타임스텝당 일정한 비용이 중요한 시계열 분석, 센서 스트림, 온디바이스 모델에서는 여전히 흔히 사용됩니다.

LSTM 셀 작동 방식#

각 타임스텝 t에서 LSTM은 입력 xₜ와 이전 은닉 상태 hₜ₋₁을 읽고, 각자 고유한 가중치를 사용하는 세 개의 게이트와 후보 값을 계산합니다. 게이트는 시그모이드 함수를 사용하므로 모든 원소가 0과 1 사이에 있고, 후보 값은 tanh를 사용하므로 −1과 1 사이에 있습니다:

  • 망각 게이트: fₜ = σ(W_f xₜ + U_f hₜ₋₁ + b_f)는 이전 셀 상태의 각 원소를 얼마나 유지할지 결정합니다.
  • 입력 게이트: iₜ = σ(W_i xₜ + U_i hₜ₋₁ + b_i)는 후보 값 중 어느 정도를 기록할지 결정합니다.
  • 후보 값: gₜ = tanh(W_g xₜ + U_g hₜ₋₁ + b_g)는 새로 추가할 내용을 제안합니다.
  • 출력 게이트: oₜ = σ(W_o xₜ + U_o hₜ₋₁ + b_o)는 셀의 내용을 어느 정도 노출할지 결정합니다.

그런 다음 두 상태를 cₜ = fₜ ⊙ cₜ₋₁ + iₜ ⊙ gₜ 및 hₜ = oₜ ⊙ tanh(cₜ)로 업데이트합니다. 여기서 ⊙는 원소별 곱셈입니다. 셀 상태는 장기 메모리이고, 은닉 상태는 다음 레이어와 다음 타임스텝으로 전달되는 단기 출력입니다.

셀 업데이트는 덧셈 방식입니다. cₜ를 cₜ₋₁에 대해 미분한 값은 각 원소마다 fₜ이므로, 망각 게이트가 1에 가까운 상태를 유지하면 오차 신호가 역방향으로 전달되어 여러 타임스텝을 거의 변하지 않고 통과합니다. 원 논문에서는 이 경로를 일정 오차 순환이라고 불렀습니다. 1997년 LSTM에는 망각 게이트가 없었고 셀은 정보를 누적하기만 했습니다. Felix Gers, Schmidhuber, Fred Cummins는 셀을 초기화할 수 있도록 2000년에 망각 게이트를 추가했으며, 현재 모든 표준 LSTM에 이 게이트가 포함됩니다. Rafal Jozefowicz와 동료들이 2015년에 권장한 대로 망각 게이트 편향을 1로 초기화하면 학습 초기에 게이트가 열려 네트워크가 처음부터 기억을 유지합니다.

PyTorch에서의 LSTM#

PyTorch의 nn.LSTM은 전체 시퀀스에서 셀을 실행하고 각 타임스텝의 은닉 상태와 마지막 은닉 및 셀 상태를 반환합니다. 아래 예시는 각 프레임에서 합성곱 신경망(CNN)이 추출한 특징처럼 프레임별 특징 벡터를 사용해 짧은 비디오 클립을 분류합니다:

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)}")

output (8, 16, 128), h_n (1, 8, 128), c_n (1, 8, 128), logits (8, 5)과 Input weights (512, 512), recurrent weights (512, 128)을 출력합니다. 마지막 은닉 상태는 5개 클래스로 분류할 때 16프레임 클립을 요약합니다. 각 가중치 행렬의 행은 4 × 128 = 512개이며, 이는 PyTorch가 네 개의 게이트 블록을 하나의 행렬에 저장하기 때문입니다.

  • 단순 RNN: 매 타임스텝마다 tanh 레이어 하나를 통해 전체 상태를 다시 계산하므로, 시퀀스 길이에 따라 그래디언트가 기하급수적으로 작아지거나 커집니다. 따라서 장거리 의존성을 학습하기 어렵습니다.
  • GRU: 셀 상태와 은닉 상태를 하나로 합치고 세 개 대신 두 개의 게이트를 사용하므로, 가중치 블록이 네 개가 아닌 세 개이며 같은 너비에서 LSTM 파라미터의 4분의 3만 사용합니다. 어떤 방식도 모든 작업에서 일관되게 우세하지는 않습니다.
  • Transformer: 모든 위치를 셀프 어텐션으로 병렬 처리합니다. GPU에서 훨씬 빠르게 학습하고 멀리 있는 문맥에 직접 접근할 수 있어 언어 모델링과 번역에서 LSTM을 대체했습니다. 어텐션의 비용은 문맥 길이에 따라 증가하지만 LSTM은 새로운 타임스텝마다 같은 연산과 메모리를 사용합니다.
  • xLSTM: Hochreiter 연구팀이 2024년에 발표한 xLSTM은 지수 게이팅과 병렬 학습이 가능한 행렬 메모리를 추가합니다. 70억 파라미터 언어 모델인 xLSTM 7B는 ICML 2025에 발표되었으며, 비슷한 크기의 트랜스포머 모델과 필적하는 성능과 더 빠른 추론 속도를 보였습니다.

응용 분야#

  • 음성 인식: Google은 2015년에 연결주의 시간 분류(CTC)로 학습한 LSTM 음향 모델로 음성 검색을 전환했으며, 온디바이스 인식기는 오랫동안 스택형 LSTM에 의존했습니다.
  • 기계 번역: 2016년에 출시된 Google Neural Machine Translation은 인코더에 LSTM 레이어 8개를, 디코더에도 8개를 쌓았습니다.
  • 홍수 예측: 2024년 Nature에 소개된 Google의 홍수 예측 시스템은 LSTM 네트워크를 사용해 기상 데이터로 강의 유량을 예측하고, 관측소가 없는 유역에서 최대 5일 전에 극심한 홍수를 예보합니다.
  • 행동 인식: CNN이 각 비디오 프레임을 인코딩하고 LSTM이 프레임 특징 시퀀스를 읽어 클립에 레이블을 지정합니다. 위 예시에서 이러한 구조를 사용합니다.
  • 궤적 예측: Social LSTM은 보행자마다 LSTM 하나를 실행하고 주변 사람들의 은닉 상태를 통합해 군중 속 이동 경로를 예측합니다. 추적 모드의 YOLO26은 비디오 프레임 전체에서 각 사람에게 지속적인 ID를 할당합니다. 이를 통해 프레임별 탐지 결과가 예측기가 사용하는 위치 이력으로 변환됩니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요