Recurrent Neural Network

the-lectures
machine-learning
RNN에 대해서 알아보자.
Author

JS HUHH

Published

February 14, 2024

TL; DR

RNN 찍먹하자.

기본 구조

RNN은 Recurrent Neural Network의 약자로, 시퀀스 데이터를 처리하는 데 사용되는 신경망이다. 시퀀스 데이터란, 데이터의 순서가 중요한 데이터를 말한다. 예를 들어, 문장, 음성, 동영상 등이 있다. RNN은 이러한 계열, 순서를 지니는 데이터에 활용된다.

다른 신경망과 구별되는 RNN의 핵심 발상은 한번 신경망을 거친 결과가 뒤에 따라온 데이터와 함께 학습에 다시 활용된다는 것이다. 그림으로 표현한 아래의 내용을 확인하자.

피드백 루프로 표현하는 방식

피드백 루프로 표현하는 방식

 

나란히 아래로 표현하는 방식

나란히 아래로 표현하는 방식

피드백 루프로 표현하는 방식이 혼란의 여지가 있으므로 나란히 표현하는 방식을 활용해 구체적인 계산을 살펴보자.

 

 

투입이 3개일 때

투입이 3개일 때

 

같은 웨이트와 바이어스를 공유한다!

같은 웨이트와 바이어스를 공유한다!

약점

피드백 루프가 점점 커지거나 피드백 루프가 점점 약해지는 것을 막기 힘들다. 이는 무엇을 의미할까? 체인의 법칙에 따라서 역전파를 하는 상황을 생각해보자. 이에 따라서 특정 도함수의 계수가 지나치게 크거나 작아지게 된다. 이는 학습률에 따른 탐색 범위를 지나치게 왔다갔다 하게되거나 특정 범위를 벗어나지 못하게 만들 수 있다.

너무 큰 웨이트를 지닐 때 효과가 증폭된다.

너무 큰 웨이트를 지닐 때 효과가 증폭된다.

 

역전파시 경사하강의 탐색 경로에 문제가 생길 수 있다.

역전파시 경사하강의 탐색 경로에 문제가 생길 수 있다.

탐색 범위가 큰 값과 작은 값을 오간다.

탐색 범위가 큰 값과 작은 값을 오간다.

 

탐색 범위가 과하게 좁아진다.

탐색 범위가 과하게 좁아진다.

몇 가지 더

만일 문장의 토큰(단어)를 투입해야 하는 경우를 생각해보자. 당연히 단어를 그대로 넣을 수 없으니 W2V과 같은 방법을 써서 토큰을 벡터로 바꿔야 한다. 이때 RNN의 역전파 과정에서 이 W2V 네트워크 역시 조정될 수 있다는 점을 기억하자.

시퀀셜 데이터를 인풋으로 쓰기 때문에 인풋의 길이를 어느 정도는 통제할 수 있다. 예를 들어 10개의 시리즈를 지닌 데이터와 5개의 데이터를 지닌 시리즈가 있다고 하자. 인풋으로 2개를 쓴다면, 이 두 시리즈 모두를 RNN 학습에 동원할 수 있다.