3B1B: Essence of Linear Algebra ch.9 Dot Products and Duality

전통적으로 dot product(내적; inner product)는 선형대수학 교과서 앞 쪽에 등장한다. 하지만, 이 시리즈에서는 이제서야 등장했다. 이유는 기존의 설명은 벡터의 기본 지식만으로 간략히 설명할 수 있지만, dot product를 제대로 이해하기 위해서는 linear trainsformations가 밑바탕에 깔려야하기 때문이다.

기존 Dot product 설명 방식

동일한 차원의 두 벡터에서 같은 좌표값으로 짝(pair)을 지어 곱하고, 이렇게 곱한 짝들을 모두 더하면 된다. 즉, 결과는 scalar값(number)이 된다.

ch9-1

이를 기하학적으로 표현할 수도 있다.

ch9-2

벡터 $\mathrm{w}$를 원점(origin)과 벡터 $\mathrm{v}$를 지나는 선 위로 projection(투영 or 사영 or 투사)시킨다. 이렇게 투영된 벡터 $\mathrm{w}$의 길이에 벡터 $\mathrm{v}$의 길이를 곱한 것이 $\mathrm{v} \cdot \mathrm{w}$(내적)이다.

만약 투영된 벡터 $\mathrm{w}$가 벡터 $\mathrm{v}$와 반대 방향이라면 그 dot prodoct는 음수(-)값을 갖는다.

ch9-3

따라서,

  • 두 벡터가 같은 방향(similar directions)을 가질 때,
    • $\mathrm{v} \cdot \mathrm{w} > 0$
  • 두 벡터가 직각(perpendicular) 일 때,
    • $\mathrm{v} \cdot \mathrm{w} = 0$
  • 두 벡터가 다른 방향(opposing directions)을 가질 때,
    • $\mathrm{v} \cdot \mathrm{w} < 0$

로 나눌 수 있다.

3B1B의 Dot product 설명 방식

하지만, 이러한 해석은 어딘가 좀 weirdly asymmetric(모자르다? 부족하다?)하다. 기존의 설명 방식은 두 벡터를 다른 걸로 취급한다.

projection하는 과정을 생각해보면 한 벡터를 projection시키는 계산과 다른 한 벡터를 projection시키는 계산은 달라야할 거 같다. 그치만 신기하게도 $\mathrm{v} \cdot \mathrm{w}$와 $\mathrm{w} \cdot \mathrm{v}$의 결과 값은 같다. 결과적으로 말하면, 벡터의 dot product의 순서는 중요하지 않다.

순서가 중요하지 않은 이유에 대한 직관적 설명

  • 대칭성

벡터 $\mathrm{v}$와 벡터$\mathrm{w}$의 길이가 같다면, 둘의 symmetry(대칭성)을 이용할 수 있다.

ch9-4

그러면, 벡터 $\mathrm{w}$를 벡터 $\mathrm{v}$ 쪽으로 projection시켜서 그 projection의 길이에 벡터 $\mathrm{v}$의 길이를 곱하는 결과값은 반대로 벡터 $\mathrm{v}$를 벡터 $\mathrm{w}$로 projection시킨 결과값과 완전한 mirror image(대칭 거울상)이다.

  • 비대칭성

이제, 벡터들 중 하나를 scaling해보자. 벡터 $\mathrm{v}$를 2배 만큼 늘려서 두 벡터의 길이를 다르게 만든다. 그러면, 대칭성이 깨졌다.

ch9-5

그렇다면, $\mathrm{2v}$와 $\mathrm{w}$의 dot product를 어떻게 해석해야할까?

$\mathrm{w}$가 $\mathrm{2v}$ 쪽으로 projection했다고 쳐보자. 이때 $\mathrm{2v} \cdot \mathrm{w}$의 값은 $2(\mathrm{v} \cdot \mathrm{w})$이 될 것이다. 왜냐하면 $\mathrm{v}$의 길이만 두 배가 됐기 때문이다. 즉, $\mathrm{v}$만 2를 곱해 scaling했고 projection된 $\mathrm{w}$의 길이는 그대로이다. projection받는 쪽 벡터인 $\mathrm{v}$의 길이만 두 배가 됐다.

반대로, $\mathrm{2v}$에서 $\mathrm{w}$로 projection하면 어떨까? 이때 projection된 $\mathrm{2v}$의 길이는 scaling 전 $\mathrm{v}$의 projection 길이의 2배이다. projection를 받은 $\mathrm{w}$의 길이는 그대로다. 그래서 결과적으로 이번에도 dot product의 길이는 두 배가 됐다.

\[(\mathrm{2v}) \cdot \mathrm{w} = 2(\mathrm{v} \cdot \mathrm{w})\]

따라서, 이렇게 대칭성이 깨진 경우에도(위의 식에서 좌변) dot product값에 영향을 주는 scaling(위에서는 2배)은 대칭에서(위의 식에서 우변)와 같다.

Duality 쌍대성

자, dot product의 연산은 순서와 상관없다는 것을 이해했다. 그러나 혼란스러운 부분이 더 있다. dot product는 숫자 쌍을 좌표값으로 매칭하여 곱한다음 모두 더한 값이다. 그런데 이 값이 projection과 무슨 관계인 것인가? 이 관계를 제대로 이해하기 위해 이번 장의 남은 부분을 모조리 할애할거다.

저 질문에 대한 답을 내리기 위해서는 duality(쌍대성 or 이중성)의 개념을 알아야한다.

duality을 이해 위해서는 몇 가지 집고 넘어가야하는 사실들이 있다.

(1) Linear Transformations

먼저 Linear transformations에 대해 살펴보자. 다차원에서 1차원으로의 linear transformatios ,즉 ouput vector의 차원이 1차원인 Number line(수직선)이 되는 변환을 생각해봐야한다.

ch9-6

Linear transformation은 3장에서 말했던 것처럼 일종의 function이다. 하지만, LInear function($L(\mathrm{v})$)은 몇 가지 제약 조건을 가진다. 어떤 함수가 linear하려면 formal linearlity properties(공식적인 선형성 특성)를 가져야만 한다.

  1. $L(\mathrm{v} + \mathrm{w}) = L(\mathrm{v}) + L(\mathrm{w})$
  2. $L(c\mathrm{v}) = cL(\mathrm{v})$
  3. through the origin

하지만, 지금은 이런 formal 조건들과 의미는 같지만 시각적인 방식으로 linear transformations를 생각해보록 하자.

2차원 평면 위에 원점을 지나는 한 직선이 있다고 해보자. 이 직선 위에 같은 간격의 점이 있고, 이 선을 transformation시켰을 때, number line으로 되어 점들 사이 간격이 여전히 일정(evenly spaced)하다면 이것은 linear transformation일 것이다. 즉 linear이다.

ch9-7

반면 transformation하고 난 후 점들의 간격이 균등하지 않다면 이 것은 non lienar(비선형적)이다.

계속 말해왔듯이, Linear transformations는 $\hat{i}$와 $\hat{j}$가 도착하는 위치(where it landed)에 의해 결정된다. 그런데, 위의 예시 처럼 2차원 직선이 linear transformation되어 number line이 된다면, basis vectors인 $\hat{i}$과 $\hat{j}$가 도착하는 위치는 number line 위의 숫자이다. basis vectors의 도착지가 행렬의 column이기 때문에 각 column은 하나의 숫자로만 이루어지게 된다.

ch-8

그렇다면 이 transformation(행렬)을 벡터에 적용한다는 것은 무슨 의미일까?

새로운 예를 들어 보자. transformation 후 $\hat{i}$은 1, $\hat{j}$는 -2가 된다고 하자. (여기서 \(\hat{i} = \begin{bmatrix} 1 \\ 0 \\ \end{bmatrix}\) 이고 \(\hat{j} = \begin{bmatrix} 0 \\ 1 \\ \end{bmatrix}\) 이다.)

그러면 \(\mathrm{v} = \begin{bmatrix} 4 \\ 3 \\ \end{bmatrix}\) , 즉 좌표값이 (4, 3)인 벡터가 어디로 움직이는지 알기 위해서는 $\mathrm{v}$를 $4\hat{i} + 3\hat{j}$으로 분해해서 생각해야 한다.

Linearity(선형성)에 의해 transformation 후에는 같은 비율(evenly spaced)이어야 하기 때문에 변환된 $\hat{i}$의 4배에 변환된 $\hat{j}$의 3배를 더한 값이 $\mathrm{v}$가 transformation 후 위치하는 곳이다. 이 경우 결과적으로 -2에 도착한다. 이 계산을 수치적으로만 보면 이게 곧 행렬-벡터 곱셈이 된다.

ch9-9

행렬-벡터 곱셈을 살펴봄으로써 transformation(행렬)을 벡터에 적용한다는 의미를 알았다. 그러면 이 1 x 2 행렬에 벡터를 곱하는 수치연산이 두 벡터의 dot product와 똑같이 느껴질 것이다. 1 x 2 행렬이 벡터를 그냥 옆으로 뉘여놓은 모양이다.

(2) 행렬과 벡터의 관련성

사실 1 x 2 행렬2차원 벡터는 멋진 관련성이 있다. 벡터의 숫자 표현을 옆으로 기울여서 associated 행렬을 구하거나 행렬을 세워서 associated 벡터를 구하는 관련성 말이다.

ch9-10

이 관련성(association)을 기하학 관점에서 살펴보면 좀더 명확한 개념을 제공해준다. input vector(앞의 예시에서 $\mathrm{v}$)를 number로 만드는 linear transformations과 그 input vector 자신 사이의 connection같은 개념이다.

예를 들어보자. 이 예를 따라가다보면 이제 앞에서 언급한 'dot product와 projection의 관계'에 대한 질문에 답할 수 있게 된다.

일단 dot product와 projection이 관계가 있다는 사실을 몰랐다고 가정하자.

2차 평면 위에 number line을 대각선 방향으로 비스듬히 놓았다고 해보자.

이렇게 겹쳐놓는 이유는 행렬과 벡터의 관련성을 시각적으로 보여주는 데 효과적이기 때문이다.

이는 결국 linear combinations꼴인 dot product와 vector의 길이와 관련된 projection이 어떻게 연결되는지 설명해준다.

이 때, number line의 숫자 0과 2차원 평면의 원점(origin)을 겹쳐 놓는다. 이제 2차원 unit vector(단위 벡터; 길이가 1인 벡터)의 끝점이 number line 위의 숫자 1에 놓여있다고 해보자. 이 단위벡터의 이름을 $\hat{u}$이라고 하자.

ch9-11

2차원의 여러 벡터들을 이 대각선 방향의 number line에 projection하게 되면, 이는 사실 우리가 2차원 벡터를 입력받아 number를 내놓는 function을 정의한 꼴이 된다.

ch9-5

게다가 이 함수는 linear하다. 시각적으로 봤을 때도 동일한 간격의 점을 가진 선이라면 number line으로 projection해도 동일한 간격을 유지한다.

ch9-12

헷갈리면 안되는 게 지금 2차원 평면 위에 비스듬한 1차원 number line을 겹쳐 놓았다. 여기서 linear transformations(일종의 선형성을 띤 function)의 output은 number line 위의 number다. 이걸 2차원 평면 위의 벡터로 보면 안된다.

ch9-13

이 function은 마치 두 개의 좌표값을 input으로 받아 하나의 좌표값으로 output을 내놓는 것처럼 생각해도 무방하다.

앞서 언급한 $\hat{u}$은 number line과 겹쳐져서 보이긴 하지만 엄연히 2차원 벡터다.

지금까지 projection을 통해서 우리는 2차원 벡터에서 1차원 number로 이동하는 linear transformations를 정의해보았다. 이 transformations는 1 x 2 행렬로 나타낼 수 있다.

ch9-14

이 1 x 2 행렬의 값을 알아내기 위해서, 아까 그린 비스듬한 number line을 확대해보자. 그리고 아까 정의한 $\hat{u}$를 가지고 $\hat{i}$과 $\hat{j}$이 어디로 움직이는지 살펴보자. 이 basis vectors의 도착지가 transformations 행렬의 column인 것은 이미 알고 있다.

★★★중요★★★

앞서 언급한 symmetry를 이용해서 transformations 행렬의 columns를 알아낼 수 있다.

ch9-15

$\hat{i}$과 $\hat{u}$ 모두 unit vector(길이가 1인 벡터)이기 때문에 $\hat{i}$을 $\hat{u}$ 위로 projection한 것은 $\hat{u}$을 $\hat{i}$ 위로 projection한 것과 완전히 대칭이다.

ch9-16

이 둘이 완전히 대칭이기 때문에 $\hat{i}$를 projection한 위치는 $\hat{u}$를 projection한 위치와 같다. 그런데 사실$\hat{u}$를 x축에 projection하는 것은 그냥 $\hat{u}$의 x좌표값을 구하는 것과 같다.

그래서 symmetry(대칭성)에 의해 $\hat{i}$에서 number line으로 projection한 위치는 $\hat{u}$의 x좌표값($u_x$)이다.

$\hat{j}$의 경우도 마찬가지다. 조금만 생각해보면 알 수 있다.

따라서 $\hat{u}$의 y좌표값은 $\hat{j}$를 number line으로 projection한 위치와 같다.

그래서 결국엔 projection transformation을 나타내는 1 x 2 행렬은 그냥 $\hat{u}$의 좌표가 된다!!

이것이 서두에 말했던 dot product와 projection의 관계를 설명해준다.

일반화하면, arbitrary vectors(임의의 벡터)에 대한 projection transformation은 이 행렬에 임의의 벡터를 곱하는 것이고, 이건 수치적으로 $\hat{u}$과의 dot product와 똑같다.

ch9-17

이것이 'unit vector와의 dot product'와 'vectors를 unit vector로 projection한 길이'가 왜 같아지는지를 설명해준다.

ch9-18

  • non-unit vectors

지금까지 unit vector 측면에서만 살펴보았다. 그렇다면 non-unit vectors의 경우는 어떨까? 예를 들어, unit vector였던 $\hat{u}$에 3을 곱해 3배로 scaling해보자. 수치적으로는 $\hat{u}$의 원소 $u_x$와 $u_y$는 3배가 된다.

\[3\hat{u} = \begin{bmatrix} 3u_x\\ 3u_y\\ \end{bmatrix}\]

그리고 그 벡터의 associated transformation을 찾으려면 이전 $\hat{i}$과 $\hat{j}$의 transformation된 위치에 3배를 하면 된다.

\[[\ 3u_y \ 3u_y \ ]\]

ch9-18

linear하기 때문에, 더 일반적으로 말하면 unit vector $\hat{u}$가 아닌 다른 transformation 행렬(여기선 scaling한 $\hat{3u}$)에 대해서도 역시 어떤 input vector를 number line 원본(3배 하기 전)에 projection한 다음, 그 위치에서 3을 곱한다는 걸 알 수 있다 . (Project then scale)

ch9-19

결과적으로 non-unit vector의 dot product를 해석할 때, 그 벡터 위로 projection한 후 벡터의 길이만큼 projection의 길이를 늘리는 지에 대한 이유를 여기서 알 수 있었다.

(3) 요약

무슨 말인지 다시 정리하자면, 우리는 처음에 2차원 평면에서 1차원 number line으로 이동하는 linear transformations를 설정했었다. 이건 수치적 벡터나 수치적 dot product라는 용어로 정의내리기도 전이었다. 단지 비스듬히 놓은 number line에 projection만 했을 뿐이다. 하지만, transformation이 linear했기 때문에, 이건 필연적으로 1 x 2 행렬을 표현할 수 있었다. 이때 예시로 $\hat{u}$의 좌표 $u_x$와 $u_y$를 들었다. 다시 말해, linear transformations는 모두 행렬로 표현할 수 있었다. 그리고 1 x 2 행렬에 2차원 벡터를 곱하는 것은 그 행렬을 옆으로 눕혀서 dot product를 구한 것과 같기 때문에 이런 transformation은 2차원 벡터와 관련있을 수밖에 없다.

명심할 점은 언제든 이러한 linear combinations, 즉 output space가 1차원 number line이 되는 형태의 행렬을 가지고 있다면, 어떻게 정의하든지 unique한 어떤 벡터가 그 변환에 대응된다는 사실이다. 변환하고 나면 이는 곧 그 벡터의 dot product를 구하는 것과 같다.

(4) 그래서 duality란?

이렇게 dot product와 projection과의 상관관계를 표현하는 단어가 duality이다. duality는 수학 전반에서 다양한 형태로 등장한다. 정확한 정의는 굉장히 어렵다.

그래도 쉽게 풀어서 표현해보자면 아래와 같다.

Natural-but-suprising correspondence between two types of mathematical thing

선형 대수의 경우에, 벡터의 dual이라는 건 이번 장에서 설명했듯이 그 벡터가 가진 linear transformations의 성질을 뜻한다.

그리고 1차원으로 변환시키는 linear transformations에서 dual이란 공간상의 특정 벡터를 의미한다.

마치며

dot product는 projection을 이해하는데 매우 유용한 기하학적 도구다. 벡터가 같은 방향을 가리키는지도 알 수 있는 도구이기도 하다. 이 사실들이 dot product과 관련해서 가장 중요하다.

좀 더 깊게 보자면, 두 벡터를 함께 dotting(내적하는 것)은 두 벡터 중 하나를 변환인자로 보는 것이다.

ch9-20

이 간단한 계산 결과를 계속해서 강조하는 이유는 한번 제대로 dot product를 이해하고 나면, 나중에 벡터를 단지 공간속의 화살표가 아니라 선형변환의 physical emboldiment(물리적 실체)로서 느껴지게 될 것이다. 그러면 결국, 벡터를 마치 특정 변환에 대하여 개념적으로 축약시켜놓은 표현처럼 생각하게 된다.

업데이트:

댓글남기기