[경고] 아래 글을 읽지 않고 "평면의 방정식"을 보면 바보로 느껴질 수 있습니다.
평평한 면을 나타내는 평면(平面, plane)은 기본 개념이 아주 쉽지만 수학 공식으로 평면을 표현하려면 어려움이 크다. 3차원 공간의 평면을 공식화하는 방법은 많이 있지만, 고급 개념인 벡터(vector)를 쓰면 평면의 방정식이 바로 얻어진다.
[그림 1] 3차원 공간 상의 평면 모습(출처: wikipedia.org)
벡터 개념으로 평면의 방정식을 유도하기 위해 [그림 1]과 같은 그림을 상상한다. 평면 상에 존재하는 임의의 점을 $\bar r$ = $(x, y, z)$, 우리가 위치를 알고 있는 평면 상의 고정된 점은 $\bar r_0$ = $(x_0, y_0, z_0)$이라 쓴다. 그러면 $\bar r$과 $\bar r_0$이 만드는 벡터는 평면에 항상 수직인 법선 벡터(normal vector) $\bar n$과의 벡터 내적(inner product)이 항상 0이다.
(1)
여기서 $\bar n$ = $(a, b, c)$이다. 결과적으로 식 (1)은 법선 벡터 $\bar n$을 가진 평면을 위한 대수 방정식이 된다.
식 (1)에 제시한 평면의 방정식을 이용해 3차원 곡면의 접평면(接平面, tangent plane)도 정의할 수 있다[1]. 구배(gradient) 연산자를 쓰면, 임의의 곡면 $f(x, y, z)$ = $0$에 대한 접평면의 방정식을 쉽게 유도할 수 있다.
[그림 2] 구에 접하는 평면 혹은 접평면(출처: wikipedia.org)
[접평면의 방정식]
곡면 $f(x, y, z)$ = $0$ 위의 점 $\bar r_0$ = $(x_0, y_0, z_0)$에 접하는 평면의 방정식은 다음과 같다.
(2)
[증명]
구배는 스칼라 함수가 최대로 변하는 방향이므로, $\bar \nabla f$는 자동적으로 곡면의 법선 벡터와 평행하게 된다. 따라서 $\bar n$ = $\bar \nabla f$를 식 (1)에 대입해서 정리하면 식 (2)가 바로 얻어진다.
______________________________
만약 곡면을 $z$ = $f(x, y)$로 표현하면, $F(x, y, z)$ = $f(x, y) - z$ = $0$으로 생각해서 식 (2)에 대입한다. 그러면 $z$ = $f(x, y)$의 접평면의 방정식도 얻을 수 있다.
(3)
여기서 $z_0$ = $f(x_0, y_0)$이다.
[그림 3] 점과 평면 사이의 거리
점과 직선 사이의 거리처럼 점과 평면 사이의 거리를 유도할 때도 벡터 개념이 매우 유리하다.
[점과 평면 사이의 거리(distance from a point to a plane)]
[증명]
점 $\bar r_0$ = $(x_0, y_0, z_0)$과 평면 $ax+by+cz+d$ = $0$ 사이의 거리 $D$는 다음과 같다.
(4)
여기서 점과 평면 사이의 거리는 최단 거리 혹은 수직인 거리로 정한다.
[증명]
[그림 3]에 있는 평면의 방정식 일반형 $ax+by+cz+d$ = $0$을 바꾸어서 식 (1)과 같은 평면의 방정식 표준형 $a(x-x_1)+b(y-y_1)+c(z-z_1)$ = $0$을 만든다. 여기서 법선 벡터는 $\bar n$ = $(a, b, c)$, $\bar r_1$ = $(x_1, y_1, z_1)$은 평면 위의 점이다. 점과 직선 사이의 거리처럼 벡터 $\bar n$과 $\bar u$ = $\bar r_0 - \bar r_1$ = $(x_0, y_0, z_0) - (x_1, y_1, z_1)$ 사이의 내적을 계산해서 식 (4)를 증명한다.
(5)
______________________________
[그림 4] 헤세 표준형을 위한 기하 구조(출처: wikipedia.org)
원점에서 시작하는 법선 벡터 $\bar n$을 가진 [그림 4]는 식 (1)을 바라보는 새 관점을 알려준다. 원점과 평면 사이의 거리를 $D$로 두면, $\bar n$ = $D \hat n$으로 표현 가능하다. 또한 $\bar r_0$는 평면 위의 점이므로 $\bar n$ = $\bar r_0$이 되게 한다. 그러면 식 (1)에 기술한 평면의 방정식은 점과 평면 사이의 거리를 결정하는 공식으로 바뀌게 된다.
(6)
여기서 $\bar r_0$ = $(a, b, c)$, $\hat n$ = $(a, b, c) \mathbin{/} \sqrt{a^2 + b^2 + c^2}$, $\bar r$ = $(x, y, z)$이다. 거리 정보를 담고 있는 식 (6)은 제안자 헤세Ludwig Otto Hesse(1811–1874)의 이름을 따서 헤세 표준형(Hesse normal form)이라 부른다. 헤세는 다차원 구배(gradient)를 계산하는 헤세 행렬(Hessian matrix)로도 유명하다. 식 (6)을 식 (4)와 같은 방식으로 바꿀 때는 원래 점 $(x_0, y_0, z_0)$를 평행 이동하여 원점으로 보낸다. 이때 평면의 방정식은 $a(x+x_0) + b(y+y_0) + c(z+z_0) + d$ = $0$으로 변형된다. 그러면 식 (6)을 따라 $\hat n \cdot \bar r$ = $(ax+by+cz) / \sqrt{a^2 + b^2 + c^2}$ = $- (ax_0+b y_0 + cz_0 + d) / \sqrt{a^2 + b^2 + c^2}$ = $D$가 손쉽게 얻어진다.
우리가 고려하는 평면은 3차원 공간에 있지만, 식 (1)과 (2)를 보면 3차원보다 큰 다차원 공간의 평면도 가능할 것 같다. 예를 들어, 식 (1)에 따라 $n$차원 공간에 존재하는 평면의 방정식은 다음처럼 쓸 수 있다.
(7)
여기서 $\bar n$ = $(a_1, a_2, \cdots, a_n)$, $\bar r$ = $(x_1, x_2, \cdots, x_n)$, $\bar r_0$ = $(b_1, b_2, \cdots, b_n)$이다. 평면을 일반화시킨 기하학적 대상체는 초평면(超平面, hyperplane)이라 부른다. 일반적으로 초평면은 현재 물체가 놓인 $n$차원보다 하나만큼 차원이 작은 $n-1$차원 공간을 뜻한다. 식 (7)에 의하면, 어떤 좌표 성분 하나는 다른 모든 좌표 성분으로 표현되어서 선형 종속(linear independence)이 된다. 따라서 식 (7)은 $n$차원보다 하나 작은 $n-1$차원을 나타내므로 초평면이 된다. 초평면 개념을 식 (4)에 적용할 수 있다. 벡터와 내적을 $n$차원으로 확장해서 $n$차원 공간의 점 $\bar y$ = $(y_1, y_2, \cdots, y_n)$과 초평면 사이의 거리를 다음과 같이 정의할 수 있다.
(8)
여기서 $\bar r_0$ = $(x_1, x_2, \cdots, x_n)$은 평면 위에 있다. 식 (8)을 섬세하게 음미하면, 현실에서 만나거나 상상할 수 없는 $n$차원 공간을 기하학적으로 자유롭게 다룰 수 있게 하는 수학적 추상화의 힘을 느낄 수 있다.
[그림 5] 평면에 대한 영상 $\bar r_0'$ = $(x_0', y_0', z_0')$
[평면에 대한 영상(image for a plane)]
점 $\bar r_0$ = $(x_0, y_0, z_0)$이 평면 $ax+by+cz+d$ = $0$에 대해 만드는 영상(image) $\bar r_0'$ = $(x_0', y_0', z_0')$의 공식은 다음과 같다.
(9)
여기서 영상 $\bar r_0'$은 평면 기준으로 $\bar r_0$과 같은 거리만큼 떨어지면서도 $\bar r_0$과 반대편에 있는 점, $\bar n$ = $(a, b, c)$, $\hat n$ = $\bar n \mathbin{/} |\bar n|$, $\bar r_1$ = $(x_1, y_1, z_1)$은 평면 위의 임의 점이다.
[증명: 벡터 연산]
[그림 5]에 따라 평면에서 점 $\bar r_0$에 가는 벡터는 $\bar r_0 - \bar r_1$이다. 이 벡터가 가진 성분 중에서 $\hat n$ 방향은 $\hat n \cdot (\bar r_0 - \bar r_1)$이다. 이 값을 $\bar r_0$에서 2배만큼 빼주면, 평면 기준으로 $\bar r_0$에서 반대 방향에 있으면서도 떨어진 거리는 같은 영상이 얻어진다.
[증명: 직선의 방정식]
식 (10)과 (11)을 연립해서 비례 상수 $k$를 결정한다.
점 $\bar r_0$과 영상 $\bar r_0'$의 중점은 평면상에 있어서 다음과 같은 방정식을 만족한다.
(10)
또한 $\bar r_0' - \bar r_0$은 평면에 수직하며 $\hat n$과 같은 방향이므로, 다음과 같은 직선의 방정식이 성립한다.
(11)
(12)
식 (12)를 식 (11)에 넣어서 확정한 영상은 $\bar r_0'$ = $\bar r_0 + k \bar n$으로 나온다. 여기서 $d$ = $-\bar n \cdot \bar r_1$이다.
______________________________
평면에 대한 영상은 빛의 반사를 직선으로 추적할 때에 유용하게 사용된다. 평면을 표현하는 단위 법선 벡터 $\hat n$은 식 (9)에서 제곱 특성을 가져서 $-\hat n$을 써도 문제없다.
[그림 6] 두 볼록 집합을 초평면으로 자른 모습(출처: wikipedia.org)
초평면 개념이 신비롭게 적용되는 예는 초평면 분리 정리(hyperplane separation theorem)이다[2]. [그림 6]에 소개한 모양을 가진 두 집합을 초평면으로 항상 분리할 수 있다는 놀라운 성질이 초평면 분리 정리에 있다. 이 정리를 증명하려면 $n$차원 좌표 $\mathbb{R}^n$에서 점들을 모아서 만드는 여러 집합을 상세히 분간해야 한다.
[그림 7] 개집합 혹은 열린 집합
[그림 7]은 전형적인 개집합 혹은 열린 집합(open set)의 모습을 보여준다. 점선(dotted line)으로 표시한 경계(boundary)는 개집합 $A$에 포함되지 않고, 파란색으로 표시한 내부의 점들은 $A$에 속한다. 눈으로 보면 개집합 개념이 명확하지만, 수학적으로 정의하려면 난감하다. 경계는 제외하고 내부는 들어있는 개집합은 어떻게 나타내야 하나? 이런 어려움은 [그림 7]에서 노란색으로 보인 근방(neighbor)을 정의해서 해결한다. $n$차원 좌표 $\mathbb{R}^n$의 부분 집합(subset) $A$에서 뽑은 임의의 원소를 $\bar x$ = $(x_1, x_2, \cdots, x_n)$으로 둔다. 임의점 $\bar x$를 중심으로 하는 초구(hypersphere)를 $\bar x$의 근방으로 정의한 후, 초구의 반지름 $r$을 $r < \epsilon$만큼 줄일 때에 이 영역이 집합 $A$에 속하면 $A$를 개집합이라 한다. 여기서 $\epsilon$은 적당히 작은 양수이다. 즉, 개집합의 정의에 점의 근방을 뜻하는 작은 초구를 잣대로 사용한다. 이 초구를 줄여서 원래 집합에 속하게 만들 수 있어야 개집합이 된다. 개집합을 도입하면 집합 내부에 자유롭게 근방을 만들 수 있다. 개집합의 경계만 모은 집합은 경계 집합(boundary set)이 된다. 경계 집합에 만든 초구는 아무리 반지름을 줄여도 부분적으로만 이 집합에 속한다. 개집합에 반대되는 폐집합 혹은 닫힌 집합(closed set)은 개집합의 여집합(complement)으로 정의한다. 예를 들어, [그림 7]에 나온 개집합 $A$의 여집합은 $A^C$이므로, $A^C$는 폐집합이다. 다른 관점으로 개집합과 그 경계 집합의 합집합(unio)은 폐집합을 구성한다. 왜냐하면 이 집합의 여집합은 새로운 개집합이기 때문이다. 개집합이나 폐집합의 원소 크기가 유한한 경우는 유계 집합(bounded set)으로 표현한다. 폐집합과 유계 집합이 동시에 성립하는 집합은 옹골찬 혹은 콤팩트 집합(compact set)으로 명한다. 옹골찬 집합이란 이름에도 풍기듯이, 이 집합은 자기 영역이 구멍없이 꽉 차있고 경계점이나 끝점까지 모두 이 집합에 속한다. 끝점도 옹골찬 집합에 속하는 성질로 인해, 무한대로 발산하는 집합은 끝이 계속 커져서 옹골찬 집합이 될 수 없다.
제한 조건이 많지만 수학적으로 편리한 옹골찬 집합으로 만든 서로소(disjoint)인 집합을 만든다. 이 집합의 원소를 각각 뽑아서 잰 거리는 최대값과 최소값의 존재한다는 유용한 성질을 증명한다.
[서로소인 두 옹골찬 집합의 원소간 거리]
서로소인 두 옹골찬 집합의 원소간 거리는 최대값과 최소값이 있으며, 이 값을 만드는 원소는 두 집합의 경계 집합에 각각 존재한다.
[증명]
옹골찬 집합 $A, B$에서 뽑은 원소를 각각 $\bar x$ = $(x_1, x_2, \cdots, x_n)$, $\bar y$ = $(y_1, y_2, \cdots, y_n)$으로 정한다. 이 두 원소간 거리는 $R$ = $|\bar y - \bar x|$ = $\sqrt{(y_1 - x_1)^2 + \cdots + (y_n - x_n)^2}$이다. 옹골찬 집합에 있는 원소는 좌표별로 최대값과 최소값이 있고, $|y_i - x_i|$도 최대값과 최소값을 가진다. 먼저 각 좌표 $|y_i - x_i|$가 만드는 최대값을 $M_i$라 둔다. 그러면 다음 차이가 항상 0보다 크거나 같다. 따라서 모든 원소에 대해 계산한 거리는 최대값이 있다.
(13)
여기서 $M_i \ge |y_i - x_i|$이다. 식 (13)에서 등호가 성립하는 경우는 각 좌표의 끝점이다. 이는 최대값이 각 좌표의 종단에 있고, 구간의 끝에 있는 좌표들을 모두 모아 만든 $\bar x, \bar y$는 두 집합의 경계 집합에 있다는 뜻이다. 마찬가지로 최소값과 그 원소에 대해 같은 방식을 적용해도 이 결과가 성립한다.
______________________________
[그림 8] 서로소인 볼록 집합에 접하는 초평면 $L_A, L_B$(출처: wikipedia.org)
옹골찬 집합만큼 강력한 조건인 볼록 집합(convex set)에 대해 [그림 6]에 소개한 초평면 분리 정리가 성립한다. 볼록 집합은 내부의 두 점을 연결한 선분이 항상 이 집합에 속하는 특성이 있다. 그래서 볼록 집합은 구멍이 있는 [그림 7]과 다르게 [그림 8]처럼 파란색 볼록 다각형(convex polygon)의 내부가 점들로 조밀하게 채워진다.
[초평면 분리 정리]
서로소인 두 옹골찬 볼록 집합(compact convex set) $A, B$는 초평면의 단위 법선 벡터 $\hat n$인 분리축 방향으로 서로 분리된다. 이때 $A, B$에서 각각 선택한 원소 $\bar x, \bar y$에 대해 $\bar x \cdot \hat n < c$, $\bar y \cdot \hat n > c$ 혹은 $(\bar y - \bar x)\cdot \hat n > 0$을 만족한다. 여기서 $c$는 적당한 실수이다.
[증명]
서로소인 두 옹골찬 집합의 원소들이 만드는 최소 거리와 경계점이 반드시 존재하므로, [그림 8]처럼 최소 거리를 만드는 볼록 집합 $A, B$의 원소를 각각 $\bar a_0, \bar b_0$이라 정의한다. 그러면 $\bar b_0 - \bar a_0$ 방향으로 $\hat n$이 있다고 생각해서 초평면 $L_A, L_B$를 그린다. 볼록성(convexity)을 가진 $A, B$는 경계점 $\bar a_0, \bar b_0$에 초평면을 항상 만들 수 있다. 여기서 $L_A, L_B$ 사이의 거리는 식 (8)처럼 양수인 $D$로 정한다. 그러면 식 (6)의 일반화인 초평면의 방정식에 의해 $(\bar a - \bar a_0)\cdot \hat n$ = $0$, $(\bar b - \bar b_0)\cdot \hat n$ = $0$, $\bar b_0 - \bar a_0$ = $D \hat n$이 성립한다. 여기서 $\bar a, \bar b$는 $L_A, L_B$ 위의 점이다. 따라서 모든 $\bar x, \bar y$는 $\bar a, \bar b$에서 $\hat n$방향으로 평행 이동한 $\bar x$ = $\bar a - k_A \hat n$, $\bar y$ = $\bar b + k_B \hat n$과 같다. 여기서 $k_A \ge 0$, $k_B \ge 0$이다. 최종적으로 이 결과를 빼서 다음 부등식을 얻는다.
(14)
______________________________
초평면 분리 정리는 어려워 보이지만, [그림 6, 8]처럼 기하학적으로 보면 매우 쉽다. 만나지 않는 볼록한 도형들은 가운데에 공간이 항상 있어서 접평면을 넣을 수 있고, 두 도형의 모든 점은 두 접평면의 거리 이상 떨어져있다.
[그림 9] SVM을 적용해서 자료 분류(출처: wikipedia.org)
초평면 분리 정리가 적극적으로 채용되는 알고리즘인 지원 벡터 기계 혹은 서포트 벡터 머신(support vector machine, SVM)이 기계 학습(machine learning) 분야에 많이 사용된다. 지원 벡터는 [그림 9]와 같이 노란색 영역을 이동하는 초평면과 만나는 접점이다. [그림 9]에서 파란점 2개와 초록점 1개가 바로 분류를 도와주는 지원 벡터가 된다. SVM의 시작은 도형의 빈 공간에 만드는 초평면이다. 빨간선으로 표시한 초평면 $\bar w \cdot \bar x - b$ = $0$은 어느 자료점(data points)과도 만나지 않아서 좋은 출발점이 된다. 평면 방정식의 우변값 $r$을 키우거나 줄이면서 초평면을 이동시킨다. 이 초평면은 법선 벡터 $\bar w$에 고정되므로, $\bar w$를 따라 이 방향으로만 움직인다. 예를 들어서 [그림 9]처럼 $r$ = $1$과 $-1$에서 파란색과 초록색 자료점 혹은 지원 벡터를 만난다고 가정한다. 그러면 식 (8)에 따라 검정색 파선(破線, dashed line)으로 그린 초평면과 빨간색 초평면 위의 점 $\bar x$간의 거리 $D(r)$이 정해진다.
(15)
여기서 $r$ = $\pm 1$이며 두 파선간 거리는 $2 \mathbin{/} |\bar w|$이다. 또한 식 (8)을 이용해 빨간색 초평면과 원점 사이 거리는 $D$ = $|b| \mathbin{/} |\bar w|$로 계산한다. 따라서 $\bar w$와 $b$를 조정해 두 파선간 거리를 넓힐수록, 자료가 많이 떨어져서 분류가 잘 된다. SVM에서는 [그림 9]에 나온 노란색 영역을 여유(margin)로 정의한다. 여유를 기준으로 $r \ge 1$과 $r \le -1$인 자료점의 표지(label)를 $1$과 $-1$로 각각 붙인다. 각 분류를 나타내는 부호(sign) 상수 $y_i$도 정의한다.
(16)
여기서 $i$ = $1, 2, \cdots, M$; $M$은 자료점의 개수이다. 이 개념을 전체적으로 합쳐서 SVM을 최적화(optimization) 관점으로 공식화한다.
(17)
여기서 $\bar x_i$는 두 덩이의 볼록 집합을 이루며, 훈련(training)에 쓰이는 $\bar x_i$는 이미 분류되어서 표지 혹은 $y_i$가 $1$ 혹은 $-1$로 정해져 있다. 자료 분류하기가 벡터 크기 $|\bar w|$의 최소화인 이유는 식 (15)에 따라 분모가 작아질수록 여유가 커지기 때문이다. 분류 훈련이 끝나면 주어진 $\bar w, b$에 새로운 $\bar x_i$를 대입해서 나오는 부호로 표지를 붙인다. 이런 SVM 알고리즘은 여유를 원칙대로 계산하는 절차에서 유추해 경성 여유(hard-margin) SVM 혹은 경성 여유 분류자(hard-margin classifier)로 부른다. 초평면 분리 정리에 의해, 어떤 차원의 $\bar x$를 정의하든지 볼록 집합에 속하는 자료점의 경성 여유 SVM은 항상 답이 나온다.
[참고문헌]
[1] M. Corral, Tangent Plane to a Surface, Vector Calculus, Schoolcraft College, Jan. 2021.
[2] A. A. Ahmadi, "Separating hyperplane theorems, the Farkas lemma, and strong duality of linear programming," Convex and Conic Optimization, Princeton University, USA, 2024. (방문일 2024-05-05)
[다음 읽을거리]
안녕하세요. 문과인데 잘 보고 있습니다! 답변이 달릴지는 모르겠지만^^; 왜 (4)식에서 분자에 절대값이 들어가는지 알 수 있을까요?
답글삭제안녕하세요, 익명님 ^^
삭제거리는 음수가 없어요. 식 (5)를 봐도 항상 양수로 취급해서 계산해요.