수달이네 기술 블로그

2. 재귀 신경망(RNN) 본문

학교공부/생성형 인공지능

2. 재귀 신경망(RNN)

슬픈 수달이 2025. 9. 10. 19:42

🔍ANN(인공신경망)

ANN의 구조

구조

input layer > hidden layer > output layer가 존재한다.
output을 통해 원하는 function을 반환한다.

단점

ANN내를 보면 메모리가 없기 때문에 시퀀스 구조(문장 등)를 커버하기 어렵다.

일반 신경망으로 작업을 수행할 수 없으므로 메모리가 필요함.

🔍 RNN(재귀신경망)

순차적 데이터를 위해 설계된 신경망의 유형

RNN의 구조

구조

input > hidden > output으로 구성되어 있으나,

같은 신경망이 여러번 재귀되어 보여지고,

hidden의 내용이 다음에도 영향을 주도록 설계

특징

해당 재귀신경망은 순차적 데이터를 처리할 수 있게 된다.

길어진 만큼 문장을 처리할 수 있음.

input에 time 정보가 함꼐 존재한다.

위는 단방향 RNN으로 모델이 과거 정보에만 접근할 수 있어 다음 출력 토큰을 예측하는데 유용하다.

🔍양방향 RNN

양방향 RNN의 구조

구조

전방향 레이어와 후방향 레이어를 모두 사용하는 구조

특징

과거, 미래 정보에 모두 엑세스 가능하다.(더 좋은 성능)

전체 입력 시퀀스를 사용할 수 있어야 함.

🔍 RNN의 문제점 및 개선

장기적인 의존성 문제

 긴 시퀀스(오래전의 기억)에 대해 기울기 소실 혹은 폭발의 문제가 존재.

Vanishing Gradient(기울기 소실)

 RNN훈련과정에서 역전파 시 시간단계에 따라 기울기가 연속적으로 곱해지며 기울기가 매우 작아지거나, 0에 가까워지는 문제로 먼 시간 단계간에 정보의 연관을 전송하기 힘듦.

Exploding Gradient(기울기 폭발)

역전파중 기울기가 너무 커져 과도하게 가중치가 업데이트 되어 모델이 불안정해짐.

🔍 LSTM(장-단기 메모리)

LSTM의 구조

포겟 게이트: 보관하거나 버릴 정보 제어

입력 게이트: 셀 상태에 대한 입력 정보 계산

출력 게이트: 숨겨진 상태를 결정

Cell State: LSTM네트워크의 메모리 역할

활성화함수: sigmoid함수, tanh함수 사용

forget gate를 이용해 이전의 정보를 보관하여 장기 기억에 유용

🔍 GRU(게이트형 반복 장치)

GRU의 구조

LSTM의 cell state역할을 Hidden state가 대체

forget gate와 input gate가 update gate로 결합

output gate의 역할과 비슷한 역할을 하는 reset gate추가

LSTM 의 게이트를 GRU로 간소화

 

🔍 주의(Attention) 메커니즘

RNN의 인코더, 디코더 구조

인코더: 첫번째 노드가 단어를 입력하면 후속 노드가 이전 노드의 숨겨진 상태로 다음 단어를 입력함. 인코더는 컨텍스트 출력한다.

디코더: 인코더에서 출력한 컨택스트 디코더를 통과하는 각 노드에 대해 번역된 단어를 출력한다.

RNN 기반 번역에서 입력 시퀀스를 고정된 벡터 표현으로 인코딩하여 긴 모델은 벡터 표현 학습이 어렵다.

  • 이걸 해결하기 위해 가변길이벡터혹은 주의 메커니즘을 사용한다.

주의 메커니즘(Attention Mechanism)

  1. 인코더 셀은 각 입력위치에 해당하는 숨겨진 상태 집합을 생성
  2. 주의 매커니즘이 각 입력위치의 관련성을 나타내는 가중치를 계산
  3. 디코더가 주의 가중치를 사용하여 출력시퀀스를 생성

어텐션을 이용하여, 디코딩을 위해 내부 고정 길이 벡터에 의존하는 기존 인코더-디코더의 한계를 극복했다.

입력 시퀀스에 대한 LSTM의 중간 출력을 유지

모델 출력에서 출력시퀀스와 상관관계를 갖도록 모델을 훈련하여 해결

디코더는 주의 출력의 가중치에 따라 인코딩 상태에 집중

attention함수 기능

쿼리를 키-값쌍으로 집합에 매핑하는 것.

쿼리와 키에대해 유사도 계산이 수행되어 가중치를 획득

  • 해당 가중치를 소프트맥스 연산으로 정규화
  • 가중치와 키값에 가중치를 부여하고 합산하여 최종 주의를 끈다.