ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Regression]최소제곱법(Least-Square Method)과 목적함수(Objective Function)
    Engineering/AI 2021. 4. 17. 01:08

    1. 최소제곱법(Least-Square Method)

    최소제곱법은 보통 목적함수가 최소가 되는 계수를 찾는 과정을 의미한다. 주로 회귀 분석이나 수치 해석에서 입력 값과 출력 값의 관계를 규명할 때 사용된다. 선형대수학 관점에서 행렬을 표현하여 증명해보자.

    $$y_1 = ax_1 + b$$

    $$y_2 = ax_2 + b$$

    $$\dots$$

    $$y_n = ax_n + b$$

    위와 같은 식이 있다고 하자. 위의 식을 실제 데이터에 대입했을 때 발생하는 각 오차를 아래와 같이 정의해보자.

    $$e_1 = y_1 - (ax_1 + b)$$

    $$e_2 = y_2 - (ax_2 + b)$$

    $$\dots$$

    $$e_n = y_n - (ax_n + b)$$

    이 오차를 통해 매개변수의 최소 값을 구하기 전에 제곱을 해서 더해주는 작업을 진행한다. 이렇게 제곱을 하는 이유는 우리가 단순히 목적함수라는 차이를 구하는 것을 목표로 오차끼리 값을 상쇄해주는 영향을 최소화하려는 방법이기 때문이다. 이러한 제곱의 효과는 오차가 큰 값에 대해 더 큰 값의 오차를 만들어준다.

    $$s_1 = (y_1 - (ax_1 + b))^2$$

    $$s_2 = (y_2 - (ax_2 + b))^2$$

    $$\dots$$

    $$s_n = (y_n - (ax_n + b))^2$$

     이 식의 합을 매개변수 a, b에 관해 정리하면 아래와 같이 정리된다.

    $$S(a, b) = \sum_{k=1}^{n} {(y_k - (ax_k + b))^2}$$

    이를 행렬식을 활용하여 아래와 같이 정의해보자.

    $$Y = \begin{bmatrix} y_1
    \\ \dots
    \\ y_n
    \end{bmatrix}$$

    $$X = \begin{bmatrix}
    x_1 & 1 \\ 
    \dots & \dots \\ 
    x_n & 1
    \end{bmatrix}$$

    $$\beta = \begin{bmatrix}
    a\\ 
    b
    \end{bmatrix}$$

    $$S = \begin{bmatrix}
    s_1\\ 
    \dots\\ 
    s_n
    \end{bmatrix}$$

    행렬 꼴로 전개하면 다음과 같다. T는 transpose의 약자이다.

    $$S = (Y - X \beta)^2=Y^T Y - 2 \beta^T X^T Y + \beta^T X^T X \beta$$

    이때 최소가 되는 $\beta$를 찾으려면 미분해서 0을 만족시키는 값을 찾으면 된다.

    $$\frac{\partial S }{\partial\beta} = -2X^T Y + 2X^T X\beta = 0$$

    $$\therefore \beta = (X^T X)^{-1} X^T Y$$

     

    2. 목적함수(Objective Function)

    그렇다면 목적함수는 무엇일까? 또한 비용 함수(Cost Function), 손실 함수(Loss Function)는 대체 무엇일까?

    우선 가장 큰 범주는 목적함수라고 생각하면 된다. 목적함수의 정의는 어떤 값을 최소화하거나 최대화하기 위한 함수를 말한다. 비용 함수와 손실함수라는 용어를 혼동해서 사용하고 있는데 실제로 크게 차이는 없지만 엄밀하게 정의해보기 위해서 아래 참고자료를 활용했다.

    목적함수는 비용함수와 손실 함수를 포함하고 있는 개념이기 때문에 목적함수이면서 비용 함수가 아닌 반례가 존재한다. 그것이 Maximum likelihood estimation(MLE)라고 할 수 있다. 머신러닝에서의 목적함수를 한정지어서 접근할 것이기 때문에 위에서 정의한 그대로의 함수를 찾는 과정이라고 생각하면 될 것 같다.

    비용 함수는 모든 입력 값에 대해서 오차를 계산하는 함수이다. 이와 연관되는 개념이 손실 함수인데 손실 함수는 입력 값 중 하나의 오차를 계산하는 함수라고 한다.

    그러나 현재 이를 엄밀하게 구분 짓고 있지는 않는 것 같다. 따라서 목적함수, 비용 함수, 손실 함수를 구하는 것이 최적화(Optimization)를 하기 위한 과정이라고 보면 좋을 것 같다. 아래는 대표적인 목적 함수인 평균 제곱 오차(Mean-Square Error)의 수식이다.

    $$MSE = \frac{1}{n}\sum_{k=1}^{n} {(y_k - \hat{y_k})^2}$$

     

    - Reference

    목적함수 정의 1 : www.courses.psu.edu/for/for466w_mem14/Ch11/HTML/Sec1/ch11sec1_ObjFn.htm

    목적함수 정의 2 : primo.ai/index.php?title=Objective_vs._Cost_vs._Loss_vs._Error_Function

    반응형

    댓글

Designed by Titus Choi.