synapse

[기초 세션 복습] NLP 기초: 단어를 숫자로 (Embedding & RNN)

minjin 2026. 4. 5. 23:25

2026년 3월 30일 synapse 기초 세션 복습 과제입니다 

 

 

 

1. Embedding

벡터화 [텍스트 → 숫자]

 

  • One-Hot Encoding

ex.

I [0] → [1, 0, 0]

am [1] → [0, 1, 0]

happy [2] → [0, 0, 1]

→ 희소 표현

  • 단어 수 증가 시 0이 무한대로 증가한다
  • 의미 결여 → 단어 간 유사도 계산 어렵다
  •  
  • Word Embedding

단어 → dense vector

 

의미를 반영한다

비슷한 의미를 가졌다면 벡터 공간에서 가까운 위치에 존재한다

 

ex. 강아지

[1, 0, 0, 0, ....] → [0.2, 0.7, 0.4, 0.1....]

 

 

 

2. Word2Vec

  • CBOW

주변 단어를 통해 중심 단어를 예측

→ 맥락을 통해 파악

 

ex. I __ to the school.

 

  • Skip-gram

중심 단어를 통해 주변 단어를 예측

→ 회귀 단어에 강함

 

 

 

3. FNN (Foward Neural Network)

입력 → (은닉층) → 출력

 

--------------------------> 단방향

 

*입력은 항상 같은 크기의 vector

 

각 입력 feature가 독립적인 값으로 취급된다 

→ 입력 값의 순서를 고려하지 않는다, 이전 값을 기억하지 않는다

 

다시 말해, 입력한 데이터에 순서가 존재하여도 이 흐름을 반영하지 않는다

 

대신 병렬 처리가 가능하여 속도가 빠르다는 장점 존재

 

 

 

4. RNN(Recurrent Neural Network)

(FNN과의 차이점) 이전 정보의 기억이 존재하여 sequence 처리가 가능하다

→ 순서 의존성 처리가 가능하다

 

        h_{t-1} ( 이전의 기억)           ↓x_t → RNN → y_t                   h_t ( → 현재의 기억)

 

→ 현재 sequence = x_t + h_{t-1}

 

이때 같은 셀과 같은 가중치를 모든 시점에 반복 적용한다

 

RNN의 종류

  • One-to-One

입력 1개 → 출력 1개

 

FNN과 가장 유사

 

  • One-to-Many

입력 1개 → 출력 여러개 (여러 시점 출력)

 

  • Many-to-One

입력 여러개 (여러개를 순차적으로 읽는다) → 출력 1개

→ 문장 분석 (긍/부), 감성 분석에서 주로 사용된다

 

  • Many-to-Many
    • 같은 길이의 입력 -출력
      → 각 시점마다 출력이 바로 나오는 구조 
    • 다른 길이의 입력 -출력
      인코더 - 디코더 구조

 

역전파

출력에서 시작해서 오차를 뒤로 전달 

→ 각 weight 업데이트

 

RNN의 역전파: BPTT (Backpropagation Through Time)

RNN은 시간축으로 펼처서 학습 

→ 모든 시점에 대해 gradient 계산, 과거 시점까지 영향 전달

 

RNN의 문제 (한계)

  • 기울기 소실(Vanishing Gradient)
  • 기울기 폭발 (Exploding Gradient)
  • 장기 의존성(Long-term dependency) 학습 어려움

 

이를 해결하기 위해 LSTM 등장

 

 

 

5. LSTM → 기억을 따로 저장

장기 기억 해결 모델

 

구조: Cell State + 3개의 Gate 

 

LSTM의 상태

  • Cell State

정보가 흐르는 메인 경로로 거의 변형 없이 전달된다

→ 덕분에 정보를 오래 유지할 수 있다

  • Hidden State

현재 시점의 출력으로 다음 step으로 전달된다

 

Gate 3개 + Candidate + Update 과정

  • Forget Gate (망각 게이트)

이전 정보 중 버릴 것을 결정한다

  • Input Gate (입력 게이트)

새로운 정보 중 얼마나 저장할지 결정

  • Candidate (후보 정보)

새로 들어올 정보 생성

  • Cell State 업데이트

이전 기억 일부 유지 + 새로운 정보 추가 

  • Output Gate (출력 게이트)

최종 출력 결정

 

데이터가 복잡한 경우 LSTM을 사용한다

 

LSTM은 성능은 좋지만

구조가 복잡하고 연산량이 많다

→ 더 단순하지만 성능은 유지하는 GRU 등장

 

 

 

6. GRU → 기억을 하나로 통합

LSTM 간소화 모델

 

GRU의 구성 요소

  • Update Gate

과거 정보와 현재 정보 비율 결정 (0/1)

  • Reset Gate

과거 정보를 얼마나 무시할지 결정 (0/1)

  • Candidate Hidden State

새로운 정보 생성

  • 최종 Hidden State

이전 정보 + 새로운 정보의 가중합

 

데이터가 단순한 경우 GRU 사용한다