나뭇잎 교과서

벡터의 정사영

벡터 \(\vec{b}\)를 \(\vec{a}\) 방향의 성분과 \(\vec{a}\)에 수직인 성분으로 나누면, 앞의 것이 \(\vec{a}\) 위로의 정사영 \(\frac{\vec{a}\cdot\vec{b}}{\vec{a}\cdot\vec{a}}\vec{a}\)입니다. 정사영은 \(\vec{a}\) 방향에서 \(\vec{b}\)에 가장 가까운 벡터라는 뜻도 있습니다. 이 절에서는 벡터의 그림자를 직접 움직여 보고, 이 "가장 가까운" 성질을 써서 흩어진 실험 자료에 가장 잘 맞는 직선을 찾습니다.

본문

벡터의 정사영

본문

공부한 시간 \(x\)(시간)과 점수의 향상 \(y\)(점)를 세 학생에게서 쟀더니 \((0, 1)\), \((1, 3)\), \((2, 4)\)였다. 세 점은 한 직선 위에 있지 않아서 \(y = c + mx\)가 세 점을 모두 지나게 할 수는 없다. 그래서 세 점과의 오차의 제곱의 합이 가장 작은 직선을 고르기로 했다. 그 직선은 \(y = 1.17 + 1.5x\)라고 하는데, 이 직선은 어떻게 구했을까? 벡터의 정사영이 이 문제와 무슨 관계가 있을까?

012134 y = 7/6 + 1.5x 세로 선분은 오차 −1/6, 1/3, −1/6
그림 1. 최소제곱 직선은 세 점을 모두 지나지 않지만, 세로 오차의 제곱의 합을 가장 작게 한다.
먼저 알아야 할 것정사영, 벡터의 내적과 수직 조건, \(n\)차원 벡터의 내적(n차원 벡터의 내적).

1.7.1가장 가까운 점은 수선의 발

벡터 \(\vec b\)를 벡터 \(\vec a\) 방향의 직선 위의 점 \(t\vec a\)로 가장 가깝게 나타내려면, \(\vec b - t\vec a\)의 길이가 가장 작은 \(t\)를 찾는다. 그 점은 \(\vec b\)의 끝에서 직선에 내린 수선의 발이므로, 오차 \(\vec b - t\vec a\)가 \(\vec a\)와 수직이어야 한다. 내적으로 쓰면 \(\vec a\cdot(\vec b - t\vec a) = 0\)이고, 여기서 \(t = \dfrac{\vec a\cdot\vec b}{\vec a\cdot\vec a}\)이다. 이 \(t\vec a\)가 \(\vec b\)의 \(\vec a\) 위로의 정사영이다. 이 생각은 차원과 상관없이 성립하며, 직선 대신 평면이나 더 높은 차원의 부분공간 위로도 정사영할 수 있다.

정리 1.7.1 정사영과 최소제곱

\(\vec b\)의 \(\vec a\) 위로의 정사영은 \(\mathrm{proj}_{\vec a}\vec b = \dfrac{\vec a\cdot\vec b}{\vec a\cdot\vec a}\vec a\)이다. \(\vec b\)를 벡터 \(\vec a_1, \vec a_2\)가 생성하는 부분공간 위로 정사영한 \(c\vec a_1 + m\vec a_2\)는 오차 \(\vec b - c\vec a_1 - m\vec a_2\)가 \(\vec a_1\)과 \(\vec a_2\)에 모두 수직이 되도록 정하며, 이것이 오차의 크기를 가장 작게 한다.

세 점을 지나는 직선 \(y = c + mx\)를 찾는 문제를 벡터로 쓰면, \(\vec 1 = (1, 1, 1)\), \(\vec x = (0, 1, 2)\), \(\vec y = (1, 3, 4)\)에 대해 \(c\vec 1 + m\vec x = \vec y\)를 푸는 일이다. 해가 없다는 것은 \(\vec y\)가 \(\vec 1\)과 \(\vec x\)가 생성하는 평면 밖에 있다는 뜻이다. 그래서 \(\vec y\)를 그 평면 위로 정사영한 벡터가 \(\vec y\)에 가장 가깝고, 그 계수가 오차의 제곱의 합을 가장 작게 하는 \(c\), \(m\)이다.1

1.7.2수직 조건이 만드는 방정식

오차 벡터 \(\vec e = \vec y - c\vec 1 - m\vec x\)가 \(\vec 1\)과 \(\vec x\)에 모두 수직이라는 조건을 내적으로 쓰면 \(\vec 1\cdot\vec e = 0\), \(\vec x\cdot\vec e = 0\)의 두 방정식이 된다. 첫째 조건은 오차의 합이 0이라는 뜻이어서, 최소제곱 직선은 점들의 평균점을 지난다. 둘째 조건은 오차에 \(x\)를 곱한 합이 0이라는 뜻이다. 두 방정식을 정규방정식이라 하며, 미지수 \(c\), \(m\)에 대한 연립일차방정식이어서 쉽게 풀린다.

조건방정식값 1 · e = 03c + 3m = 8Σy = 8 x · e = 03c + 5m = 11Σxy = 11 풀이m = 3/2, c = 7/6
그림 2. 오차가 두 벡터에 수직이라는 조건이 두 개의 일차방정식이 된다.

1.7.3예제 풀이

예제 1.7.2

처음 질문의 세 점에 대해 정규방정식을 세워 최소제곱 직선을 구하여라. 오차 벡터가 \(\vec 1\)과 \(\vec x\)에 수직임을 확인하고, 오차의 제곱의 합을 구하여라.

\(\vec 1\cdot\vec 1 = 3\), \(\vec 1\cdot\vec x = 3\), \(\vec x\cdot\vec x = 5\), \(\vec 1\cdot\vec y = 8\), \(\vec x\cdot\vec y = 11\)이므로 정규방정식은 \(3c + 3m = 8\), \(3c + 5m = 11\)이다. 빼면 \(2m = 3\)이므로 \(m = 1.5\), \(c = 7/6 \approx 1.17\)이다. 직선은 \(y = 7/6 + 1.5x\)이다.

직선 위의 값은 \(7/6\), \(8/3\), \(25/6\)이므로 오차는 \(\vec e = (1 - 7/6,\ 3 - 8/3,\ 4 - 25/6) = (-1/6, 1/3, -1/6)\)이다. \(\vec 1\cdot\vec e = -1/6 + 1/3 - 1/6 = 0\), \(\vec x\cdot\vec e = 0 + 1/3 - 1/3 = 0\)이어서 둘 다 수직이다. 오차의 제곱의 합은 \(1/36 + 1/9 + 1/36 = 1/6\)이다. 즉 해가 없는 연립방정식은 목표 벡터를 만들 수 있는 부분공간 위로 정사영해 가장 가까운 답을 얻으며, 오차가 그 부분공간에 수직이라는 조건이 최소제곱 직선의 방정식을 준다.

아래 탐구 카드에서 비탈에서 썰매를 끄는 힘을 정사영으로 나누어 보고, 여러 점에 가장 잘 맞는 직선을 최소제곱으로 찾아보자.

  1. 최소제곱법은 1805년 프랑스의 르장드르가 발표했고, 가우스는 1801년 소행성 세레스의 궤도를 이 방법으로 계산해 태양 뒤로 사라졌던 세레스가 다시 나타날 위치를 맞혔다. 오늘날 자료에 직선이나 곡선을 맞추는 거의 모든 계산이 이 방법을 쓴다.
마무리

벡터 \(\vec b\)의 \(\vec a\) 위로의 정사영은 \(\dfrac{\vec a\cdot\vec b}{\vec a\cdot\vec a}\vec a\)로, 오차가 \(\vec a\)에 수직이 되는 가장 가까운 점이며, 이 생각은 어떤 차원의 부분공간 위로도 넓혀진다. 해가 없는 연립방정식은 목표 벡터를 부분공간 위로 정사영해 오차의 제곱의 합이 가장 작은 답을 얻는다. 처음 질문의 세 점에 대한 최소제곱 직선은 오차가 두 벡터에 수직이라는 정규방정식에서 \(y = 7/6 + 1.5x\)로 정해진다.

탐구 1

비탈에서 썰매를 끄는 힘 중 얼마가 일을 할까?

정사영 · 활용
힘 \(|\vec{F}|\)
—
비탈 방향 성분 \(\vec{F}\cdot\vec{u}\)
—
10 m 끌 때 한 일
—

눈금 한 칸은 10 N이다. 초록은 비탈 방향 정사영, 주황 점선은 비탈에 수직인 성분이다. 비탈에 수직으로 비추는 빛이 만든 \(\vec{F}\)의 그림자가 정사영이다.

  1. 질문썰매를 줄로 비스듬히 끌면 힘의 일부는 썰매를 앞으로 보내고, 나머지는 썰매를 들어 올리려고만 한다. 힘을 두 부분으로 정확히 나누려면 어떻게 할까?
  2. 복원물리에서 일은 \(W = \vec{F}\cdot\vec{s}\)이다. 힘과 이동 방향이 이루는 각이 \(\theta\)이면 \(W = |\vec{F}||\vec{s}|\cos\theta\)이다.
  3. 설명벡터 \(\vec{a}\)의 \(\vec{u}\) 방향 정사영은 \(\mathrm{proj}_{\vec{u}}\vec{a} = \dfrac{\vec{a}\cdot\vec{u}}{\vec{u}\cdot\vec{u}}\vec{u}\)이다. 남은 부분 \(\vec{a} - \mathrm{proj}_{\vec{u}}\vec{a}\)는 \(\vec{u}\)와 수직이어서, \(\vec{a}\)가 "\(\vec{u}\)와 평행한 부분 + 수직인 부분"으로 한 가지로 나뉜다. \(\vec{u}\)가 단위벡터이면 정사영의 길이는 \(\vec{a}\cdot\vec{u}\)이다.
  4. 연결평면이나 부분공간 위로의 정사영도 같은 생각이다. 다음 카드의 최소제곱법은 자료 벡터를 부분공간 위로 정사영해 가장 가까운 점을 찾는다.
  5. 적용힘의 크기를 40 N 근처로 유지하면서 방향을 바꿔 보자. 한 일이 가장 큰 방향은 어디인가? 비탈 각을 바꾸면 같은 힘의 정사영이 어떻게 달라지는가?
  6. 판단수직 성분은 일을 하지 않지만 쓸모가 없는 것은 아니다. 썰매를 살짝 들어 바닥을 누르는 힘을 줄이면 마찰이 줄어든다. 그래서 실제로 끌 때는 약간 위로 당기는 편이 유리할 수 있다. 이 그림은 마찰을 넣지 않은 모형이다.

확인조건이 달라지면

\(\vec{a} = (3, 4)\)의 \(\vec{u} = (1, 1)\) 방향 정사영은?

탐구 2

모든 점을 지나는 직선이 없을 때 가장 좋은 직선은?

최소제곱법 · 도전
오차 제곱의 합
—
내 최고 기록
—

추 질량 \(x\)(100 g 단위)와 늘어난 길이 \(y\)(cm)의 모의 자료이다. 주황 정사각형의 넓이가 각 점의 오차 제곱이다(그림 비율에 맞춰 그림).

  1. 질문실험 자료는 측정 오차 때문에 한 직선 위에 정확히 놓이지 않는다. 연립방정식 \(mx_i + c = y_i\) \((i = 1, \ldots, 5)\)는 해가 없다. 그래도 "가장 그럴듯한" \(m, c\)를 하나 정하려면 무엇을 기준으로 해야 할까?
  2. 복원앞 카드에서 벡터를 직선 위로 정사영하면, 남은 부분이 직선과 수직이고 그 길이가 직선까지의 최단 거리였다.
  3. 설명\(A = \begin{pmatrix} x_1 & 1 \\ \vdots & \vdots \\ x_5 & 1 \end{pmatrix}\), \(\vec{y} = (y_1, \ldots, y_5)\)로 두면 \(A\binom{m}{c}\)는 \(A\)의 두 열이 생성하는 \(\mathbb{R}^5\)의 부분공간(평면)을 돌아다닌다. 오차 제곱의 합 \(|\vec{y} - A\binom{m}{c}|^2\)이 가장 작은 곳은 \(\vec{y}\)를 그 평면에 정사영한 점이고, 그때 오차 벡터는 두 열과 모두 수직이다. \(A^T(\vec{y} - A\hat{x}) = \vec{0}\). 정리하면 정규방정식 \(A^TA\hat{x} = A^T\vec{y}\)이다.
  4. 연결이것이 최소제곱법이다. 통계의 회귀직선, GPS의 위치 계산, 인공지능의 선형 회귀가 모두 이 정규방정식을 푼다.
  5. 적용슬라이더로 오차 제곱의 합을 최대한 줄여 보자. 그다음 "정규방정식으로 풀기"를 눌러 내 기록과 비교해 보자. 오차 벡터가 두 열과 수직인지 숫자로 확인해 보자.
  6. 판단오차를 제곱하므로 멀리 떨어진 점 하나가 직선을 크게 끌어당긴다. 잘못 잰 값이 섞였을 가능성이 있으면 먼저 자료를 살펴야 한다. 또 이 직선은 자료 범위 밖(예를 들어 아주 무거운 추)에서는 용수철이 늘어나는 한계 때문에 맞지 않을 수 있다.

확인조건이 달라지면

세 점 \((0, 0), (1, 1), (2, 1)\)에 원점을 지나는 직선 \(y = mx\)를 최소제곱법으로 맞추면 \(m\)은?

AI 출제 문항연습문제 풀어보기11문항
Esc

↑↓ 고르기Enter 열기