콘텐츠로 이동

선형회귀는 가장 단순한 예측 모델이지만, 현대 AI를 이해하는 데 매우 중요한 출발점입니다. 입력과 출력 사이를 직선이나 초평면으로 연결하고, 그 선이 데이터를 가장 잘 설명하도록 맞추는 과정 안에 잔차, 손실함수, 최소제곱, 행렬표현, 최적화가 모두 들어 있기 때문입니다.

먼저 알아둘 말

  • 회귀: 연속적인 수를 예측하는 문제다.
  • 선형회귀: 입력의 선형결합으로 출력을 예측하는 모델이다.
  • 절편: 입력과 무관하게 더해지는 기본값이다.
  • 잔차: 실제값과 예측값의 차이다.
  • 최소제곱: 잔차 제곱합이 가장 작아지도록 파라미터를 고르는 원리다.
  • 설계행렬: 여러 입력 데이터를 행렬로 정리한 표현이다.

이 강의에서 답할 질문

  • 선형회귀는 입력과 출력 사이에 무엇을 가정하는 모델일까?
  • 왜 오차를 그냥 더하지 않고 제곱해서 더할까?
  • 최소제곱 해는 행렬과 기하 관점에서 어떻게 이해할 수 있을까?

먼저 떠올릴 장면

  • 공부시간이 늘수록 점수가 대체로 올라간다고 가정하면 직선 관계를 떠올릴 수 있다.
  • 키와 몸무게도 완벽하지는 않지만 어느 범위에서는 선형 경향으로 근사할 수 있다.
  • 점들이 직선 위에 정확히 놓여 있지는 않아도, 그 점들에 가장 잘 맞는 직선은 찾을 수 있다.

즉 선형회귀는 "세상을 완벽한 직선으로 본다"기보다, "가장 단순한 설명선으로 큰 경향을 잡아낸다"는 모델입니다.

생각의 순서

  • 먼저 선형회귀 모델이 어떤 예측식을 쓰는지 본다.
  • 그다음 예측 오차인 잔차를 정의한다.
  • 이어서 왜 제곱합을 최소화하는지 본다.
  • 마지막으로 행렬 표현과 최소제곱 해의 기하적 의미를 본다.

본문

1. 선형회귀는 선형결합으로 예측한다

가장 단순한 선형회귀는 입력이 하나일 때 다음처럼 씁니다.

$$ \hat{y} = wx + b $$

여기서

$$ w $$

는 기울기 역할을 하고,

$$ b $$

는 절편입니다.

입력이 여러 개일 때는 각 입력에 가중치를 붙여 더합니다.

$$ \hat{y} = w^T x + b $$

즉 선형회귀는 입력을 적절히 가중합해서 출력을 예측하는 모델입니다. 중요한 점은 이 모델이 매우 단순하다는 것입니다. 그래서 해석이 쉽고, 최소제곱과 선형대수 개념이 깔끔하게 드러납니다.

2. 완벽한 직선은 드물지만 가장 잘 맞는 직선은 찾을 수 있다

현실 데이터는 보통 하나의 직선 위에 정확히 놓이지 않습니다. 노이즈도 있고, 측정 오차도 있고, 선형관계가 완벽하지 않을 수도 있습니다.

그래서 목표는 "모든 점을 정확히 지나는 직선"을 찾는 것이 아니라, "전체적으로 가장 잘 맞는 직선"을 찾는 것입니다.

이때 먼저 각 데이터 점에서의 오차를 정의해야 합니다. i번째 데이터에서의 잔차는 다음과 같습니다.

$$ r_i = y_i - \hat{y}_i $$

즉 실제값에서 예측값을 뺀 값입니다.

3. 왜 잔차를 제곱해서 더할까

잔차를 그대로 모두 더하면 양수 오차와 음수 오차가 상쇄되어 버립니다. 큰 오차가 있어도 합이 작아 보일 수 있습니다.

이 문제를 피하려고 잔차를 제곱합니다.

$$ L(w,b) = \sum_i (y_i - \hat{y}_i)^2 $$

이 식이 최소제곱 손실입니다.

제곱을 쓰는 이유는 세 가지로 이해할 수 있습니다.

  • 양수와 음수가 서로 지워지지 않는다.
  • 큰 오차에 더 큰 벌점을 준다.
  • 미분이 쉬워 최적화가 깔끔하다.

그래서 최소제곱은 계산과 해석 양쪽에서 모두 매우 자연스러운 선택이 됩니다.

4. 최소제곱의 목표는 가장 잘 맞는 선을 고르는 것이다

이제 문제는 분명해집니다. 잔차 제곱합을 가장 작게 만드는

$$ w, b $$

를 찾으면 됩니다.

즉 선형회귀 학습은 단지 직선식을 쓰는 것이 아니라, 그 직선이 데이터를 얼마나 잘 설명하는지를 손실함수로 수치화하고, 그 손실이 최소가 되게 만드는 과정입니다.

이 점에서 선형회귀는 현대 머신러닝의 축소판처럼 볼 수 있습니다.

  • 모델이 있다.
  • 손실함수가 있다.
  • 손실을 최소화하는 파라미터를 찾는다.

5. 행렬로 쓰면 구조가 더 분명해진다

여러 데이터와 여러 입력을 한 번에 다루려면 행렬 표현이 편합니다. 모든 입력을 행렬로 모으면 설계행렬 X를 만들 수 있고, 파라미터를 벡터 w로 묶을 수 있습니다.

이때 예측은 다음처럼 씁니다.

$$ \hat{y} = Xw $$

그리고 손실은

$$ L(w) = |Xw - y|^2 $$

가 됩니다.

이 표현이 중요한 이유는 선형회귀가 단순한 직선 맞추기가 아니라, 선형대수 문제로 정리된다는 점입니다. 그래서 최소제곱 해는 행렬 계산과 기하적 해석으로 이어집니다.

6. 최소제곱 해는 정규방정식으로 이어진다

손실을 최소화하려면 w에 대해 미분하고 0으로 두면 됩니다. 그러면 정규방정식이 나옵니다.

$$ X^T X w = X^T y $$

이 식은 선형회귀의 핵심 방정식입니다. 이 방정식을 풀면 최소제곱 해를 얻을 수 있습니다.

하지만 여기서 중요한 것은 공식을 외우는 것이 아닙니다. 이 식이 "예측 오차를 최소화하는 선형대수적 조건"이라는 사실을 이해하는 것이 중요합니다.

7. 기하적으로는 직교투영 문제다

최소제곱의 기하적 의미는 매우 아름답습니다. 벡터

$$ y $$

를 설계행렬 X의 열공간 위로 가장 가깝게 투영한 점이

$$ Xw $$

입니다.

즉 선형회귀는 "실제 출력 벡터를, 모델이 표현할 수 있는 공간 안에서 가장 가까운 점으로 근사하는 문제"입니다.

그래서 잔차 벡터는 그 열공간에 직교하게 됩니다. 바로 이 직교 조건이 정규방정식으로 나타납니다.

즉 최소제곱은 단순한 계산공식이 아니라, 기하적으로는 투영의 문제이기도 합니다.

8. AI에서는 왜 중요한가

선형회귀는 단순하지만, 머신러닝의 핵심 구조를 모두 보여 줍니다.

  • 모델이 있다.
  • 예측이 있다.
  • 오차가 있다.
  • 손실함수가 있다.
  • 그 손실을 최소화하는 파라미터를 찾는다.

또한 최소제곱, 정규화, 경사하강법, 확률적 해석으로 이어지는 출발점이기도 합니다. 그래서 선형회귀는 쉬운 모델이 아니라, 이후의 복잡한 모델을 읽는 기준점이라고 보는 편이 맞습니다.

예제

  1. 선형회귀식으로 예측하기 문제: 모델이

$$ \hat{y} = 2x + 1 $$

이라면

$$ x = 3 $$

에서 예측값은 얼마인가? 풀이:

$$ \hat{y} = 2 \cdot 3 + 1 = 7 $$

해설: 선형회귀는 입력에 가중치를 곱해 더하고 절편을 더하는 구조다.

  1. 잔차 계산하기 문제: 실제값이

$$ y = 10 $$

이고 예측값이

$$ \hat{y} = 7 $$

이면 잔차는 얼마인가? 풀이:

$$ r = y - \hat{y} = 10 - 7 = 3 $$

해설: 잔차는 예측이 실제에서 얼마나 벗어났는지를 직접 나타낸다.

  1. 최소제곱을 쓰는 이유 설명하기 문제: 왜 잔차를 그냥 더하지 않고 제곱해서 더하는가? 풀이: 양수와 음수 오차가 상쇄되는 것을 막고, 큰 오차에 더 큰 벌점을 주기 위해서다. 해설: 최소제곱 손실은 오차를 안정적으로 수치화해 최적화를 가능하게 만든다.

스스로 점검

연습 문제

  1. 선형회귀가 입력과 출력 사이에 어떤 관계를 가정하는지 설명하라.
  2. 잔차와 손실의 차이를 설명하라.
  3. 최소제곱 손실이 왜 자연스러운 선택인지 설명하라.
  4. 설계행렬과 정규방정식의 역할을 설명하라.

복습 질문

  1. 선형회귀는 어떤 예측 모델인가?
  2. 최소제곱은 무엇을 최소화하는가?
  3. 최소제곱 해의 기하적 의미는 무엇인가?

체크포인트

  1. 선형회귀 식을 읽고 설명할 수 있다.
  2. 잔차와 최소제곱 손실을 설명할 수 있다.
  3. 행렬 표현의 의미를 이해한다.
  4. 선형회귀가 투영 문제와 연결된다는 점을 설명할 수 있다.