수학/인공지능을 위한 선형대수

9. Least Squares Problem 소개

공부중인학생 2021. 10. 17. 01:04

- 본 내용은 edwith의 인공지능을 위한 선형대수 강의를 통해 작성되었습니다.

 

 

이번 학습의 목표는 Least Squares Ploblem에 대한 개념을 이해하는 것 입입니다. 벡터와 관련된 이 개념들은 선형대수에서 중요한 개념이니 알아두면 좋습니다.

 

핵심 키워드

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

Leaset Squares = 선형 방정식을 다루는 상황에서 방정식의 개수가 미지수의 개수보다 많은 상황일 때를 말합니다.

- feature의 개수보다 데이터 개수가 더 많을 때

 

 

방정식이 3개이고 미지수가 3개인 이 상태에서 데이터를 더 수집한다면 방정식의 개수가 늘어나게 됩니다.

 

 

이것을 Over-determined Linear Systems라고 합니다.

- 제약 조건이 지나치게 많은 선형 시스템이라는 의미입니다. = 만족시켜야 할 방정식이 너무 많음

 

이런 경우에는 solution을 찾을 수 없게 됩니다. 고정된 3개의 벡터로 span 할 수 있는 공간은 한정되어있으나 전체 공간이 넓어지므로 $Ax = b$에서 b가 span안에 포함될 확률이 낮아지거나 아니면 모든 방정식을 만족시키는 미지수 값을 찾을 수 없게 됩니다.

 

이렇게 해가 없을 때는 근사적인 방법을 통해 가장 정답에 가까운 답을 찾을 수 있습니다. 해가 없을 때 근사적으로 해를 구하는 방법은 Least Squares의 가장 기본적인 아이디어입니다. 

 

1. Inner Product

 

 

Inner Product는 같은 공간상에 존재하는 벡터를 element wise 해줘서 전부 더해주면 됩니다. 행렬곱으로 나타낼 경우 앞의 벡터를 transpose 시켜서 행렬곱을 해주면 됩니다.

 

- Inner Product = 내적

- 앞의 벡터를 transpose해주는 이유는 내적의 결과물은 스칼라가 나와야 하기 때문입니다. 

 

 

내적의 notation은 점으로 표현됩니다. 앞의 벡터를 transpose한 다음 행렬곱을 하면 됩니다. 내적은 교환 법칙이 만족, 분배 법칙이 만족되며 선형변환에 속합니다. 자기 자신의 내적은 0보다 크거나 같습니다. 0일 때만 내적의 결과가 0입니다.

 

2. Vector Norm

 

 

Vector Norm은 벡터가 주어졌을 때 그 벡터의 길이를 의미합니다. 구하는 방법은 $\sqrt {x^2 + y^2}$ 입니다. 벡터의 길이는 항상 0보다 크거나 같아야 합니다. 그리고 길이를 표현하는 방법으로는 $||v||$ 다음과 같은 방법으로 표현을 하게 됩니다. 

 

- 자기자신을 내적한 뒤 제곱근을 취한 형태!

 

$||v|| = \sqrt {v \cdot v }$

 

 

 

$||cv|| = |c| ||v||$는 $\left [ \begin{matrix} 3 \\ 4 \end{matrix} \right]$벡터에 상수 2를 곱해서 $\left [ \begin{matrix} 6 \\ 8 \end{matrix} \right]$을 만들었다면 다시 길이를 구해주지 않고 $\left [ \begin{matrix} 3 \\ 4 \end{matrix} \right]$ 벡터의 길이 5에다가 2를 곱해주면 된다는 의미입니다.

 

자기 자신의 노름으로 나눠주면 항상 크기가 1인 벡터 unit vector을 만들 수 있습니다. 방향은 바꾸지 않고 길이만 바꾸는 방법은 normalizaiton 그리고 길이가 1인 벡터를 단위 벡터라고 부릅니다.

 

$\frac 1 5  \left [ \begin{matrix} 3 \\ 4 \end{matrix} \right]$

 

 

Distance between Vectors in $R^n$

 

 

노름 간의 뺄셈을 통해서 두 벡터간의 거리를 정의할 수 있습니다.

- 두 벡터를 서로 빼준 다음 거리를 구하는 것과 동일합니다.

 

Inner Product an Angle Between Vectors

 

 

내적을 통해서 두 벡터 사이의 각도를 통해서 구할 수 있다. 각각의 두 벡터 사이의 각도를 통해서 구할 수 있다. 각각의 두 벡터의 길이를 구하고, 두 벡터의 내적을 구해서 (내적 / 두 벡터의 길이 곱) 이런 형식으로 연산을 하게 되면 $cos \theta$

 

Orthogonal Vectors

 

두 벡터가 Orthgonal 할 때 내적을 하면 그 값이 0이 나오게 됩니다. 즉 내적을 했을 때 0이 나오게 된다면 그 벡터 사이의 각도는 수직입니다. 그리고 Orthogonal 하다는 것은 두 feature가 서로 연관성이 없다고 생각할 수도 있습니다.

 

 

 

이전에 봤던 선형 방정식 문제에서 새로운 데이터를 추가했습니다. 이 상태에서 이전의 해 값을 넣었더니 3개의 방정식은 만족했지만 마지막 방정식은 만족하지 못했습니다. error 값은 $b - Ax$를 통해서 구할 수 있습니다. 선형결합의 결과물이 b와 같다면 모두 0이 나오지만 같지 않다면 error값이 나오게 됩니다.

 

- error값을 비교하기 위해 어떤 척도를 사용할지 정한 다음 error가 더 적은 solution을 찾아야 합니다!

 

 

 

여기서 새운 error를 측정하는 척도는 모든 error값을 제곱하고 전부 더한 형태입니다. 다음과 같이 목적함수를 결정했다면 error값을 최소화하는 미지수의 값들을 찾아야 합니다. 

 

 

위에서 만든 목적함수는 $x = arg min_x||b - Ax||$ 입니다. min은 아래 써진 값을 조절할 수 있는 파라미터를 의미합니다.