RNN 기초 끝내기

Cammie·2022년 9월 25일
0

딥러닝

목록 보기
2/2
post-thumbnail

sequential data (순차 데이터)

순서가 있는 데이터
⇒ 주의! 이러한 순차 데이터는 학습시에 데이터들의 순서를 섞어서 훈련하지 않도록 한다.

순서가 있는 데이터의 경우 학습 시에 이전 데이터들에 대한 정보를 “기억”하고 있어야 한다.


데이터의 흐름이 앞으로만 전달되는 피드포워드 신경망(feedforward neural network; FFNN)에서는 이전 데이터들에 대한 정보를 기억하는 메모리가 없다.

완전 연결 신경망인 MLP와 합성곱 신경망 CNN이 피드포워드 신경망에 속한다.

RNN은 이러한 순차 데이터를 다룰 수 있도록 구성된 모델이다.


RNN (Recurrent Neural Network)

순환 신경망 ⇒ 이전 데이터의 정보가 신경망 층에서 순환되며 기억하도록 구성된 모델

완전 연결 신경망에서 순환하는 고리를 추가

순환 데이터 A → B → C 가 있을 때, A를 학습한 출력값 OAO_A 가 B 데이터 학습시 같이 들어가게 된다.

C 데이터 학습 시에는 B를 학습한 출력값 OBO_B 가 들어간다. 이때 OBO_B에는 A에 대한 정보 OAO_A도 포함되어 있었으므로, 결과적으로 C 학습시에 이전 데이터 B와 A의 정보가 전부 들어가게 된다.


✔️ 용어 체크

타임 스텝 (time step) ; 데이터를 처리하는 한 단계

※ 첫번째 타임 스텝에서는 이전 은닉 상태가 없으므로, 이를 0으로 두고 계산한다.

일반적으로 순환층 (은닉층; 히든 레이어)의 활성화 함수로는 하이퍼볼릭 탄젠트 함수 tanh 가 사용된다.

※ tanh 함수: -1~1사이의 범위를 가진다.


🧐 구조 살펴보기

hth_t가 히든 레이어에서 계산되는 값으로, 이 값이 타임스탭을 돌면서 이전 데이터의 정보를 기억할 수 있게 한다.

따라서 기존에는 학습되는 가중치가 입력 데이터 x에만 붙었던 반면, RNN에서는 hth_t에도 가중치가 붙어 학습이 되도록 구성되어 있다.

따라서 이 hth_t항을 제외하고는 기존의 MLP와 비슷하게 구성되어 있다.

또한, 위에서 언급했듯이 RNN에서는 보통 활성화 함수로 tanh를 사용하기 때문에 위 이미지에서도 tanh로 감싸 계산되는 것을 확인할 수 있다.

RNN 이미지를 검색하면 히든 레이어에서 값이 순환이 되는 형태로 모델이 표현되어 있는 경우가 있는데, 이는 RNN이 입력 xt_t가 들어오면 이전 타임스탭에서 계산된 ht1h_{t-1}와 함께 hth_t가 계산되는 반복적인 형태이므로 그렇게 표현한 것이다.


이러한 RNN은 다양한 형태의 데이터 입력으로 다양한 유의미한 결과들을 도출할 수 있다.

예를 들어, 한 문장이 들어와 단어 단위로 입력 x에 들어가게 되면, 이를 다른 언어의 문장으로 번역을 하는 형태로 활용이 될 수 있다.
또는, 해당 문장이 부정적인 감정을 나타내는지 판단하는 형태로 활용이 될 수도 있다.



참고 : 혼자 공부하는 머신러닝+딥러닝 (저자 박해선)


0개의 댓글