의료 영상 분할이나 정밀한 객체 인식을 다루는 논문(예: R2U-Net)을 읽다 보면 순환 합성곱(Recurrent Convolution) 이라는 매력적인 기법을 만나게 됩니다.
간단히 말해, 이미지의 공간적 특징을 뽑아내는 CNN(합성곱 신경망)과 시간의 흐름(반복)을 기억하는 RNN(순환 신경망)의 장점을 하나로 합친 기술입니다. 복잡해 보이는 이 개념을 직관적인 비유와 함께 파헤쳐 보겠습니다.
1. 직관적인 비유: "한 번 쓱 보기" vs "제자리에서 뚫어져라 관찰하기"
미술관에서 그림을 감상한다고 상상해 보세요.
- 일반적인 CNN (Standard Conv): 그림 앞을 걸어가면서 한 번 쓱 보고 지나가는 것과 같습니다. "음, 둥근 모양이 있네." 하고 바로 다음 방(다음 층)으로 넘어갑니다.
- 순환 합성곱 (Recurrent Conv): 그림 앞에 멈춰 서서 같은 그림을 여러 번(타임스텝 t만큼) 뚫어져라 반복해서 관찰하는 것입니다.
- 1초 (t=0): "둥근 모양이 있네."
- 2초 (t=1): "어? 아까 본 둥근 모양 안에 미세한 점들도 있잖아?" (원본 + 과거 기억)
- 3초 (t=2): "자세히 보니 점들이 이어져서 핏줄 형태를 띠고 있군!" (원본 + 더 쌓인 과거 기억)
이렇게 제자리에서 반복 연산을 수행하며 특징을 '누적(Accumulate)'하는 것이 순환 합성곱의 본질입니다.
2. 작동 원리: 과거의 기억을 더하다
순환 합성곱 층 내부에서는 두 가지 정보가 합쳐져서 새로운 특징을 만들어냅니다. 이를 딥러닝 연산 기호로 단순화하면 다음과 같습니다.
O(t)=Wf∗X+Wr∗O(t−1)+b
- X: 이전 층에서 들어온 원본 피처 맵 (시간이 지나도 변하지 않는 기준점)
- Wf: 순방향 커널 (원본 X에 곱해짐)
- Wr: 순환 커널 (과거의 결과 O(t−1)에 곱해짐)
즉, 현재 시점의 특징 = (원본 데이터) + (직전 시점까지 관찰한 디테일)이 됩니다. 모델 내부에서 특징이 계속 덧칠해지고 진해지는 원리입니다.
3. 순환 합성곱의 3가지 압도적 장점
굳이 이런 반복 방식을 도입하는 이유는 무엇일까요? 가성비와 성능 면에서 엄청난 이점이 있기 때문입니다.
- 파라미터 증가 없는 모델의 깊이 확장 (Weight Sharing)
보통 성능을 높이려면 CNN 층을 깊게 쌓아야 하지만, 이는 파라미터의 기하급수적인 증가를 부릅니다. 반면 순환 합성곱은 동일한 층에서 가중치를 공유하며 연산만 반복하기 때문에 파라미터 수는 고정된 채 깊은 신경망의 효과를 냅니다.
- 수용 영역(Receptive Field)의 확장
한자리에서 반복 연산을 할수록 주변 픽셀들의 정보가 계속 섞여 들어옵니다. 커널 크기를 물리적으로 키우지 않아도, 훨씬 더 넓은 영역의 문맥(Context)을 파악할 수 있습니다.
- 저수준 피처(Low-level feature)의 강력한 보존
점, 선, 얇은 테두리 같은 미세한 정보는 모델이 깊어질수록 뭉개지기 쉽습니다. 하지만 순환 구조는 계속 원본(X)과 대조하며 누적하기 때문에, 의료 영상의 미세한 혈관 같은 특징을 끝까지 잃지 않습니다.
4. 심화 Q&A: 수용 영역과 파라미터의 역설
딥러닝 아키텍처를 깊이 공부하다 보면 다음과 같은 예리한 의문이 들 수 있습니다.
Q1. 기본 Conv 과 순환 Conv의 입력과 출력이 같은 해상도인데, 어떻게 수용 영역이 넓어지나요?
"해상도(크기)와 픽셀 하나가 담고 있는 정보의 범위(수용 영역)는 다릅니다."

Padding=Same 설정을 주어 가로세로 해상도가 유지되더라도 연산이 반복되면 이야기가 달라집니다.
1층을 통과한 픽셀 1개는 원본의 3x3 영역을 압축해 담고 있습니다. 2층의 커널이 이 픽셀들을 다시 버무릴 때, 이미 3x3 정보를 품고 있는 이웃 픽셀들을 흡수하므로 결과적으로 5x5 영역을 보게 됩니다. 3번 반복하면 7x7 영역이 됩니다. 순환 합성곱은 제자리에서 이 연산을 반복하므로 해상도 손실 없이 수용 영역만 넓히는 마법을 부립니다.
Q2. Wf와 Wr 두 개를 쓰면 기본 Conv보다 파라미터가 2배 더 많은 것 아닌가요?
단일 블록만 보면 2배가 맞습니다. 하지만 "동일한 깊이(성능)를 달성하기 위한 비용"을 비교하면 압도적으로 효율적입니다.
- 수용 영역 7x7을 달성하기 위한 대결:
- 일반 CNN: 3x3 Conv 층 3개를 직렬로 쌓아야 함 → 총 파라미터 3배 (W1+W2+W3). 더 깊어지면 5배, 10배로 무한정 늘어납니다.
- 순환 합성곱: 타임스텝 t=3으로 반복 연산 → 총 파라미터 2배 고정 (Wf+Wr). t를 10으로 늘려도 기존 Wr을 계속 재사용(Weight Sharing)하므로 파라미터는 영원히 2배 수준에 머뭅니다.
💡 한 줄 요약:
순환 합성곱은 모델의 덩치를 무겁게 만들지 않으면서도, 같은 데이터를 여러 번 곱씹어 미세한 디테일까지 진하게 우려내는 딥러닝의 고급 테크닉입니다.