만일 행렬 A가 (10 x 3 ) 크기를 갖고, full rank라고 가정을 해봅시다. 즉, 10차원에서 3차원을 span하고 있다는 것 입니다. 결국 해가 1개이거나 0개입니다.
span할 수 있는 3차원이 아니라 다른 차원에 값이 존재한다면 우리는 해당 값을 표현할수 없습니다. 하지만 해당 값과 최대한 유사한 값을 찾을 수 있습니다. 이렇게 span하지는 못하지만 span할 수 있는 차원에서 해당 값을 가장 잘 표현하는 것이 바로 Least Square 입니다.
행렬 A가 존재하고, A가 3차원을 span한다고 가정해봅시다. 그리고 b라는 벡터는 span가능하지 않은 위치에 존재합니다. 그리고 해당 b 벡터를 최대한 표현해보려고 합니다. 이를 시각적으로 나타내면 아래와 같이 표현할 수 있습니다.
우리가 표현하고자 하는 벡터 b이고, 이를 가장 잘 표현하는 벡터가 A 행렬이 span할수 있는 차원 내에 존재하기에
그렇다면
그리고 수직인 경우 두 벡터의 dot product 값이 0이 되게 되고, 해당 식을 풀게 되면 결국
과정은 아래와 같습니다.
이 떄
아래 수식을 풀어서 보면 아래와 같습니다. ( 이항 한 다음에 transpose를 취해줍니다 양변에 )
이때
위와 같은 식을 얻게 됩니다. 즉 위의 값을 만족할때 span가능한 3차원에서 b 벡터를 가장 잘 표현하게 됩니다. 그리고
최종적으로 우리가 얻고자 하는 벡터는
Least Square의 경우 예를들어 특정 벡터를 선형변환하고 특정 noise가 추가되는 경우 해당 벡터를 다시 생성할때 주로 사용된다고 합니다. 즉 noise 처럼 되돌릴 때 표현할수 없는 경우 최대한 비슷한 값을 찾도록 하는 방법입니다.