기초 개념편 (2) Linear Regression
Linear Regression
Data
데이터는 기본적으로 숫자의 모음 즉, vector다.
그리고 이러한 데이터를 평면에 찍어서 도식화하면 아래와 같이 한 이미지데이터는 한 데이터 포인트에 표시할 수 있고 이를 통해 데이터의 분포를 확인할 수 있다. (물론, 7500차원의 이미지를 2차원 평면에 위치시킬 수는 없다. 해당 이미지는 이해를 돕기 위한 이미지일 뿐이다.)
Linear Method
앞서 계속 설명한 ML 모델 또는 함수 f(x)를 찾는 것은 매우 어렵다. 따라서 사람들은 우선 f(x)를 특정 form 내지는 frame으로 설정했다. 이중 한 방법이 바로 Linear method이다.
Linear Method는 단순하게 함수를 $f(x)=wx+b$와 같이 직선으로 표현하는 방식을 의미한다. 이를 통해 데이터셋에 가장 적합한 w, b를 찾으면 된다.
Regression vs Classification
위 이미지와 같이 Regression(회귀)는 추세를 찾는 것이고 Classification(분류)는 기준을 잡아서 데이터를 몇 가지로 나누는 것이다. 예를 들어, 주가를 예측하거나 집값을 예측하는 모델은 회귀 모델이고 사과와 배를 찾는 모델은 분류 모델이다.
Linear Regression
회귀란 데이터를 2D나 더 높은 차원의 공간에서 가장 잘 표현하는 직선이나 곡선을 찾는 것이다.
회귀중에서 선형 회귀는 직선을 찾는 과정이다. 좀더 구체적으로는 $f(x)=wx+b$ 라는 함수에서 기울기 w와 절편 b를 구하는 것이다. 여기서 w와 b를 일반적으로 매개변수 or parameter라고 한다.
Single Variable Linear Regression
하나의 독립변수를 가진 함수이다 → $f(x)=wx+b$
Multi Variable Linear Regression
여러 개의 독립변수를 가지고 있다면 → $f(x)=w_0+w_1x+w_2y+w_3z$
General Form
$$ \begin{aligned} f(x) &= w_0 + w_1 x_1 + w_2 x_2 + w_3 x_3 \\ &= \begin{bmatrix} a_{11} & a_{21} & a_{31} \end{bmatrix} \begin{bmatrix} a_{11} \\ a_{21} \\ a_{31} \end{bmatrix} \\ &= Wx \end{aligned} $$
$f(x)=Wx$ 로 표현 가능한 모든 함수는 Linear Regression이다.
Loss Function
Loss function이란 실제와 예측의 오차를 계산하기 위한 함수이다.
매개변수 계산
$f(x)=wx+b$ 인 함수의 상수 w와 b를 계산하기 위해서는 수학적으로 2개 이상의 식이 있으면 된다.
하지만 ML의 모델은 다르다. 그 이유는 ML 모델의 매개변수를 계산하기 위해 사용되는 값들은 실제 값이 아니라 오차가 존재하기 때문이다.
예를 들어, 강아지를 판별하는 ML 모델을 훈련하는 경우 강아지들은 모두 다르게 생겼기 때문에 가장 평균적인 강아지의 특징을 기준으로 잡아야 강아지를 판별할 수 있다.
하지만 해당 특징은 개개의 강아지들과는 차이가 존재한다. 따라서 좀더 일반적인 함수를 만들기 위해서는 많은 데이터가 필요하고 데이터가 많을 수록 학습이 잘된다.
Loss function
일반적인 Loss Function으로는 $((y-f(x))^2$ 를 사용한다. y는 실제 값 또는 label이고 f(x)는 예측값이다.
위의 그림에서 살펴볼 수 있듯 각 데이터별 실제값과 예측값의 차이를 구한후 제곱한 총합을 데이터의 개수로 나눈다.
우리의 목적은 그렇게 해서 Loss Function의 값이 최소가 되는 매개변수, 이 경우에는 W와 b를 찾는 것이다.
그럼 어떻게 해서 W, b를 찾는 것일까?
위의 식은 각각 W에 대한 Loss(W,b)의 2차식과 b에 대한 Loss(W,b)의 2차식을 좌표계에 표현한 것이다.
(참고로 W와 b에 대한 2차식은 위의 Loss(W,b)의 식을 풀어써서 각각 W에 대해서 나열하고 b에 대해서 나열하면 구할 수 있다.)
당연하게도 Loss(W,b)가 최소가되는 W,b는 극소점 즉, 미분값이 0이되는 지점이다.
(W와 b는 제곱이 되므로 항상 최대 차수의 계수가 양이다)
Analytic Solution
그럼 미분값이 0인 것을 활용해서 수치적으로 구할 수가 있다.
W는 $\frac{\delta LOSS(W,b)}{\delta W}=0$를 계산해서 구할수 있다.
b는 $\frac{\delta LOSS(W,b)}{\delta W}=0$를 계산해서 구할수 있다.
이런 방식은 간단한 함수에 대해서는 가능하지만 복잡한 모델에서는 현실적이지 않다. 예를 들어 5차 방정식부터는 일반적인 해를 구할수 없다.
예를 들어 $f(x) = W1^{5}x + W2^{4}x$인 식의 경우 Loss function의 값이 W^{10}까지 되어버린다.
즉, 이 방법은 일반적으로 사용할 수 없다. 그럼 일반적으로 사용할 수 있는 방법이 있을까?
그렇게 등장한게 Gradient Descent(경사하강법)이다... 다음 글에서 계속