인공지능 - RNN(Recurrent Neural Network)

2022. 12. 5. 01:42인공지능

이전의 MNIST데이터를 활용한 실습을 진행할 때는 CNN 모델을 사용하여서 실습을 진행했었다.

 

그리고 이번 포스트 에서는 순환신경망(RNN, Recurrent Neural Network)에 대해서 다루어 보겠다.

 

CNN 모델은 단일 이미지에서의 객체의 인식에 적합한 모델이다.

 

그러나 RNN의 경우는 시간적인 순서를 가지는 데이터(자연어, 동영상, 음악 등)를 학습하기에 적합한 모델이다.

 

그래서 시간 순서를 기반으로 데이터들의 상관관계를 파악하고, 이것을 기반으로 과거, 현재의 데이터를 통해 미래에 발생될 값을 예측할 수 있게 된다.

 

즉, 이전의 정보가 현재 입력에 대한 결과를 유추할 때 사용되어서 더 나은 결과를 예측하는 것을 돕게 된다.

 

RNN활용의 예로는 구글에서 만든 구글번역기 등이 있다.

 

RNN모델의 구조

조금 더 자세하게 설명하면 RNN도 신경망의 일종으로 입력층, 은닉층, 출력층으로 구성된다.

 

여기서 은닉층은 순환적 구조를 가지는 계층으로 구성되게 된다.

 

그리고 이 은닉층을 RNN에서는 메모리 셀(memory cell) 또는 셀(cell)이라고 부른다.

 

RNN 모델은 현재 입력된 정보와 이전의 정보를 함께 고려하여 현재의 결과를 예측하는 방식으로 동작한다.

 

셀은 입력으로 들어온 정보를 학습하고 정보를 각 셀에서 기억하고 있다가 다음 셀로 값을 전달하게 된다.

 

전달된 이전 셀의 상태는 현재 셀에서 결과를 예측하기 위한 연산에서 사용된다.

 

 

 

tensorflow의 simpleRNN문서 : https://www.tensorflow.org/api_docs/python/tf/keras/layers/SimpleRNN