최소제곱문제(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]  초기 근사해 , 허용오차(tolerance) , 학습률(learning

         rate) 를 준다. 이라 한다.

[단계 2]  를 계산한다. 만일 이면, 알고리즘을 멈춘다.

[단계 3]  , 이라 두고 [단계 2]로 이동한다.

                                [표 2]


(실습)  http://matrix.skku.ac.kr/kofac/  (허용오차 , 학습률 일 때)



따라서 최소제곱직선은 이다. 통계학에서는 이 과정을 선형회귀(linear regression)라고도 한다.


       그림입니다.
원본 그림의 이름: mem000047080005.tmp
원본 그림의 크기: 가로 630pixel, 세로 470pixel  

                        [그림 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/  (허용오차 , 학습률 일 때)



따라서 최소제곱 곡선은 이다.


      그림입니다.
원본 그림의 이름: mem00004600305d.tmp
원본 그림의 크기: 가로 630pixel, 세로 470pixel  

                               [그림 3]


Copyright @ 2020 SKKU Matrix Lab. All rights reserved.
Made by Manager: Prof. Sang-Gu Lee and Dr. Jae Hwa Lee