Colab으로 하루에 하나씩 딥러닝

시계열 분석_2.순환 신경망(RNN)_1)구조와 모델 본문

딥러닝_개념

시계열 분석_2.순환 신경망(RNN)_1)구조와 모델

Elleik 2023. 1. 13. 23:07
728x90

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

  • 이전 은닉층이 현재 은닉층의 입력이 되면서 반복되는 순환 구조를 가짐
  • 기존 네트워크와 달리 '기억(memory)'를 가지고 있어 최종적으로 남겨진 기억이 모든 입력 전체를 요약한 정보가 됨
    • 기억: 현재까지 입력 데이터를 요약한 정보, 새로운 입력이 네트워크로 들어올 때마다 기억은 조금씩 수정됨
  • 음성 인식, 단어 의미 판단 및 대화 등에 처리가 가능한 '자연어 처리'에서 주로 활용됨

순환 신경망 구조

1. 입력층

  • 이전 은닉층 * 은닉층 → 은닉층 가중치 + 입력층  → 은닉층 가중치 * (현재) 입력 값 
  • 일반적으로 하이퍼볼릭 탄젠트 활성화 함수를 사용

 

2. 출력층

  • 은닉층 → 출력층 가중치 * 현재 은닉층에 소프트맥스 함수 적용

3. 오차

  • 각 단계마다 오차를 측정
  • 실제 값과 예측 값으로 오차(평균 제곱 오차)를 적용

4. 역전파

 

  • BPTT(BackPropagation Through Time)을 이용하여 모든 단계마다 처음부터 끝까지 역전파 실행
    • BPTT: 각 단계마다 오차를 측정하고 이전 단계로 전달, 기울기 소멸 문제가 발생
    • 기울기 소멸 문제: 오차가 멀리 전파될 때 계산량이 많아지고 전파되는 양이 점차 적어지는 문제 

순환 신경망 모델 

1. 다대일 모델

  • 입력은 순차열이지만 출력은 아닐 때 사용
  • 모든 단계에서 입력은 받지만 출력은 마지막 단계에서만 실시
  • 문장을 입력해서 긍정/부정을 출력하는 감성 분석에서 사용

2. 다대다 모델 

  • 입출력의 길이가 같은 순차열일 때 사용
  • 모든 단계에서 입력을 받고 모든 단계에서 출력
  • 언어를 번역하는 자동번역기에서 사용

3. 일대다 모델

  • 입력은 순차열이 아니지만 출력은 순차열일 때 사용
  • 첫 번째 단계에서만 입력하고 모든 단계에서 출력
  • 이미지를 입력해서 이미지에 대한 설명을 문장으로 출력하는 이미지 캡션에서 사용

4. 양방향 모델

  • 입력을 양쪽으로 살펴보는 방식
  • 상대적인 순서가 중요한 공간적 순서 관계를 갖는 데이터를 파악할 때 사용
  • 기계 번역을 할 때 문장을 순방향뿐만 아니라 역방향으로 파악하기 위해 사용

5. 인코더-디코더 모델(Seq2Seq 모델)

  • 입력과 출력의 길이가 서로 다른 순차열일 때 사용
  • 입력 데이터를 요약하는 인코더와 요약 데이터를 이용해서 출력 데이터를 생성하는 디코더로 구성
  • 기계 번역, 오디오 데이터를 립싱크 동영상으로 변환할 때 사용 

 

참고: 서지영, 『딥러닝 텐서플로 교과서』, 길벗(2022)