(Recurrent neural network, RNN) 순차적 데이터 또는 시계열 데이터로 훈련된 심층 신경망으로, 순차적 입력을 기반으로 순차적 예측 또는 결론을 내릴 수 있는
머신 러닝 모델을 만든다.
RNN은 과거의 일일 홍수, 조수, 기상 데이터를 기반으로 일일 홍수 수준을 예측하는 데 사용할 수도 있고 언어 번역, 자연어 처리(NLP), 감정 분석, 음성 인식, 이미지 캡션과 같은 순서적 또는 시간적 문제 해결에도 사용할 수 있다.
RNN 작동 방식
순환 신경망은
피드포워드 신경망 및
콘볼루션 신경망(CNN)과 같은 전통적인 신경망과 마찬가지로 학습 데이터를 활용하여 학습합니다. 이전 입력에서 정보를 가져와 현재의 입력과 출력에 영향을 줄 때의 '메모리'가 이 신경망들의 차이점입니다.
전통적인 ]]딥 러닝\\은 입력과 출력이 서로 독립적으로 가정하지만, 순환 신경망의 출력은 시퀀스 내의 이전 요소에 따라 달라집니다. 미래의 이벤트도 주어진 시퀀스의 출력을 결정하는 데 도움이 되지만, 단방향 반복 신경망은 예측에서 이러한 이벤트를 설명할 수 없습니다.
어떤 일이 아주 쉽다는 의미의 '식은 죽 먹기'라는 관용구를 예로 들어 RNN을 설명해 보겠습니다. 관용구는 특정 순서에 따라 표현되어야 의미를 가집니다. 때문에 순환 긴경망은 관용어에서 각 단어의 위치를 고려하고, 이 정보를 사용해 다음 순서에 올 단어를 예측합니다.
'식은 죽 먹기'의 각 단어는 순서가 중요한 시퀀스의 일부입니다. RNN은 각 시간 단계에서 숨겨진 상태를 유지하여 컨텍스트를 추적합니다. 피드백 루프는 숨겨진 상태를 한 단계에서 다음 단계로 전달하여 생성됩니다. 숨겨진 상태는 이전 입력에 관한 정보를 저장하는 메모리 역할을 합니다. 각 시간 단계에서 RNN은 현재 입력(예: 문장의 단어)을 이전 시간 단계의 숨겨진 상태와 함께 처리합니다. 이를 통해 RNN은 이전 데이터 포인트를 "기억"하고 그 정보를 사용하여 현재 아웃풋에 영향을 줄 수 있습니다.
순환 신경망의 또 다른 두드러진 특징은 네트워크의 각 계층에서 매개변수를 공유한다는 것입니다. 피드포워드 네트워크는 노드마다 가중치가 다르지만, 순환 신경망은 네트워크의 계층마다 가중치 매개변수가 동일합니다. 그러면서도 강화 학습을 용이하게 하기 위해 역전파 및 경사 하강법을 통해 가중치를 조정합니다.
순환 신경망은 순전파 및 BPTT(시간 전파를 통한 역전파) 알고리즘을 활용하여 그래디언트(또는 도함수)를 결정합니다. 이것은 전통적인 역전파와는 약간 다르며, 시퀀스 데이터에 특화되어 있습니다. BPTT의 원리는 모델이 출력 계층에서 입력 계층으로 오류를 계산하여 스스로 학습하는 기존의 역전파와 동일합니다. 이 계산을 하면 모델의 매개변수를 적절하게 조정하고 맞출 수 있습니다. BPTT는 각 시간 스텝에서 오차의 합을 구하는 반면, 피드포워드 신경망은 각 계층에서 파라미터를 공유하지 않기 때문에 오차의 합을 구할 필요가 없다는 점에서 기존 접근 방식과 다릅니다.
【인용】IBM