Develop/AI

자연어 딥러닝 기초 - LSTM을 알아보자.

YOOZI. 2025. 2. 23. 16:05
728x90
기억력이 좋은 인공신경망

 

 

 

오늘은 LSTM에 대해 알아보자.

오늘의 배움
  • LSTM의 기본 구조와 동작 원리
  • 게이트 메커니즘의 역할과 특징
  • 양방향 LSTM의 구조와 활용

1. LSTM (Long Short-Term Memory)

정의: Long Short-Term Memory의 약자로, 장기 기억력을 가진 특별한 형태의 인공신경망

핵심 개념 한 줄 설명: 정보를 선택적으로 기억하고 잊을 수 있는 '게이트(gate)'라는 특별한 구조를 가진 AI 기술 → 셀 상태(Cell State)를 추가하여 정보를 기억하거나 잊는다.

특징:

  • 장기 의존성(Long-Term Dependency) 처리
    • 일반적인 RNN은 시간이 길어질수록 과거의 정보를 잘 기억하지 못하는 기울기 소멸(Gradient Vanishing) 문제가 발생한다.
    • LSTM은 Cell State게이트 구조를 통해 중요한 정보를 장기적으로 유지할 수 있다.
  • 게이트(Gates) 구조
    • LSTM은 정보를 선택적으로 기억하거나 잊게 해주는 3가지 게이트로 구성된다.
      • 입력 게이트(Input Gate): 새로운 정보를 얼마나 저장할지 결정한다.
      • 망각 게이트(Forget Gate): 기존 정보를 얼마나 잊을지 결정한다.
      • 출력 게이트(Output Gate): 현재 상태를 출력에 얼마나 반영할지 결정한다.
  • Cell State
    • 네트워크의 기억 장치 역할을 하며, 중요하지 않은 정보는 제거하고 중요한 정보는 유지한다.

필요성:

  • 긴 문장이나 시퀀스 데이터의 효과적인 처리
  • 문맥을 이해하고 기억해야 하는 작업 수행

장점/단점:

  • 장점: 긴 시퀀스도 잘 기억, 안정적인 학습, 다양한 응용 가능
  • 단점: 계산량이 많음, 구조가 복잡함

예시:

  • 스마트폰 자동완성 기능
  • 번역 앱
  • 음성인식 비서

2. 핵심 개념 정리

2-1. 게이트 메커니즘

 

  • 정의: 정보를 선택적으로 기억하거나 잊게 해주는 구조
  • 작동 원리: 시그모이드 함수를 통해 0~1 사이의 값으로 정보의 흐름을 조절
  • 특징:
    • 아래는 LSTM의 한 타임스텝(time step)에서 이루어지는 연산 과정이다.

 

 

  1. 망각 게이트 (Forget Gate)
    • 불필요한 정보를 제거 (이전 셀 상태에서 어떤 정보를 버릴지 결정)
  2. 입력 게이트 (Input Gate)
    • 새로운 정보를 추가할지 결정 (얼마나 셀 상태에 반영할지 결정)
    • Cell State에 반영할 정보 생성
  3. Cell State 업데이트
    • 이전 Cell State와 새로운 정보의 조합으로 현재 Cell State를 업데이트 한다.
  4. 출력 게이트 (Output Gate)
    • 현재 셀에서 출력할 정보를 결정
    • 출력 게이트와 업데이트된 Cell State를 통해 새로운 은닉 상태를 계산한다.

  • 장점
    1. 장기 시퀀스 데이터 처리: 시간의 흐름에 따라 발생하는 데이터를 잘 학습한다.
    2. 텍스트, 음성, 시계열 데이터에 적합: 언어 모델링, 번역, 주가 예측, 음성 인식 등 다양한 분야에서 활용된다.
    3. 기울기 소멸 문제 해결: Cell State와 게이트 구조 덕분에 학습이 안정적이다.
  • 단점
    • 단점: 계산 복잡도 증가
  • 필요성: 중요한 정보만 선택적으로 기억하기 위함
  • 예시:
# LSTM 게이트 구현 예시
def forget_gate(prev_state, input_data):
    return sigmoid(W_f @ concat(prev_state, input_data) + b_f)

def input_gate(prev_state, input_data):
    return sigmoid(W_i @ concat(prev_state, input_data) + b_i)

 


2-2. 셀 상태 (Cell State)

LSTM 셀의 내부 구조 (입력, 망각, 출력 게이트와 셀 상태를 포함) 출처: https://wikidocs.net/152773

 

  • 정의: LSTM의 장기 기억을 저장하는 핵심 구조
  • 작동 원리: 컨베이어 벨트처럼 정보를 전달하며 게이트로 제어
  • 특징:
    • 정보의 장기 보존
    • 선택적 정보 갱신
    • 안정적인 그래디언트 전파
  • 장점/단점:
    • 장점: 장기 의존성 문제 해결
    • 단점: 메모리 사용량 증가
  • 필요성: 장기 기억력 확보를 위해 필요
  • 예시:
# 셀 상태 업데이트 예시
def update_cell_state(prev_cell, forget_gate, input_gate, new_info):
    return forget_gate * prev_cell + input_gate * new_info

 

 


2.3 양방향 LSTM

 

  • 정의: 데이터를 양방향으로 처리하는 LSTM 구조
  • 작동 원리: 
    1. 입력 시퀀스 분리: 입력 데이터를 순방향과 역방향으로 각각 처리
    2. Forward Pass: Forward LSTM이 순방향으로 데이터를 처리하며 은닉 상태를 계산
    3. Backward Pass: Backward LSTM이 역방향으로 데이터를 처리하며 은닉 상태를 계산
    4. 출력 결합: 두 방향의 출력을 결합하여 최종 결과를 생성
  • 특징:
    • 과거와 미래의 정보 모두 활용
    • 문맥 이해력 향상 → 양방향으로 학습하여
  • 장점/단점:
    • 장점: 더 정확한 예측 가능
    • 단점: 실시간 처리 어려움, 메모리 사용량 증가
  • 필요성: 더 정확한 문맥 이해를 위해 필요
  • 예시:

 

 

# 양방향 LSTM 예시
text = "나는 은행에 갔다"
forward_process = ["나는", "은행에", "갔다"]  # →
backward_process = ["갔다", "은행에", "나는"]  # ←
# '은행'의 의미를 전후 문맥으로 더 정확히 파악

3. 비교 분석표

구분 일반 RNN LSTM 양방향 LSTM
구조 단순한 순환 구조 게이트와 셀 상태 포함 순방향/역방향 LSTM 결합
기억력 단기 기억만 가능 장/단기 기억 가능 양방향 문맥 기억
계산량 적음 중간 많음
적용분야 간단한 시퀀스 처리 번역, 음성인식 문맥 이해가 중요한 작업
특징 구조 단순 선택적 기억 가능 전후 문맥 모두 파악
장단점 구현 쉬움 / 장기기억 어려움 안정적 학습 / 계산량 많음 정확도 높음 / 실시간 처리 어려움
728x90