한양과학기술고등학교

에듀테크 프로젝트 대시보드

선형 회귀 (Linear Regression)

선형 회귀 (Linear Regression)

직선 하나로 관계를 요약하기  |  지도학습의 가장 오래되고 단순한 출발점

공부 시간과 시험 점수, 집 크기와 집값처럼 두 값 사이에 대략 비례하는 관계가 있어 보일 때, 가장 먼저 시도하는 모델이 선형 회귀입니다. 데이터를 가장 잘 지나가는 직선 하나 ŷ = wx + b 를 찾아, 새로운 x 가 오면 그 직선 위의 값으로 예측합니다. 단순하지만 "모델이 데이터에 얼마나 맞는지를 어떻게 재고, 그 오차를 어떻게 줄이는가"라는 머신러닝 전체의 핵심 질문이 이미 이 안에 다 들어 있습니다.

1. 모델과 잔차 (Residual)

직선의 기울기 w 와 절편 b 를 정하면, 각 데이터 점 (xᵢ, yᵢ) 에 대해 예측값 ŷᵢ = w·xᵢ + b 를 얻습니다. 실제값과 예측값의 차이 eᵢ = yᵢ − ŷᵢ 를 잔차(residual)라고 부릅니다. 좋은 직선일수록 잔차들이 전체적으로 작습니다.

ŷᵢ = w·xᵢ + b     eᵢ = yᵢ − ŷᵢ

2. 손실 함수 — 평균제곱오차 (MSE)

잔차를 그냥 다 더하면 양수·음수가 서로 상쇄돼 버립니다. 그래서 각 잔차를 제곱해 더한 뒤 평균을 낸 평균제곱오차(Mean Squared Error, MSE)를 손실로 씁니다. 제곱을 쓰면 부호 문제가 해결될 뿐 아니라, 큰 오차에 더 무거운 벌점을 줘서 직선이 이상치 하나 때문에 크게 틀리는 것을 억제합니다.

MSE(w, b)  =  (1/n) · Σᵢ (yᵢ − (w·xᵢ + b))²

선형 회귀 학습이란 결국 이 MSE(w, b) 를 가장 작게 만드는 (w, b) 를 찾는 최적화 문제입니다.

3. 최적의 직선을 찾는 두 가지 방법

방법아이디어특징
최소제곱법(정규방정식) MSE를 w, b로 미분해 0이 되는 지점을 대수적으로 한 번에 계산 특성이 적을 때 빠르고 정확 (이 페이지 데모가 사용하는 방식)
경사 하강법 MSE 곡면 위에서 기울기 반대 방향으로 조금씩 반복해서 내려감 특성이 아주 많거나 신경망처럼 닫힌 해가 없을 때 사용

경사 하강법이 실제로 한 걸음씩 손실을 줄여나가는 과정은 경사 하강법 페이지에서 애니메이션으로 직접 확인할 수 있습니다.

# 최소제곱법(정규방정식) — 데이터가 있으면 w, b를 한 번에 계산
x_bar = mean(xs)
y_bar = mean(ys)
w = sum((x - x_bar) * (y - y_bar) for x, y in zip(xs, ys)) \
    / sum((x - x_bar) ** 2 for x in xs)
b = y_bar - w * x_bar

4. 직접 점을 찍어 최적의 직선 찾기

캔버스를 클릭하면 점이 추가되고, 그 즉시 최소제곱법으로 계산한 직선이 다시 그려집니다. 점을 하나씩 늘려가며 직선과 잔차(빨간 세로선)가 어떻게 변하는지 관찰해 보세요.

데이터 점 최소제곱 직선 잔차
w (기울기) = –
b (절편) = –
MSE = –
R² (설명력) = –
점 개수 = 0

5. 여러 특성으로 확장 — 다중 선형 회귀

입력이 x 하나가 아니라 방 개수·평수·역까지 거리처럼 여러 개면, 직선 대신 초평면 ŷ = w₁x₁ + w₂x₂ + ... + wₙxₙ + b 를 찾는 다중 선형 회귀가 됩니다. 수식의 형태와 MSE 손실, 학습 방법(경사 하강법)은 완전히 동일하며, 가중치가 하나에서 여러 개로 늘어날 뿐입니다.

핵심 정리

  • 선형 회귀 = 데이터를 가장 잘 지나가는 직선 ŷ = wx + b 찾기
  • "얼마나 잘 맞는지"는 잔차를 제곱해 평균한 MSE 로 측정
  • MSE를 최소화하는 (w, b)는 정규방정식으로 한 번에, 또는 경사 하강법으로 반복해서 찾을 수 있음
  • 입력이 여러 개면 다중 선형 회귀로 자연스럽게 확장되며, 딥러닝 첫 층의 원형이기도 함