GRU, LSTM

은영·2023년 9월 6일
0

RNN(Recurrent Neural Network)

: 순차데이터나 시계열 데이터를 처리할 때 사용하는 순환 신경망

RNN 기본 구조


t시점의 input data x가 들어갔을 때 해당 데이터는 2개의 출력으로 나뉜다.
하나는 그대로 다음 hidden layer에 출력되어 넘겨주고 다른 하나는 다시 자신에게 가중치를 주는 것이다.

이를 일대일 구조가 아닌 다대다 구조로 한 번 보도록 하자


위와 같이 보았을 때.

순차 데이터 중 t시점의 데이터에 관한 출력값의 경우 x(t)뿐 아니라 t시점 이전에 들어온 x(t-1)과 같은 데이터의 영향을 받아 값을 출력한다는 것.

그렇기에 RNN 모델을 forward할 때는 매번 output뿐 아니라 hidden값까지 함께 출력해주어야 한다


LSTM(Long Short Term Memory)

: RNN의 경우 모든 이전 입력들의 영향을 받기 때문에 중요한 시점을 제대로 파악하기 어렵다. 이를 해결하기 위해 나온 모델이 LSTM. hidden state에 cell state를 추가한 것이다. cell state는 이전 시점으로 부터 영향을 받은 hidden state중 중요한 데이터만을 남기기 위한 것.

이러한 cell state에 어떤 정보를 남길지 정하기 위해 3가지 게이트를 이용한다.

  • forget gate : 어떤 정보를 셀에서 제거할 것인가
  • input gate : 어떤 정보를 셀에서 추가할 것인가
  • output gate : 셀에 담긴 정보를 파악해 어떤 값을 출력할 것인가

이러한 셀 스테이트를 이용해 더 중요한 시점의 데이터가 어떤 것인지 유용하게 파악할 수 있다.


GRU(Gated Recurrent Unit)

: LSTM과 마찬가지로 게이트를 이용해 중요한 시점의 데이터를 파악하기 위한 모델 하지만 기존 hidden state를 2개의 게이트를 이용해 필요한 정보를 파악한다.

  • reset gate : 이전 시점의 hidden state 값과 현재 t시점의 x의 값을 시그모이드 함수에 적용하여 0~1 사이 값을 받아내어 이전 시점의 데이터를 어느 정도 적용시킬지 계산한다.
  • update gate : 현재 정보를, 과거의 정보를 각각 얼마의 비율로 반영할지 계산한다.

0개의 댓글

관련 채용 정보