RNN

2024. 10. 8. 16:49·DL/NLP

RNN(Recurrent Neural Network, 순환 신경망)

https://wikidocs.net/22886

  • 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 장점 :
    1. 가변적인 길이의 input Sequence를 처리할 수 있다.
    2. 입력된 데이터의 순서를 기억하여 t시점에서 수행된 계산은 여러단계 이전의 정보를 사용할 수 있다.
    3. 이전 순서의 정보를 기억하면서 다음 순서로 전달할 수 있어 문맥이나 시간 흐름을 반영할 수 있다.
  • RNN 단점 :
    1. 긴 시퀀스에서의 계산 복잡도 증가로 인하여, 메모리와 계산 자원 소모가 많아 속도가 느리다.(Recurrent computation이 느리다.)
    2. 일반적인 신경망에서는 여러 입력을 동시에 처리할 수 있지만, RNN에서는 순차적 처리(Sequence output inference)로 인한 병렬화(paralleization)가 어렵다.
    3. Vanilla RNN은 훈련 중 기울기 소실( Vanishing Gradient ) 문제를 겪는다.
      • 기울기 소실(Vanishing Gradient) : 역전파(Back Propagation) 과정에서 기울기가 입력층으로 갈수록 사라지며 가중치 업데이트가 제대로 이루어지지 않게 되어, 학습 속도가 느려지거나 올바른 학습이 되지 않는 문제
      • 기울기 폭발(Exploding Gradient) : 기울기 소실과 반대로, 기울기가 입력층으로 갈수록 점차 커지다가 비정상적으로 큰 값이 되어 모델이 불안정하게되어 올바른 학습이 되지 않는 문제
    4. Vanilla RNN은 종종 시퀀스 내 장거리 의존성(long term dependency) 문제를 겪는다.
      • 순전파(Forward Propagation)에서의 장거리 의존성 :
        순전파는 입력이 주어졌을 때, 네트워크가 순차적으로 계산을 진행하여 출력을 내는 과정. 각 단계에서 이전 상태와 현재 입력이 결합되어 다음 상태로 전달되는데, 과정이 길어질수록 초반에 중요한 정보가 후반에 전달되지 않고 소실될 가능성이 커진다. 즉, 장거리 정보가 후반부 계산에 반영되지 않는 문제가 발생한다.
      • 역전파(Back 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
'DL/NLP' 카테고리의 다른 글
  • Attention Mechanism
  • Seq2Seq를 활용한 논리연산(AND, OR, XOR)
  • Seq2Seq : Sequence to Sequence
  • LSTM, GRU 간단 정리
YAHO_STUDY
YAHO_STUDY
DATA&AI_study.zip
  • YAHO_STUDY
    YAHO_CODE
    YAHO_STUDY
  • 전체
    오늘
    어제
    • 분류 전체보기 (57)
      • Paper Review (0)
      • SQL (16)
      • CODING_TEST (21)
      • Time Series (0)
      • DL (20)
        • NLP (5)
        • LLM&RAG (15)
        • Recommender System (0)
      • 최적화 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Lora
    prompt-tuning
    한 권으로 끝내는 실전 llm 파인튜닝
    Gemma
    boj
    RNN
    Programmers
    hash
    MySQL
    SQL
    pagedattention
    DP
    quantization
    fine-tuning
    qlora
    graph
    coding_test
    PEFT
    양자화
    runpod
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
YAHO_STUDY
RNN
상단으로

티스토리툴바