2020년 3월 21일 토요일

Signal Processing For Communications (3-1)

Signals and Hilbert Spaces


17세기 이후, 데카르트가 기하적인 구조를 대수적인 형태로 표현하는 방법을 제안하면서부터 대수 (algebra)와 기하(geometry) 분야가 서로 영향을 주고 받으며 엄청나게 발전했습니다.

대표적인 예로 기원전부터 연구되었지만 풀지 못했던 임의 각의 3등분 문제는 3차 방정식의 유리수 해가 존재하지 않는 것을 보이는 것으로 불가능하다는 것이 쉽게 증명되었습니다. 저도 수능 시험을 볼 때, 도형 문제를 좌표계로 표현해서 쉽게 풀었던 경험이 있습니다.

반대로 대수적인 방법으로는 풀기 어려운 문제를 기하적인 직관을 바탕으로 쉽게 이해하거나 풀 수 있는 경우도 많습니다. 예를 들어 거리라던가 직교라는 개념은 대수적인 해석보다는 기하적으로 이해할 때 좀 더 빠르고 쉽게 받아들일 수 있습니다.

하지만 3차원을 넘어서서 4차원, 더 나아가 무한 차원으로 확장했을 때도 우리가 직관적으로 알고 있는 공간에 대한 개념들을 그대로 적용해도 아무 문제가 없을까요? 과연 무한 차원 공간에서도 거리나 직교라는 기하학적인 개념이 우리가 알고 있는 방식으로 동작할지를 생각해보면, 이 부분이 생각보다 명확하지 않다는 것을 알 수 있습니다.

실제로 공간의 차원이 고차원으로 올라갈수록 우리의 직관이 우리를 배신하는 경우가 많기 때문에 주의해야합니다. 예를 들면, 박스 안에 공을 넣었는데 넣고 보니 박스 안에 들어간 공의 지름이 박스보다 커진다거나 (예시1), 분명 찰흙을 뭉쳐 속이 꽉 찬 공을 만들었는데 만들고 보니 무게가 모두 껍질 쪽에 몰려서 마치 비눗방울처럼 바뀐다거나 (예시2) 하는 황당한 상황들을 흔히 볼 수 있죠.

이와 같이 고차원 공간에서는 인간의 직관이 공간에 대해 제대로 이해하는 것을 오히려 방해하는 경우가 생깁니다. 하지만 그렇다고 우리가 태어나서부터 가지고 있던 편한 도구를 버리기에는 너무 아깝죠. 그렇기에 공간에 대한 우리의 직관적인 이해를 무한 차원에서도 그대로 확장해도 문제가 없기 위해서는 좀 더 엄밀하고 구체적인 제약을 지닌 공간이 필요할텐데요. 그런 공간을 만들기 위해 고안된 것이 바로 Hilbert space입니다.

신호 처리 공부하다가 뜬금없이 웬 해석학이냐고 할 수도 있지만, 이 부분이 신호 처리를 이해하는데 매우 좋은 도구가 된다는 것은 차차 자명해질 것입니다. 잠깐만 부연하자면, 이전 글에서 얘기했던 바와 같이 우리는 discrete-time 신호가 벡터의 형태로 표현이 가능하다는 것을 알고 있습니다. 이렇게 신호가 벡터로 표현되는 순간, 선형대수학이나 미적분학에서 개발된 강력한 도구들을 사용할 수 있게 되는데요. 이에 더해 이 신호가 Hilbert 공간 안에 있다는 것이 보장되면, 길이가 유한한 신호이든 함수와 같은 무한한 신호이든 상관없이 우리가 익숙하고 편하게 알고 있던 기하학적인 도구들을 문제없이 그대로 사용할 수 있게 됩니다.

예를 들어 2차원이나 3차원에서 사용하던 피타고라스 정리나 평행 4변형의 법칙과 같은 개념이 자연스럽게 확장되는 것이죠. 따라서, Hilbert 공간에서는 유한한 길이의 벡터 뿐만 아니라 무한한 길이의 벡터에 대한 추상적인 분석과 finite lenght 신호 대한 분석을 같은 관점에서 매끄럽게 설명할 수가 있게 됩니다.

여기까지 Hilbert 공간이 신호처리에서 중요한 이유를 살짝 소개해드렸는데요. 더 구체적인 내용은 먼저 우리에게 익숙한 유한 차원 유클리드 공간(Euclidean space)를 바탕으로 여러 개념들을 소개하고 이를 무한 차원 Hilbert 공간으로 확장해가면서 살펴보겠습니다.

Euclidean geometry


유클리드 기하는 우리가 태어나서부터 자연스럽게 갖고 있는 공간 감각과 매우 잘 맞아 떨어지는 면이 많습니다. 예를 들어 $\mathbb{R}^2$ 공간은 "평면"에 대한 경험과 대응되고 $\mathbb{R}^3$는 우리가 살고 있는 "공간"에 대한 이해로 자연스럽게 이어집니다. 여기서는 "거리"에 대한 개념도 매우 명백하고 "직교"한다는 것도 어떤 이미지인지 매우 명확하게 그릴 수 있습니다. 심지어 "기저 (basis)"와 같이 매우 추상적인 개념조차도 위도나 경도 높이와 같은 개념으로 치환하여 직관적인 이해하는 것이 가능하죠.

물론 앞서 말했듯이 고차원으로 갈수록 여러 문제가 생길 수 있다지만, 최소한 $N$ 차원으로 유한한 유클리드 공간에서는 여러가지 추상적인 개념을 우리가 익숙한 2차원 혹은 3차원으로 내려서 생각해도 문제가 없기 때문에, 여기서 먼저 복잡한 개념들을 소개하고 충분히 이해하는 것에 의미가 있습니다.

Vectors and Notation.


$\mathbb{R}^N$ 공간의 한 점은 $N$-tuple 좌표 형태로 나타낼 수 있습니다:
$$\mathbf{x} = [x_0, x_1, \cdots, x_{N-1}]^T.$$
우리는 이 것을 벡터라고 부르고 이 좌표는 "standard" 직교 기저들로 표현이 됩니다. 

Inner Product.


두 벡터 $\mathbf{x},\mathbf{y\in \mathbb{R}^N}$ 간의 내적은 다음과 같이 정의 됩니다. 
$$\langle \mathbf{x},\mathbf{y}\rangle=\sum^{N-1}_{n=0}x_n y_n$$
이 때 두 벡터의 내적이 0인 경우 우리는 이 두 벡터가 서로 직교한다고 말합니다.
$$\mathbf{x}\perp \mathbf{y} \Longleftrightarrow \langle \mathbf{x},\mathbf{y}\rangle=0$$

Norm.


벡터의 norm은 그 벡터의 길이를 나타냅니다. 보통 벡터의 norm은 내적으로 정의가 되는데 (induced) 기하적으로 생각하면 이해하기 매우 쉽습니다. (원점에서 벡터를 표현하는 좌표까지의 거리). 
$$||\mathbf{x}||_2=\sqrt{\sum^{N-1}_{n=0}x_n^2}=\langle \mathbf{x},\mathbf{x}\rangle^{1/2}$$

Distance.


위에서 정의한 norm은 자연스럽게 두 벡터 간의 유클리디안 거리를 정의하는데 사용됩니다. 
$$ d(\mathbf{x},\mathbf{y})=||\mathbf{x}-\mathbf{y}||_2=\sqrt{\sum^{N-1}_{n=0}(x_n-y_n)^2}$$

Bases.


$\mathbb{R}^N$에 대해 $N$개의 linear independent 벡터들을 골랐을 때: $\{\mathbf{x^{(k)}}\}_{k=0,\cdots,N-1}$, 이를 bases라고 부릅니다. 즉, 이 벡터들의 선형결합으로 임의의 $\mathbf{z}\in\mathbb{R}^N$와 $a_k\in \mathbb{R}$에 대해 다음과 같이 표현할 수 있다는 뜻입니다: 
$$\mathbf{z}=\sum^{N-1}_{k=0}a_k\mathbf{x}^{(k)}$$
이러한 bases들 중에 서로 직교하고 norm이 1인 녀석들을 orthonormal bases $\{\mathbf{y^{(k)}}\}_{k=0,\cdots,N-1}$라고 부릅니다: 
$$\langle \mathbf{y}^{(k)},\mathbf{y}^{(h)}\rangle=\begin{cases}1 \quad\text{if } k=h \\ 0 \quad\text{otherwise}\end{cases}$$
그리고 이러한 bases 중 가장 "기본적인(standard)" 녀석이라 하여 $\mathbb{R}^N$에 대해 다음과 같은 bases를 canonical bases $\{\mathbf{\delta}^{(k)}\}_{k=0,\cdots,N-1}$라 부릅니다:
$$\mathbf{\delta}_n^{(k)}=\delta[n-k]=\begin{cases}1 \quad\text{if } n=k \\ 0 \quad\text{otherwise}\end{cases}$$
이 bases가 orthonormal하다는 것은 매우 자명하죠. 이런 종류 중 또 다른 중요한 녀석이 있는데요. 바로 Fourier bases $\{\mathbf{w}^{(k)}\}_{k=0,\cdots,N-1}$ 입니다:
$$\mathbf{w}_n^{(k)}=\frac{1}{\sqrt{N}}e^{-j\frac{2\pi}{N}nk}$$
이 녀석에 대한 내용은 orthonormality 증명과 함께 나중 챕터에서 다룰 것입니다. 여기서 가져가실 점은 Fourier bases도 일종의 좌표축들이고 임의의 $\mathbf{x}\in\mathbb{R}^N$에 대해 이를 canonical 좌표계로 표현할 수도 있지만, Fourier 좌표로도 표현할 수도 있다는 점입니다. 다만 좌표축이 변한만큼 좌표값도 바뀌겠죠.

이렇게 하나의 좌표축으로 표현된 어떤 벡터를 다른 좌표축으로 바꿔 표현하는 것을 벡터에 대한 좌표축 "변환 (transform)"을 수행한다고 얘기합니다. 즉, Fourier transform은 별게 아니라 임의의 벡터를 Fourier bases로 좌표축을 바꿔서 표현하는 방법임을 알 수 있습니다.

눈치가 빠르신 분들은 이미 여기서부터 어째서 신호처리 개념들을 기하적으로 생각하는 것이 개념을 이해하는데 도움이 되는지 알 수 있으실거라 생각합니다. 그저 대수적인 표현 방식으로만 Fourier transform을 이해하려고 하면 적분과 복잡한 수식으로 이루어진 형태에 그 뒤에 숨어있는 뜻을 알기가 쉽지 않지만, 위와 같은 관점에서 보면 결국 Fourier transform은 그저 좌표축 치환하는 여러가지 방법 중 하나일 뿐이라는 것을 알 수 있죠. 적분은 차후 보시겠지만 내적의 일반적인 표현일 따름이구요.

From Vector Spaces to Hilbert Spaces


이제 앞서 얻은 유한 차원 유클리드 공간에 대한 이해를 바탕으로 무한 차원 Hilbert 공간으로 개념들을 확장해보겠습니다. 그런데 애초에 우리가 편하게 다룰 수 있는 유한 차원 공간에서 굳이 무한한 차원으로 넘어가야 하는 이유가 뭘까요?

두루뭉술하게 이렇게 일반화를 한 형태가 이론적으로 분석하거나 다루기가 더 쉽기 때문에 이론적인 발전을 위해서는 이런 확장이 필연적이었을 것이라 설명할 수도 있겠습니다만, 좀 더 구체적으로 그렇게 하지 않았을 때 어떤 문제가 생기는지를 보는게 더 이해가 쉽겠습니다.

일단 자연에 존재하는 신호가 굳이 discrete하고 유한한 값만을 가질 이유가 없다는 것은 동의하실겁니다. 곰곰히 생각해보면 임의의 신호가 굳이 유한한 차원 안에서 표현되야 한다는 것이 오히려 더 큰 제약이죠. 예를 들어 임의의 continuous 함수 $f: \mathbb{R}\rightarrow \mathbb{R}$는 모두 무한 차원 벡터로 표현될 수 있습니다. 그럼 이런 신호를 다루기 위해서 우리에게 익숙한 유한 차원 유클리드 공간 $\mathbb{R}^N$이나 $\mathbb{C}^N$을 적용하되 단순하게 $N$을 무한하게 키워서 사용하면 어떻게 될까요?

음... 당장 내적이나 norm부터 문제가 생기는군요. 예를 들어 모든 값이 1로 일정한 무한 수열과 같이 매우 단순한 수열을 생각해보시면 내적이나 norm 값들이 발산한다는 것을 쉽게 알 수 있습니다. 이렇듯 단순하게 공간을 확장해보면 우리가 알던 도구들이 잘 정의되지 않아서 신호를 다루기가 쉽지 않아집니다.

그래서 이런 도구들이 제대로 기능하면서도 위와 같은 문제가 없도록 벡터 공간에 적절한 제약을 걸어 일반화한 공간이 Hilbert space입니다. 이 제약을 신호처리에 가까운 언어로 간단히 표현하면, finite energy를 가지는 벡터들만이 Hilbert space의 원소가 되도록 제약을 걸었다고 생각할 수 있습니다.

이를 조금만 더 엄밀하게 얘기해보면 다음과 같습니다:

벡터 집합 $V$와 스칼라 집합 $S$에 대해, 간단한 사칙연산과 null vector 등이 정의된 벡터 공간 $H(V,S)$에 내적이 추가로 구비된 공간을 Inner Product Space라고 부릅니다. Hilbert 공간은 여기에 더해 "completeness"를 추가로 요구하는데요. (Hilbert 공간 = complete inner product space). 한국어로는 완비성이라고 부르는 이 개념은 $H(V,S)$ 공간의 코시 수열(Cauchy sequence)이 수렴할 때, 그 극한에 해당하는 벡터 역시도 같은 공간 $H(V,S)$ 안에 존재한다는 말입니다.  결국 completeness의 정의를 조금 생각해보면 Hilbert 공간이 구멍이 없이 꽉 차있다는 얘기입니다. (조밀성과는 다릅니다.)

음....사실 저는 처음 이런 추상적인 개념이 도대체 신호를 다룰 때 어째서 중요한지 아무도 알려주는 사람이 없어서 도무지 이해하기 어려웠습니다. 그냥 그런가보다 하고 넘어가기에는 답답해 하다가 찾은 나름의 답은 다음과 같습니다.

다시 무한한 support를 갖는 신호를 다루는 입장에서 생각해보겠습니다. 이 신호를 표현하기 위해 앞서 배웠던 유클리드 공간의 basis에 관한 내용을 확장해보면 다음과 같은데요: $$\mathbf{z}=\sum^{\infty}_{k=0}a_k\mathbf{x}^{(k)},\quad \mathbf{x}^{(k)},\mathbf{z}\in\mathbb{R}^\infty, a_k\in \mathbb{R}.$$ 즉, 임의의 신호에 대해 무한 개의, 무한 차원 basis들의 선형 결합으로 표현할 수 있다는 뜻이 됩니다.

문제는 일단 무한 차원의 벡터들에 대한 무한 합이라는 것부터 잘 정의가 될지부터 잘 감이 오지 않죠. 사실 이것이 가능하다는 것을 보여준 것이 Fourier series입니다. 언젠가 더 자세히 소개할 날이 오겠지만 Fourier의 업적 중 하나인 Fourier series는 임의의 함수를 무한 개의 sinusoidal basis 함수들의 합으로 표현이 가능하다는 것을 보여줍니다. 즉, 수렴합니다.

이 때, "신호"란 실제로 물질적인 세상(공간)에 존재하는 신호들로서 어떤 물리적인 조건(예: finite energy)들을 만족할텐데요. 어떤 신호가 이런 공간 내에 존재하지 않는다는 말은, 해당 신호가 물리적인 조건을 만족하지 않아 제대로 된 신호가 아니라고 이해할 수 있겠습니다.

그런데 만약 이런 basis들의 무한 합으로 신호를 표현하고 보니 그 합이 수렴하는 신호가 물질적인 세상을 벗어나 버린다면, 즉, 그 수렴 결과가 의미가 없는 신호라면 (혹은 또 다른 말로 해당 공간이 완비성이 보장되지 않는다면), 이 공간 안에서는 신호를 다루기가 까다로워집니다.

결국 Hilbert 공간 안에서는 벡터를 가지고 아주 이상한 짓을 하지 않는한 웬만해서는 어떤 연산을 하든 이 공간 안에서만 놀 수 있기 때문에 "좋은" 공간이라고 생각하시면 됩니다.

Hilbert space의 예시


결국 이런 좋은 성질들과 제약 덕분에, 이미 소개한 것 처럼 Hilbert 공간은 *함수들도 원소로 갖을 수 있는데요. 예를 들어 다음과 같은 녀석들이 있습니다:
(* 여기서 더 나아가는 것은 함수 해석학에서 배울 내용이니 여기서는 그런 것이 있다고만 알고 넘어가시면 됩니다. 단, 뒤에서도 유용하게 쓰일 녀석을 하나만 소개하자면 이전 글에서도 잠깐 언급되었었던 "the space of square integrable functions" 인데요. 이는 차후 continuous와 discrete-time 신호들 간의 관계를 보여줄 때 유용하게 사용될 것입니다.) 

Finite Euclidean Spaces.

유한한 $N$에 대해 내적이 $\langle \mathbf{x},\mathbf{y}\rangle=\sum^{N-1}_{n=0}x_n ^*y_n$으로 정의된 벡터 공간 $\mathbb{C}^N$은 Hilbert space입니다.

Polynomial Functions. 

functional Hilbert space의 한 예시로써 $[0,1]$ 구간에서 정의된 maximum degree가 $N$인 polynomial 함수들의 공간 $\mathbb{P}_N([0,1])$이 있습니다.

Square Summable Functions. 

또 다른 functional Hilbert space 예시로 square integrable functions이되 유한한 구간에서 정의된 square summable functions 공간이 있습니다. 예를 들어, $L_2([-1,1])$는 finite norm을 가지고 구간 $[-\pi,\pi]$에서 정의된 공간으로서 내적은 아래와 같이 정의됩니다:
$$\langle f,g \rangle = \int_{-1}^1 f^*(t)g(t)dt.$$
따라서 $f(t)$의 norm은 자연스럽게
$$||f(t)|| = \sqrt{\int_{-1}^1 |f(t)|^2dt}$$
로 정의되며 $L_2([-1,1])$에 속하는 $f(t)$는 모두 $||f||<\infty$를 만족해야합니다.

Inner Products and Distances


이제 앞서 유클리드 공간에서 소개했던 개념들을 하나씩 확장해보겠습니다.

먼저 내적을 조금 더 살펴보죠. 내적은 벡터 공간에서 벡터간의 "거리"라는 개념을 표현할 때 필수적인 요소입니다. 이를 이해할 때 기하적인 접근을 하면 훨씬 받아들이기가 쉬운데요. 예를 들어 $\mathbb{R}^N$ 유클리드 공간에서 $\mathbf{x}$ 벡터와 $\mathbf{y}$ 벡터가 있을 때 둘의 내적 $\langle \mathbf{x},\mathbf{y}\rangle$은 $\mathbf{y}$를 $\mathbf{x}$에 대해 orthogonal projection한 값이라고 할 수 있습니다.

정사영을 생각해보면 orthogonal projection이 $\mathbf{x}$의 점 중 $\mathbf{y}$에 가장 가까운 점을 찾는 방법임을 쉽게 알 수 있습니다.
$$\langle \mathbf{x},\mathbf{y}\rangle=||\mathbf{x}|| ||\mathbf{y}|| \cos\theta$$
여기서 $\theta$는 두 벡터 사이의 각도인데, 각도가 90도가 되면 cos 값이 0이 되면서 내적도 0이 되죠. 따라서 이런 관점에서, 내적은 두 벡터 간의 각도 차(혹은 두 벡터가 이루는 모양의 차이)를 바탕으로 유사도를 측정하는 방법이라 할 수 있습니다.

이런 내적은 신호처리에서 마주할 수 있는 다양한 상황에서 사용되는데요. 우리가 알고 싶은 내용에 따라 다른 이름으로 불리곤 합니다. 여러 신호 중 특정 신호를 찾고 싶을 때는 correlation이라는 용어로 사용되기도 하고, 신호를 바꾸거나 다른 신호로 근사하고 싶을 때는 filtering이라고 부르는데, 결국에는 모두 다 내적을 사용하여 두 신호 혹은 벡터 간의 유사성을 정량적으로 측정하는 것입니다.

위와 같은 맥락으로 이해하면 신호들 간에 orthogonality는 자연스럽게 두 신호가 완벽하게 구별이 가능하다는 뜻으로 이해할 수 있게됩니다. 즉, 두 신호의 생김새가 완전히 다른 것이죠.

이렇듯 유사성을 정량적으로 측정하기 위해 *내적으로부터 "거리"라는 개념이 나오고 우리가 잘 아는 유클리디안 거리가 나오는 것입니다.
$$ d(\mathbf{x},\mathbf{y})=\langle\mathbf{x}-\mathbf{y},\mathbf{x}-\mathbf{y}\rangle^{1/2}=||\mathbf{x}-\mathbf{y}||$$ 신호처리 분야에서는 이런 유클리디안 거리를 "root mean square error"라고 부르고 $\mathbf{y}$를 $\mathbf{x}$로 근사할 때 전반적인 "goodness of fit"을 정량적으로 측정하는 것에 많이 쓰입니다.
* 물론 여러가지 거리에 대한 정의들 중 내적이랑 관련이 없는 녀석도 있는데요: $ d(\mathbf{x},\mathbf{y})=\max_{0\leq n<N}|\mathbf{x}_n-\mathbf{y}_n|$. 이 녀석은 superemum norm을 바탕으로 정의되는 거리로 $||\mathbf{x}-\mathbf{y}||_\infty$로 표현되기도 합니다. 하지만 이에 대응하는 내적이 없기 때문에 이를 natural norm으로 갖는 Hilbert space는 존재하지 않습니다. 


Hilbert 공간에서는 위와 같이 유클리드 공간에서 자연스럽게 이해가 되는 내적이란 개념을 일반적인 함수에 대해 적용했을 때 아무런 문제 없이 확장이 가능합니다. 예를 들어 $L_2[-1,1]$ 공간에서 내적은 앞서 다음과 같이 정의된다고 말씀드렸었죠: $$\langle f,g \rangle = \int_{-1}^1 f^*(t)g(t)dt.$$ 이런 공간에 있는 함수 중에 다음과 같이 주기가 서로 다른 (즉, 전혀 다르게 "생긴") 두 함수에 대해 내적을 계산해보면 어떻게 될까요? 

재미있게도 이 두 함수가 정의에 따라 서로 orthogonal한 것을 확인할 수 있습니다. 


이를 엄밀하게 계산해볼 수도 있겠지만 위와 같이 간단하게 눈으로 확인해 볼 수도 있습니다. 빨간색으로 표현된 영역과 파란색으로 표현된 영역들이 서로 부호가 다르지만 넓이가 같은 짝이 있어서 서로서로 상쇄되어 결과적으로 적분을 하면 값이 0이 되는 것을 확인할 수 있습니다.

마찬가지로 거리 개념 역시도 확장하여 다음과 같이 나타내고 계산하는 것이 가능합니다: $$||f(t)-g(t)||^2 = \int_{-1}^1 |f(t)-g(t)|^2dt.$$

다음글 Preview


글이 좀 길어졌는데요. 여기서 잠시 끊고 다음 글에서 이어 확장해보도록 하겠습니다.

다음 글에서는 bases와 관련된 개념들을 소개할 것입니다. 여기서는 subspace라든가 projection 그리고 Parseval's identity나 Bessel's inequality와 같이 orthonormal bases들이 갖는 유용한 특성과 그런 bases들이 어떤 것들이 있는지 등을 다룰 것입니다.

한가지 재미있는 점은 이 Parseval's identity나 Bessel's inequality이라 불리는 두 특성이 이름은 서로 다르지만 사실은 우리가 매우 잘 알고 있는 유클리드 공간에서의 피타고라스 정리가 일반화 된 형태일 따름이라는 것이죠.

제가 계속 중간중간 언급을 하여 눈치채셨겠으나 이렇게 좀 기초적인 내용들을 계속 다루는 까닭은 신호처리의 중요한 개념들을 설명할 때 가져다 쓸 기초적인 도구이자 약속이기 때문이기도 하고 이를 바탕으로 좀 더 직관적 이해가 가능하기 때문입니다. 이 장이 익숙하거나 지루하신 분들은 차후 있을 Fourier Analysis 편으로 바로 넘어가셔도 되겠습니다.

그럼 다음 글에서 뵙겠습니다.

같이 읽으면 좋을 참고 문헌


  • http://www.math.lsa.umich.edu/~kesmith/infinite.pdf

To be continued ... (planned)





댓글 1개:

  1. 정말 감사합니다. Hilbert space가 왜 필요한지 정의 부분만 봐도 개념 잡기가 어려웠는데 도움이 많이 되었습니다.

    답글삭제