convolution, correlation 연산에 대한 질문

21.03.18 08:51 작성 조회수 312

0

딥러닝에 대한 내용은 아니지만 강의를 듣다가 궁금한 점이 생겨 질문을 남깁니다.

강의 4:37에 나온 장면을 보면 서로 다른 두 신호가 들어오고 이를 filter와 correlation연산을 하는 것을 볼 수 있습니다.

그런데 단순히 신호와 filter의 element-wise 곱을 하게 되면 서로 다른 신호에 대한 correlation 값이 같아짐을 볼 수 있는데요 여기서 질문이 있습니다.

만약 특정 신호가 전부 1이라면 강의노트에 나온 연산에 따르면 convolution, correlation 모두 신호와 필터가 일치하게 된다고 인식한다고 생각합니다.

1) 강의에서 나온 것과 같이 서로 다른 신호지만 sum이 같은 경우, 2) 특정 신호가 1로만 이루어진 경우

이런 경우 어떻게 처리를 하는지 궁금합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요 상철님!

강의를 들으면서 더 심도있는 고민 하는 모습이 보기 좋네요 :)

질문해주신 내용의 핵심은 filter로 들어오는 신호가 모두 1일 때인 것 같네요.

아시다시피 correleation, convolution의 차이점은 filter의 순서를 뒤집어주느냐에 따라 달라집니다.

이때 신호의 값이 모두 1이라면 corr, conv의 결과는 마찬가지로 180도 뒤집어지게 될 것입니다.

실제로 1인 신호 1개를 넣어서 filter의 특징을 살펴보는 방법도 존재합니다.

참고로 이 결과를 impulse response라고 부릅니다.

그리고 상철님이 말씀하신 것처럼 신호가 모두 1로 이루어져있다면,

긴 시간동안 correlation, convolution의 값은 모두 동일하게 됩니다.

하지만 이 두 연산은 서로 분명한 목적에 의해 만들어졌기 때문에

이 값이 서로 같은지 다른지는 크게 중요하지 않을 때가 많습니다.

두 신호의 유사성을 보기 위해서 correlation을 사용하고,

filter를 통과시키기 위해서 convolution을 사용할 뿐이지 이 값들을 비교하는 과정은

큰 의미를 가지지 않을 때가 많습니다.

또한 시스템에 어떤 문제가 있는 상황이나, DC 신호를 다루지 않는이상

항상 신호가 1인 경우를 찾아보기 힘듭니다.

따라서 상철님이 생각하시는 과정은 맞지만, 현실적으로 벌어지기 힘든 상황이고

벌어진다고 하더라도 큰 문제가 되지 않는 경우가 많습니다.

유상철님의 프로필

유상철

질문자

2021.03.19

항상 빠른 피드백을 주셔서 늘 감사합니다.

올려주신 답변이 도움이 됐습니다. 하지만 아직 해결되지 않은 의문이 있어 다시 질문을 남깁니다.

correlation과 convolution을 비교하는 것이 의미가 없다는 것은 이해했지만 각 연산을 독립적으로 보았을 때 두 신호의 차이를 어떻게 구별하는지 궁금합니다.

예를 들면, correlation 연산에서 input 신호가 x1 = [1, 1, 0, 1, 1], x2 = [0, 1, 0 ,1 ,0]이란 신호가 있을 때 correlation filter가 f = [0, 1, 0, 1, 0] 이런 값을 갖는다면 element-wise 연산인 correlation 연산을 했을 때 결과가 3으로 동일한데 위 두 신호를 어떻게 구분하는지 궁급합니다.