# AI 이론/DeepLearning

RNN,LSTM,GRU에 대해서 알아보자

alz 2022. 5. 3. 15:55

 

시작에 앞서...

우리는 일상생활에서 미래를 예측합니다. 예를들어, 친구의 말을 대신 마무리하거나, 음식 냄새를 예상하는 것처럼 말이죠

이 장에서는 미래를 예측할 수 있는 네트워크인 순환 신경망에 대해서 알아보겠습니다.

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

순환신경망은 시계열(time series) 데이터를 분석해서 주식가격 같은 것을 에측하고 언제 사고 팔지 알려줄 수도 있고,

자율주행 시스템에서는 차의 이동경로를 에측하고 사고를 피하도록 도울 수 있습니다.

일반적으로 이 신경망은 지금까지 봤던 모든 네트워크처럼 고정 길이 입력이 아닌 임의 길이를 가진 시퀀스를 다룰 수 있는데, 문장,문서,오디오 샘플 등이 예시입니다.

RNN은 자동 번역, 스피치 투 텍스트와 같은 자연어 처리에 매우 유용합니다.

심층 신경망(Deep Neural Network,DNN)의 경우 파라미터들이 모두 독립적이었으나, RNN은 파라미터를 모두 공유하는것이 특징입니다.

순환 뉴런과 순환 층

순환신경망(RNN)은 피드포워드(입력층에서 출력층으로 한 방향으로만 흐르는)신경망과 매우 비슷하지만 뒤쪽으로 순환하는 연결이 있다는 점이 다릅니다.

왼쪽의 그림처럼 입력을 받아 출력을 만들고 자신에게도 출력을 보내는 방식입니다

RNN의 Process Sequences의 5가지 종류는 다음과 같습니다

학습방법

일반적인 DNN과 비슷하게, Gradient Descent,BPTT(backpropagation through time) 방식을 사용합니다.

각 Time Step마다 같은 매개변수 W,b가 사용되기 때문에 역전파가 진행되면 모든 Time Step에 걸쳐 합산될 것입니다

위의 그림처럼 짧은 시퀀스는 괜찮지만, 굉장히 긴 시퀀스로 RNN을 훈련하려면 어떻게 될까요?

많은 타임스텝에 걸쳐 실행되니까 펼친 RNN은 상당히 깊은 네트워크가 되겠죠

그렇다면 그라이디언트 소실과 폭주 문제를 일으킬 수 있고 또한 RNN이 긴 스퀀스를 처리할 때 입력의 첫 부분을 조금씩 잊어버리게 될 것입니다. 이를 어떻게 해결할까요?

단기 기억 문제 해결

RNN을 거치면서 데이터가 변환되므로 일부 정보는 매 훈련 스텝후 사라집니다. 이를 위해 LSTM 셀 에 대해서 알아보겠습니다.

 

C(t) : 장기 상태

h(t) : 단기상태

 

  •  C(t-1)은 네트워크를 왼쪽에서 오른쪽으로 관통하면서 삭제 게이트를 통해 일부 기억을 읽고,
    덧셈 연산을 통해 새로운 기억 일부를 추가합니다
  • 덧셈 연산후 이 장기(long-term) 상태가 복사되어 tanh 함수로 전달되고, 이 결과는 출력 게이트를 통해 걸러집니다

 

 

GRU 셀

 

게이트 순환 유닛(gated recurrent unit) 셀에 대해서 살펴 보겠습니다.

  • 두 상태 벡터가 하나의 벡터 h(t)로 합쳐집니다
  • 하나의 게이트 제어기z(t)가 삭제게이트와 입력게이트를 모두 제어합니다
    1을 출력하면 삭제게이트가 열리고, 입력게이트는 닫힙니다

 

'# AI 이론 > DeepLearning' 카테고리의 다른 글

트랜스포머 정리(1)  (0) 2022.05.09
어텐션 메커니즘  (0) 2022.05.09
TensorFlow Protocol Buffer  (0) 2022.04.26
규제를 사용해 과대적합 피하기  (0) 2022.04.20
배치 정규화  (0) 2022.04.20