[AI 이야기] RNN과 LSTM 알아보기

ActionPower
5 min readDec 16, 2022

인공지능 공부를 막 시작하는 분들이라면, 한번쯤은 다들 들어보셨을 RNN과 LSTM에 대해서 자세히 다뤄보도록 하겠습니다.

RNN(Recurrent Neural Network)

인공지능 분야에서는 두개의 RNN이 있습니다. Recursive Neural Network와 Recurrent Neural Network인데요. 이 글에서는 Recurrent Neural Network에 대해 다룹니다.

RNN은 입력값을 순서대로 하나씩 순차적으로 처리하는 네트워크 입니다. 따라서 일반적으로 RNN에 이용되는 데이터는 데이터 자체의 값 뿐만 아니라 데이터의 순서들도 의미가 있는 경우가 많습니다. 이렇게 해당 데이터의 순서도 그 데이터의 일부인 것을 “Sequential Data”라고 부릅니다.

예시: ‘hello’ 라는 단어. hello 와 olleh는 다른 결과를 낳을 수도 있음.

또한, RNN의 모든 셀은 서로 같은 파라미터를 공유하기 때문에, 파라미터는 중요한 요소중 하나입니다.

RNN에서 사용되는 수식은 다음과 같습니다:

위 그림에서 셀 A에서 수행되는 연산입니다.

은닉 상태값, 그 다음셀로 전달되어야 할 값인 ht를 구할때, Xi 에서 오는 가중치가 wx이고, 이전 시점 i — 1번째 셀에서 온 은닉 상태값인 ht−1 을 위한 가중치가 wh 입니다.

yt 식의 f 는 ReLU, Sigmoid, tanh 와 같은 비선형 활성화 함수(Logistic Activation Function)중 하나를 뜻합니다.

RNN은 이렇게 순서 또한 의미를 가진 데이터를 순서대로 처리하는 방법이지만, 순서가 쌓이다 보면 데이터 처리 과정의 초반에 입력된 데이터는 종반으로 갈수록 전달되지 못하는 단점이 있었습니다.

예를 들면,

1년간의 서울 기온 데이터를 신경망에 순차적으로 입력시켜 학습한다고 했을때, 1월과 같이 초반에 입력된 데이터는 12월까지 입력을 모두 받고 학습을 마쳤을때, 종반에서는 충분히 전달되지 못하여 연 초 기온은 예측을 잘 못하고, 연 말 기온만 잘 예측하는 문제가 발생할 수 있습니다.

이와 같은 문제를 장기 의존성 문제(The problem of Long-Term Dependencies) 라고 부릅니다.

이러한 문제를 해결하기 위해, LSTM이라는 RNN의 변형이 나왔습니다.

LSTM(Long Short-Term Memory)의 구조

LSTM에는 3개의 게이트: 입력 게이트, 삭제 게이트, 출력 게이트와, 2개의 상태: 장기 상태(셀 상태), 단기 상태(은닉 상태) 가 있습니다. LSTM은 셀 상태에서 중요한 정보를 유지하고, 불필요한 정보를 지운 뒤 다음 셀로 정보를 전달합니다.

입력 게이트

  • 현재 정보를 기억하기 위한 게이트 입니다.
  • 시그모이드 함수를 지나 it 는 0~1사이의 값
  • tanh를 지나 gt 는 -1~1사이의 값
  • 이 두 값을 가지고 기억할 정보의 양을 결정하게 됩니다.

삭제 게이트

  • 불필요한 기억을 삭제하기 위한 게이트 입니다.
  • 시그모이드 함수를 지나 ft 는 0과 1사이의 값입니다.
  • 0에 가까울수록 정보가 많이 삭제된 것이고, 1에 가까울수록 정보를 온전히 기억한 것이 됩니다.

셀 상태(장기 상태)

  • 삭제 게이트에서 일부 기억을 잃은 상태 입니다.
  • it 와 gt 두 값에 대해서 원소별 곱을 진행
    - 같은 크기의 두 행렬에서 같은 위치의 성분끼리 곱
  • 곱이 진행된 값을 삭제 게이트의 결과값과 더함
  • 만약 삭제게이트의 ft 가 0이 된다면, Ct-1 의 영향력 또한 0이 됩니다.
  • 만약 입력게이트의 it 가 0이 된다면 Ct 값은 오직 Ct-1 에 의존합니다.
  • 결과적으로 삭제 게이트는 이전 시점의 입력을 얼마나 반영할지를 의미하고, 입력 게이트는 현재 시점의 입력을 얼마나 반영할지를 결정하게 됩니다.

출력 게이트와 은닉 상태(단기 상태)

출력 게이트는 현재 시점 t 의 x 값과 이전시점 t-1 의 은닉 상태가 sigmoid 함수를 지난 값 입니다.

  • xt 와 ht-1 이 시그모이드 함수를 지나 ot 출력 게이트 값을 결정합니다.
    - 현재 시점 t의 은닉 상태를 결정.
  • 셀 상태값(장기 상태값)이 tanh를 지나 -1~1사이의 값을 출력합니다.
  • 그렇게 나온 두 값, 출력 게이트값과 장기 상태값이 곱해지면서 값이 걸러지는 효과가 발생하게 됩니다.
  • 그렇게 그 값은 출력층으로도 향합니다.

이렇게 RNN과 LSTM에 대해서 간단히 알아보았습니다. 관련된 내용을 찾아보시는 분들께 이 정보가 도움이 되었으면 좋겠습니다. 감사합니다!

액션파워에 대한 더 많은 이야기가 궁금하다면?
More about Action Power

--

--

ActionPower

Cutting-edge AI for the Benefit of the World. Unlock the potential of AI for a better tomorrow! For more details: actionpower.kr/en