꿈이 너무 많은 한 대학생의 공간

6. 선형과 비선형의 차이 본문

인공지능/딥러닝 이론 및 파이썬 실습

6. 선형과 비선형의 차이

청울울청 2020. 7. 6. 23:37

본 포스팅은 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 을 참고하여 작성된 요약본입니다. 비전문가가 작성하였으므로 참고만 해주시길 부탁드립니다.

 

1. 선형이란?

 

머신러닝에서의 선형은 머신러닝 공식에서의 계수들이 선형적인 관계에 있을 때를 선형 모델이라고 합니다.

(선형적인 관계란 강의에서 구체적으로 나와있진 않지만, 정보를 찾아보며 조합해본 결과 두 변수들의 값을 좌표평면에 표시했을 때, 직선으로 이루어졌을 때 두 변수를 선형 관계에 있다고 유추됩니다.)

 

이해가 잘 가지 않지만 최대한 이해하기 위해 강의에서 제공해주신 예제를 확인해보겠습니다.

 

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

위와 같이 w1과 w2의 관계를 표현하는 그래프가 있다고 가정합시다. 만약 3w1과 2w2를 위와 같이 표현했을 때, 위와 같이 3w1 + 2w2 로 나타낼 수 있는 관계의 그래프를 선형 그래프라고 합니다. (저도 포스팅을 작성하기까지 이해를 못했습니다. 단지 함수가 직선 그래프라고 인지하기에는 엇갈리는 예제가 너무 많기 떄문입니다.)

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

위와 같은 회귀 모델이 있다고 가정합시다. (회귀란 쉽게 말하자면 두 변수 x, y 간의 관계를 파악하는 것을 의미합니다. 흔히 회귀 모델이라는 것은 x, y 사이의 관계를 파악한 관계식이라고 생각할 수 있죠)

 

위와 같은 회귀 모델에서 y를 구하는 방법은 각각의 x에 가중치 w를 곱한 값을 모두 더한 값입니다. 즉, x1 * w1 + x2 * w2 + x3 * w3 ... xn * wn = y 의 형태로 나타낼 수 있죠.

 

이때 이 관계식을 단순한 일차함수의 식으로 보았을 때 (필자는 중학생이라 삼차 이상의 함수에 대한 개념을 모릅니다. 다만 위 내용을 숙지하는 것에는 일차함수의 식으로 보았을 때가 가장 편했습니다) 각각의 x의 곱해진 가중치를 일차함수에서는 흔히 계수(Coefficient)라고 부릅니다. 즉, 이 계수들이 선형 관계에 있을 때 우리는 위 모델을 선형 회귀 모델 이라고 부릅니다.

 

다시 한번 정의하자면, 모델에서의 가중치가 선형적인 관계에 있을 때 우리는 가중치를 "선형적인 관계가 있다" 라고 부르고, 그 모델을 선형 모델이라고 칭하는 것입니다.

 

2. 선형 모델의 예제

 

제일 간단한 선형 모델은 편향(Bias)만 있을 때에도 선형 관계라고 부릅니다. 즉, b = y (이때 b는 편향) 의 형태일때도 선형 관계라고 부르는 것입니다.

 

일반적으로 선형 모델이라 부르는 w * x + b = y 같은 식 또한 선형 관계라고 부릅니다. 

 

이를 더 구체화시키면 x1 * w1 + x2 * w2 ... xn * wn + b = y 또한 위의 식이 길게 늘어져 있는 것이지, 이 또한 선형 모델입니다.

 

x1 * w1 + x1^2 * w2 + log(x1) * w3 ... xn^7 * w7 = y 와 같은 복잡한 식이어도 가중치들이 모두 선형적인 관계를 가지고 있으면 선형 모델입니다.

 

또한 x1 * x2 * w1 + x2 * x3 * x2 ... xn * x(n+1) * wn = y 의 형태여도 가중치들이 모두 선형적인 관계를 가진다면 선형 모델입니다.

 

3. 비선형 모델

 

그렇다면 과연 어떤 모델이 비선형 모델일까요? 이론적으로 말하자면 선형 모델이 아닌 모델은 모두 비선형 모델입니다.

 

예를 들어 선형 회귀(Linear Regression) 은 선형 모델입니다. 선형적인 관계에 있는 계수로 이루어진 식이 모델을 이루기 때문이죠.

 

비선형 회귀 모델은 대표적으로 로지스틱 회귀(Logistic Regression) 은 선형 모델이 아닙니다. 아래의 비교를 통해 확인해보겠습니다.

 

선형 회귀 모델은 앞에서 설명했듯이 x1 * w1 + x2 * w2 ... xn * wn = y 와 같은 형태를 띕니다. 또한 w1, w2 ... wn이 모두 선형적인 관계에 있으므로 선형 모델이라고 할 수 있습니다.

 

다만 로지스틱 함수는 형태가 조금 다릅니다. x1 * w1 + x2 * w2 ... 가 모두 더해지는건 맞지만 출력값이 나오기 전 함수를 하나 거칩니다. 대부분 이 함수를 시그모이드 함수(Sigmoid Function) 을 사용합니다.

또한, 로지스틱 함수에서는 출력값을 y 라고 하지 않고 주로 z 라고 표현합니다.

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

 

시그모이드 함수는 기본적으로 왼쪽, 결과적으로는 오른쪽과 같은 형태를 띕니다. 시그모이드 함수에 들어가는 y값은 앞에서 x값과 가중치값을 모두 곱한 값의 합이 들어갑니다. 결국 시그모이드 함수의 값과는 크게 연관되어 있지 않습니다.

그러므로 로지스틱 함수는 비선형적인 모델이라고 할 수 있겠습니다.

 

4. 딥러닝에서의 시그모이드 함수

 

딥러닝은 주로 비선형적인 모델이라고 분류됩니다. 선형 모델과 같이 x값과 가중치값을 곱한 값의 합이 구해지는 것은 동일하지만, 마지막 과정에는 시그모이드 함수를 통해 출력값이 나오고, 그 값이 또다른 레이어에 들어가서 처리되는 등의 과정이 반복되니 결론적으로는 딥러닝은 비선형적인 모델이라고 할 수 있습니다.

 

5. 선형 모델에서의 곡선 그래프

 

위에서는 선형 모델에서의 가중치(계수)가 선형적인 관계에 있을 때(좌표평면에서 직선, 양의 상관관계 또는 음의 상관관계) 선형 모델이라고 했었죠? 그렇다면 선형 모델 또한 그래프로 나타내었을 때 무조건 선형적인 관계를 가질까요?

 

아닙니다. 여러가지 모형으로 나올 수 있습니다. 입력값에 곱해지는 가중치가 선형적인 관계이지, 입력값과 가중치를 곱한 값들의 합이 무조건 선형적인 관계는 아니기 때문이죠. 

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

강의에서 제공해주신 y=x+1 그래프를 살펴보겠습니다. 이를 우리가 이때까지 공부한 선형 모델이라고 생각한다면

편향은 +1, 가중치는 1 이라고 생각할 수 있습니다. 가중치와 편향이 선형적인 관계이니 선형 모델이라고 할 수 있겠네요?

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

다만 위의 그래프를 보겠습니다. 위 그래프는 y=x+4x^2+3x^3+0.25x^5+0.3x^6 의 형태의 그래프입니다. 즉 6차함수입니다. 이때 가중치는 모두 선형적인 관계입니다. 그러므로 선형 모델이고, 위 그래프는 곡선이니 선형 모델이 무조건 직선으로 표시되는 것이 아님을 이해하셨나요?

 

딥러닝을 공부하며 제일 힘들게 느꼈던 개념이 선형적인 관계입니다. 강의를 다 보고 난 후에도, 다른 정보를 찾아가며 "선형 관계" 라는 개념을 이해하려고 노력중인데, 아직까지는 당당하게 "선형 관계는 두 변수 사이에 ~~~한 관계가 성립하는 관계입니다!" 라고 말을 못하겠네요. 더 많이 공부해야겠습니다.

Comments