RNN

까만호랭·2023년 12월 4일

RNN이란

RNN은 Recurrent Neural Network의 약자로 순환 신경망을 의미하며 입력과 출력을 시퀀스 단위로 처리한다.
시퀀스 : 문장 같은 단어가 나열된 것

RNN 특징

CNN 등의 다른 신경망들은 전부 은닉층에서 활성화 함수를 지난 값은 오직 출력층 방향으로만 향했다.
이와 같은 신경망들을 Feed Forward Neural Network이라고 한다. 그런데 그렇지 않은 신경망들이 있는데 RNN이 그 중 하나다. RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내면서,
다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징을 갖고있다.

이전 값들을 전달받는 과정들을 통해 예측이 가능하다.

RNN은 활성화함수로 Relu가 아닌 tanh를 사용한다.


이 입력층과 출력층은 실제로

이러한 여러 과정을 거쳐 나오게 된 것이다.

  • 현재 시점 t에서의 메모리 셀이 갖고있는 값은 과거의 메모리 셀들의 값에 영향을 받은 것임을 의미한다.

  • RNN에서 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀이라고 하며 메모리 셀, RNN 셀 이라고 부른다.

  • 메모리 셀이 출력층 방향으로 또는 다음 시점 t+1의 자신에게 보내는 값을 은닉 상태(hidden state)라고 한다.
    즉, t 시점의 메모리 셀은 t-1 시점의 메모리 셀이 보낸 은닉 상태값을 t 시점의 은닉 상태 계산을 위한 입력값으로 사용한다

📌 RNN구조

📖 one to many
  • 한 개의 값이 들어가 여러 값이 나오는 상황 - 이미지 캡션에 사용
    ex) 사람 얼굴 이미지를 통해 사람이 무슨 행동을 하고 있다. 고 표현 가능
📖 many to one
  • 여러 개의 값을 주어 한 개의 값이 나오는 상황(이항분류)
    ex)날씨가 좋고 친구가 커피도 사줬어 - 기분이 좋아
    감성 분류나 스팸메일 분류 등에 사용된다.
📖 many to many
  • 여러 개의 값을 통해 여러 값이 나오는 상황
    형태소 분석, 번역 등에 사용된다.
profile
남들과 함께 발자국을 남기는 까만호랭

0개의 댓글