컨볼루션...

푸리에 이론을 공부하다 보면 나오는 것이다. 나도 그냥 "이렇게 계산하는 거다"라고만 배우고 어물쩡 넘어가서 사실 잘 알지는 못하는 부분이다.

누가 물어봐서...
공부해 봤다.

어쨌든 그 의미는 뒤섞인다는 뜻이다. 수리물리학 책을 잠시 찾아봤더니(K. F. Riley), 어떤 실험을 할 때 참값은 항상 기계의 측정 오차와 뒤섞이기 때문에 그런 경우 참값에 해당하는 함수의 컨볼루션을 고려해야 한다고 한다.

뭔소리야...

http://mir.knu.ac.kr/Multimedia/chap32.html
자세한 수식은 생략한다. (생략은 했지만 아래의 설명은 수식을 좀 이해하고 와서 읽는 것이 좋다)

아무튼, 컨볼루션의 특성을 보면 3가지 성질이 이다. 교환법칙, 분배법칙, 결합법칙. 어디서 많이 보던 법칙들이다. 물론 당신이 잘 알고 있는 바로 그 법칙이 맞다.

우선 교환법칙을 생각해 보자.
h=g*f라고 하면, h=f*g도 된다는 뜻이다. 여기서 *는 양쪽에 있는 함수의 컨볼루션을 계산한다는 뜻이다. 이때 *기호의 앞에 있는 함수를 원래의 참값에 해당하는 함수, 뒤에 있는 함수를 실험의 측정 오차에 해당하는 함수라고 한다면, 오차와 참값의 의미를 바꾸더라도 결과에는 아무 영향이 없다는 뜻이 된다. 물리적으로는 대체 뭔 소리인가? 이것은?

잘 생각해 보자. 우리는 실험 결과의 참값을 절대로 알 수 없다. 항상 오차가 뒤섞여 있게 된다. 그렇다면, 우리가 만약 실험 장치의 오차를 측정하는 실험을 하려면 무엇이 필요할까? 당연히 실험의 참값을 집어넣어 주는, 그런 실험을 해 줘야 할 것이다. 이 경우, 실험 장치의 응답 함수가 우리가 원하는 참값이 될 것이고 실험의 원래 참값에 해당하는 값이 오차 함수가 된다. 그리고 어떤 경우든, 우리가 결과적으로 측정하게 되는 값은 같다.

다시, 좀 더 쉬운 말로 말하면 다음과 같다. 우리는 물체의 길이를 재기 위해서 자를 사용한다. 가령, 주사위의 한 변의 길이를 자를 이용해서 측정하였다고 하자. 주사위의 한 변의 길이는 f가 되고, 자에서 나오는 측정값의 응답 함수는 g가 된다. 그리고 실제 측정값은 f*g라는 함수가 될 것이다. 그런데, 만약 자의 길이를 재려고 한다면? 이번엔 자를 가만히 두고 길이가 알려져 있는 다른 물체를 자와 비교해서 측정하게 된다. 이 경우에는 물체의 길이를 알 때의 응답 함수가 f이고 자의 길이는 g가 된다. 실제 측정값은 g*f가 된다. 만약 주사위와 자라는 두가지 물체를 서로 측정한다면, 이 값이 달라질 이유가 전혀 없다.

이번엔 분배법칙을 생각해 보자. f*(g+h)=k라고 해 보자. 물론 *는 곱셈이 아니라 컨볼루션을 계산한다는 뜻이라고 앞에서 말했다. +는 그냥 평범한 덧셈이다. 그럼 f*g+f*h=k가 된다. 이건 또 뭔 소리일까. 어떤 경우에 응답함수 두개를 더하고 원래 함수와 컨볼루션을 계산하는 걸까? 응답함수를 더하는 경우는, 측정을 두번 해서 그 값을 더해야 하는 경우이다. 가령, 대략 60센치미터 정도의 길이를 가지는 물체를 측정하고 싶은데 갖고 있는 자는 30센치미터짜리 자 밖에 없다면? 아니면, 유명한 문제지만, 3리터짜리 물통과 5리터짜리 물통을 이용해서 4리터만큼의 물을 측정하고 싶다면, 과연 그때 오차는 어떻게 나올까? 이런 경우에는 오차를 서로 더해줘야 할 것이다. 따라서 응답함수를 서로 더하는 형태가 된다.

결합법칙이란 어떻게 될까? 즉, k=f*(g*h)=(f*g)*h라는 건데, 이건 사실 더 쉽다. 예를 들자면, 내가 원하는 값이 f인데, 그 값을 측정하기 위해서는 두 단계를 거치게 된다는 거다. 이런 종류의 측정은 통신에서 많이 나타난다. 내가 전달하려는 뜻을 신호로 바꾸고, 다시 신호를 받는 사람이 뜻으로 바꾸어야 한다. 즉, 원래의 참값인 "내가 전달하려는 뜻(f)"을 "신호로 바꾸고(g)" 다시 받는 사람이 "뜻으로 바꾸면(h)" 그것은 받는 사람이 이해한 뜻인 k가 된다. 자, 그럼 이게 결합법칙이 어떻게 성립하게 되나?
내가 전달하려는 뜻이, 만약에 이미 신호로 바뀌어져 있다고 하자(f*g). 그럼 (f*g)를 h랑 컨볼루션 하게 되면 언제나 (f*g)*h를 얻게 된다. 반대로, 받는 사람이 외부의 뜻을 받아서 신호로 바꾸고, 다시 신호를 뜻으로 바꾸는 과정을 한번에 할 수 있다고 쳐 보자. 즉, 다른 기계적인 도움 없이 그 사람은 내 뜻을 바로 이해할 수 있는 것이다. (g*h) 그럼, 나는 그 사람에게 내 뜻을 전하기만 하면 (f) f*(g*h)를 바로 알 수 있게 된다. 물론 어떤 경우든 전체적인 과정은 같으므로 그 사람이 이해한 뜻(k)이 달라질 이유는 전혀 없다.

결합법칙은 여러 단계를 거쳐서 측정해야 하는 경우에 성립하게 되는 법칙이 된다. 사실 이런 종류의 법칙은 그래프로 이해하려고 하면 더 복잡해진다. 그냥, 단순히 우리는 적분을 계산하려고 하는 것이고, 이중적분이든 삼중적분이든 적분 구간만 잘 골라준다면 어떤 적분을 먼저 계산하든 적분 결과는 같다. 그리고 컨볼루션 적분을 계산할 때에는 대부분 전체 구간을 대상으로 하므로 잘 잡으려고 노력할 필요도 없다. 즉, 적분 결과는 같다. 믿자.

더 자세한 내용은 다음 기회에...(모르는건 댓글로...)

by snowall 2009. 4. 11. 08:12
  • Lex 2009.04.13 14:59 ADDR EDIT/DEL REPLY

    포스팅 감사드립니다. ^^

    실험을 예로 들어주시니까, 이해가 빨리 되네요. 탁월한 선택이십니다.
    맨 마지막의 '믿자'!! 확~! 와닿네요.
    제가 의심병이 많아서 무슨무슨 법칙만 보면 "정말일까?"라는 생각부터 들어서 공부하는데 지장이 많습니다. 그래서, 더 확~!하고 와닿네요. ㅜㅜㅋ

    • snowall 2009.04.15 22:38 신고 EDIT/DEL

      사실 일단 의심해 보는건 이공계 사람들에게는 필수적인 능력입니다.
      단지, 웬만큼 검증된 법칙들은 굳이 의심하지 않아도 되죠.

  • Rainyvale 2009.04.13 16:33 신고 ADDR EDIT/DEL REPLY

    convolution... 전기전자공학의 신호처리나 통신에서는 가장 핵심적인 도구죠. 그 역과정인 deconvolution은 영원한 연구 주제일 거구요.