순환 신경망(RNN)
RNN(Recurrent Neural Network)은 시퀀스(Sequence) 모델로 입력과 출력을 시퀀스 단위로 처리한다.
단어 시퀀스로 이루어진 언어모델들이 대표적인 시퀀스 모델이다. RNN은 딥러닝에서 가장 기본적인 시퀀스 모델이라고 할 수 있다.
우선 순환 신경망의 가장 큰 특징은 그림과 같이 활성화 함수를 통해 나온 결과를 출력층 방향으로도 보내주는 것이다.
RNN에서 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀(cell)이라고 한다. 이 셀은 이전의 값을 기억하려고 하는 일종의 메모리 역할을 수행하므로 이를 메모리 셀 또는 RNN 셀이라고 표현한다.
위와 같이 그림을 그리면 조금더 직관적으로 이해하기 쉽다. 은닉층의 메모리 셀은 각각의 시점(time step)에서 바로 이전 시점에서의 은닉층의 메모리 셀에서 나온 값을 자신의 입력으로 사용하는 재귀적 활동을 하고 있다.
피드 포워드 신경망에서는 뉴런이라는 단위를 사용했지만, RNN에서는 뉴런이라는 단위보다는 입력층과 출력층에서는 각각 입력 벡터와 출력 벡터, 은닉층에서는 은닉 상태라는 표현을 주로 사용한다. 따라서 위의 그림은 입력 벡터의 차원이 4, 은닉 상태의 크기가 2, 출력층의 출력 벡터의 차원이 2인 RNN이 시점이 2일 때의 모습이다.
RNN 모델은 위와 같이 다양한 방식으로 설계할 수 있다. 또한 입,출력의 시점을 결정하는 단위는 사용자가 결정할 사항이지만 보편적으로는 단어벡터이다.
many-to-one 모델의 한 예시인 스팸 메일 분류 RNN 아키텍처이다.
위는 many-to-many 모델인 개체명 인식을 수행할 때의 RNN 아키텍처이다.
RNN에서 이용되는 수식을 포함하여 좀더 상세히 보면 다음과 같다.
현재 시점 t에서의 은닉 상태값을 ht라고 정의하면 은닉층의 메모리 셀은 ht를 계산하기 위해서 총 두 개의 가중치를 갖게 된다. 하나는 입력층에서 입력값을 위한 가중치 Wx이고, 하나는 이전 시점 t-1의 은닉 상태값인 h(t−1)을 위한 가중치 Wh이다.
이를 식으로 표현하면 다음과 같다.
각 벡터와 행렬의 사이즈는 다음과 같다.
배치 크기가 1이고, d와 Dh 두 값 모두를 4로 가정하였을 때, RNN의 은닉층 연산을 그림으로 표현하면 아래와 같다.
'Drawing (AI) > DeepLearning' 카테고리의 다른 글
Word Embedding(1) (2) | 2023.05.11 |
---|---|
Long Short-Term Memory (LSTM) (0) | 2023.05.05 |
Udemy - 딥러닝의 모든 것(Softmax & Cross-Entropy) (0) | 2023.04.23 |
Udemy - 딥러닝의 모든 것(CNN) (0) | 2023.04.06 |
Pytorch Basic (0) | 2023.03.18 |