꺼내먹는지식 준
머신 러닝 정리 5 - Linear Regression 본문
머신러닝은 궁극적으로 우리가 찾고자 하는 함수를 근사하는 것이다.
Linear Regression 은 그 중 아주 간단하고, 강력한 방법론 중 하나이다.
이름 그대로 linear 한 형태로 함수를 근사한다.
우리의 가설은 아래와 같다.
$h : \hat{f}(x ; \theta) = \theta_0 + \sum^{n}_{i=1} \theta_i x_i = \sum^{n}_{i=0} \theta_i x_i$
n 은 feature value 의 개수이다.
linear를 유지해야 하기 때문에 $x$ 는 건들지 않고 $\theta$ 값을 잘 조정하여 함수를 근사한다.
($x$를 건들지 않고에 대해 이해가 잘 안간다면 일단 $x$ 는 관측 데이터라 생각만 하고 넘어가자.)
그 전에 공식을 정리해보자.
$ \theta_0 + \sum^{n}_{i=1} \theta_i x_i = \sum^{n}_{i=0} \theta_i x_i$
위에서 $\theta_0$ 를 정리하고, 식을 $\hat{f} = X\theta$ 로 간소화하기 위하여 아래와 같이 정리한다.
$X = \begin{pmatrix} 1 & \cdots & x^1_{n} \\ \vdots & \ddots & \vdots \\ 1 & \cdots & x^D_{n} \end{pmatrix} , \theta = \begin{pmatrix} \theta_0 \\ \theta_1 \\ \cdots \\ \theta_n \end{pmatrix}$
현실은 noisy 하다. 이에 따라 true 값은 예상치 못한 error 을 포함해야한다.
$f(x;\theta) = \sum^{n}_{i=0} \theta_i x_i + e = y \rightarrow f = X\theta + e = Y$
하지만 우리가 근사하는 함수는 error를 반영할 수 없으므로 $\hat{f}$ 로 표기한다.
$\hat{\theta} = argmin_\theta (f - \hat{f})^2 = argmin_\theta (Y - X\theta)^2$
이미 데이터 X 와 결과값 Y 는 제공되어 있다. 우리가 모르는 값은 $\theta$ 이기에 해당 값만 구해주면 된다.
$ = argmin_\theta (Y - X\theta)^T(Y - X\theta) = argmin_\theta(\theta^T X^T X\theta - 2 \theta^T X^T Y + Y^T Y)$
$Y^T Y$ 는 상수이므로, 빼고 고려할 수 있다.
$ argmin_\theta(\theta^T X^T X\theta - 2 \theta^T X^T Y)$
위 식을 최적화 하기 위해서는 극점을 찾도록 $\theta$에 대해 미분을 수행하면 된다.
$\nabla _\theta (\theta^T X^T X\theta - 2 \theta^T X^T Y) = 0$
$2X^T X\theta - 2X^T Y = 0$
위 미분 과정을 아래 짧게 서술한다.
※ 스칼라함수를 벡터로 미분한 경우
$\frac{\partial}{\partial x}(x^T A x) = x^T(A^T + A)$
$A = X^T X$ 로 치환하여 적용하면
$\theta^T X^T X\theta = \theta^T A \theta$
$ \theta^T (X^T X + X^T X) = 2 \theta^T(X^T X)$
$\frac{\partial}{\partial x}(a^T x) = \frac{\partial}{\partial x}(x^T a) = a^T$
$-2\theta^T X^T Y = -2 X^T Y$
따라서, $\theta = (X^T X)^{-1} X^T Y$
X,Y 를 앎므로 $\theta $ 를 구할 수 있다.
Housing dataset
https://archive.ics.uci.edu/ml/machine-learning-databases/housing/
- 13 numerical independent values
- 1 numerical dependent value
위와 같은 데이터 셋이 있다고 하자.
13개의 Housing feature 중 한가지만을 사용하여 나타낸 plot 이다.
$\theta = (X^T X)^{-1} X^T Y$
X 값과 Y 값 (빨간 점)을 통해 위 공식에서 $\theta$를 구한 후, X 값에 대한 $\hat{Y}$ 를 구한 결과(파란점) 이다.
feature 의 개수를 단지 dimension 을 올리는 것과 같은 방식으로 증가시켜볼 수 있다. (linear regression 에서는 x 를 건들지 않는다고 사전에 언급했었는데, dimension을 올리는 것이 x를 건든다는 것의 한 예이다.)
예를 들어 $x^2, x^3, x^4 ... $ 와 같이 x의 차원을 뻥튀기를 해보는 방법이다.
$h: \hat{f} (x; \theta) = \sum^{n}_{i=0} \sum^m_{j=1} \theta_{i,j} \phi_j (x_i)$
이 경우 위와 같이 현재 데이터에 대해서는 마치 관측이 잘 된 것 처럼 보이지만, overfitting 의 가능성이 높다는 것을 알 수 있다.
linear regression 은 아주 간단한 모델이지만, 실제 세상에서 데이터를 예측하는데 여전히 많이 사용되는 좋은 모델이다.
하지만, 당연히 linear 한 특성이 강점이 되기도 하지만, 많은 경우 제약이 되기도 한다.
'AI > 머신러닝' 카테고리의 다른 글
머신 러닝 정리 7.5 - Gradient Descent 가 정말 잘 동작할까? (0) | 2022.10.28 |
---|---|
머신 러닝 정리 6 - Naive Bayes Classifier (conditional Independence 조건부 독립) (0) | 2022.10.17 |
머신 러닝 정리 4- Decision Tree (1) | 2022.10.05 |
머신 러닝 정리 3 - 룰 베이스 알고리즘이란? (0) | 2022.09.29 |
머신 러닝 정리 2 - 확률 분포 (0) | 2022.09.29 |