합성곱의 기하학적 표현.[1] |
1. 정의
컨볼루션[2] / convolution / 合成곱합성곱에 관한 3Blue1Brown의 영상 |
함수 [math(f)]와 [math(g)]의 합성곱은 [math(f \ast g)]로 나타내며 다음과 같이 정의한다.
연속시간 도메인에서의 컨볼루션 정의 |
[math(\displaystyle {x(t) \ast h(t)} \equiv {\int_{-\infty}^{\infty}}x(\tau)\, h(t-\tau)\,{\rm d}\tau)] |
이산시간 도메인에서의 컨볼루션 정의 |
[math(\displaystyle {x[n] \ast h[n]} \equiv \displaystyle\sum_{k=-\infty}^\infty x[k]\, h[n-k])] |
컨볼루션을 직접 계산할 때는 한 신호를 고정시키고, 다른 신호는 y축 대칭 후 시간축에서 t만큼 평행이동한 것으로 나타낸 후, 시간변수 t가 음의 무한대부터 양의 무한대까지 이동하며 중첩된 영역의 두 함수값을 곱한 값의 적분(이산시간의 경우 시그마)을 계산하여 시간에 대한 함수로 나타내면 된다. 이는 고정시킨 함수가 필터 역할을 하면서 들어오는 입력신호를 가공하는 것으로 해석할 수 있다.
주로 푸리에 해석을 공부하는 과정에서 처음 맞닥뜨리게 되는 개념이다.
2. 정리
합성곱은 푸리에 변환에 대하여 일반적으로 다음과 같은 성질이 성립한다.[math(\displaystyle y(t) = {x(t) \ast h(t)})]라 하면, [math(Y(j\omega) = X(j\omega)\, H(j\omega))] |
[math(\displaystyle y[n] = {x[n] \ast h[n]})]이라 하면, [math(Y(e^{j\omega}) = X(e^{j\omega})\, H(e^{j\omega}))] |
참고로 라플라스 변환, Z변환에 대해서도 성립한다. 역으로 라플라스 변환, Z변환에 대해 성립하면 푸리에 변환에 대해 성립하는 것은 자명한데, 이는 푸리에 변환과 이산 푸리에 변환이 각각 라플라스 변환, Z변환의 [math(s=j\omega)], [math(z=e^{j\omega})]인 특수한 경우이기 때문이다.
3. 활용 사례
컨볼루션 신경망 기법(CNN) 등에 응용되는 개념이다. 신호 및 시스템, 디지털 신호 처리에 많이 쓰인다.컴퓨터 과학에서는 적분의 일반적인 정의[3]로 유도되는 이산공간에서의 컨볼루션 연산을 활용한다.
2018 수능 수학 가형 30번 문항에서 이것을 소재로 한 문제가 출제되었다. 2017 수능 30번과 함께 역대 최고난도로 꼽혔다.
포항공과대학교 2023학년도 학부 입학전형 면접 문제로 출제되었다. 앞장은 2차원 합성곱 신경망 문제가 나왔으며, 뒷장은 컨볼루션의 기하학적 정의를 이용한 문제가 나왔다. 원래 난이도가 높은 포스텍 면접 중에서도 매우 높은 난이도를 자랑했기 때문에 역시나 위의 수능 문제처럼 제대로 푼 학생이 손에 꼽혔다(...)
독립인 두 연속확률변수 X, Y에 대하여 확률변수 X+Y의 확률밀도함수는 X, Y 각각의 확률밀도함수의 컨볼루션이다. 출처[4]
4. 순환 컨볼루션
주기성을 가지는 함수에 대해 합성곱을 적용한 것이다.푸리에 변환의 성질에 따라 주파수 영역에서 곱은 시간 영역에서 합성곱으로 혹은 그 반대로 나타난다.하지만 이산 푸리에 변환을 거치게 되면 주파수 영역에서의 샘플링으로 인해 비주기 신호가 시간 영역에서 주기성을 띄게 됨으로[5] 이것이 성립하지 않는다. DFT를 이용할 경우 시간 영역에서 주기성을 고려하여 순환 컨볼루션을 사용해야 한다.