본문 바로가기
공부/IT

RNN(Recurrent Neural Networks) : 특징, 문제점

by 니똣 2024. 11. 13.
반응형

특징 : 순차적 데이터(Sequential Data)

- 시간 시계열 데이터(Time series data): 시간에 따라 변화하는 데이터 ex) 경제, 기상 데이터

RNN 이미지

- 음성 데이터(Speech data) : 시간의 흐름에 따라 특징이 달라지며 적절한 단어 임베딩이 필요합니다.

RNN 이미지

- 자연어 데이터(Natural languages) : 텍스트와 같은 자연 언어로, 단어와 문장의 순서가 중요합니다.

RNN 이미지

 

순차 데이터의 작업 및 과제

텍스트 분류, 기계 번역, 음성 인식, 이미지 캡션 생성 등 순차 데이터 처리에서 수행되는 주요 작업

- 입력과 출력의 길이가 다를 수 있습니다.

- 긴 시퀀스를 처리할 때 이전 정보가 손실되지 않도록 해야합니다.

Recurrent Neural Networks (RNNs)의 기본구조

RNN은 시퀀스 형태의 데이터를 처리하는 신경망

입력 값이 순서대로 네트워크를 통과하며 각 시점에서 상태를 업데이트합니다.

 

파라미터 공유: 

RNN은 시퀀스 길이에 상관없이 같은 파라미터를 공유하여 트레이닝 중 보지 못한 길이의 데이터에도 일반화할 수 있습니다.

Ex) I went to Spain in 2023.

Ex) In 2023, I went to Spain.

In the two sentences above, the same words may appear in different positions, but their meanings are the same.

Use the same parameter 𝜃 for all 𝑡 = 1, … , 𝑇.

 

RNN의 순환 구조

RNN 이미지

Recurrent formulation:
𝑦_𝑡: output
𝑥_𝑡 : input
ℎ_𝑡 : hidden state of the system
which gets updated over time

다양한 입출력 구조

RNN 이미지

one to many
이미지를 입력받아 문장을 만들어내는 Image Captioning에 사용
many to one
긍정인지 부정인지 판단하는 감성 분석(sentiment analysis)에 사용
many to many
문장을 입력받아 번역하는 기계 번역(Machine translation)에 사용된다.
many to many

상 데이터에서 프레임 별로 의미하는 것과 다음으로 어떤 영상이 나올지 학습하는 곳에 사용

Vec2Seq (Sequence Generation)

RNN 이미지

이전 출력 정보( 𝑦_1, 𝑦_2, … , 𝑦_(𝑇−1) )를 이용해 현재 출력(𝑦_𝑇)을 모델링하는 방식
- 언어 모델링(텍스트 생성), 이미지 캡션 생성 등

Seq2Vec (Sequence Classification)

RNN 이미지

시퀀스를 입력으로 받아 하나의 출력(벡터)으로 변환하는 모델
- 문장 감정 분석, 텍스트 분류 등

- 양방향 RNN을 사용해 과거와 미래 문맥을 모두 반영할 수 있습니다.

 

Seq2Seq(Sequence Translation)

RNN 이미지

입력 시퀀스와 출력 시퀀스가 다른 Seq2Seq 구조
- 비디오 분류(프레임별 레이블 지정), 문장 번역 등 시퀀스 간 변환 작업에 사용

 

Encoder-Decoder 구조

- encoder에서 입력 문장의 정보를 context vector로 압축하고, decoder로 전송하여 이를 출력

- 인코더-디코더 구조는 특히 기계 번역과 같이 입력과 출력 시퀀스 길이가 다른 경우에 유용합니다.

심층 RNN (Deep RNNs)

RNN 이미지

여러 은닉층을 쌓아 표현력을 높이는 모델 구조
- 각 레이어마다 다른 파라미터를 사용하여 더 복잡한 패턴을 학습할 수 있습니다.

시간 역전파 (Backpropagation Through Time, BPTT)

RNN 이미지

시간에 따라 네트워크를 펼쳐 손실에 대한 기울기를 계산하는 방법으로, RNN 학습에 필수적입니다.

 

BPTT 계산 과정

RNN 이미지

기울기를 계산하기 위해 그래프를 펼쳐 역전파 알고리즘을 적용하는 과정
- 계산 비용이 높아지며, 이를 해결하기 위해 최근 𝐾개 항만 포함하는 방법을 사용합니다.


LSTM (Long Short-Term Memory)

RNN 이미지

RNN의 단점을 보완한 LSTM 구조

장기 메모리와 단기 메모리를 결합하여 정보 손실 문제를 개선
- 입력 게이트, 출력 게이트, 잊음 게이트를 사용하여 정보를 관리합니다.


GRU (Gated Recurrent Units)

RNN 이미지

LSTM의 변형으로 업데이트 게이트와 리셋 게이트를 사용하여 RNN의 성능을 향상합니다.
- GRU는 LSTM보다 계산이 빠르며, 단기와 장기 의존성을 모두 처리할 수 있습니다.


1차원 CNN

RNN 이미지

순차 데이터를 처리하기 위한 1차원 CNN

이 방식은 텍스트-음성 변환 시스템(TTS)과 같은 응용에서 활용
- Dilated convolution을 사용해 수용 영역을 넓힙니다.


RNN의 문제점

한계: LSTM과 GRU로도 긴 시퀀스의 의존성을 완벽하게 모델링하기 어려움
대안: 최신 모델은 병렬 처리와 장기 의존성 문제를 해결하는 Transformer 모델을 주로 사용합니다.

반응형