합성곱의 기하학적 표현.[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를 이용할 경우 시간 영역에서 주기성을 고려하여 순환 컨볼루션을 사용해야 한다.