본문 바로가기
AI/딥러닝

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

by 남오공 2022. 5. 13.
728x90
더보기

순환 신경망(Recurrent Neural Network)의 구조와 작동 방식에 대해 알아보자 

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

  • 입력과 출력을 시퀀스 단위(연속형 데이터)로 처리하기 위해 고안된 신경망 시퀀스 모델이다.
  • 연속형 데이터(Sequentail Data)의 의미는 어떠한 순서로 오는지에 따라 단위 의미가 달라지는 데이터를 의미한다.
  • 시퀀스 단위로 처리되는 것의 예로 연속적인 주가 흐름,  구글 번역기 긴 문장 등의 예가 있다.

시퀀스 단위(즉 연속형 데이터)의 예

  • 그렇다면 RNN은 어떤 구조를 가졌기에 연속형 데이터를 처리할 수 있는 것일까?

RNN의 구조

왼쪽에 위치한 이미지의 3가지 화살표를 보면 다음의 의미와 같다

  1. 입력 벡터(Xt)가 은닉층에 들어가는 것을 나타내는 화살표 (Whx)
  2. 은닉층(ht)로부터 출력 벡터가 생성되는 것을 나타내는 화살표(Woh, b0)
    (*RNN셀 :RNN에서는 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀이라고 표현한다)
  3. 은닉층에서 다시 은닉층으로 돌아가는 화살표(Whh,bh)
    (3번 과정이 기존에 배웠던 신경망과의 차이를 보여주는 화살표이다.)

오른쪽에 위치한 이미지들은 사이클을 그리는 화살표 대신에 여러 시점으로 펼처서 표현한것을 나타낸 것이다.

 

기존 신경망의 학습 과정

일반적인 신경망들은 위 그림과 같이 은닉층에서 활성화 함수를 지닌 값은 오직 출력층 방향으로만 향했지만 순환 신경망에서는 은닉층에서부터 다시 은닉층으로 입력을 보내는 순환(재귀)하는 특징을 가진다.

때문에  순환(Recurrent) 신경망(Neural Network)이라는 이름을 붙이게 되었다.

 

그렇다면 RNN의 장점은 무엇이고 단점은 무엇일까?

장점

  • 모델이 간단하고 어떤 길이의 연속형 데이터라도 처리를 할 수 있다.(문장 길이가 천개든 상관없음)

단점

  • 순차적으로 입력되기에 GPU의 연산의 핵심인 병렬화가 불가능하다.(즉 처리가 느리다)
  • 기울기 폭발(Exploding Gradient), 기울기 소실(Vanishing Gradient) 문제를 가지고 있다.
  • 기울기 정보의 크기를 적절하게 조정한다면 문제를 해결할 수 있지 않을까에서 고안된 아이디어가
    장단기 기억망(Long-short Term Memory, LSTM)이다. 이는 다음 글에서 서술하도록 하겠다.

 

댓글