ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 머신러닝에서 선형과 비선형
    Math 2021. 7. 25. 15:56

    많은 머신러닝 서적에서 선형과 비선형이라는 말이 등장한다.

    개념이 잘 잡히지 않아서 정리해본다. 

     

     

    선형과 비선형의 개념은 선형대수학 책에서 선형변환을 통해 정의하게 된다. 

    선형성(linearity)를 따르는 변환 또는 함수들은 선형 변환, 선형함수라고 하고, 그 외의 모든 함수들은 비선형 변환, 비선형함수(non-linear function)이라고 한다. 

     

     

    그렇다면, 선형성이 도대체 무엇일까?

    위키피디아에는 다음과 같이 선형성이 수학적으로 정의되어 있다. 

     

     

    선형성의 정의

    함수 $f$가 선형이라면

    • 가산성(Additivity), 임의의 수(실수나 복소수) $x$, $y$에 대해 $f(x+y) = f(x) + f(y)$가 항상 성립한다.

    • 동차성(Homogeneity), 임의의 수 $x$ 나 $\alpha$에 대해 $f(\alpha x) = \alpha f(x)$가 항상 성립한다. 

    • 두 식을 하나의 식으로 표현하면 $f(ax_1 + bx_2) = af(x_1) + bf(x_2)$로 표현된다. 

     

     

    즉, 위의 성질들을 만족하면 어떠한 함수가 진행하는 모양이 직선이 된다는 뜻이다. 다른 말로 1차라고도 하지만 1차가 선형 자체를 의미하지 않는 경우도 많다. 

     

     

    머신러닝에서 예를 들어보자. 

     

    ReLU, GELU 함수

     

    ReLU의 수학식은 다음과 같다. 

     

    \begin{align*}
    y &= x ( x > 0) \\
    y &= 0 (otherwise)  \\
    \end{align*}

     

     

    딥러닝의 ReLU 함수는 $x$의 값이 0이하에서는 0, 0초과에서는 $x$ 값을 그대로 출력한다. 이 함수는 직선이지만 비선형 함수이다. 왜 그럴까? 바로 위의 가산성을 만족시키지 않기 때문이다. 

     

     

    예를 들어보자. $x$가 -3, $y$가 4라고 하고 값을 넣어보면 가산성을 만족하지 않는다.

    \begin{equation}
    f(-3 + 4) = f(1) = 1
    \end{equation}

    \begin{equation}
    f(-3) + f(4) =  0 + 4 =4
    \end{equation}

     

    즉, $1 \ne 4$ 가 되어 선형성의 정의에 맞지 않는다.

    ReLU 함수는 정의역에서 +, -, * 를 통해 연산한 값들이 치역에서 함수값들을 연산한 것들에 대해 선형적으로 사상(mapping)되지 못한다는 것을 뜻한다. 즉, 직선을 그리지 못한다는 것이다! 따라서 ReLU 함수는 비선형인 것이다!

    마찬가지로 동차성도 위의 값에 대해서 동차성도 만족시키지 않는다. 0 이하의 값에 대해서는 모두 0을 출력하기 때문이다. 

     

    머신러닝에서의 선형성과 비선형성

     

    머신러닝에서 가장 먼저 보게 되는 다항식 곡선 피팅 예시를 살펴보자.

     

    곡선을 피팅하기 위해 다음과 같은 식을 활용한다.

     

    \begin{equation}
    y(x, \mathbf w) = w_0 + w_1x + w_2x^2 + ... + w_Mx^M = \sum_{j=0}^M w_jx^j
    \end{equation}

     

    여기서 M을 차수라고 하며, $j$는 $x$의 승수이다. 패턴인식과 머신러닝 책에서는

    다항함수 $y(x, \mathbf w)$는 $x$에 대해서는 비선형이지만 계수 $w$에 대해서는 선형이라고 한다. 

     

    다변수함수의 값 $y$가 $x$에 대해서는 비선형이고, $w$에 대해서는 선형이라는 의미이다. 이를

    matplotlib 라이브러리를 통해 확인해보자. 시각화할 수 있도록 2차까지만 전개해서 확인한다. 

    그림들을 확인해보면 w에 대해서는 함수값이 선형이고 x에 대해서는 비선형(곡선)임을 확인할 수 있다.  

    이를 확장하면 위의 식은 M-1 차원의 초평면을 이루게 될 것이다.

     

     

      

     

     

     

     

    출처

    [1] https://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95_%EA%B2%B0%ED%95%A9

    [2] https://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95%EC%84%B1

     

     

    댓글

Designed by Tistory.