본문 바로가기
선형대수

9 Least Squares Problem 소개(Least Squares/ 내적/벡터의 길이/단위 벡터/ 직교벡터)

by 오 복 이 2022. 1. 21.

AI 기술 자연어 처리 전문가 양성 과정 3기

비슷한 강의 : 인공지능을 위한 선형대수

를 바탕으로 공부한 내용을 정리한 포스팅입니다.




 Least Squares Problem에 대한 소개와 함께 앞으로 Least Squares를 배우는데 필요한 개념들을 배우기

벡터와 관련된 이 개념들은 선형대수에 있어 중요한 개념이니 잘 알아 두기 

키워드

내적(Inner Product, Dot Product)
벡터의 길이(Vector Norm)
단위 벡터(Unit Vector)
직교 벡터(Orthogonal Vectors)

 

Over determinded Linear Systems

방정식의 개수 가 미지수의 개수보다 많은 선형 방정식을 Over determinded Linear Systems라고 합니다.

결정해야 하는 변수는 3개인데 만족해야 하는 방적식이 더 많을 때 determinded에  제약 조건이 많다는 의미입니다.

 

 

Over determinded Linear Systems는 해가 없는 경우가 많습니다.

예시처럼 3 변수에 100개의 방정식이 있어서 100차원 차리 벡터가 3개 있는 경우에는  3개의 벡터만으로는 100차원 공간에서 span 했을 때 b가 span안에 포함되기 힘들기 때문입니다.

벡터들이 Span 할 수 있는 공간은 한정되어있지만 방정식이 많아지면 전체 공간이 커지게 되어 해가 없기 쉽습니다.

 

 

 

Leaset Squares 가 필요한 이유

Over determinded Linear Systems는 해가 없지만 근사적으로 해를 구하는 방법을 알아보고 어떻게 근사한 것이 더 좋은 해일지 알아봅니다.

이를 위해 기본적인 개념들을 알아봅니다.

 

내적( Inner Product)

두 개의 같은 차원을 가지는 벡터가 있을 때, 두 벡터의 내적은 벡터마다 element wise로 곱셈을 해준 뒤 결과를 더하는 것을 의미합니다.

행렬곱으로 나타낼 수도 있습니다. 왼쪽 벡터를 traspose 해서 스칼라 값을 만들어내는 행렬곱 만들 수 있습니다.

 

 

 

내적의 특성

내적은 점으로 표현합니다.

점은 내적이고 점이 없는 경우 행렬 곱을 의미합니다.

a) 교환 법칙 가능

b) 분배 법칙 가능 

c) 내적 하고 상수 배 = 상수 배 하고 내적

d) 같은 벡터끼리의 내적은 0보다 크거나 같습니다. 내적이 0인 경우에는 자기 자신이 0인 경우입니다.

예) [x, y]. t [xy]= x2+y2 = 0 인 경우, 이를 위해서는 자기 자신이 0 벡터여야 합니다.

 

b, c를 사용해서 이러한 식을 만들 수 있습니다.

u1부터 up까지 c상수 배 w와 내적 = u, w를 내적 하고 c 상수 배

내적 (변환)이라는 연산은 선형 변환입니다,

내적의 재료로 들어가는 변환들이 내적 하고 설형 결합하나 선형 결함 하고 내적 해도 같습니다.

 

 

 

 

 

벡터의 길이 (노름) (vector norm)

직관적 의미로 백터가 주어졌을 때의 길이입니다.

[ 3,4] 가있을 때 [3 제곱, 4 제곱] 루트는 5입니다.

norm (벡터의 길이)은 0보다 크거나 같습니다.

길이를 나타내는 기호는 두 개의 선을 사용합니다.

노름의 제곱은 자기 자신과의 내적을 구한 다음 square root 하는 것과 같습니다.

선행 대수에서 유도하는 과정 중 노름은 내적에 루트로 쓰는 경우가 많습니다.

 

 

 

norm의 기하학적 의미

원래의 벡터 norm에 상수 배 한 값과 상 수배한 벡터의 norm 은 같습니다.

어떠한 벡터(v)와 그 벡터에 상수 배(cv) 했을 때  c ||v||  = ||cv|| 

 

 

 

단위 벡터 ( Unit vector)

길이가 1인 벡터입니다. 

영 벡터가 아닌 어떤 벡터 간의 길이를 1로 만드는 것을 normalizing이라고 하고 이는 벡터의 norm을 구한 뒤 1/||벡터|| 곱합니다.

 방향은 바뀌지 않고 길이가 1로 바뀝니다. 

 

 

 

 

두 벡터의 거리 구하기

두 벡터를 빼고 square root를 씌웁니다.

차이 벡터를 구한 다음에 길이를 구하는 norm을 적용하여 두 벡터가 주어졌을 때 거리를 정의한 것입니다. 

 

 

 

 

차이 벡터

차이 벡터가가 의미하는 것을 그림으로 보면

u와 v가 주어졌을 때  두 벡터 간의 거리는 u에는 1배 v에는 -1배 해서 나온 벡터의 평행사변형을 통해서 원점에서부터 u-v벡터까지의 길이를 구할 수 있습니다,

 

 

 

내적으로 두 개의 벡터 각도 구하기

두 개의 벡터의 내적을 구하고 각각 벡터의 길이를 길이 구한 뒤 식에 대입하면  코사인 세타를 구할 수 있습니다. 

 

 

 

직교 벡터 ( Orthogonal vectors)

두 벡터가 수직인 경우입니다. 

이는 코사인 세타가 90이라는 것이고 두 벡터를 내적 하면 0이 나옵니다.

예) 두 개의 벡터  [2, 3] , [4,  -8/3] -> 두 벡터를 내적 하면 0이기 때문에 두 벡터는 수직인 것을 알 수 있음

 

 

 

다시 Over determinded Linear Systems에서 근사적인 해를 구하는 방법을 생각해봅니다.

 

방정식이 더 많은 Over determinded Linear Systems이 있을 때

우선 이 방정식 3개 만으로 나오는 해를 입력하면 마지막 방정식은 고려를 하지 않은 해이기 때문에 마지막 방정식에 등식을 만족 못합니다. 

이때 얼마만큼 그 등식을 만족했는지 정량화하여 Errors를 확인할 수 있습니다.

불완전한 Ax에서 해를 구한 경우 Errors를 구해보면 에 처음 3개의 등식에서는 0 마지막에서는  12가 나옵니다.

 

다른 새로우 계수 x를 사용해보면 b가 또 다른 값이 나오게 되고 에러를 구했습니다.

 

 

 

두 가지의 계수를 사용하고 Errors를 구해보면 위의 계수와 아래 계수를 사용했을 때 오차가 나는 경향이 다릅니다.

위는 모든 방정식에서 조금씩 에러가 있는 반면 밑에서는 마지막 방정식 하나에서 큰 에러가 있습니다.

 

 

sum of squared error

주어진 각각의 학습 데이터마다 모델이 얼마큼 Error를 냈는지 Total Error를 계산할 수 있습니다.

여러 방법이 있지만 sum of squared errors를 많이 사용합니다.

이를 사용해서 정량적인 비교를 보면 위의 솔루션이 더 작은 error를 냈으니 더 좋은 모델이라고 볼 수 있습니다.

이제 더 작은 Error를 최소화하는 방법도 구해야 합니다.

 

Least Squares Problem

그전에 이 에러를 구하는 방식을 수학적인 목적함수로 만듭니다. 

이루고자 하는 목적에 해당하는 함수를 수학적으로 명확하게 정의하는 과정이 첫 번째이고 이를 해결하고자 하는 방법을 찾는 것이 두 번째입니다.

 첫 번째를 위한 목적 함수가 위의 식인 Least Squares입니다.

b :실제 주어진 정답 데이터

A :  주어진 변수 , 계수 행렬 

x : 구해야 하는 변수 값

일 때 

b 벡터에서 Ax를 빼면 error 벡터가 나오고 이 벡터의 길이 ( norm)을 구합니다.

이 에러를 최소화하고 싶기 때문에 앞에 min을 붙여줍니다. 그 밑에는 컨트롤할 수 있는 변수들을 적어주는데 여기서는 x를 적어줍니다.

x를 잘 조절해서 이 값이 최소화되는 최적의 x를 찾는다는 의미로 arg를 사용합니다. 그리고 그 벡터를 x hat으로 사용합니다.

 

728x90
반응형