합성곱 (Convolution)
쉽게 풀면
스피커에서 소리를 내면 방 안 벽에 부딪혀 울림(잔향)이 남는 것을 떠올려 보세요. 원래 소리(입력 신호)와 그 방이 가진 울림의 특성(응답 함수)이 서로 겹쳐지면서 우리가 실제로 듣는 소리가 만들어집니다.
합성곱은 이렇게 "하나의 신호가 다른 신호(또는 시스템의 반응 특성)를 만나 어떻게 뒤섞이고 퍼지는지"를 수학적으로 계산하는 연산입니다. 한 함수를 좌우로 뒤집어 조금씩 이동시키면서, 겹치는 두 함수 값을 곱한 뒤 전부 더하는 과정을 반복해 새로운 함수를 얻습니다.
왜 중요한가
합성곱은 신호처리, 이미지 처리, 딥러닝, 확률론 등 매우 넓은 분야에서 반복적으로 등장하는 기본 연산입니다. 두 함수(또는 신호)가 서로 영향을 주고받는 과정을 일관된 수학적 틀로 표현할 수 있어, 필터링·특징 추출·시스템 응답 분석 같은 서로 다른 문제를 같은 언어로 다룰 수 있게 해줍니다. 특히 합성곱 신경망의 핵심 연산이라는 점에서, 컴퓨터 비전과 음성 인식을 비롯한 최근 머신러닝 연구 전반의 기초가 됩니다.
핵심 정리
합성곱은 두 신호(또는 함수) f, g에서 하나를 뒤집어 밀면서 겹치는 부분을 곱해 더한 새 신호를 만드는 연산입니다. 이산 신호에서는 (x∗h)[n] = Σk x[k]·h[n−k]로 쓰고, 연속 신호에서는 합 대신 적분을 씁니다(Oppenheim & Willsky, 1997).
성질 몇 가지가 반복해서 쓰입니다.
- 선형 시불변 시스템의 출력은 입력과 시스템의 임펄스 응답의 합성곱입니다. 방의 잔향처럼 ‘입력 소리가 시스템 반응과 섞이는’ 과정이 이 연산입니다.
- 교환·결합·분배 법칙이 성립합니다. 즉 f∗g = g∗f 입니다.
- 합성곱 정리: 합성곱의 푸리에 변환은 각 푸리에 변환의 곱입니다. 그래서 큰 신호의 합성곱은 푸리에 변환을 거쳐 곱셈으로 빠르게 계산하기도 합니다(Bracewell, 2000).
- 확률론에서 독립인 두 확률변수의 합의 분포는 각 분포의 합성곱입니다.
예시로 보기
계산 예 1. x = [1, 2, 3], h = [0, 1, 0.5]이면 x∗h = [0, 1, 2.5, 4, 1.5]입니다(길이 3 + 3 − 1 = 5, 코드로 계산). 손으로 확인하면 첫 항은 1×0 = 0, 둘째 항은 1×1 + 2×0 = 1, 셋째 항은 1×0.5 + 2×1 + 3×0 = 2.5입니다.
계산 예 2(주사위). 공정한 주사위 두 개를 던질 때 눈의 합 분포는 각 주사위의 분포 [1/6, …, 1/6]의 합성곱입니다. 36을 곱해 세어 보면 합이 2에서 12까지 나오는 경우의 수는 [1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]이고, 합이 7일 확률은 6/36입니다(코드로 계산).
계산 예 3(뒤집기의 차이). 신호 [1, 2, 3, 4, 5]에 필터 [1, 0, −1]을 적용해 겹치는 구간만 구하면, 필터를 뒤집는 진짜 합성곱은 [2, 2, 2], 뒤집지 않고 그대로 미끄러뜨리는 교차상관은 [-2, -2, -2]입니다. 이 필터는 비대칭이므로 부호가 반대로 나옵니다.
자주 하는 오해
- “합성곱은 두 함수의 곱이다”라는 오해: 한 위치에서 곱하는 것이 아니라, 모든 이동 위치에서 곱한 값을 합친 새 함수입니다.
- “합성곱과 교차상관은 같다”라는 오해: 합성곱은 한 쪽을 뒤집습니다. 필터가 좌우 대칭이면 결과가 같습니다. 딥러닝 라이브러리의 ‘합성곱’ 층은 흔히 뒤집지 않는 교차상관을 계산합니다(Goodfellow 외, 2016). 필터를 데이터로 학습하므로 뒤집힌 필터도 학습할 수 있어 실질적인 차이는 거의 없습니다.
- “출력 길이는 입력과 같다”라는 오해: 전체 합성곱은 길이가 N + M − 1이고, 같은 길이로 맞추려면 패딩이나 잘라내기를 씁니다.
- “합성곱 신경망과 같은 말이다”라는 오해: 합성곱은 수학 연산이고 합성곱 신경망은 이 연산을 층으로 쓰는 모델입니다.
논문에서는 이렇게 쓰입니다
실제 논문에서
국내 학술지 논문에서 이 용어가 쓰인 문장을 그대로 옮겼습니다. 제목·학술지·연도와 원문 링크를 함께 적었습니다.
“그러나 현재의 공학수학 교과과정의 합성곱내용은 독립적인 주제가 아니라 단편적으로 다루어지고 있어서 그 의미를 충분히 전달하지 못하고 있다.”
인공지능에 활용되는 공학수학 합성곱(convolution) 교수․학습자료 연구, 수학교육 논문집, 2023 · KCI 한국학술지인용색인 · 원문 보기 ↗
“또한 합성곱 지식이 인공지능에서 어떻게 활용되는지 보여주는 구체적인 예시로, 이미지 분류에 사용되는 합성곱신경망(Convolutional Neural Network, CNN)을 개발된코드와 함께 제공한다.”
인공지능에 활용되는 공학수학 합성곱(convolution) 교수․학습자료 연구, 수학교육 논문집, 2023 · KCI 한국학술지인용색인 · 원문 보기 ↗
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 신호처리나 이미지 처리 논문에서 흔히 등장합니다. 원본 신호에 특정 패턴(필터)을 합성곱 연산으로 적용하면 노이즈가 줄어들거나 경계선 같은 특정 특징이 도드라지게 되는데, 이 원리를 설명할 때 쓰입니다.
확률론과 통계학에서는 서로 독립인 두 확률변수를 더했을 때의 새로운 분포를 구하는 데 합성곱이 쓰인다는 뜻입니다. 여러 단계에서 발생하는 오차나 잡음이 누적되는 과정을 수학적으로 다룰 때 자주 활용됩니다.
딥러닝 논문에서는 합성곱 연산을 신경망의 한 층으로 사용하여, 이미지의 지역적 패턴을 학습하는 필터(커널)를 데이터로부터 자동으로 학습시킨다는 의미로 쓰입니다.
조금 더 깊게 보면
실제 계산에서 합성곱은 시간(공간) 영역에서 직접 곱하고 더하는 대신, 고속 푸리에 변환(FFT)을 이용해 주파수 영역의 곱셈으로 바꿔 계산하는 경우가 많은데, 이는 합성곱 정리에 근거한 방식입니다.
딥러닝의 합성곱 신경망에서는 엄밀한 수학적 합성곱 대신 커널을 뒤집지 않고 그대로 슬라이딩시키는 교차상관(cross-correlation) 연산을 흔히 사용하지만, 관례적으로 이 역시 합성곱이라 부릅니다.
또한 이산 신호를 다룰 때는 순환 합성곱(circular convolution)과 선형 합성곱을 구분해야 하며, 어떤 경계 처리(패딩) 방식을 쓰는지에 따라 결과가 달라진다는 점도 논문을 읽을 때 유의할 부분입니다.
주의할 점
합성곱은 푸리에 변환과 깊이 연결되어 있습니다. 시간(또는 공간) 영역에서의 합성곱은 푸리에 변환을 거치면 단순한 곱셈으로 바뀌는데, 이 성질(합성곱 정리) 때문에 실제 계산에서는 직접 합성곱을 계산하기보다 푸리에 변환을 이용해 더 빠르게 처리하는 경우가 많습니다.
헷갈리기 쉬운 용어
이름이 이어져 쓰이지만 수학 연산과 그것을 쓰는 모델은 다른 대상입니다.
| 용어 | 성격 | 핵심 |
|---|---|---|
| 합성곱 | 수학 연산 | 한 신호를 뒤집어 밀며 곱해 더함 |
| 합성곱 신경망 | 이 연산을 층으로 쓰는 모델 | 필터를 데이터로 학습해 이미지의 지역 특징을 뽑음 |
| 스트라이드(보폭) | 합성곱 층의 설정값 | 필터가 한 번에 이동하는 칸 수 |
| 푸리에 변환 | 주파수 영역으로 옮기는 변환 | 시간 영역의 합성곱이 주파수 영역의 곱이 됨 |
참고 문헌
- Oppenheim, A. V., & Willsky, A. S. (1997). Signals and Systems (2nd ed.). Prentice Hall.
- Bracewell, R. N. (2000). The Fourier Transform and Its Applications (3rd ed.). McGraw-Hill.
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.