최소제곱문제(least squares problem) : 최소제곱해, 선형회귀, 최소제곱직선
written & made by 이상구, 이재화
[참고] 이상구 with 이재화, 인공지능을 위한 기초수학, 교보문고 퍼플, 2019.
http://matrix.skku.ac.kr/math4ai/
다음과 같이 와
에 관한 2차원 데이터가 주어져 있다고 하자.
이를 좌표평면에 나타내면 아래의 왼쪽 그림과 같다. 우리는 직관적으로 와
의 관계를 아래 오른쪽 그림과 같이 직선(파란색 점선)으로 나타낼 수 있음을 알 수 있다. 이를 최소제곱직선이라 한다.
[그림 1]
이제 실제로 이 직선을 찾아보자. 즉 와
의 관계를 가장 잘 보여주는 일차함수
를 찾는다. 가장 이상적인 상황은 모든 데이터
에 대해서
가 만족되는
절편
와 기울기
를 찾는 것이다. 따라서 다음과 같이 미지수가
,
인 선형연립방정식과 행렬표현을 얻게 된다.
데이터 |
|
일차함수 |
선형연립방정식 |
행렬표현 |
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
||
|
|
|
[표 1]
우리가 이미 알고 있는 바와 같이, 직선을 구하기 위해서는(즉 와
를 찾기 위해서는) 두 개의 데이터(즉 두 점)에 대한 정보만 있으면 충분하다. 그러나 측정에서 생기는 오차의 영향을 줄이기 위하여, 대개는 미지수의 개수보다 많은 개수의 데이터를 사용하므로, 방정식의 수가 미지수의 개수보다 많은 선형연립방정식이 생긴다. 이런 경우, 일반적으로 선형연립방정식을 만족하는 해(즉
인
)를 기대할 수 없다. 대신
와
사이의 거리(
)가 최소가 되는 근사해, 즉 다음을 만족하는
를 찾는다. 이를 최소제곱문제(least squares problem)라 한다.
최소제곱문제는 다음과 같이 해석할 수 있다. 각 데이터 에 대하여
를 일차함수
에 대입하여 얻은 값을
라 하자(즉
). [표 1]의 선형연립방정식의 해가 존재하지 않는 경우는 각 데이터에 따라서
와
가 같지 않아서 발생하므로, 이를 해결하기 위한 차선책으로 각 데이터의 (제곱)오차
가 최소가 되는
,
를 구한다. 주어진 모든 데이터에 대하여 오차를 더하면 다음을 얻는다.
따라서 최소제곱문제는 오차를 최소화하는 문제로 이해할 수 있다.
최소제곱문제는 다양한 방법으로 풀 수 있다. 먼저 행렬을 이용하여 다음과 같이 해결할 수 있다.
(실습) http://matrix.skku.ac.kr/kofac/
또는 경사하강법(gradient descent algorithm)을 사용하여 계산할 수 있다.
[경사하강법] 알고리즘 [단계 1] 초기 근사해 rate) [단계 2] [단계 3] |
[표 2]
(실습) http://matrix.skku.ac.kr/kofac/ (허용오차 , 학습률
일 때)
따라서 최소제곱직선은 이다. 통계학에서는 이 과정을 선형회귀(linear regression)라고도 한다.
[그림 2]
*위 문제를 Scikit-Learn (sklearn) 패키지를 사용한 명령어는 다음과 같다.
(실습) http://matrix.skku.ac.kr/kofac/
위의 방법을 활용하여 와
의 관계를 가장 잘 보여주는 이차함수
도 찾을 수 있다. 즉 다음과 같이 미지수가
,
,
인 선형연립방정식과 행렬표현을 얻게 된다.
데이터 |
|
일차함수 |
선형연립방정식 |
행렬표현 |
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
||
|
|
|
[표 3]
이때, 오차는 다음과 같다.
이를 행렬을 이용하여 다음과 같이 해결할 수 있다.
(실습) http://matrix.skku.ac.kr/kofac/
또는 경사하강법(gradient descent algorithm)을 사용하여 계산할 수 있다.
(실습) http://matrix.skku.ac.kr/kofac/ (허용오차 , 학습률
일 때)
따라서 최소제곱 곡선은 이다.
[그림 3]
Copyright @ 2020 SKKU Matrix Lab. All rights reserved.
Made by Manager: Prof. Sang-Gu Lee and Dr. Jae Hwa Lee