Long Short-Term Memory (LSTM)
장단기 메모리(LSTM) 네트워크를 살펴봅니다. LSTM이 시계열, NLP 및 비디오 분석 작업에서 기울기 소실 문제를 해결하는 방법을 알아봅니다.
장단기 메모리(LSTM)는 시퀀스 예측 문제에서 순서 의존성을 학습할 수 있는 특수한 유형의 순환 신경망(RNN) 아키텍처입니다. 표준 피드포워드 신경망과 달리 LSTM에는 피드백 연결이 있어 단일 데이터 포인트(예: 이미지)뿐만 아니라 전체 데이터 시퀀스(예: 음성 또는 비디오)도 처리할 수 있습니다. 이러한 기능 덕분에 LSTM은 현재 데이터를 이해하는 데 이전 입력의 맥락이 중요한 작업에 특히 적합하며, 기존 RNN의 "단기 메모리" 한계를 해결합니다.
표준 RNN의 문제#
LSTM의 혁신을 이해하려면 기본 순환 신경망이 직면한 과제를 살펴보는 것이 도움이 됩니다. RNN은 순차 정보를 처리하도록 설계되었지만 기울기 소실 문제로 인해 긴 데이터 시퀀스를 처리하는 데 어려움을 겪습니다. 네트워크가 시간에 따라 역전파를 수행할 때 네트워크의 가중치를 업데이트하는 데 사용되는 값인 기울기가 기하급수적으로 작아질 수 있으며, 이로 인해 네트워크가 서로 멀리 떨어진 이벤트 간의 연결을 학습하지 못하게 됩니다. 즉, 표준 RNN은 이전 문장의 단어는 기억하면서도 세 문단 앞에서 설정된 맥락은 잊을 수 있습니다. LSTM은 훨씬 더 긴 기간 동안 컨텍스트 윈도우를 유지할 수 있는 더 복잡한 내부 구조를 도입하여 이 문제를 해결하도록 명시적으로 설계되었습니다.
LSTM의 작동 방식#
LSTM의 핵심 개념은 셀 상태이며, 네트워크 전체 체인을 관통하는 컨베이어 벨트로 자주 설명됩니다. 이 상태를 통해 정보가 변경되지 않은 채 흐르므로 장기 의존성이 보존됩니다. 네트워크는 게이트라는 구조를 사용하여 이 셀 상태에서 무엇을 저장하고 업데이트하거나 삭제할지 결정합니다.
- 삭제 게이트: 이 메커니즘은 더 이상 관련이 없으므로 셀 상태에서 제거해야 하는 정보를 결정합니다. 예를 들어 언어 모델이 새로운 주어를 만나면 이전 주어의 성별을 "잊을" 수 있습니다.
- 입력 게이트: 이 게이트는 어떤 새로운 정보가 셀 상태에 저장할 만큼 중요한지 결정합니다.
- 출력 게이트: 마지막으로 이 게이트는 내부 상태의 어떤 부분을 다음 은닉 상태로 출력하고 즉각적인 예측에 사용할지 제어합니다.
이러한 정보 흐름을 조절함으로써 LSTM은 1,000단계가 넘는 시간 지연도 연결할 수 있으며, 시계열 분석이 필요한 작업에서 기존 RNN을 크게 능가합니다.
실제 적용 사례#
LSTM은 지난 10년간 딥러닝의 주요 발전 중 다수에 기여했습니다. 다음은 LSTM의 대표적인 활용 사례 두 가지입니다.
- 시퀀스-투-시퀀스 번역 모델링: LSTM은 기계 번역 시스템의 기반 기술입니다. 이 아키텍처에서는 하나의 LSTM(인코더)이 한 언어(예: 영어)의 입력 문장을 처리하여 컨텍스트 벡터로 압축합니다. 그런 다음 두 번째 LSTM(디코더)이 이 벡터를 사용하여 다른 언어(예: 프랑스어)로 번역을 생성합니다. 서로 다른 길이의 입력 및 출력 시퀀스를 처리하는 이 기능은 자연어 처리(NLP)에 매우 중요합니다.
- 비디오 분석 및 활동 인식: ResNet-50과 같은 합성곱 신경망(CNNs)은 정적 이미지에서 객체를 식별하는 데 뛰어나지만 시간에 대한 감각은 부족합니다. CNN과 LSTM을 결합하면 AI 시스템이 비디오 스트림에서 행동 인식을 수행할 수 있습니다. CNN은 각 프레임에서 특징을 추출하고, LSTM은 이러한 특징의 시퀀스를 분석하여 사람이 걷고 있는지, 달리고 있는지 또는 넘어지고 있는지를 판단합니다.
LSTM과 컴퓨터 비전 통합#
최신 컴퓨터 비전에서는 강력한 특징 추출기와 함께 LSTM을 사용하는 경우가 많습니다. 예를 들어 YOLO 모델을 사용하여 개별 프레임에서 객체를 감지하고 LSTM을 사용하여 객체의 궤적을 추적하거나 향후 움직임을 예측할 수 있습니다.
다음은 비디오 스트림에서 추출한 특징 벡터 시퀀스를 처리할 수 있는 간단한 LSTM을 정의하는 개념적 예제로, torch을 사용합니다.
import torch
import torch.nn as nn
# Define an LSTM model for processing sequential video features
# Input size: 512 (e.g., features from a CNN), Hidden size: 128
lstm_model = nn.LSTM(input_size=512, hidden_size=128, num_layers=2, batch_first=True)
# Simulate a batch of video sequences: 8 videos, 10 frames each, 512 features per frame
video_features = torch.randn(8, 10, 512)
# Pass the sequence through the LSTM
output, (hidden_state, cell_state) = lstm_model(video_features)
print(f"Output shape: {output.shape}") # Shape: [8, 10, 128]
print("LSTM successfully processed the temporal sequence.")관련 개념 및 구분#
LSTM을 다른 시퀀스 처리 아키텍처와 구분하는 것이 도움이 됩니다.
- LSTM과 GRU 비교: 게이트 순환 유닛(GRU)은 LSTM을 단순화한 변형입니다. GRU는 삭제 게이트와 입력 게이트를 하나의 "업데이트 게이트"로 결합하고 셀 상태와 은닉 상태를 병합합니다. 따라서 GRU는 계산 효율이 더 높고 학습 속도도 빠르지만, 더 크고 복잡한 데이터셋에서는 LSTM이 여전히 더 뛰어난 성능을 보일 수 있습니다.
- LSTM과 Transformer 비교: 순환 대신 셀프 어텐션 메커니즘을 사용하는 Transformer 아키텍처는 GPT-4가 수행하는 작업과 같은 NLP 작업에서 LSTM을 대부분 대체했습니다. Transformer는 시퀀스 전체를 순차적으로 처리하는 대신 병렬로 처리할 수 있으므로 대규모 데이터셋에서 훨씬 빠르게 학습할 수 있습니다. 그러나 어텐션 메커니즘의 오버헤드가 불필요한 제한된 데이터 환경이나 특정 시계열 제약이 있는 경우에는 LSTM이 여전히 유효합니다.
발전과 미래#
어텐션 메커니즘이 생성형 AI의 중심으로 자리 잡았지만, LSTM은 특히 계산 리소스가 제한된 엣지 AI 환경에서 경량 애플리케이션을 위한 강력한 선택지로 계속 활용되고 있습니다. 연구자들은 LSTM의 메모리 효율성과 최신 객체 감지 시스템의 표현력을 결합한 하이브리드 아키텍처를 계속 연구하고 있습니다.
시퀀스 모델 또는 복잡한 비전 작업을 학습하기 위한 데이터셋을 관리하려는 경우, Ultralytics Platform은 어노테이션 및 데이터셋 관리를 위한 종합적인 도구를 제공합니다. 또한 LSTM의 작동 방식을 이해하면 자율주행 차량 및 로보틱스에 사용되는 더욱 발전된 시간 모델을 이해하는 데 탄탄한 기반이 됩니다.









