https://www.youtube.com/watch?v=LyGKycYT2v0&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab&index=9
전통적으로, 내적(dot product) 같은 것은 선형대수 강의에서 상당히 앞쪽에 나와.
보통 시작 부근에 있지.
그래서 내가 이 시리즈에서 뒷쪽에 놓는 게 좀 이상하게 보일수도 있어.
내가 이렇게 한 이유는 기존 방법대로 소개하면
벡터의 기초지식만 있어도 되긴한데,
하지만 수학에서 내적의 역할에 대한 제대로된 이해를 하려면
선형변환이라는 이해가 반드시 있어야만 해.
하지만, 그전에 간단하게 소개할게.
기존 방법이 내적을 어떻게 소개하는지를.
내가 가정하는 건 많은 사람들에게 적어도 부분적으로라도 검토받았어.
수치적으로, 같은 차원의 두 벡터가 있다고 해볼게.
같은 갯수의 숫자를 가지고 있을 것이고,
내적(dot product) 구한다는 것은, 말하자면,
같은 좌표값으로 짝을 지어 곱하고 모두 더하면 돼.
그래서 [1,2] 벡터와 [3,4] 벡터의 내적은
1 x 3 + 2 x 4 가 되지.
[6, 2, 8, 3] 벡터와 [1, 8, 5, 3] 벡터의 내적은
6 x 1 + 2 x 8 + 8 x 5 + 3 x 3
다행히도, 이 계산에 잘 맞는 기하학적 해석방법이 있어.
두 벡터 v, w 의 내적(dot product)을 살펴보자.
w 벡터를 투영(project)할건데, v 벡터와 원점을 지나는 선 위로 할거야.
이 투영된 w 벡터의 길이에 벡터v 길이를 곱하는 것
이것이 v・w 내적이야.
w 벡터 투사체가 v 벡터 방향과 반대이면,
그럼 내적(dot product)은 음수가 돼.
그리고 두 벡터가 같은 방향을 가리키면,
내적은 양수(positive number)가 돼.
그리고 직각을 이루는 경우, 즉,
한 벡터가 다른벡터로 투영 하면 0벡터가 되는 경우,
내적은 0 이야.
반대방향을 가리킬 경우, 내적은 음수가 돼.
근데, 이런 해석방법은 뭔가 좀 비대칭적이야.
이 방법은 두 벡터를 매우 다르게 다뤄.
그래서 난 처음 이걸 배울때, 순서가 중요하지 않다는 것에 놀랐었어.
반대로 v 를 w 로 투사(project) 하는 것,
즉, v 의 투사체에 w 벡터길이를 곱해도
같은 값을 얻게 된다니!
두 방법이 전혀 다른 계산 같지 않아?
그럼 왜 순서가 중요하지 않은지에 대해 직관적 설명을 해볼게.
v 와 w 가 같은 길이를 가진다면,
여기서는 둘의 대칭성을 사용할 수 있어.
그럼, w 를 v 쪽으로 투사해서
투사체 길이에 v 길이를 곱하는 것이
반대방향으로 투사하는 것과 완전한 대칭 거울상이야. v 를 w 로 투사해서 그 길이에
w 길이를 곱하는 것과 말야.
이제, 벡터들 중 하나를 "스케일(scale)" 해서, v 벡터를 2배만큼 늘려보자.
그래서 두 벡터의 길이를 다르게 만들어.
이제 대칭성이 깨졌어.
2v 와 w 의 내적을 어떻게 해석해야할지 생각해보자.
만약 w 가 v 로 투사하는 경우라면,
2v・w 내적값은
정확히 v・w 내적값의 두배가 될거야. (v 길이만 두배가 됐기때문에)
왜냐하면 v 를 2로 "스케일(scale)" 했기 때문이야.
투사된 w 길이는 그대로야.
하지만 투사받는 쪽 벡터 길이는 두배가 됐지.
이번엔 반대로, v 에서 w 로 투사하는 경우를 생각해보자.
이 경우에는, "스케일" 된 v 벡터의 투사체 길이가 2 배야.
투사받는 쪽인 벡터 길이는 그대로야.
그래서 결과적으로 이번에도 내적이 두배가 돼.
이렇게 대칭성이 깨진 경우라도,
내적값에 영향을 주는 "스케일링" 효과는
어느쪽 설명으로보나 똑같아.
이제 또 다른 커다란 질문이 있어. 처음 배울때 나를 혼란스럽게 했던 거야.
도대체 숫자상으로 좌표값을 매칭하고 곱한다음
더하는 거랑,
투사(projection, 투영)과는 무슨 관계인거야?
글쎄, 만족스러운 대답을 얻으려면,
또, 내적에 중요성에 대한 제대로된 정의를 해야한다면,
좀 더 파고 내려가야 될 거야.
그리고 거기서 "이중성(duality)" 이라는 것을 만나게 돼.
근데, 바로 설명 들어가기 전에,
선형변환에 대해 먼저 얘기해야할 게 있어.
다차원에서 1차원으로의 선형변환에 관한 거야.
즉, 결과 차원이 그냥 1차원 수선이 되는 변환이지.
이 변환들은 일종의 함수로서, 2차원 벡터를 입력받아서 숫자 하나를 내놓고 있어.
물론, 선형변환은
2차원 입력에서 1차원 출력으로 가는 다른 흔한 함수들보다는 훨씬 제한적이야.
더 높은 차원으로 가는 변환도 마찬가지로,
챕터 3에서 내가 말했던 것이기도 한데,
이 함수가 선형(linear)이 되려면 어떤 공식적인 속성이 있어야만 하지. (역주: 평행, 균등간격, 원점고정)
하지만 여기서는 자세한 것들을 무시할게. 이런 것들은 주의만 산만해질 뿐이야.
대신 모든 공식적 속성을 동등한 시각적 속성을 통해 살펴보자.
선에 같은 간격으로 점이 있고,
이 선에 변환을 적용하면,
선형변환이라면 점들사이 균등간격이 유지될거야.
결과 공간, 즉 수선(number line) 의 점들로 바뀐 이후에도 그렇겠지.
반면에, 선의 점 간격이 균등하지 않게 바뀌면,
이런 변환은 비선형적(not linear) 이야.
우리가 앞서 봤던 예제들 처럼,
선형변환은
i-hat 과 j-hat 의 도착위치에 의해 완전히 결정돼.
하지만 이번에는, 기저벡터들의 도착지가 수선의 숫자일뿐이지.
기저벡터의 도착지가 행렬의 열이기 때문에
각 열은 하나의 숫자로만 이루어지게 돼.
이것이 1 x 2 행렬이야.
예를 통해서 좀 더 살펴보자. 이 변환(행렬)을 벡터에 적용한다는 것은 무슨 의미일까?
어떤 선형변환이 있다고 해보자. 변환후 i-hat 은 1, j-hat 은 -2 인 경우야.
좌표값 [4, 3]인 벡터가 어디로 이동하는지 알기 위해서는
벡터를 4 * i-hat + 3 * j-hat 으로 분해해서 생각해야해.
선형성(linearity)에 따르면, 변환 후에는 같은 비율이여야 하기 때문에
변환된 i-hat 의 4배에
변환된 j-hat 의 3배를 더한것과 같아.
이 경우 결과적으로 -2 에 도착하지.
이 계산을 순전히 수치적으로 보면, 이게바로 행렬-벡터 곱셈이 되지.
이제, 이 1x2 행렬에 벡터를 곱하는 수치연산은
두 벡터의 내적(dot product)과 똑같게 느껴질거야.
1x2 행렬이 벡터를 그냥 옆으로 뉘여놓은 것 같지 않아?
사실, 이제는 말할때가 된 것 같아. 1x2 행렬과 2차원 벡터사이에는 멋진 관련성이 있어.
벡터의 숫자 표현을 옆으로 기울여서 연관 행렬을 얻거나
또는 행렬을 세워서 연관 벡터를 얻거나 하는 관련성이지.
당장 수치 표현만을 살펴볼것이기 때문에
벡터와 1 × 2 행렬 사이를 바꾸는 것이 뭔가 단순한 바보 짓처럼 느껴질수도 있어.
하지만, 이건 기하학적 관점에서 보면 뭔가 멋진 어떤 것을 제공해줘.
어떤 연결성 같은 건데, 입력이 벡터고 출력이 숫자인 선형변환과
벡터 그 자신과의 관계야.
그 중요성을 명확히 보여주는 예를 하나 들어볼게.
그리고 앞에나온 내적 문제에 관한 답변과도 관련있어.
기존에 배웠던 것들은 잊어버리고
내적과 투영이 관계있다는 것을 아직 모른다고 생각하고 들어봐.
난 여기 수선의 복사본을 만들어서
대각선 방향으로 비스듬히 놓을 건데, 숫자 0 이 원점과 겹치게 둘거야.
이제 2차원 형태의 수선의 단위벡터를 떠올려봐.
수선의 숫자 1을 가리키고 있을거야.
이 벡터에 u-hat 이라고 이름을 붙일거야.
이 작은 벡터가 앞으로 일어날 일에서 중요한 역할을 할거야.
마음속에 잘 기억해둬.
2차원 벡터를 이 대각선방향의 수선에 투영(project) 하게 되면
이건 사실상, 우리가 2차원 벡터를 입력받아 숫자를 내놓는 함수를 정의한게 돼.
무엇보다도, 이 함수는 진짜 선형적이야.
눈으로 보면 일단 맞아.
균등 간격의 점을 가진 선이라면 수선으로 투사한 이후에도 균등 간격이야.
다만 이해를 도우려고,
2차원 공간에 수선을 넣어놨을 뿐,
이 함수의 출력은 (수선의) 숫자이지, 2차원 평면의 벡터로 보면 안돼.
이 함수를 마치 두개의 좌표값을 입력받아 하나의 좌표값을 출력하는 것처럼 생각할 수도 있어.
근데 벡터 u-hat 은 2차원 벡터야.
입력과 같은 공간에 존재하지.
단지 삽입된 수선과 겹쳐진 상황이지.
이렇게 투영을 통해, 우리는 2차원벡터에서 숫자로 가는 선형변환 하나를 정의했어.
이 변환은 1x2 행렬로 나타낼 수 있지.
이 1 × 2 행렬의 값을 알아내기 위해서, 아까 그려놓은 수선을 확대해서
i-hat 과 j-hat 이 어디로 움직이는 살펴보자.
기저벡터의 도착지가 행렬의 열인 것은 이미 알거야.
이 부분이 굉장히 멋진 부분인데, 우리는 진짜 우아한 대칭성을 사용해서 알아낼 수 있어.
i-hat 과 u-hat 모두 단위벡터(길이 1)여서
i-hat 을 u-hat 을 통과하는 선으로 투영하는 것은
u-hat 을 x 축(i-hat) 에 투영하는 것과 완전히 대칭이야. (역자: 앞의 내적 설명에서 나왔죠.)
그래서 i-hat 이 투영 위치를 구할때
u-hat 을 x 축(i-hat) 에 투영된 위치를 구하는 것과 똑같아.
그런데 u-hat 을 x 축에 투영하는 것은
그냥 u-hat 의 x 좌표값을 구하는 거랑 같아.
그래서, 대칭성에 의해, i-hat 에서 수선으로 투영후 위치는
u-hat 의 x 좌표값이 될거야.
멋지지 않아?
j-hat 의 경우에도 완전이 같아.
잠깐만 생각하면 나올거야.
같은 이유로, u-hat 의 y 좌표값은
j-hat 을 수선으로 투영한 위치와 같을거야.
잠깐 여기서 잠시 생각해봐야 돼. 난 이부분이 정말로 굉장한 것 같아.
투영 변환을 나타내는 1x2 행렬은
그냥 u-hat 의 좌표가 되는거야.(!)
임의 벡터의 투영은
이 행렬에 임의벡터를 곱하는 것이고,
이건 계산적으로 u-hat 과의 내적(dot product)과 똑같아.
이것이 어째서 단위벡터와의 내적과 ,
벡터를 단위벡터로 투영한 길이를 구하는 것과 같아지는지를 설명해줘.
그럼 비-단위(non-unit) 벡터의 경우는 어떨까?
예를 들어,
u-hat 벡터를 가져다가
3배로 "스케일" 해보는 거야.
수치적으로는, 각 구성요소가 3배가 될거야.
그리고 그 벡터와 연관된 행렬을 찾으려면
이전에 i-hat 과 j-hat 의 변환된 위치에 3배를 하면 돼.
모두 선형(linear) 이기 때문이야.
이것이 암시하는 것은,
새로운 행렬을 해석하기를, 어떤 벡터를 수선(number line) 원본 (3배하기 전)에 투영한다음
투영 후 위치에서 3을 곱한거야.
이것이 왜 비-단위(non-unit) 벡터의 내적(dot product)을
해석할때, 그 벡터 위로 투영한 후,
벡터의 길이만큼 투사체 길이를 늘리는 것이라고 보는 이유야.
잠시 멈춰서 이게 무슨 말인지 생각해보자.
우리는 2차원 공간에서 1차원 수선으로 가는 선형변환을 가지고 있었어.
수치적 벡터나 수치적 내적이라는 용어로 정의하기 전이였지.
단지 대각방향의 수선 원본에 투영만을 정의했을 뿐이야.
하지만, 변환이 선형적(linear) 이기 때문에
이건 필연적으로 1x2 행렬로 표현할 수 있었어. (역자: 선형변환은 모두 행렬로 표현할 수 있는 듯)
그리고 1x2 행렬에 2차원 벡터를 곱하는 것은
그 행렬을 옆으로 눕혀서 내적을 구한 것과 같기 때문에
이런 변환은 불가피하게 2차원 벡터와 관련이 있을 수밖에 없어.
여기서 배울 것은, 언제든 이런 선형 변환 중 하나를 가지고 있다면,
즉, 결과 공간이 수선(number line)인 선형변환을 가지고 있다면,
어떻게 정의하든지 간에, 어떤 유일한 벡터가
그 변환에 대응되고 있을거야.
변환의 적용은 벡터의 내적을 구하는 것과 같음을 알 수 있어.
나에게 있어, 이건 정말 아름답게 느껴져.
이것이 수학에서 말하는 "이중성(duality)" 에 관한 경우야.
"이중성" 은 수학 전반을 통해 많은 방법과 형태로 등장해.
그리고 실제로 정의 내용은 굉장히 까다로워.
쉽게 말하자면, 자연스러우면서도 놀라운 대응관계가
두 개의 수학적 대상물 사이에서 나타나는 거야.
방금 배운 선형 대수의 경우에는,
벡터에서 "이중(dual)"이라는 것은 그 벡터가 가진 선형변한 성질을 말해.
그리고 1차원으로 변환시키는 선형변환에서 이중(dual)이란,
공간상의 특정 벡터를 말해.
요약하면, 내적은 투영을 이해하는데 매우 유용한 기하학적 도구야.
벡터가 같은 방향을 가리키는지를 알아내는데도 유용한 도구지.
이것이 아마도 너가 내적에서 기억해야 할 가장 중요한 점일 거야.
좀 더 깊게 보자면, 두 벡터를 함께 내적하는 것(dotting)은
두 벡터 중 하나를 변환인자로 보는 거야.
다시말해, 수치적으로 볼 때, 이건 강조하는게 좀 웃길수도 있는데,
두 계산이 유사하다는 거야.
하지만 이것이 중요한 이유는,
수학 전반에 걸쳐서, 너가 벡터로 다룰때라든지 할때,
너가 제대로 이해했다면,
언젠가 느껴질때가 있을거야. 공간속의 화살표보다는
선형변환의 물리적 실체 이해하는 편이 더 쉬울때가 있을거야.
벡터를 마치 어떤 변환의 개념적 단축 표현으로 생각해.
우리는 공간상의 화살표를 생각하는 것이
공간에서 수선으로 투영을 생각하는 것보다 쉽기 때문이야.
다음 동영상에서는 "이중성(duality)" 의 또다른 멋진 예제를 보여줄거야.
이번에는 외적(cross product) 와 관련지어서 말야.
'공부 > 튜토리얼' 카테고리의 다른 글
[토크ON세미나] 딥러닝 기반 음성인식 기초 1,2강 - 딥러닝 기초 I, II | T아카데미 (0) | 2023.05.03 |
---|---|
Learn Git Branching (0) | 2023.05.02 |
Nonsquare matrices as transformations between dimensions | Chapter 8, Essence of linear algebra (0) | 2022.11.19 |
Inverse matrices, column space and null space | Chapter 7, Essence of linear algebra (0) | 2022.11.19 |
The determinant | Chapter 6, Essence of linear algebra (0) | 2022.11.19 |