欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/Statistics & Math

[Linear Algebra] Part7. 내적(Dot Product)과 정사영(Projection)

_껀이_ 2024. 1. 3. 23:35
728x90
반응형

내적과 정사영은 벡터와 행렬의 연산에서 매우 중요한 개념이다.

 

우선 그 정의부터 정리해보자.


1. 내적 : Dot Product

내적은 같은 차원의 두 벡터가 주어졌을때 두 벡터를 곱하는 방법 중 하나로, "두 벡터가 얼마나 닮았는가"를 나타낸다.

 

단어의 의미는 다음과 같다.

내적 = 內積 = Inner Product = 안으로 쌓는다(곱한다)

여기서 적(積)은 '쌓을 적'이지만, 여기서는 곱한다는 의미이다. 내적은 벡터를 수처럼 취급하여, 두 벡터의 크기(norm)을 곱하기 때문에 '안쪽으로 쌓는다'는 의미로 사용된다.

단, 방향이 일치하는 만큼만 곱하기 때문에 결과는 스칼라값이 된다.

 

다른 벡터곱 개념으로는 외적 (= 外積 = Outer Product = 밖으로 쌓는다(곱한다) )이 있다. 외적은 벡터의 텐서곱을 말하며, 이는 두 벡터가 이루는 넓이를 말한다. 외적의 결과값은 벡터(행렬)가 된다.

 

내적과 외적은 서로 상관이 없다. 반대개념도 아니며, 두 가지 다른 형태의 연산일 뿐이다.

내적과 외적의 비교는 추후 정리하도록 한다.

 


다시 돌아와서 내적의 의미는 "두 벡터가 얼마나 닮았는가"를 나타낸다.

 

이게 무슨 의미일까?

 

벡터 A와 B가 주어졌을때, "벡터 A가 벡터 B의 방향으로의 성분을 얼마나 가지고 있느냐"라고 한다.

 

그래도 뭔소린가 싶기도 하다.

유사도와 비슷한 개념이라고 생각해도 되는 걸까??

일단 정리 해보자.

 

내적에 대해 살펴보다보면 용어가 혼재되어 있는 것을 알 수 있다.

Dot Product = Scalar Product이고 이를 아우르는 일반화된 개념으로 Inner Product라고 한다.


1-1. 내적의 정의

사실 내적의 연산은 이미 우리들은 알고 있다.

행렬 연산과 같기 때문이다. 행과 열 순서로 각 성분을 곱하고 모두 더하면 된다.

 

$$ \left< \mathbf{u},\mathbf{v} \right> = \mathbf{u}\cdot \mathbf{v} = u_{1}v_{1}+u_{2}v_{2}+\cdots+u_{n}v_{n} $$

 

이렇게만 보면 벡터의 성분들끼리 곱한 후 더한다고만 생각할 수 있지만, 벡터곱으로 생각할 수 있다. 열벡터로 생각해보면 아래와 같다.

 

내적(dot product) 연산 예시)

$$ a = \begin{bmatrix} 5\\1 \end{bmatrix}, b = \begin{bmatrix} 1\\3 \end{bmatrix} \\ a \cdot b = a^{T}b = \begin{bmatrix} 5 & 1 \\ \end{bmatrix}\begin{bmatrix} 1 \\ 3 \end{bmatrix} = 8 $$

 

위의 예시처럼 두 벡터의 내적 연산은 스칼라 값이 나온다. 또, $\mathbf{u} \cdot \mathbf{v} = \mathbf{u}^{T}\mathbf{v}$ 이기에 벡터끼리 곱셈을 한 것으로 생각할 수 있다. 

 

내적 연산을 사용하면, 벡터의 norm(크기)를 구한다거나, 두 벡터 간의 거리를 구할 수 있다.

 

*** norm은 벡터의 길이라고도 표현할 수 있으며, norm이 1인 벡터를 단위벡터( unit vector )라고 한다.

 

앞선 연산 예시에서 a와 a 의 순서를 바꾸면 어떻게 될까??

 

$$ b\cdot a = b^{T}a = \begin{bmatrix} 1 & 3 \\ \end{bmatrix} \begin{bmatrix} 5 \\ 1 \end{bmatrix} = 8 $$

 

역시 같은 값인 8이 스칼라로 나온다.

내적은 두 벡터의 순서를 바꾸어도 같은 값이 도출된다. 즉, 내적은 교환법칙이 성립한다.

$$ u \cdot v = u^{T}v =v^{T}u $$

 

벡터 사이의 거리 - Norm 정의)

$$ \left<\textbf{v}, \textbf{v} \right> = v_{1}^{2}+v_{2}^{2}+\cdots+v_{n}^{2} = (\sqrt{v_{1}^{2}+v_{2}^{2}+\cdots+v_{n}^{2}})^{2} = \left\|\textbf{v} \right\|^{2} \cdots (1) \\ d(\mathbf{u},\mathbf{v}) = \left\|\mathbf{u}-\textbf{v} \right\| = \sqrt{(u_{1}-v_{1})^{2}+(u_{2}-v_{2})^{2}+\cdots+(u_{n}-v_{n})^{2}} \cdots (2) $$

 

(1)은 벡터 $\textbf{v}$의 norm을 구하는 식이다. 자기 자신에 대한 내적은 norm의 제곱이다.

(2)는 벡터 $\textbf{u}$와 벡터 $\textbf{v}$ 사이의 거리를 나타낸 것이다.

 

1-2. 내적의 성질

위의 연산 과정을 잘 보면 물리학에서의 힘의 합력과 유사하다는 생각을 할 수 있다.

즉, 어떤 벡터의 합의 길이는 각각의 길이의 합보다 작거나 같다는 뜻이며, 아래와 같다.

 

$$ \left\|\textbf{u}+\textbf{v} \right\| \leq \left\| \textbf{u} \right\| + \left\|\textbf{v} \right\| $$

 

왜 그럴까?

벡터에는 방향이 있기 때문이다.

같은 방향을 가진 두 벡터가 더해지면 단순히 길이를 더하면 될 일이지만, 방향이 다른 만큼 그 크기의 영향이 작아질 것이기 때문이다. 그렇기 때문에 힘의 합력과 마찬가지로 각도를 고려해주어야 한다. 

 

앞서 내적은 "두 벡터의 닮은 정도"를 나타낸다고 했다. 

 

두 벡터 사이의 각도를 기준을 생각해보자.

먼저, 원점으로부터 시작되는 두 벡터가 존재한다고 할때, 두 벡터 사이에는 반드시 각도($\theta$)가 존재한다.

 

각도($\theta$)는 위의 그림처럼 90보다 작을수도, 90도 일수도, 그림에는 없지만 90보다 클 수도 있다. 

이제 내적의 정의에서 코사인 형태로 식을 유도해보자.

 

두 벡터 $\overrightarrow{x}$, $\overrightarrow{y}$ 가 주어지고 사잇각이 $\theta$일때, 다음과 같은 삼각형이 형성된다고 가정하자.

 

코사인 법칙을 이용하여 식을 유도하면 다음과 같다.

 

\begin{align*} c^{2} &= (asin\theta)^{2}+(b-acos\theta)^{2} \\ &= a^{2}+b^{2}-2abcos\theta \end{align*}

 

여기서 $ \mathbf{x}-\mathbf{y} $는 두 벡터 끝점을 시작과 끝으로 하는 벡터이며, 두 벡터의 거리이므로 코사인 법칙을 적용하면 다음과 같은 식이 도출된다.

$$\left\| \textbf{x} - \textbf{y} \right\|^{2}=\left\| \textbf{x} \right\|^{2}+\left\| \textbf{y} \right\|^{2}-2\left\| \textbf{x} \right\|\left\| \textbf{y} \right\|cos\theta \cdots (1)$$

 

(1) 식의 좌변 $ \left\|x-y \right\|^{2}$를 다르게 풀어 써보면 아래와 같이 된다.

 

\begin{align*}\left\|\textbf{x}-\textbf{y} \right\|^{2} &= (\textbf{x}-\textbf{y})\cdot (\textbf{x}-\textbf{y})\\ &= \textbf{x}\cdot\textbf{x}-\textbf{x}\cdot\textbf{y}-\textbf{y}\cdot\textbf{x}+\textbf{y}\cdot\textbf{y}\\ &=\left\|\textbf{x} \right\|^{2}+\left\|\textbf{y} \right\|^2-2(\textbf{x}\cdot\textbf{y}) \cdots (2) \end{align*}

 

(1)과 (2)를 통해서 최종적으로 내적 공식이 도출된다.

$$\therefore \textbf{x}\cdot\textbf{y}=\left\|\textbf{x} \right\|\left\|\textbf{y} \right\|cos\theta$$

 

즉, 내적은 두 벡터의 크기와 방향을 통해서 유사도를 확인할 수 있는 방법이다.

 

1-3. 내적의 결과해석

위에서 도출된 내적 공식을 이용하면 내적값과 각도 $\theta$의 관계를 알 수 있다.

내적에서는 0\leq \theta \leq \pi 를 가지기 때문에 다음과 같은 관계를 가진다.

  • 내적 > 0이면, cos $\theta$ > 0, $\theta$ < 90
  • 내적 < 0이면, cos $\theta$ < 0, $\theta$ > 90
  • 내적 = 0이면, cos $\theta$ = 0, $\theta$ = 90

여기서 중요한 점은 내적이 0이면, $\theta$가 90도, 두 벡터가 직교한다는 것이다.

즉, 내적은 두 벡터의 직교여부를 판단하는데 사용할 수 있다.

 


2. 정사영 : Projection

정사영을 이해하려면 조금 상상력이 필요할 것 같다.

정사영은 주어진 "두 벡터에 대해서 한 벡터에서 다른 벡터로 내린 수선의 발이 있을 때, 그 수선의 발이 내린 점과 벡터의 시작점(보통 원점)까지의 벡터"를 말한다.

 

그림으로 보면 이해하기 쉽다.

 

단어 뜻 정사영( 正射影 )에서 알 수 있다시피, "곧게 내린 그림자"처럼 나타난 것으로 이해하면 직관적일 것 같다.

 

벡터 $ \textbf{y}=\overrightarrow{OP} $에서 벡터 $ \textbf{x}=\overrightarrow{OQ} $로 내린 수선의 발을 $S$라고 할때 벡터 $ \overrightarrow{OS} $를 정사영(projection of y onto x),라고 하고 $\textbf{p}=proj_{x}y$로 표현한다.

 

이때, 벡터 $ \textbf{w} $는 $\textbf{w} = \overrightarrow{SP} = \textbf{y}-\textbf{p}$로 표현할 수 있고, 이를 $ \textbf{x}$에 직교인 $ \textbf{y}$의 벡터성분이라고 한다. 이를 변형하면 $\textbf{y} = \textbf{p}+\textbf{w}$ 나타낼 수 있다.

 

또, 벡터 $\textbf{p}$는 벡터 $\textbf{x}$에 평행이므로, $ \textbf{p}=t \textbf{x}$ 이고, $ \textbf{y}- \textbf{p}$는 $ \textbf{x}$에 직교(orthogonal)이므로, 

 

\begin{align*}\textbf{x}\cdot (\textbf{y}-\textbf{p}) &= 0\\ &= \textbf{x}\cdot\textbf{y}-\textbf{x}\cdot\textbf{p}\\ &= \textbf{x}\cdot\textbf{y}-\textbf{x}\cdot t\textbf{x} \end{align*}

 

$$\Rightarrow  \textbf{x}\cdot\textbf{y}=t\textbf{x}\cdot\textbf{x}$$

$$\Rightarrow  t = \frac{\textbf{x}\cdot\textbf{y}}{\textbf{x}\cdot\textbf{x}}=\frac{\textbf{y}\cdot\textbf{x}}{\left\|\textbf{x} \right\|^{2}}$$

 

즉, 정사영 $\textbf{p}$의 계수 t는 $\frac{\textbf{y}\cdot\textbf{x}}{\left\|\textbf{x} \right\|^{2}}$이 되고, 최종적으로 정사영은 다음과 같이 나타낼 수 있다.

 

$$ proj_{x}y=t\textbf{x}=\frac{\textbf{y}\cdot\textbf{x}}{\left\|\textbf{x} \right\|^{2}}\textbf{x} $$

 

 

 

 

이러한 정사영 개념을 $R^{3}$로 확장한 개념은 법선 벡터가 있으며, 추후 기회가 되면 정리해보도록 한다.


참고 1 - 벡터곱)

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sallygarden_ee&logNo=221265467087

 

벡터의 곱셈(내적과 외적)

벡터의 곱셈에는 내적과 외적이 있다. 1. 내적(inner product) 내적은 벡터의 특정 방향, 성분, 투영(사영)...

blog.naver.com

 

참고 2 - 물리학 관점에서의 내적

https://losskatsu.github.io/linear-algebra/innerproduct/#3%EB%AC%BC%EB%A6%AC%ED%95%99-%EA%B4%80%EC%A0%90%EC%9C%BC%EB%A1%9C-%EB%B3%B4%EB%8A%94-%EB%82%B4%EC%A0%81

 

[선형대수] 내적(inner product) 의미

내적(inner product)의 의미

losskatsu.github.io

 

728x90
반응형