728x90
기억력이 좋은 인공신경망
오늘은 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): 현재 상태를 출력에 얼마나 반영할지 결정한다.
- LSTM은 정보를 선택적으로 기억하거나 잊게 해주는 3가지 게이트로 구성된다.
- Cell State
- 네트워크의 기억 장치 역할을 하며, 중요하지 않은 정보는 제거하고 중요한 정보는 유지한다.
필요성:
- 긴 문장이나 시퀀스 데이터의 효과적인 처리
- 문맥을 이해하고 기억해야 하는 작업 수행
장점/단점:
- 장점: 긴 시퀀스도 잘 기억, 안정적인 학습, 다양한 응용 가능
- 단점: 계산량이 많음, 구조가 복잡함
예시:
- 스마트폰 자동완성 기능
- 번역 앱
- 음성인식 비서
2. 핵심 개념 정리
2-1. 게이트 메커니즘
- 정의: 정보를 선택적으로 기억하거나 잊게 해주는 구조
- 작동 원리: 시그모이드 함수를 통해 0~1 사이의 값으로 정보의 흐름을 조절
- 특징:
- 아래는 LSTM의 한 타임스텝(time step)에서 이루어지는 연산 과정이다.
- 망각 게이트 (Forget Gate)
- 불필요한 정보를 제거 (이전 셀 상태에서 어떤 정보를 버릴지 결정)
- 입력 게이트 (Input Gate)
- 새로운 정보를 추가할지 결정 (얼마나 셀 상태에 반영할지 결정)
- Cell State에 반영할 정보 생성
- Cell State 업데이트
- 이전 Cell State와 새로운 정보의 조합으로 현재 Cell State를 업데이트 한다.
- 출력 게이트 (Output Gate)
- 현재 셀에서 출력할 정보를 결정
- 출력 게이트와 업데이트된 Cell State를 통해 새로운 은닉 상태를 계산한다.
- 장점
- 장기 시퀀스 데이터 처리: 시간의 흐름에 따라 발생하는 데이터를 잘 학습한다.
- 텍스트, 음성, 시계열 데이터에 적합: 언어 모델링, 번역, 주가 예측, 음성 인식 등 다양한 분야에서 활용된다.
- 기울기 소멸 문제 해결: 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의 장기 기억을 저장하는 핵심 구조
- 작동 원리: 컨베이어 벨트처럼 정보를 전달하며 게이트로 제어
- 특징:
- 정보의 장기 보존
- 선택적 정보 갱신
- 안정적인 그래디언트 전파
- 장점/단점:
- 장점: 장기 의존성 문제 해결
- 단점: 메모리 사용량 증가
- 필요성: 장기 기억력 확보를 위해 필요
- 예시:
# 셀 상태 업데이트 예시
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 구조
- 작동 원리:
- 입력 시퀀스 분리: 입력 데이터를 순방향과 역방향으로 각각 처리
- Forward Pass: Forward LSTM이 순방향으로 데이터를 처리하며 은닉 상태를 계산
- Backward Pass: Backward LSTM이 역방향으로 데이터를 처리하며 은닉 상태를 계산
- 출력 결합: 두 방향의 출력을 결합하여 최종 결과를 생성
- 특징:
- 과거와 미래의 정보 모두 활용
- 문맥 이해력 향상 → 양방향으로 학습하여
- 장점/단점:
- 장점: 더 정확한 예측 가능
- 단점: 실시간 처리 어려움, 메모리 사용량 증가
- 필요성: 더 정확한 문맥 이해를 위해 필요
- 예시:
# 양방향 LSTM 예시
text = "나는 은행에 갔다"
forward_process = ["나는", "은행에", "갔다"] # →
backward_process = ["갔다", "은행에", "나는"] # ←
# '은행'의 의미를 전후 문맥으로 더 정확히 파악
3. 비교 분석표
구분 | 일반 RNN | LSTM | 양방향 LSTM |
구조 | 단순한 순환 구조 | 게이트와 셀 상태 포함 | 순방향/역방향 LSTM 결합 |
기억력 | 단기 기억만 가능 | 장/단기 기억 가능 | 양방향 문맥 기억 |
계산량 | 적음 | 중간 | 많음 |
적용분야 | 간단한 시퀀스 처리 | 번역, 음성인식 | 문맥 이해가 중요한 작업 |
특징 | 구조 단순 | 선택적 기억 가능 | 전후 문맥 모두 파악 |
장단점 | 구현 쉬움 / 장기기억 어려움 | 안정적 학습 / 계산량 많음 | 정확도 높음 / 실시간 처리 어려움 |
728x90
'Develop > AI' 카테고리의 다른 글
자연어 딥러닝 기초 - GRU를 알아보자. (0) | 2025.03.02 |
---|---|
자연어 처리 요약 정리(2) (0) | 2025.02.23 |
자연어 딥러닝 기초 - RNN 알아보자. (0) | 2025.02.23 |
자연어 임베딩 이해를 알아보자. (6) | 2025.02.21 |
Subword Tokenizing을 알아보자. (0) | 2025.02.19 |