다중 선형 회귀 (Multiple Linear Regression), 경사 하강법(Gradient Descent)

김승혁·2024년 11월 25일

다중 선형 회귀 (Multiple Linear Regression)

다중 선형 회귀는 여러 독립 변수를 이용하여 종속 변수를 예측하는 모델입니다. 선형 회귀 모델은 데이터를 직선으로 근사화하는 모델로, 다중 선형 회귀는 여러 독립 변수를 가진 직선에 대한 모델입니다.

수식:

다중 선형 회귀의 기본 수식은 다음과 같습니다:

y=β0+β1x1+β2x2++βpxp+ϵy = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_p x_p + \epsilon

여기서:

  • yy는 종속 변수
  • β0\beta_0는 절편 (Intercept)
  • β1,β2,,βp\beta_1, \beta_2, \dots, \beta_p는 각각의 독립 변수 x1,x2,,xpx_1, x_2, \dots, x_p에 대한 회귀 계수 (슬로프)
  • x1,x2,,xpx_1, x_2, \dots, x_p는 독립 변수들
  • ϵ\epsilon은 오차 항 (일반적으로 0으로 가정)

경사 하강법 (Gradient Descent)

경사 하강법은 모델의 파라미터를 최적화하는 방법으로, 손실 함수를 최소화하는 방향으로 파라미터를 조정하는 알고리즘입니다.

손실 함수:

선형 회귀에서는 보통 평균 제곱 오차 (Mean Squared Error, MSE)를 손실 함수로 사용합니다:

J(β0,β1,,βp)=12mi=1m(y(i)(β0+β1x1(i)+β2x2(i)++βpxp(i)))2J(\beta_0, \beta_1, \dots, \beta_p) = \frac{1}{2m} \sum_{i=1}^{m} (y^{(i)} - (\beta_0 + \beta_1 x_1^{(i)} + \beta_2 x_2^{(i)} + \dots + \beta_p x_p^{(i)}))^2

여기서:

  • mm은 데이터의 총 샘플 수
  • y(i)y^{(i)}ii번째 샘플의 실제 값
  • β0+β1x1(i)+β2x2(i)++βpxp(i)\beta_0 + \beta_1 x_1^{(i)} + \beta_2 x_2^{(i)} + \dots + \beta_p x_p^{(i)}는 예측 값

경사 하강법 업데이트 규칙:

경사 하강법은 각 파라미터를 다음과 같이 업데이트합니다:

βj:=βjαJβj\beta_j := \beta_j - \alpha \cdot \frac{\partial J}{\partial \beta_j}

:= 값을 갱신한다

여기서:

  • α\alpha는 학습률 (Learning Rate)
  • Jβj\frac{\partial J}{\partial \beta_j}는 손실 함수 JJ에 대한 파라미터 βj\beta_j의 기울기

경사 하강법 절차:

  1. 초기 파라미터 값을 설정합니다.
  2. 기울기를 계산하여 파라미터를 업데이트합니다.
  3. 일정한 횟수 동안 이 과정을 반복하거나, 손실 함수가 수렴할 때까지 반복합니다.








예제

집 가격을 예측하는 모델을 만들기 위해, 집의 크기와 방 개수를 독립 변수로 사용합니다.

  • x1x_1 = 집 크기 (평방미터)
  • x2x_2 = 방 개수
  • yy = 집 가격 (단위: 만 원)

다음과 같은 데이터를 가정해 봅시다.

집 크기 (x1)방 개수 (x2)집 가격 (y)
502150
703210
803240
904270

모델:

y=β0+β1x1+β2x2y = \beta_0 + \beta_1 x_1 + \beta_2 x_2

초기 설정:

  • β0=0,β1=0,β2=0\beta_0 = 0, \beta_1 = 0, \beta_2 = 0
  • 학습률 α=0.01\alpha = 0.01

1단계: 예측 계산

첫 번째 샘플에 대해 예측값을 계산합니다.

ypred=β0+β1x1+β2x2=0+050+02=0y_{\text{pred}} = \beta_0 + \beta_1 x_1 + \beta_2 x_2 = 0 + 0 \cdot 50 + 0 \cdot 2 = 0

2단계: 손실 함수 계산

실제 값과 예측 값의 차이를 이용해 손실 함수 값을 계산합니다.

J=12mi=1m(y(i)ypred(i))2J = \frac{1}{2m} \sum_{i=1}^{m} (y^{(i)} - y_{\text{pred}}^{(i)})^2
(MSE)

3단계: 기울기 계산

기울기를 계산하여 파라미터를 업데이트합니다.

Jβj=1mi=1m(y(i)ypred(i))xj(i)\frac{\partial J}{\partial \beta_j} = \frac{1}{m} \sum_{i=1}^{m} (y^{(i)} - y_{\text{pred}}^{(i)}) \cdot x_j^{(i)}

4단계: 파라미터 업데이트

파라미터를 경사 하강법 규칙에 따라 업데이트합니다.

βj:=βjαJβj\beta_j := \beta_j - \alpha \cdot \frac{\partial J}{\partial \beta_j}

이 과정을 반복하면서 β0,β1,β2\beta_0, \beta_1, \beta_2 값을 업데이트하면, 최종적으로 최적의 회귀 계수를 찾을 수 있습니다.

이런 방식으로 경사 하강법을 사용하여 다중 선형 회귀 모델을 학습할 수 있습니다.

5단계: Epoch

Epoch을 늘리는 것은 모델이 전체 데이터를 여러 번 학습하도록 하여, 가중치를 점진적으로 업데이트하고 손실 함수(MSE)를 최소화하는 과정입니다. 각 epoch에서, 모델은 데이터를 다시 처리하고 파라미터를 업데이트하여 점차 예측 성능을 개선해 나갑니다.

profile
열심히 사는 척

0개의 댓글