RNNRecurrent Neural Network

앞의 요약을 이어받아 한 마디씩 처리하는 신경망

핵심 정리
  • RNN (Recurrent Neural Network, 순환 신경망)은 글이나 소리처럼 순서가 있는 자료를 한 마디씩 차례로 받아들이는 신경망이에요.
  • 칸이 여러 개 늘어선 것처럼 보이지만 실제로는 같은 칸 하나를 되풀이해서 쓰는 거예요.
  • 매번 넘기는 것은 지금까지 들은 것을 짧게 추린 요약 하나예요. 원문을 그대로 들고 다니지 않아요.
  • 그래서 문장이 길어지면 맨 앞에서 들은 말이 점점 뭉개져요. 이게 RNN의 가장 큰 약점이에요.
  • 순서대로만 갈 수 있어서 여러 마디를 한꺼번에 처리하지 못해요. 트랜스포머가 자리를 넘겨받은 이유예요.
목차

1비유로 이해하기

수련회 방에서 귓속말 놀이를 하는데 규칙이 조금 달라요. 진행자가 문장을 한 마디씩 끊어 읽어요. 맨 앞자리 사람은 "오늘"만 듣고, 들은 것을 짧게 추려 옆자리에 속삭여요. 두 번째 사람은 앞에서 넘어온 그 속삭임과 새로 들은 "비가"를 합쳐 다시 짧게 추려 넘겨요. 세 번째도 네 번째도 똑같이 해요.

넘길 수 있는 것은 짧은 한마디뿐이에요. 종이에 적을 수도 없어요. 그래서 문장이 길어질수록 맨 앞에서 들었던 "오늘"은 여러 사람을 거치며 점점 뭉개져요. 마지막 사람이 내놓는 말에는 방금 들은 부분만 또렷하게 남아 있어요.

2자세히 알아보기

한 번에 한 마디씩만 받아요

보통의 신경망자료를 통째로 한 번에 받아요. 사진 한 장, 표 한 줄처럼 크기가 정해진 덩어리를 넣으면 답이 나오죠. 그런데 문장은 길이가 제각각이에요. 세 마디짜리도 있고 삼백 마디짜리도 있어요.

RNN은 이 문제를 순서로 풀어요. 문장을 한 마디씩 끊어서 하나씩 집어넣어요. 한 마디를 넣으면 계산이 한 번 돌고, 다음 마디를 넣으면 또 한 번 돌아요. 이렇게 하면 길이가 아무리 달라져도 같은 방식으로 다룰 수 있어요.

넘기는 것은 지금까지의 요약 하나

칸은 매번 두 가지를 받아요. 새로 들어온 마디 하나, 그리고 앞 차례에서 넘어온 요약 하나예요. 이 둘을 합쳐 계산한 뒤 새 요약을 만들어 다음 차례로 넘겨요.

이 요약은 원문을 저장한 게 아니에요. 크기가 처음부터 정해진 숫자 묶음이라서, 백 마디를 들었든 세 마디를 들었든 담을 수 있는 양이 똑같아요. 새 마디가 들어올 때마다 그 안에서 자리를 나눠 써야 하고, 자리를 내주는 쪽은 앞에서 들은 내용이에요.

같은 칸을 되풀이해 쓰는 거예요

그림으로 그리면 칸이 줄줄이 늘어서 있지만, 실제 모델 안에 칸이 여러 개 있는 건 아니에요. 칸은 하나뿐이고, 그 칸이 자기 출력을 다시 자기 입력으로 받아요. 순환이라는 이름이 여기서 나왔어요.

되풀이해 쓴다는 건 곱하는 크기가 모든 차례에서 똑같다는 뜻이에요. 첫 마디를 다룰 때 쓰는 손잡이와 백 번째 마디를 다룰 때 쓰는 손잡이가 같아요. 덕분에 아무리 긴 문장이 들어와도 모델이 커지지 않고, 학습할 것도 늘지 않아요.

길어지면 앞이 흐려져요

같은 계산을 되풀이한다는 점이 약점이 되기도 해요. 요약이 한 차례 지날 때마다 조금씩 눌리는데, 그 눌림이 수십 번 쌓이면 처음 들어온 내용은 거의 남지 않아요. 반대로 조금씩 부풀어 오르면 값이 터져 버리기도 해요.

학습할 때는 문제가 더 커져요. 틀린 답을 바로잡으려면 빗나간 양을 뒤에서 앞으로 되짚어 보내야 하는데, 이 신호도 차례를 거스를 때마다 함께 줄어들어요. 마지막 마디 근처는 잘 배우지만 문장 첫머리는 거의 배우지 못하는 일이 생겨요. 이 현상을 기울기 소실이라고 불러요.

순서대로만 갈 수 있어 느려요

RNN은 앞 차례가 끝나야 다음 차례를 시작할 수 있어요. 두 번째 마디를 계산하려면 첫 번째 요약이 나와 있어야 하니까요. 그래서 마디가 천 개면 계산도 천 번을 줄줄이 기다려야 해요.

한 번에 여러 계산을 몰아서 하는 데 특화된 요즘 그래픽 장치와는 궁합이 나빠요. 문장 속 모든 마디를 한꺼번에 처리할 수 있는 구조가 나오자 언어 쪽 자리를 빠르게 내주게 된 배경이에요. 그래도 음악이나 센서 값처럼 자료가 실시간으로 한 개씩 들어오는 자리에서는 여전히 잘 쓰여요.

3조금 더 정확하게

RNN은 은닉 상태라고 부르는 숫자 묶음을 차례마다 갱신하며 순서 자료를 처리하는 신경망이에요. 매 차례 새 입력과 직전 은닉 상태를 함께 받아 곱해 더하고 한 번 휘어서 새 은닉 상태를 만들고, 필요하면 거기서 출력을 뽑아요. 모든 차례가 같은 가중치를 쓴다는 점이 다층 퍼셉트론과 가장 크게 다른 부분이에요.

비유가 어긋나는 지점도 있어요. 귓속말 놀이에서는 사람마다 성격이 달라 다르게 추리지만, RNN은 모든 차례가 완전히 같은 규칙으로 추려요. 또 사람은 말을 문장 단위로 이해하지만 RNN이 넘기는 요약은 뜻이 담긴 문장이 아니라 크기가 고정된 숫자 묶음이라서, 사람이 열어 봐도 무슨 내용인지 읽어 낼 수 없어요.

앞뒤를 모두 보고 싶을 때는 문장을 뒤에서 앞으로도 한 번 더 훑는 방식을 함께 쓰기도 해요. 다만 이렇게 해도 순서대로 처리해야 한다는 제약 자체는 사라지지 않아요.

4직접 해보기

5흔한 오해

  • RNN이 문장 전체를 기억하고 있다고 생각하기 쉽지만, 실제로는 크기가 정해진 요약 하나만 들고 다녀서 앞부분은 차례가 지날수록 흐려져요.

  • 그림 속 칸들이 서로 다른 부품이다라고 여기기 쉽지만, 실제로는 같은 칸 하나를 시간 순서대로 펼쳐 그린 것뿐이에요.

  • 트랜스포머가 나왔으니 RNN은 이제 쓸모없다고 생각하기 쉽지만, 실제로는 자료가 한 개씩 들어오는 실시간 처리나 작은 기기 위에서는 지금도 현역이에요.

7한 줄 요약

그러니까RNN은 같은 칸 하나가 앞 차례의 요약을 이어받아 한 마디씩 처리하는 구조라, 순서를 다룰 수 있는 대신 긴 글의 앞부분을 놓치기 쉬워요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02