이번에는 dot product에 대해서 알아보자. 아래 내용은 유투버 쑤튜브님의 선형대수학 강의를 정리한 것이다.

dot product(scalar product)란?

dot product는 두 벡터를 곱해서 하나의 스칼라값이 나오도록 하는 연산이다.

\(v_1 = (x_1, y_1), v_2 = (x_2, y_2)\)를 서로 다른 벡터라고 했을 때, dot product연산은 다음과 같다.

\[v_1 \cdot v_2 = x_1 \cdot x_2 + y_1 \cdot y_2\]

dot product와 norm

벡터 \(v\)에 대해 자기 자신을 dot product하면 다음과 같다.

\[v \cdot v = v_1 \cdot v_1 + v_2 \cdot v_2\]

여기에 루트를 취하게 되면 다음과 같다.

\[\eqalignno{ \sqrt{v \cdot v} &= \sqrt{v_1 \cdot v_1 + v_2 \cdot v_2}\\ &= \lVert v \rVert }\]

즉, norm은 dot product에 루트를 취한 것과 같다.

dot product의 기본성질

  • 교환법칙이 성립한다.

  • 분배법칙이 성립한다.

  • 스칼라배가 가능하다.

  • 제곱하게 되면 0보다 크거나 같다.

dot product의 여러가지 성질

  • 제 2 코사인 법칙

  • dot product의 기하학적 의미

    두 벡터 \(u,v\)가 있고, \(u\)를 \(v\)에 대해 사영한 벡터를 \(w\)라고 할 때, \(u \cdot v\)는 \(\lVert w \rVert \lVert v \rVert\)와 같다.

    그림으로 보면 다음과 같다.

    하지만 이는 \(\theta\)가 0~90일 때 적용된다. 둔각이라면 -를 붙여줘야한다.

    \[v_2 - v_1 = (x_2-x_1, y_2-y_1)\] \[\eqalignno{ cos\theta &= \frac{\lVert v_2 \rVert^2 \lVert v_1 \rVert^2 - \lVert v_2 - v_1 \rVert^2}{2\lVert v_2 \rVert \lVert v_1 \rVert} }\] \[\eqalignno{ \lVert v_2 \rVert^2 \lVert v_1 \rVert^2 - \lVert v_2 - v_1 \rVert^2 &= (\sqrt{v_2 \cdot v_2})^2 +(\sqrt{v_1 \cdot v_1})^2 - (\sqrt{(v_2-v_1) \cdot (v_2-v_1)})^2 \\ &= v_2 \cdot v_2 + v_1 \cdot v_1 - (v_2 - v_1) \cdot (v_2 - v_1) \\ &= v_2 \cdot v_2 + v_1 \cdot v_1 - \{ v_2 \cdot v_2 - v_1 \cdot v_1 - v_2 \cdot v_1 + v_1 \cdot v_1 \} \\ &= v_2 \cdot v_2 + v_1 \cdot v_1 - \{ v_2 \cdot v_2 + v_1 \cdot v_1 - 2v_1 \cdot v_2\} \\ &= 2v_1 \cdot v_2 }\] \[cos\theta = \frac{2v_1 \cdot v_2}{2\lVert v_1 \rVert \lVert v_2 \rVert} = \frac{v_1 \cdot v_2}{\lVert v_1 \rVert \lVert v_2 \rVert}\] \[v_1 \cdot v_2 = \lVert v_1 \rVert \lVert v_2 \rVert cos\theta\]
  • 벡터의 projection(사영)

    projection이란, 두 벡터가 있을 때, 한 벡터에 대해 수선을 내린 것을 의미한다.

    아래 그림은 벡터 \(\vec{u}\)를 \(\vec{v}\)에 사영시킨 것을 보여준다.

    그리고 이렇게 사영시킨 벡터를 \(proj_\vec{v}\vec{u}\)라고 표기한다.

    위에서 보았듯이, \(\vec{u} \cdot \vec{v}\)는 다음과 같다.

    \[\vec{u} \cdot \vec{v} = \lVert proj_\vec{v}\vec{u} \rVert \lVert \vec{v} \rVert\]

    즉, \(proj_\vec{v}\vec{u}\)의 길이는 다음과 같다.

    \[\lVert proj_\vec{v}\vec{u} \rVert = \frac{\vec{u} \cdot \vec{v}}{\lVert \vec{v} \rVert}\]

    여기에, \(proj_\vec{v}\vec{u}\)의 방향은 \(\vec{v}\)와 같기 때문에, \(vec{v}\)의 단위벡터를 곱하면 \(proj_\vec{v}\vec{u}\)를 알 수 있다.

    \[\eqalignno{ proj_\vec{v}\vec{u} &= \frac{\vec{u} \cdot \vec{v}}{\lVert \vec{v} \rVert} \frac{v}{\lVert \vec{v} \rVert} \\ &= \frac{\vec{u} \cdot \vec{v}}{\lVert \vec{v} \rVert^2}\vec{v} \\ &= \frac{\vec{u} \cdot \vec{v}}{(\sqrt{\vec{v} \cdot \vec{v}})^2}\vec{v} \\ &= \frac{\vec{u} \cdot \vec{v}}{\vec{v} \cdot \vec{v}}\vec{v} }\]
  • 코시-슈바르츠 부등식(Cauchy-Schwarz Inequality)

    \[(ax + by)^2 \leq (a^2+b^2)(x^2+y^2)\]

    여기서 \(ax+by\)는 dot product형태다.
    \(u = (a,b), v = (x,y)\)라 할때 \(u \cdot v = ax + by\)이다.

    그리고 \(x^2 + y^2\)은 norm의 제곱과 같다. 즉, 위 식은 다음과 같다.

    \[(u \cdot v)^2 \leq \lVert u \rVert^2 \lVert v\rVert^2\]

    이를 정리하면,

    \[\lvert u \cdot v \rvert \leq \lVert u \rVert \lVert v\rVert\]

    이를 dot product의 성질을 이용해 간단히 증명해보자.
    앞서 보았듯이, \(u \cdot v = \lVert u \rVert \lVert v \rVert cos\theta\)이 성립하고, \(-1 \leq cos\theta \leq 1\)이기 때문에 \(-\lVert u \rVert \lVert v \rVert \leq u\cdot v \leq \lVert u \rVert \lVert v \rVert\)이다. 이로써 \(\lvert u \cdot v \rvert \leq \lVert u \rVert \lVert v\rVert\)임을 알 수 있다.

  • 이와 비슷한 방식으로 dot product를 활용하여 삼각부등식(Triangle Inequality)나 피타고라스 정리 등을 증명할 수 있다.

참고