1. Linear Regression(선형회귀)

1.1 선형회귀(Linear Regression)의 아이디어

머신러닝의 가장 기초적인 알고리즘으로 여타 알고리즘에 비해 그 구조가 비교적 간단하고 빠른 예측 성능을 보입니다. 따라서, 많은 경우 선형회귀 모형으로 Regression task를 처리하기도 하고 혹은, 그 간단한 구조 때문에 베이스라인 모델로 활용하기도 합니다.

선형회귀(Linear Regression)은 종속변수 y와 한 개 이상의 독립변수 x의 선형 상관관계를 모델링한 것으로서 1차식으로 표현이 가능합니다. 이때, 독립변수와 종속변수 사이의 관계를 잘 표현한 선형회귀식을 찾아가는 것이 모델 학습의 핵심입니다. 모델이 데이터를 잘 학습하였는지 즉, x와 y 사이의 적절한 관계식을 잘 찾아냈는지 판별하기 위해서는 모델의 예측값과 실재값 사이의 차이를 가능한 최소로 하는 방향으로 학습을 하면 됩니다.

예측값과 실재값의 차이(오차)를 수식으로 표현하면 $(\hat{y}^i - y^i)$가 되며 1부터 i번째 데이터까지의 오차를 모두 합하여 모델의 최종 오차를 구할 수 있습니다. 하지만, 단순히 차이값만을 더하게 되면 음수와 양수가 상쇄되며 실제 오차는 큰데도 불구하고 최종 오차가 0이 나오는 경우가 발생할 수 도 있습니다. 따라서, $(\hat{y}^i - y^i)$에 제곱을 취하여 오차가 0으로 상쇄되는 상황을 없애게 됩니다. 최종적으로 선형회귀의 오차는 다음과 같이 표현이 가능하며

$$ ⁍ $$

이를 Sum of Square Error (SSE)라고 하고 이를 최소로 하는 회귀식을 구하는 것이 모델 학습의 목표입니다.

1.2 비용함수(Cost Function) & 최소자승법(Least Square Method)

앞서 설명한 바와 같이 선형회귀의 핵심은 예측값과 실제값 사이의 차이를 최소로 하는 것입니다. 이때, 우리는 비용함수(Cost function) 또는 손실함수(Loss function)라는 개념을 활용할 수 있습니다. 앞으로 등장하게 되는 많은 머신러닝 모델들은 바로 이 비용함수를 최소로 하는 방향으로 모델 파라미터를 최적화하는 과정이라고 할 수 있습니다.

비용 함수는 아래와 같이 표현할 수 있습니다. 우리가 예측하고 싶어하는 선형회귀 함수를 hypothesis $h_\theta$라고 정의하고 $h_\theta$가 예측한 값과 실제값 사이의 차이를 제곱한 값들을 평균낸 것이 바로 비용함수 $J(w_0, w_1)$라고 할 수 있습니다. 여기서 $w_0$와 $w_1$는 모델이 학습하게 되는 모델 파라미터입니다.

한편, 오차 제곱의 평균을 구할 때 m이 아닌 2m으로 나누는 것은 추후 미분을 하게 될 때 조금 더 편하게 하기 위함을 알고 넘어가면 좋습니다.

$$ ⁍ $$

비용함수를 최소로 하는 값을 구하기 위해서는 앞서의 비용함수를 각각 $w_0$와 $w_1$에 대해 편미분을 진행하면 됩니다.

위와 같이 손실함수를 편미분을 한 식에서 적합한 $w_0$와 $w_1$을 찾아가는 방식을 최소자승법(Least Square Method)라고 합니다.

앞서의 비용함수를 바로 미분하여 최소자승법으로 구할 수도 있지만 점진적으로 비용함수가 최소가 되는 지점을 찾아갈 수도 있습니다. 특히, 차원의 크기가 커지거나 복잡한 다항식으로 구성된 경우 normal equation으로서 한번에 미분을 하기에 힘들어지기 때문에 점진적으로 미분값이 0인 지점을 찾아가는 방법을 채택하게 됩니다.

1.3 경사하강법(Gradient Descent)

경사하강법은 비용함수를 최소화하기 위한 대표적인 최적화 알고리즘입니다. 모델이 예측한 값과 실제값의 차이를 최소화하는 방향으로 파라미터를 업데이트하면서 최적의 모델 파라미터를 찾아가는 방식입니다. 경사하강법은 다음과 같은 특징을 가지고 있습니다.