AI바라기의 인공지능

개념 정리 : linear regression : 선형 회귀, 개념 정리 본문

인공지능

개념 정리 : linear regression : 선형 회귀, 개념 정리

AI바라기 2026. 3. 11. 20:08

딥러닝의 근간: 선형 회귀(Linear Regression) 완벽 정리

주어진 데이터와 정답을 통해, 가진 데이터를 잘 설명하는 모델을 만들고 싶다.

구조는 아주 단순하다.

X (입력) -> 모델 -> Y (출력)

여기서 '모델'이라는 건 결국 가중치(Weight)들로 구성되어 있다.

즉, $X$와 가중치 $W$의 선형 결합($XW$)을 통해 결과 $Y$가 나오는 것이기에, 적절한 $W$를 찾는 것이 핵심이다.

이것이 바로 선형 회귀(Linear Regression)의 본질이다.

이 최적의 $W$를 찾는 데는 크게 두 가지 방법이 있다.

1. Analytic vs Gradient 방법

① 해석적(Analytic) 방법

수학적인 행렬식을 이용해 최적의 해를 한 번의 계산으로 딱 떨어지게 구하는 방법이다.

② 경사 하강법(Gradient Descent)

예측값과 정답의 차이로 손실(Loss)을 구하는 식을 세우고, 이를 $W$로 미분하는 방법이다.

즉, $W$의 변화에 따른 Loss의 변화율(기울기)을 구하고자 하는 것이다.

만약 그 변화율이 음수라면 $W$가 증가할 때 Loss는 낮아지게 되므로 $W$를 증가시키는 게 좋다. 이를 자동화하기 위해선 항상 변화율의 반대 방향으로 $W$를 이동시키면 된다. 이때 이동하는 비율(보폭)을 조정하기 위해 **학습률(Learning rate)**을 사용한다.

2. Analytic 방법의 수학적 유도

해석적 방법의 경우 다음과 같은 전개를 통해 최적의 $W$를 찾을 수 있다.

  • $N$개의 데이터 샘플과 $d$개의 특성
  • $X$: 입력을 담은 $N \times d$ 행렬
  • $Y$: 타겟 값을 담은 $N \times 1$ 벡터
  • $W$: 가중치를 담은 $d \times 1$ 벡터

비용 함수 $L(W)$를 정의하고 전개한다.

$$L(W) = \|Y - XW\|^2$$
$$L(W) = (Y - XW)^T (Y - XW)$$
$$L(W) = Y^T Y - Y^T XW - W^T X^T Y + W^T X^T XW$$

여기서 $Y^T XW$는 스칼라 값이므로 전치해도 동일하다. 따라서 식을 하나로 묶을 수 있다.

$$L(W) = Y^T Y - 2W^T X^T Y + W^T X^T XW$$

이제 비용 함수 $L(W)$를 $W$에 대해 미분한다. 행렬 미분 공식 중 $\frac{\partial (A^T W)}{\partial W} = A$$\frac{\partial (W^T A W)}{\partial W} = (A + A^T) W$ 를 참고하여 적용하면 다음과 같다.

$$\frac{\partial L}{\partial W} = 0 - 2X^T Y + (X^T X + (X^T X)^T) W$$

$X^T X$는 대칭 행렬(Symmetric matrix)이므로 $(X^T X)^T = X^T X$이다.

$$\frac{\partial L}{\partial W} = -2X^T Y + 2X^T XW$$

비용 함수를 최소화하기 위해 미분값을 0으로 설정한다.

$$-2X^T Y + 2X^T XW = 0$$
$$X^T XW = X^T Y$$

$X^T X$의 역행렬이 존재한다고 가정할 때, 양변의 왼쪽에 $(X^T X)^{-1}$를 곱해주면 최종 가중치가 도출된다.

$$W = (X^T X)^{-1} X^T Y$$

3. Gradient 방법의 수학적 유도

경사 하강법의 미분 및 업데이트 식은 다음과 같다.

미분 시 계산을 깔끔하게 만들기 위해 분모에 $2N$을 사용해 평균 제곱 오차(MSE)를 정의한다.

$$L(W) = \frac{1}{2N} \sum_{i=1}^{N} (\hat{y}_i - y_i)^2 = \frac{1}{2N} \|XW - Y\|^2$$

특정 가중치 $w_j$에 대한 변화율을 구하기 위해 편미분하면 다음과 같다.

$$\frac{\partial L}{\partial w_j} = \frac{1}{N} \sum_{i=1}^{N} (x_i^T W - y_i) x_{ij}$$

이 기울기들과 학습률 $\eta$를 이용하여, 전체 가중치 행렬 $W$를 한 번에 업데이트하는 식은 다음과 같이 정리된다.

$$W \leftarrow W - \eta \frac{1}{N} X^T (XW - Y)$$