Skip to content

Latest commit

 

History

History
54 lines (35 loc) · 3.13 KB

12_LeastSquare.md

File metadata and controls

54 lines (35 loc) · 3.13 KB

만일 행렬 A가 (10 x 3 ) 크기를 갖고, full rank라고 가정을 해봅시다. 즉, 10차원에서 3차원을 span하고 있다는 것 입니다. 결국 해가 1개이거나 0개입니다.

span할 수 있는 3차원이 아니라 다른 차원에 값이 존재한다면 우리는 해당 값을 표현할수 없습니다. 하지만 해당 값과 최대한 유사한 값을 찾을 수 있습니다. 이렇게 span하지는 못하지만 span할 수 있는 차원에서 해당 값을 가장 잘 표현하는 것이 바로 Least Square 입니다.

행렬 A가 존재하고, A가 3차원을 span한다고 가정해봅시다. 그리고 b라는 벡터는 span가능하지 않은 위치에 존재합니다. 그리고 해당 b 벡터를 최대한 표현해보려고 합니다. 이를 시각적으로 나타내면 아래와 같이 표현할 수 있습니다.

image

우리가 표현하고자 하는 벡터 b이고, 이를 가장 잘 표현하는 벡터가 A 행렬이 span할수 있는 차원 내에 존재하기에 $A\hat{x}$ 으로 표현하고자 합니다.

그렇다면 $A\hat{x}$와 벡터 b의 차이가 가장 작을때가 결국 b를 가장 잘 표현한다고 말할수 있습니다. 그래서 $b - A\hat{x}$ 를 최소화 하는 것이 가장 잘 표현하는것이고 결국 해당 값을 error vector라고 부를수 있습니다. 그리고 error vector가 최소가 되는 방법은 바로 $A\hat{x}$ 와 b 벡터가 서로 수직인 경우가 됩니다. 그래서 이를 수식으로 표현하면 아래와 같습니다.

$$ min { error vectroc } = (b - A\hat{x}) \perp A\hat{x} $$

그리고 수직인 경우 두 벡터의 dot product 값이 0이 되게 되고, 해당 식을 풀게 되면 결국 $\hat{x}$을 얻을 수 있게 됩니다.

과정은 아래와 같습니다.

$$ (b - A\hat{x})^TA\hat{x} = 0 $$

이 떄 $\hat{x} = 0$ 이 되는 경우를 제외한다면 결국에는 아래 수식을 만족해야 됩니다.

$$ (b - A\hat{x})^TA = 0 $$

아래 수식을 풀어서 보면 아래와 같습니다. ( 이항 한 다음에 transpose를 취해줍니다 양변에 )

$$ (b^TA - \hat{x}^TA^TA) = 0 $$

$$ A^Tb= A^TA\hat{x} $$

이때 $A^TA$ 값은 정사각 행렬이고 Full Rank라는 가정하에 A 행렬은 invertable합니다. 그렇다면 결국 양변에 $(A^TA)^{-1}$을 곱해서 $\hat{x}$을 구할수 있게 됩니다.

$$ \hat{x} = (A^TA)^{-1}A^Tb $$

위와 같은 식을 얻게 됩니다. 즉 위의 값을 만족할때 span가능한 3차원에서 b 벡터를 가장 잘 표현하게 됩니다. 그리고 $(A^TA)^{-1}A^T$ 에 단순히 b를 곱하면 해당 값을 얻을 수 있기에 $(A^TA)^{-1}A^T$ 을 projection matrix 라고 부른다고 합니다.

최종적으로 우리가 얻고자 하는 벡터는 $A(A^TA)^{-1}A^Tb$ 가 되게 됩니다.

Least Square의 경우 예를들어 특정 벡터를 선형변환하고 특정 noise가 추가되는 경우 해당 벡터를 다시 생성할때 주로 사용된다고 합니다. 즉 noise 처럼 되돌릴 때 표현할수 없는 경우 최대한 비슷한 값을 찾도록 하는 방법입니다.