RNN(Recurrent Neural Network, 순환 신경망)
- RNN의 구조
- 녹색 박스는 hidden state, 파란 박스 x는 인풋, 파란박스 y는 아웃풋
- 은닉층 : $h_t = \tanh(W_x x_t + W_h h_{t-1} + b)$
- 출력층 : $y_t = f(W_yh_t + b)$
단, $f$는 비선형 활성화 함수 중 하나.
(수식에서와 같이 활성화 함수(activation function)은 하이퍼볼릭탄젠트(tanh)
- RNN의 특징 : 이전 단계의 정보를 기억하고 다음 단계에 전달할 수 있다 == 순차적(연속적)인 데이터를 처리할 수 있다
- RNN 장점 :
- 가변적인 길이의 input Sequence를 처리할 수 있다.
- 입력된 데이터의 순서를 기억하여 t시점에서 수행된 계산은 여러단계 이전의 정보를 사용할 수 있다.
- 이전 순서의 정보를 기억하면서 다음 순서로 전달할 수 있어 문맥이나 시간 흐름을 반영할 수 있다.
- RNN 단점 :
- 긴 시퀀스에서의 계산 복잡도 증가로 인하여, 메모리와 계산 자원 소모가 많아 속도가 느리다.(Recurrent computation이 느리다.)
- 일반적인 신경망에서는 여러 입력을 동시에 처리할 수 있지만, RNN에서는 순차적 처리(Sequence output inference)로 인한 병렬화(paralleization)가 어렵다.
- Vanilla RNN은 훈련 중 기울기 소실( Vanishing Gradient ) 문제를 겪는다.
- 기울기 소실(Vanishing Gradient) : 역전파(Back Propagation) 과정에서 기울기가 입력층으로 갈수록 사라지며 가중치 업데이트가 제대로 이루어지지 않게 되어, 학습 속도가 느려지거나 올바른 학습이 되지 않는 문제
- 기울기 폭발(Exploding Gradient) : 기울기 소실과 반대로, 기울기가 입력층으로 갈수록 점차 커지다가 비정상적으로 큰 값이 되어 모델이 불안정하게되어 올바른 학습이 되지 않는 문제
- Vanilla RNN은 종종 시퀀스 내 장거리 의존성(long term dependency) 문제를 겪는다.
- 순전파(Forward Propagation)에서의 장거리 의존성 :
순전파는 입력이 주어졌을 때, 네트워크가 순차적으로 계산을 진행하여 출력을 내는 과정. 각 단계에서 이전 상태와 현재 입력이 결합되어 다음 상태로 전달되는데, 과정이 길어질수록 초반에 중요한 정보가 후반에 전달되지 않고 소실될 가능성이 커진다. 즉, 장거리 정보가 후반부 계산에 반영되지 않는 문제가 발생한다. - 역전파(Back Propagation)에서의 장거리 의존성 :
역전파는 출력에서 발생한 오차를 이전 단계로 역전파하며 가중치를 업데이트하는 과정. 기울기 소실 문제로 인해, 초반에 정보가 제대로 학습되지 않거나 반영되지 않는 문제가 발생한다.
- 순전파(Forward Propagation)에서의 장거리 의존성 :
- RNN 문제점 :
- RNN은 기울기 소실/폭발(Vanishing/Exploding Gradient)문제가 있으며, 따라서 장기 의존성(long term dependency)문제 발생 >> 보완모델 LSTM/GRU
- Many-to-Many RNN은 입력/출력 시퀀스가 길이가 다를 때 유연하게 대응하기 어려움 >> 보완모델 Seq2Seq Model
- LSTM/GRU 또한 매우 긴 시퀀스를 처리할 때 문제가 발생함 >> 보완모델 Attention Model
- 기울기 폭발 >> 해결책 클리핑(Clip)하면 됨
RNN의 구조의 활용
자연어 분야에서의 활용
RNN구조 | 설명 | 활용 |
One to Many | 하나의 입력이 주어지고, 여러개의 출력을 생성하는 구조 | 이미지 설명 생성(Image Captioning) |
Many to One | 여러개의 입력이 주어지고, 하나의 출력을 생성하는 구조 | 감성 분석(Sentiment Analysis) |
Many to Many | 여러개의 입력이 주어지고, 여러개의 출력을 생성하는 구조(입력과 출력 시퀀스 길이가 같거나 다를 수 있다.) | ※ 입력과 출력길이가 같은 경우 : 품사 태깅(Part-of-Speech Tagging) ※ 입력과 출력길이가 다른 경우 : 기계 번역(Machine Translation) |
시계열 데이터에서의 활용
RNN 구조 | 활용 |
One to Many | 특정 시점의 입력 데이터를 통한, 향후 여러 시점의 예측 |
Many to One | 특정 기간의 입력 데이터를 통한, 향후 하나의 미래 시점 예측 |
Many to Many | 특정 기간의 입력 데이터를 통한, 향후 미래의 연속적인 기간 예측 |
'DL > NLP' 카테고리의 다른 글
Attention Mechanism (0) | 2024.11.18 |
---|---|
Seq2Seq를 활용한 논리연산(AND, OR, XOR) (0) | 2024.11.08 |
Seq2Seq : Sequence to Sequence (0) | 2024.10.14 |
LSTM, GRU 간단 정리 (5) | 2024.10.08 |