Convolution 완벽히 이해하기

June 25, 2025
Convolution 완벽히 이해하기
Convolution 완벽히 이해하기

Convolution 완벽히 이해하기

Language
ko
Tags
Convolution
번역 대기
번역 대기
Authors
Jaewan Shin
Published
June 25, 2025
Use Original Cover Image
Type
Post
Children

1. Convolution의 정의

사전적 정의는 얽혀 있음 뒤섞여 있음이라는 의미이다. 그 의미를 제대로 이해하면 정말로 뒤섞여 있다는 것을 알 수 있는데 수학적 정의를 살펴보자.
 
Continuous한 영역에서 input 와 impulse response , output 에 대하여 아래와 같다.
 
또는 Discrete한 영역에서는 아래와 같다.

2. Convolution의 작동 원리 이해

공식은 위처럼 나오는데 그래서 이게 뭘 하는 건가 싶을 것이다. 여러 과목에서 공부를 했음에도 매번 헷갈리는데 이번에 확실히 이해해서 설명해본다.

2.1. 또는 이 0일 때를 먼저 가정한다.

먼저 쉽게 이해하기 위해서는 가 0일 때를 먼저 보는 것이 좋다. 그럴 경우 아래처럼 될 것이다.

2.2. 움직일 그래프를 좌우 대칭시킨다.

Convolution은 교환법칙이 성립하기 때문에 움직일 함수를 둘 중 고를 수 있다. 여기서는 를 골라보자.
이후 해당 함수를 y축 기준으로 좌우 대칭이동시킨다.
 
그리고 이 식에서 나온 대로 고정된 함수와 대칭이동 시킨 움직이는 함수의 곱을 전 구간에서 적분한다.
그 값이 바로 0일 때의 값이다. 이제 다른 값일 때도 살펴보자.

2.3. 가 커질 수록 움직일 함수를 오른쪽으로 움직인다.

식을 보면 한 번에 납득이 되지 않을 수 있는데 결론부터 말하자면 왼쪽에서 오른쪽으로 를 움직이며 서로 곱해서 적분하면 된다.
 
왼쪽에서 오른쪽으로 가는 이유는 생각보다 간단하다.
우선 가 존재한다고 생각해보자.
우리는 첫 번째로 대칭이동을 했다. 그러면 가 될 것이다. 이제 이 상태에서 만큼 평행이동을 한다면 자리에 를 대입하면 된다.
그러면 가 됨을 알 수 있다.
따라서 만큼 평행이동시킨 것이므로 가 커질 수록 오른쪽으로 움직이며 구하면 된다.

3. 예시로 이해하기

 
위와 같은 식이 있다고 해보자.
 
일 때 그림을 그려보면 아래와 같다.
notion image
 
놀랍게도 인데 이걸 한 번 이해해보자.
 

3.1. 이 0일 때를 가정하기.

가장 간단하게 이 0일 때를 보자.
그러면 위 식이 아래처럼 된다.
 

3.2. 움직일 함수를 좌우 대칭시킨다.

파란 함수를 좌우 대칭시키면 빨간색 함수가 될 것이다. 이때 서로 곱해서 값이 존재하는 곳은 인 곳 뿐이므로 값이 1이 된다.
notion image

3.3. 이 커질 수록 오른쪽으로 옮기기

옮김에 따라 아래 gif 짤처럼 생성되게 된다.
notion image
 

3.4. 시험장에서 헷갈린 점

머릿속으로 생각한다고 했을 때 아래 식에서 일 때 값이 이 되면서 최댓값이 된다. 그런데 만일 covolution인 건 알긴 아는데 정확히 이 맞는지 아니면 과 같이 조금 평행이동을 해야하는지 확실하지 않을 수 있다.
이를 확인하기 위해 convoluted된 값을 계산해서 이 나오는지 확인을 해봐야할 것이다.
 
그래서 대입을 해보면 아래처럼 된다.
그랬을 때 아래 식에서 는 확실히 일 때 이 된다.
그런데 는 어떤가. 이거는 어떻게 그려야할까? 여기서 헷갈렸는데 생각하는 방법이 2가지이다.

3.4.1. 대칭이동 후 평행이동

우선 에 대해 좌우 대칭이동시킨다.
그러면 가 된다.
이후 만큼 평행이동시킨다. 그러기 위해 자리에 대신 을 넣는다.
그러면 가 되어 원래 식인 가 같음을 알 수 있다.
이를 상상해보면 원래 와 완전히 겹쳐짐을 알 수 있을 것이다. 왜냐하면 부터 까지 의 값을 가지기 때문이다.
 

3.4.2. 평행이동 후 대칭이동

또 다른 방법은 평행이동을 먼저 할 수 있다.
우선 만큼 평행이동시킨다. 그러기 위해 자리에 대신 을 넣는다.
그러면 가 된다.
이제 대칭이동을 해야한다. 이때 주의해야 하는 것은 에 대해 좌우 대칭이동시키면 안 된다는 것이다.
그 이유는 이라고 했을 때 에 대해 좌우 대칭이동시키면 대신 를 넣게 되어 가 되고 원래 식과 다른 식이 된다.
따라서 에 대해 좌우 대칭이동시켜야 한다. 그러기 위해서는 에서 대신 를 넣으면 된다. 그러면 아래처럼 원래 식과 같아진다.
따라서 오직 주의해야할 점은 평행이동 후 대칭이동을 한다면 그 평행이동한 곳을 축으로 두고 대칭이동시키면 된다는 것이다. 다만 헷갈리기 때문에 대칭이동 후 평행이동으로만 기억하는 게 좋다고 생각한다.

4. Interactive demo로 이해하기

위 링크에서 쉽게 이해할 수 있는 demo가 있으니 이를 살펴봐도 좋다.
또는 아래에서 바로 Play할 수 있다.ㅅ