안정민 2024. 5. 13. 23:56

1. 벡터란?

-벡터는 숫자를 원소로 가지는 리스트 또는 배열

- numpy의 array 함수를 주로 사용해서 벡터를 표현하게 된다 -> 행벡터로 처리

-열벡터와 행벡터의 차이는 벡터의 차원, 원소의 개수가 n일 때 열벡터는 n차원인 것에 비해 행벡터는 1차원이다.

-벡터는 공간에서 한 점을 나타내는 개념임

-인공지능에서 다루는 벡터는 차원이 훨씬 큼, 일반적으로 n차원이라고 함

-벡터는 원점으로부터의 상대적 위치를 표현한다.

-벡터에 숫자를 곱해주면 길이만 변한다. (스칼라곱)

-벡터끼리 "같은 모양을 가지게 되면" 덧셈과 뺄셈을 계산할 수 있게 된다

-모양이 다르게 된다면 덧셈과 뺄셈이 불가능하게 된다, numpy로 코딩 시 에러를 출력

-벡터끼리 같은 모양을 가지면 성분곱(Hadamard product)을 계산할 수 있다.

-벡터는 원점으로부터 상대적 위치를 표현

-두 벡터의 덧셈과 뺄셈은 다른 벡터로부터 상대적 위치 이동을 표현한다.

 

 

 

2. 벡터의 노름

-벡터의 노름(norm)은 원점에서부터의 거리를 이야기한다.

-노름의 경우 크게 두 가지로 표현될 수 있는데, x1이라고 표기되는 노름은 l1 노름이라고 이야기하고, x2라고 표기되는 노름은 l2노름이라고 함

-다양한 종류의 노름을 활용해서 원점에서부터의 거리를 구함

-노름은 1,2,3차원에서 성립하는 것이 아니라 임의의 차원인 d차원에 대해 성립한다는 것을 알아야!

-거리를 계산할 때는 1,2,3차원에서 거리 계산하는 것과 다르게 생각해야함

-구성성분의 원소의 개수 (차원)과 상관 없이 구할 수 있는 개념이다!

-L1노름은 각 성분의 변화량과 절대값을 모두 더한 개념이다.

-L2 노름은 피타고라스 정리를 이용해 유클리드 거리를 계산한 개념이다.

-L2 노름은 np.linalg.norm 을 통해서도 구현이 가능하다

 

***

-왜 다른 노름을 소개하는 이유? -> 노름의 종류에 따라 기하학적 성질이 달라진다.

-서로 다른 노름을 사용하게 되면 거리라는 개념 자체가 달라지기 때문에 기하학적인 모양들이 바뀌게 된다

-같은 좌표평면계라고 하더라도 노름을 다르게 사용함에 따라서 기하학적 성질이 달라지기 때문에 성질이 달라진 기하세계에서 보통 학습을 진행하게 될 때는 다른 성질들이 성립하고 이용할 수 있게 됨 -> 다양한 정규화 방법을 응용하는 것과 같은 원리라고 이해하면 된다.

 

** 각 기계학습 방법론 각각에서 어떠한 노름을 활용할 지 결정할 때, 이러한 기하학적 성질들에 많이 의존하기 때문에 익혀두는 것이 좋다

** 통상적으로 L1 노름의 경우 Robust 학습 혹은 Lasso 회귀 방법론을 적용할 때 주로 사용된다.

** 통상적으로 L2 노름의 경우 Laplace 근사, Ridge 회귀 방법론을 적용할 때 주로 사용된다. 

 

 

3. 두 벡터 사이의 거리

-L1, L2 노름을 이용해 두 벡터 사이의 거리를 계산할 수 있게 된다.

-두 점이 주어질 때 두 점 사이의 거리를 계산하는 것과 같고, 이 거리를 측정하는 방법론인 각각 L1, L2 노름을 활용한 방법론은 각 값이 달라진다. (측정 방법론에 따라 거리가 달라짐)

-두 벡터 사이의 거리를 계산할 때는 벡터의 뺄셈을 이용한다.

-뺄셈은 거꾸로 해도 거리는 같다!

-두 벡터 사이의 거리를 이용하여 각도도 계산해볼 수 있음, 이는 L2노름을 이용해서만 구할 수 있다

-유클리드를 통해 거리를 구할 수 있다면, 영벡터, x벡터, y벡터로 이루어진 삼각형의 제2 코사인 법칙을 활용하여 각도를 계산할 수 있게 된다.

-이는 d차원 벡터에서도 각도를 구할 수 있음

-L2노름을 도입한 이유도 1, 2차원이 아닌 d차원에도 각도라는 개념을 도입할 수 있도록 하는 것이다.

-여기서 분자를 쉽게 계산하는 방법이 내적 (inner product)

-내적 연산은 numpy 라이브러리의 np.inner 함수를 이용해서 계산하면 된다.

-내적은 정사영(x의 차원 축소) 된 벡터의 길이와 관련이 있다.

-정사영된 벡터의 길이인 Proj(x)의 길이는 코사인 법칙에 의해 ||x||cos θ가 성립한다.

-내적은 정사영의 길이를 벡터 y의 길이 ||y||만큼 조정한 값이다.

-내적은 두 벡터의 유사도 (similarity)를 측정하는 데 사용이 가능하다.

 

 

 

 


 

본 포스트의 학습 내용은 부스트클래스 <AI 엔지니어 기초 다지기 : 부스트캠프 AI Tech 준비과정> 강의 내용을 바탕으로 작성되었습니다.