본문 바로가기
인공지능 (AI)

RNN(순환 신경망)의 정의, 개념, 구조

by worldproblemsolver 2024. 12. 27.

 

지난 블로그 포스팅에서는 CNN(합성곱 신경망)의 특징과 활용법 및 CNN과 RNN의 차이에 대해서 알아보았습니다. 

 

 

CNN(합성곱 신경망)의 특징과 활용 사례

지난 포스팅에서는 CNN (합성곱 신경망)의 계층 구조에 대해서 자세하게 다뤄보았습니다.  CNN(합성곱 신경망)의 계층 구조AI(인공지능) 기술이 발전하면서 최근에는 AI를 활용하는 기업이 증가하

hope2solveproblems.com

 

최근에는 다양한 분야에서 적극적으로 AI가 활용되기 시작했는데, 그중에서도 '자연어 처리'는 인간의 언어를 기계로 처리하기 위해 필수적인 기술이라는 점에서 많은 주목을 받고 있습니다.

일상적인 커뮤니케이션에 이용되는 구어나 논문과 같은 문어를 AI가 올바르게 이해하기 위해서는 자연어 처리가 필수적입니다. 그리고, 그중에서도 특히 RNN(순환 신경망)은 많은 성과를 올리고 있는 알고리즘이며, 향후의 활용도 기대되고 있습니다.

 

지난 블로그 포스팅에서 RNN은 문장과 같은 연속적인 정보를 이용할 수 있다는 점이 특징이라고 잠깐 언급하기도 했습니다. 그래서 이번 포스팅에서는 자연어 처리로 일약 각광을 받은 RNN에 대해 자세히 소개해 드리려고 합니다.

 

그럼 먼저 RNN의 이름의 의미와 정의부터 알아보도록 하겠습니다.


RNN이란

RNN 이란 Recurrent Neural Network를 줄인 말로, 한국에서는 '순환 신경망' 또는  '재귀형 신경망' 등으로도 불리고 있습니다. 이런 RNN은 문장 등의 연속적인 정보를 이용할 수 있기 때문에 많은 주목을 받고 있습니다.

기존의 신경망은 문장 등의 연속적인 정보를 이용한다는 개념이 아니었습니다. 입력값 (input data) 또는 출력값(output data)은 서로 독립되어 있다고 가정하는 것이 일반적이었습니다.

그러나 이러한 가정이 모든 경우에 적합한 것은 아닙니다. 예를 들어서 문장 안에서 다음 말을 예측할 필요가 있다면 그전의 말이 무엇이었는지를 기억해 두지 않으면 예측을 세우는 것이 어려워질 것입니다. 이런 예측을 가능하게 하는 것이 RNN에 사용되는 이전에 계산된 정보를 기억하기 위한 기억력입니다.

RNN의 R은, 순환이나 재귀/회귀 나타내는 'Reccurent'라고 하는 말입니다. 이 단어에서 알 수 있듯이 RNN은 직전의 말에 좌우되지 않고 일정한 조건 아래에서 특정한 말을 외우면서 작업을 수행하는 것이 가능합니다.


RNN의 구조

딥러닝에 이용되는 DNN(심층 신경망)이라는 기술에서는 입력층으로부터 입력된 데이터를 '중간층 1, 중간층 2, 중간층 3, 중간층, 중간층 4, 등등'과 같이 층의 순서에 따라 데이터를 전파하고 있습니다. 그래서 중간층 1의 연산 결과를 다시 중간층 1에 대입해 다시 연산하여 나가는 일은 없습니다.

그에 반해 RNN(순환 신경망)의 경우, '입력층', '1층의 중간층', '출력층'의 3층으로 이루어져 있습니다. RNN은 DNN 과는 달리 중간층에서의 연산 결과를 출력층에 출력해 나가는 동시에 같은 연산 결과를 다시 자기 자신(중간층)에 입력해 재연산해 나가는 것입니다.

중간층에서 출력된 연산 결과를 다시 자기 자신(중간층)에 대입하는 작업을 계속 반복하기 때문에 같은 중간층이 몇 번이나 중복되어 사용되게 됩니다. 그 때문에, 복수의 중간층으로 이루어진 뉴럴 네트워크로 보이는 것입니다.

RNN 과정 중 중간층에서의 출력을 다시 중간층에 대입해 가는 경우에는 '지금 대입되는 과정은 몇 번째의 대입인가'를 명확화하는 것이 중요합니다. 그러기 위해서는 시간축(또는 상태 측)을 사용이 파악하는 데 도움이 됩니다.

 

BPTT

RNN 학습에서는 일반 신경망과 마찬가지로 수직 관계에 의해 연산되지만 가중치에 따른 미분을 구해야 합니다. 그때, 주로 이용되는 방법으로는 BPTT 법(Back Propagation Through Time), RTRL 법(Real Time Recurrent Learning), EKF(Extended Kalman Filter) 법 등 크게 세 가지가 있습니다.

 

BPTT는 인터넷 환경에 적합하게 동작해야 하는 프로그램에서는 사용하기가 어렵다는 단점이 있지만,

보통 다른 기법들보다는 비교적 간단한 편이라 더 많이 이용되고 있는 편입니다.

 


 

오늘 포스팅에서는 RNN의 개념 및 정의와 구조에 대해서 다뤄보았습니다.

 

아마 개념적으로만 다뤄서 더 자세한 내용이 궁금하신 분들도 계실 텐데, 인공지능에 대해서 깊게 연구할 목적이 아니라면 이런 개념들이 있구나 하고 원리 정도만 이해해 주시면 좋을 것 같습니다.

 

다음 포스팅에서는 이어서 RNN의 활용 범위와 사례들에 대해 다뤄보겠습니다.