혹시 팩토리얼에 대해 들어본 적 있나요? 팩토리얼(!)은 어떤 범위에 있는 수를 모두 곱하는 것을 의미합니다. 5!는 5×4×3×2×1, 즉 120입니다. 갑자기 팩토리얼이라는 개념을 설명하는 이유는 프로그래밍에서 팩토리얼을 해결할 때 재귀의 개념을 사용하기 때문입니다. 5!을 5×4×3×2×1로 나타낼 수 있지만 5×4!로 나타낼 수 있습니다. 4!은 4×3!로 나타낼 수 있죠. 이때 재귀의 개념이 사용됩니다. ‘5를 구하라’는 명령을 ‘5×4!을 구하라’고 할 수도 있고 다시 ‘5×4×3!을 구하라’는 식으로 바꿀 수도 있습니다. 팩토리얼의 개념을 이용해서 계속 한 단계씩 들어가는 방식인 것이죠. 순환 신경망에서 사용되는 재귀의 뜻은 이처럼 하나의 신경망을 계속적으로 반복해서 학습하는 것을 의미합니다. 사실 꿈속의 꿈이라는 말이 명확하게 다가오지 않듯이, 재귀라는 개념도 한 번에 완벽하게 이해하기란 어렵습니다.
일반적인 인공 신경망(ANN)에서는 신경망의 구성에 따라 가중치가 한 방향으로 이동하며 변합니다.
하지만 순환 신경망에서는 가중치의 변화가 한 방향으로 이동하는 것이 아니라, 다시 자기 자신에게 돌아오는 형태를 가지고 있습니다. 계속 반복적으로 가중치가 수정되는 모습이 나타나는 것이죠.
그림 8-6 | 일반적인 인공 신경망과 순환 신경망