[딥러닝] 순환 신경망

sykim·2023년 7월 31일

딥러닝

목록 보기
2/3

순환 신경망(Recurrent Neural Network)

  • 시계열 데이터를 처리하기에 좋은 신경망 구조로 다음과 같은 처리 과정을 가진다.

ANN과 input, hidden, output layer를 가진다는 점은 동일하지만 RNN은
self-feedback을 하는 과정이 존재한다.

위 과정을 펼쳐보면 다음과 같다.

  • hth_t(t시점의 hidden state, 중간 계산 결과)는 ht1h_{t-1}(t-1시점의 상태)와 xtx_t(t시점의 입력)에 의해 정해진다는 것을 보여준다.
  • 각 상태에서 적용되는 가중치를 살펴보자면 xx(입력)에서 hh(상태)로의 가중치 (그림에서 U), hh에서 oo(출력)으로의 가중치, 시간을 통해 공유되는 vv가 존재한다.
    => RNN의 큰 특징으로 시간 별로 같은 가중치를 공유한다. 즉, 과거와 현재는 같은 가중치를 공유한다.
  • hth_t는 이전 상태의 압축본이라고 할 수 있다.

현재 그림에는 생략되어 있지만 초기 조건이 있어야한다.


RNN 문제 타입

Input: Many Output: Many

각 단계마다 input이 있고 output이 존재하며 모든 실제값과 예측된 output의 loss를 계산하여 backpropagation(경사하강법을 통해 예측값과 실제값의 loss를 최대한으로 줄여주는 과정) 해야한다. 번역이 이 문제 타입에 해당된다.

Input: Many Output: One

마지막 단계에서만의 output에 관심이 있으므로 마지막의 실제값과 예측된 output의 loss를 계산하여 backpropagation 해야한다. 시계열 데이터 예측이 이 문제 타입에 해당된다.

Input: One Output: Many

하나의 Input이 여러 개의 output을 발생시키고 모든 output과 실제값의 loss를 계산하여 backpropagation 해야한다. 생성이 이 문제 타입에 해당된다.

profile
배움을 기록하는 습관 들이기

0개의 댓글