- Supervised learning은 함수 근사로 볼 수 있다.
-> 입력 데이터 x를 출력 공간 y로 매핑하는 함수 f(x)
- Sequential Data는 하나의 입력이 여러 시점으로 구성된 데이터이다.
- 이러한 데이터는 입력을 한 번에 넣는 것이 아니라 시간 순서를 고려해야 한다.
- 입력이 순차적일 때, 출력은 순차적일 수도 있고 아닐 수도 있다.
- seq2seq : 문장의 각 단어가 문법적으로 올바른지 판단.
- seq2one : 문장 전체의 감정이나 주제로 분류
- One-to-Many : Image Captioning

- RNN은 이 세가지를 모두 포괄할 수 있는 유연한 구조를 가진다.
Recurrent Neural Networks for Sequence Classification (Many-to-one)
- 감정 분석 문제는 단순히 "단어가 긍정적인가 부정적인가' 로만 판단하면 오류가 생긴다.
ex) 와, 감동이에요. 두 시간이나 기다리게 하다니.
- 위 문장은 긍정 단어를 쓰지만 의미는 부정이다.
- 이 때문에 단어 간 순서적 의존성 모델링해야 한다.
- 문장은 단어 시퀀스로 표현된다. x = (w1, w2, ... , wT)
- 각 단어는 One-hot 벡터로 표현된다.
- 출력은 y (0 = negative, 1 = positive)
- 전체 문장은 행렬로 표현 가능하다.
- RNN 이전에 시퀀스 데이터를 처리하기 위해 시도된 접근은 1D CNN이다.
- 각 단어를 word2vec 또는 Glove로 임베딩해 dense vector로 변환한다.
- 병렬 연산이 가능해서 빠르지만, 순서 의존성을 정확히 표현하지 못한다.
- CNN은 다음과 같은 문제점들이 있다.
1. CNN은 입력 크기가 고정되어야 하지만 문장은 길이가 제각각이다.
2. 단어 순서에 정보가 부족하다.
3. CNN filter는 인접 단어만 보기 때문에 문장 전체 맥락을 파악하지 못한다.
- CNN은 단어 간 로컬 패턴만 봤다면, RNN은 문장 전체의 의미를 압축한 벡터(s)를 만드는 것이 목표이다.

- 이 s는 Classifier나 Decoder의 입력으로 사용된다.

- RNN은 시퀀스 데이터를 입력 받을 때, 각 시점마다 하나의 셀이 반복적으로 적용된다.

- Xt : 현재 입력, Ht-1 : 과거 정보 요약한 hidden state, Ht : 새로운 hidden state
- 누적된 Ht-1가 문장의 context를 모델링한다.
- fW는 hidden state가 어떻게 업데이트 되는지 정의한다.
- RNN은 파라미터를 공유하기 때문에 sequence length 데이터를 처리할 수 있다.
-> 시퀀스 길이가 달라도 모델 파라미터 개수는 일정하다.

- Wxh : 입력 -> 은닉 변환 가중치
- Whh : 은닉 -> 은닉 변환 가중치
- bh : 편향
- tanh : 비선형 활성화 함수
- 문장 전체를 읽은 뒤, 마지막 은닉 상태 ht는 문장의 의미를 모두 담고 있다.
- 이 ht를 Classifier에 입력하면 문장 단위 예측이 가능하다.
- 이진 분류(감정 분석)에는 시그모이드를 사용하고, 회귀 문제는 선형 출력을 사용한다.
- RNN의 순전파는 학습된 가중치를 이용해 입력 시퀀스가 어떤 출력을 만들어내는지를 계산한다.
- 순전파에서 모든 가중치는 고정되어 있고 예측값 y_hat만 계산된다.
- 일반적인 신경망의 역전파는 레이어를 따라 기울기를 전달하지만, RNN은 시간축을 따라 역전파가 일어난다.
- RNN은 이 역전파 과정에서 Vanishing Gradient 문제가 발생한다.
Recurrent Neural Networks for Sequence Prediction (Many-to-many)
- Corpus : NLP 모델 훈련을 위한 대규모 텍스트 데이터
- Token : 텍스트를 처리할 때의 최소 단위
- Vovabulary : 코퍼스 안의 고유 토큰들의 집합
- 토큰화 방법은 다음과 같다.
- 문장 : I love AI
- Word-level tokenization : ['I', 'love', 'AI']
- Charanter level tokenization : [‘I’, ‘ ’, ‘l’, ‘o’, ‘v’, ‘e’, ‘ ’, ‘A’, ‘I’]
- LM은 문장의 자연스러움을 확률적으로 수치화하는 모델이다.
-> 어떤 문장 (w1, ... , wT)이 등장할 확률을 예측한다.
- P(w1, ... , wT)이 클수록 자연스러운 문장이다.
- 문장 전체의 확률을 계산하는 것은 조합이 너무 많기 때문에 계산이 어렵다.
-> Chain Rule로 분해가 가능하다.

- P(w1) : 첫 단어 확률
- P(w2 | w1) : 첫 단어 뒤에 두번째 단어가 올 확률
- Classification 문제에서는 softmax로 출력값을 내고, Regression에선 선형변환으로 출력값을 낸다.
- 각 시점마다 정답 y가 주어지고 손실을 계산한다.
- 훈련 때는 실제 단어를 다음 입력으로 사용했지만, inference 단계에선 모델의 예측 단어를 입력으로 사용한다.
- 이처럼 모델이 자기 자신이 생성한 출력을 입력으로 다시 넣기 때문에 자기회귀적(auto-regressive)라고 부른다.
- 다음 단어를 선택하는 방법에는 Greedy Search와 Random Sampling이 있다.
- Greedy Search 방법은 항상 확률이 가장 높은 단어를 선택한다.
-> 일관성은 높지만 단조로움이 발생한다.
- Random Sampling 방법은 분포에서 확률적으로 샘플을 선택한다.
-> 문장은 다양하지만 논리성이 틀릴 수 있다.

- Temperature T를 조절해 분포를 바꿀 수 있다.
- 1보다 작으면 Greedy Search와 비슷해지고, 1이면 원래 softmax, 1보다 크면 Random Sampling과 비슷해진다.
- 여러 개의 RNN 층을 위로 쌓아 더 깊은 구조로 확장할 수 있다.
- 하위층은 단어 순서 패턴을 학습하고 상위층에서는 문장 의미 패턴을 학습한다.
- 이렇게 층을 깊게 쌓으면 문장 구조, 구문 패턴, 의미적 연관까지 학습이 가능하다
'Major Study > 25 Deep Learning Application' 카테고리의 다른 글
| [Deep Learning Application] Lecture 11 : Transformers (0) | 2025.10.12 |
|---|---|
| [Deep Learning Application] Lecture 9 : Sequential Models II (0) | 2025.10.09 |
| [Deep Learning Application] Lecture 7 : Convolutional Neural Networks (0) | 2025.09.23 |
| [Deep Learning Application] Lecture 6 : Neural Network (0) | 2025.04.27 |
| [Deep Learning Application] Lecture 5: Image Classification (1) | 2025.04.25 |