본문 바로가기
AI, 빅데이터/AI

[AI] RNN(Recurrent Neural Network)와 LSTM, GRU의 개념알기

by Foxy현 2022. 12. 17.
728x90
반응형

우리의 실생활 데이터는 많은 부분에서 '순서(Sequence)'가 중요합니다.

 

예를 들어 I Like Apple이라는 문장이 있습니다.

순서가 바뀐다면 I Kiel ppAle로 될 수 있는 거죠. 그렇게 된다면 우리는 이해를 못 하게 되겠죠?

 

텍스트가 아니더라도, 음성, 헬스 케어 데이터, 주식 데이터 등 수많은 분야에서 순서는 중요합니다.

이러한 순서 처리를 위한 기본적인 Neural Network가 바로 RNN(Recurrent Neural Network)입니다

다음은 RNN의 기본적인 구조입니다. 반복되는 구조네요

 

 

RNN은 장기 의존성의 문제를 가집니다.

이를 해결하기 위한 방법 중 하나가 바로 LSTM(Long Short-Term Memory)인데,

LSTM은 RNN에 비해 오랫동안 정보를 기억하는 기능을 갖고, 이 정보를 삭제하거나 더하는 gate의 구조 또한 가집니다.

 

LSTM의 구조에 대해서 알아보겠습니다.

RNN과 비슷한 구조네요. 하지만 특정 부분에서 독특한 구조를 가지고 있습니다.

 

좀 더 자세히 알아보겠습니다.

Cell State를 통과 시키는 오랫동안 정보를 기억하는 기능을 갖습니다.

sigmoid로 이루어져 있고, 곱하는 연산으로 수행됩니다.

위의 그림으로 보면 Input, Forget, Output Gate가 있겠네요.

 

Forget Gate는 이전 Cell State로부터 정보를 버릴지 버리지 않을지 결정합니다.

이전 상태의 Hidden State와 현재 상태의 Input에 sigmoid 함수를 거쳐 0과 1 사이의 값으로 뽑습니다.

0에 가까울수록 삭제된 정보이며 1에 가까울수록 온전히 기억하게 됩니다.

 

Input Gate는 현재의 새 정보를 Cell State를 더합니다.

tanh로 -1과 1 사이의 값을 가지게 되며 현재 cell state를 나타냅니다.

sigmoid로 gate의 역할(0과 1사이의 값)을 하게 됩니다.

 

State Gate는 1단계 forget Gate의 값, 2단계 cell state의 값, input gate의 값으로 cell state를 업데이트합니다.

만약 forget gate와 input gate 둘 다 0이라면 이전 단계의 cell state가 그대로 state가 됩니다.

만약 둘다 1이라면, 이전 단계의 cell state는 전부 잊히고 현재 상태의 cell state가 그대로 다음 상태로 넘어갑니다.

 


다음으로 간소화된 LSTM인 GRU(Gated Recurrent Unit)에 대해 간략히 알아보려고 합니다.

GRU에서는 LSTM과 다르게 게이트가 총 2개이며, Reset Gate(r)와 Update Gate(z)가 있습니다.

Reset Gate는 Hidden state를 받아 sigmoid 처리를 하고 그 값을 얼마나 반영할지 선택합니다.

Update gate는 이전 상태의 hidden state와 입력 값을 sigmoid 처리합니다.

-1 연산을 통해 이전 상태를 얼마나 잊을지, tanh는 현재 상태를 얼마나 반영할지에 대해 결정하여 최종 결과를 다음 상태의 hidden state로 업데이트합니다.

 

 

 

 

728x90
반응형