아래 글을 먼저 보는 것이 좋습니다.
아래와 같은 데이터가 있다고 할 때, 선형 회귀 `\theta_0 + \theta_1x_1` 식은 파란 선으로 나타낼 수 있다.
그런데 이 선은 과연 데이터들을 올바르게 표현하고 있는 걸까?
직선이 아닌 다른 형태가 사실은 더 적합할 수도 있지 않을까?
혹은 feature가 여러 개인 다항 회귀의 경우는 어떨까?
예를 들면 `\theta_0 + \theta_1x_1 + \theta_2x_2^2` 또는 `\theta_0 + \theta_1x_1 + \theta_2logx_2`, 아니면 `\theta_0 + \theta_1x_1 + \theta_2\sqrt{x_2}`에 더 가까울 지도 모른다.
이번 글에서 데이터를 표현하는 여러 방법들 중 국소 회귀가 무엇인지 이해하고, 어떻게 선형 회귀와 다른지 알아보자.
머신러닝 알고리즘은 모수적 모델(Parametric Model)과 비모수적 모델(Non-parametric Model)로 나뉜다.
모수적 알고리즘은 고정된 개수의 파라미터들을 학습(fit)한다.
다항 회귀 모델은 주어진 feature에 대한 `\theta_i`를 데이터 개수(`m`)만큼 학습하는 모수적 알고리즘이다.
$$J(\theta) = \frac{1}{2}\sum_{i=1}^{m}\left ( y^{(i)} - \theta^T x^{(i)} \right )^2$$
반면 비모수적 모델은 학습 데이터가 늘어남에 따라 파라미터의 개수도 늘어난다.
국소 회귀는 대표적인 비모수적 모델 중 하나이다.
수식과 예시를 통해 어떻게 데이터에 따라 파라미터의 개수가 늘어나는지, 국소 회귀가 데이터를 어떤 형태로 표현하는지 살펴보자.
$$J(\theta) = \sum_{i=1}^{m}w^{(i)}\left ( y^{(i)} - \theta^T x^{(i)} \right )^2$$
$$where \; w^{(i)} = exp\left ( -\frac{\left( x^{(i)}-x \right)^2}{2} \right )$$
`w^{(i)}`는 weight function을 의미하는데, 여기서 `x`는 예측하고 싶은 값이고 `x^{(i)}`는 학습 데이터의 `i`번째 값을 나타낸다.
0부터 1 사이의 값을 가지며, `x^{(i)}, y^{(i)}` 에 대해 얼마나 가중치(weight)를 둘 것인지를 결정한다.
예를 들어 위와 같은 데이터가 있다고 할 때, `x^{(1)}-x`는 작은 값을 가지므로 `w^{(1)}`은 거의 1에 가까워진다.
반면 `x^{(2)}-x`는 큰 값이므로 `w^{(2)}`는 0에 가까워지고, 그 비용 함수 값도 0에 가까워지면서 결국 예측을 위한 학습 데이터에서 제외된다.
즉 `x`로부터 가까이 위치한 값들(위 그림에서 주황색에 해당)만 학습 데이터로 이용하는 것이다.
이처럼 국소 회귀는 좁은 범위의 데이터를 한정해서 비선형 문제를 선형으로 취급하는 방법이다.
아래 그림을 통해 더욱 직관적인 이해가 가능하다.
파란 선은 데이터를 생성한 실제 함수를, 밝은 오렌지색 선은 국소 회귀 추정치를 나타낸다.
초록색 종 모양의 면적에서 각 높이는 `x`에서의 `w^{(i)}`, 즉 weight function의 값을 나타낸다.
`x`로부터의 거리가 멀수록 그 값이 작아져 0에 가까워지는 것을 볼 수 있다.
이처럼 각 local 범위에서의 빨간 선들이 결합돼 오렌지색의 최종 곡선을 만들어 낸다.
초록색 종 모양 면적의 너비, 즉 `x`로부터 얼마나 가까운 데이터들만 이용할지 결정하는 변수도 있다.
국소 회귀 모델의 하이퍼파라미터이며, 대역폭 매개변수(Bandwidth parameter)라고 부르고 기호는 `\tau`(Tau)를 쓴다.
`\tau`를 weight function에 반영하면 다음과 같다.
$$w^{(i)} = exp\left ( -\frac{\left( x^{(i)}-x \right)^2}{2 \tau^2} \right )$$
국소 회귀 모델은 데이터 개수가 많은 반면 데이터셋의 차원이 매우 낮은 경우, 즉 feature의 개수가 2 또는 3개 정도로 매우 적을 때 이용할 수 있다.
아래 내용을 정리한 글입니다.
- Prof. Andrew Ng, Stanford University CS229: Machine Learning Lecture 3 (Autumn 2018)
'공부하며 성장하기 > 인공지능 AI' 카테고리의 다른 글
피처 정규화(Feature Normalization)가 반드시 필요한 경우 (0) | 2022.01.14 |
---|---|
머신러닝 기반 이상 탐지(Anomaly Detection) 기법의 종류 (0) | 2021.11.09 |
선형 회귀(Linear Regression)와 경사하강법(Gradient Descent) (0) | 2021.08.23 |
[Kaggle] Recruit Restaurant Visitor Forecasting Competition (0) | 2021.08.21 |
하이퍼파라미터(Hyperparmeter)와 최적화(Optimization) (0) | 2021.08.18 |