CS/머신러닝

[머신러닝] 머신러닝 선형대수(2) - norm & orthogonality & projection

시간빌게이츠 2022. 7. 3. 22:02
반응형

Norm

norm이라는 것은 벡터의 크기를 말합니다. || x || 이런 식으로 표기를 해줍니다.

|| x - y || 이것은 무엇일까요? 

x-y는 저런 벡터가 됩니다. 그러면 저것의 크기는 결국 x 벡터와 y 벡터 사이의 거리가 되는 것 입니다.

 

p-Norms에는 종류가 있습니다.

먼저 엘투 norms을 보면 우리가 흔히 알고 있는 피타고라스 정리를 통해서 구한 거리를 말합니다.

각 길이를 제곱후에 더해주고 루트를 취해주면 됩니다.

 

엘원 놈은 멘하튼 norm이라고도 불립니다.

이유는 멘하튼이 이제 네모네모 형태로 되어있는데 그림에서 보시다시피 대각선으로는 못가고 왼쪽 오른쪽 위 아래로만 갈 수 있기 때문에 그 거리를 측정한 것을 말합니다. 그래서 각 벡터의 크기를 더해주기만 하면 됩니다.

 

나머지는 그림 보시면 이해가 될 것이고 

마지막으로 p-norms들을 단위 원으로 나타내어 보면 밑의 그림이 나옵니다.

p=1이면 정사각형모양에서 45도 회전

p=2이면 원

p=무한대 이면 정사각형이 됩니다.

 

행렬에서의 크기를 보면

행렬을 컬럼 벡터로 나누어주고 각각을 내적하여 크기를 구해주면 위와 같이 A행렬에 트랜스포스를 하여 A를 곱해준것의 대각성분의 합으로 나타나는 것을 볼 수 있습니다.

 

 

Angle between Vectors

 

잘 알고 있는 공식이죠. 벡터 내적과 크기를 이용하면 그 사이의 각을 알 수 있죠.

이것을 유사도라고 하는데 이유는 각도가 커지면 벡터끼리의 사이각이 커지게 되므로 멀어지게 됩니다.

그럼 코사인은 세타가 커질 수록 값이 작아지기 때문에 유사도가 낮아지게 됩니다.

 

 

 

Orthogonal Vectors

내적이 0 이면 orthogonal 벡터라고 합니다.

내적이 0인 경우는 cos세타가 0 or 벡터의 크기가 0인 경우로 볼 수 있습니다.

이때 cos세타가 0인 경우가 세타가 0 or 90도 즉, 직교할 때 나타납니다.

 

orthonormal은 위 조건을 만족하고 두 벡터 모두 크기가 1일때를 말합니다.

 

 orthogonal이 중요한 이유는 만약 행렬에서 각 컬럼 벡터가 모두 orthogonal이라면 

이러한 성질을 만족하게 됩니다. 역행렬과 트랜스포스가 같아지게 됩니다. 앞서 말했듯이 트랜스포스는 구하기 쉽지만 역행렬을 구하는 것은 시간복잡도 측면에서 굉장히 어렵기 때문에 역행렬을 쉽게 구할 수 있는 특징이라 유용합니다.

 

또한 이 orthogonal matrix들은 곱해지는 벡터의 크기와 각도를 유지하는 특징을 가지고 있습니다.

 

 

 

Projection & Least Squares

이것은 뭐냐면 두 벡터 a1 a2가 있다고 하면 이 벡터로 만들어지는 span이 있을 것입니다.

근데 b벡터는 이 span공간에 없는 벡터라고 할 때 b와 가장 유사한 벡터를 span공간에서 찾는 것을 말합니다.

자 그런데 우리가 생각을 해보면 b점에서 가장 가까운 거리에 있는 점은 바로 수직으로 내렸을 때 가장 가깝습니다.

그래서 우리가 구하고자하는 벡터 Ax와 b 벡터를 뺀것과  AX의 내적은 0이 되는 것을 이용하면 됩니다.

또한 다른 방법은 바로 거리의 제곱이 가장 작은 것을 구해주면 됩니다. 거리의 제곱의 최고를 구하는 법은 거리의 제곱을 미분한 것이 0되는 곳이 바로 최소값이다. 

반응형