합성곱 (Convolution)

수학
한 줄 정의: 한 함수를 뒤집어 미끄러뜨리면서 다른 함수와 겹치는 부분을 계속 곱하고 더해, 두 함수가 서로에게 미치는 영향을 하나의 새 함수로 나타내는 연산입니다.

쉽게 풀면

스피커에서 소리를 내면 방 안 벽에 부딪혀 울림(잔향)이 남는 것을 떠올려 보세요. 원래 소리(입력 신호)와 그 방이 가진 울림의 특성(응답 함수)이 서로 겹쳐지면서 우리가 실제로 듣는 소리가 만들어집니다.

합성곱은 이렇게 "하나의 신호가 다른 신호(또는 시스템의 반응 특성)를 만나 어떻게 뒤섞이고 퍼지는지"를 수학적으로 계산하는 연산입니다. 한 함수를 좌우로 뒤집어 조금씩 이동시키면서, 겹치는 두 함수 값을 곱한 뒤 전부 더하는 과정을 반복해 새로운 함수를 얻습니다.

왜 중요한가

합성곱은 신호처리, 이미지 처리, 딥러닝, 확률론 등 매우 넓은 분야에서 반복적으로 등장하는 기본 연산입니다. 두 함수(또는 신호)가 서로 영향을 주고받는 과정을 일관된 수학적 틀로 표현할 수 있어, 필터링·특징 추출·시스템 응답 분석 같은 서로 다른 문제를 같은 언어로 다룰 수 있게 해줍니다. 특히 합성곱 신경망의 핵심 연산이라는 점에서, 컴퓨터 비전과 음성 인식을 비롯한 최근 머신러닝 연구 전반의 기초가 됩니다.

핵심 정리

합성곱은 두 신호(또는 함수) f, g에서 하나를 뒤집어 밀면서 겹치는 부분을 곱해 더한 새 신호를 만드는 연산입니다. 이산 신호에서는 (x∗h)[n] = Σk x[k]·h[n−k]로 쓰고, 연속 신호에서는 합 대신 적분을 씁니다(Oppenheim & Willsky, 1997).

성질 몇 가지가 반복해서 쓰입니다.

예시로 보기

계산 예 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]입니다. 이 필터는 비대칭이므로 부호가 반대로 나옵니다.

자주 하는 오해

논문에서는 이렇게 쓰입니다

실제 논문에서

국내 학술지 논문에서 이 용어가 쓰인 문장을 그대로 옮겼습니다. 제목·학술지·연도와 원문 링크를 함께 적었습니다.

예시 문장

아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.

"입력 신호와 필터 커널의 합성곱(convolution)을 통해 노이즈를 제거하고 신호의 주요 특징을 강조하였다."

이 문장은 신호처리나 이미지 처리 논문에서 흔히 등장합니다. 원본 신호에 특정 패턴(필터)을 합성곱 연산으로 적용하면 노이즈가 줄어들거나 경계선 같은 특정 특징이 도드라지게 되는데, 이 원리를 설명할 때 쓰입니다.

"두 확률변수의 합의 분포는 각 확률변수 분포의 합성곱으로 표현됨을 이용하여, 오차 누적 모델의 해석적 형태를 유도하였다."

확률론과 통계학에서는 서로 독립인 두 확률변수를 더했을 때의 새로운 분포를 구하는 데 합성곱이 쓰인다는 뜻입니다. 여러 단계에서 발생하는 오차나 잡음이 누적되는 과정을 수학적으로 다룰 때 자주 활용됩니다.

"합성곱 계층의 커널 크기와 스트라이드를 조정하여 수용 영역(receptive field)을 넓히면서도 파라미터 수를 억제하였다."

딥러닝 논문에서는 합성곱 연산을 신경망의 한 층으로 사용하여, 이미지의 지역적 패턴을 학습하는 필터(커널)를 데이터로부터 자동으로 학습시킨다는 의미로 쓰입니다.

조금 더 깊게 보면

실제 계산에서 합성곱은 시간(공간) 영역에서 직접 곱하고 더하는 대신, 고속 푸리에 변환(FFT)을 이용해 주파수 영역의 곱셈으로 바꿔 계산하는 경우가 많은데, 이는 합성곱 정리에 근거한 방식입니다.

딥러닝의 합성곱 신경망에서는 엄밀한 수학적 합성곱 대신 커널을 뒤집지 않고 그대로 슬라이딩시키는 교차상관(cross-correlation) 연산을 흔히 사용하지만, 관례적으로 이 역시 합성곱이라 부릅니다.

또한 이산 신호를 다룰 때는 순환 합성곱(circular convolution)과 선형 합성곱을 구분해야 하며, 어떤 경계 처리(패딩) 방식을 쓰는지에 따라 결과가 달라진다는 점도 논문을 읽을 때 유의할 부분입니다.

주의할 점

합성곱은 푸리에 변환과 깊이 연결되어 있습니다. 시간(또는 공간) 영역에서의 합성곱은 푸리에 변환을 거치면 단순한 곱셈으로 바뀌는데, 이 성질(합성곱 정리) 때문에 실제 계산에서는 직접 합성곱을 계산하기보다 푸리에 변환을 이용해 더 빠르게 처리하는 경우가 많습니다.

헷갈리기 쉬운 용어

이름이 이어져 쓰이지만 수학 연산과 그것을 쓰는 모델은 다른 대상입니다.

용어성격핵심
합성곱수학 연산한 신호를 뒤집어 밀며 곱해 더함
합성곱 신경망이 연산을 층으로 쓰는 모델필터를 데이터로 학습해 이미지의 지역 특징을 뽑음
스트라이드(보폭)합성곱 층의 설정값필터가 한 번에 이동하는 칸 수
푸리에 변환주파수 영역으로 옮기는 변환시간 영역의 합성곱이 주파수 영역의 곱이 됨

참고 문헌

  1. Oppenheim, A. V., & Willsky, A. S. (1997). Signals and Systems (2nd ed.). Prentice Hall.
  2. Bracewell, R. N. (2000). The Fourier Transform and Its Applications (3rd ed.). McGraw-Hill.
  3. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.

표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.

관련 용어