이번 문서의 목표: 선형회귀의 계수를 최소제곱 정규방정식과 경사하강법 두 방법으로 직접 손계산할 수 있고, MSE 손실을 구해 회귀계수의 의미와 가정·한계를 설명할 수 있게 된다.
1. 회귀란 무엇인가 — 왜 필요한가
집을 팔려는 상황을 생각해 봅시다. 면적이 넓을수록 가격이 높은 경향이 있다는 것은 직관적으로 압니다. 그런데 “면적이 10제곱미터 늘면 가격이 정확히 얼마나 오르는가”를 숫자로 답하려면 데이터로부터 그 관계를 추정해야 합니다. 이렇게 연속적인 숫자값을 예측하는 지도학습 문제를 07편에서 배운 대로 회귀(regression)라고 부릅니다.
쉽게 말하면: 회귀는 점들이 흩어져 있는 산점도에 “가장 잘 맞는 직선(또는 곡선)“을 긋는 작업입니다. 그 직선의 기울기와 절편이 바로 우리가 알고 싶은 정보입니다.
2. 단순 선형회귀 — 변수 하나로 예측하기
단순 선형회귀(simple linear regression)는 설명변수(원인이 되는 변수) 하나로 목표변수(예측하려는 값)를 예측하는 모형입니다.
- (와이 햇): 모형이 예측한 값
- : 설명변수(입력값). 예: 공부 시간
- (베타 제로): 절편. 가 0일 때의 예측값
- (베타 원): 기울기(회귀계수). 가 1단위 늘어날 때 가 변하는 양
이 식은 03편에서 다룬 “1차 함수”와 형태가 같습니다. 다만 회귀에서는 이 직선을 데이터에 가장 잘 맞도록 계수 을 데이터로부터 추정한다는 점이 다릅니다.
예시 데이터
공부 시간(시간)과 시험 점수(점) 5개 관측치입니다.
| 학생 | 공부 시간 | 점수 |
|---|---|---|
| A | 1 | 3 |
| B | 2 | 4 |
| C | 3 | 6 |
| D | 4 | 7 |
| E | 5 | 10 |
3. 손실함수(MSE) — “잘 맞는다”를 숫자로 재기
왜 필요한가
직선은 무수히 많이 그을 수 있습니다. 그중 어떤 직선이 “가장 잘 맞는” 직선인지 판단하려면, 잘 맞고 못 맞는 정도를 숫자 하나로 재는 기준이 필요합니다. 이 기준이 손실함수(loss function)이고, 회귀에서 가장 널리 쓰이는 손실함수가 평균제곱오차(Mean Squared Error, MSE)입니다.
쉽게 말하면: MSE는 “직선이 각 점에서 얼마나 빗나갔는지”를 제곱해서 평균 낸 값입니다. 값이 작을수록 직선이 점들에 잘 들어맞는다는 뜻입니다.
- : 데이터의 개수
- : 번째 데이터의 실제값
- : 번째 데이터에 대한 모형의 예측값
- : 잔차(residual, 실제값과 예측값의 차이)
- 제곱을 하는 이유: 잔차가 양수든 음수든 상관없이 “틀린 정도”만 반영하고, 큰 오차에 더 큰 벌점을 주기 위함
4. 최소제곱법과 정규방정식 — 한 번에 정답 구하기
원리
최소제곱법(Least Squares Method, 최소자승법)은 MSE(정확히는 잔차 제곱의 합)를 가장 작게 만드는 을 미분을 이용해 한 번에 계산하는 방법입니다. 이렇게 구한 식을 정규방정식(normal equation)이라고 부릅니다. 단순 선형회귀에서 정규방정식은 다음과 같습니다.
- (엑스 바): 의 평균
- (와이 바): 의 평균
- 분자: 와 가 평균에서 함께 벗어난 정도(공분산과 비례)
- 분모: 가 평균에서 벗어난 정도의 제곱합(분산과 비례)
손계산 — 대입부터 답까지
1단계, 평균을 구합니다.
2단계, 각 값이 평균에서 벗어난 정도(편차)를 구합니다.
| 학생 | ||
|---|---|---|
| A | -2 | -3 |
| B | -1 | -2 |
| C | 0 | 0 |
| D | 1 | 1 |
| E | 2 | 4 |
3단계, 분자(편차의 곱의 합)를 구합니다.
4단계, 분모( 편차의 제곱합)를 구합니다.
5단계, 기울기를 구합니다.
6단계, 절편을 구합니다.
결과: 최소제곱법으로 구한 회귀식은 입니다.
결과 해석
기울기 은 “공부 시간이 1시간 늘 때마다 예측 점수가 평균적으로 1.7점 오른다”는 뜻입니다. 절편 는 “공부를 전혀 하지 않아도() 예측 점수는 0.9점”이라는 뜻인데, 실제 데이터의 범위(1~5)를 벗어난 외삽(extrapolation, 관측 범위 밖을 추정하는 것)이므로 그 값을 문자 그대로 신뢰하기는 어렵습니다.
이 회귀식의 MSE 계산
1단계, 각 에 대한 예측값을 구합니다.
2단계, 잔차를 구합니다.
| 학생 | 잔차 | ||
|---|---|---|---|
| A | 3 | 2.6 | 0.4 |
| B | 4 | 4.3 | -0.3 |
| C | 6 | 6.0 | 0.0 |
| D | 7 | 7.7 | -0.7 |
| E | 10 | 9.4 | 0.6 |
3단계, 잔차를 제곱해 더합니다.
4단계, 데이터 개수 5로 나눕니다.
결과 해석: 최소제곱법으로 구한 계수는 바로 이 데이터에서 MSE를 가장 작게 만드는 값입니다. 다른 어떤 조합을 대입해도 이 데이터에서는 MSE가 0.22보다 작아지지 않습니다.
5. 경사하강법 — 조금씩 다가가서 정답 구하기
왜 필요한가
정규방정식은 변수가 적을 때는 한 번에 정확한 답을 주지만, 변수(설명변수)가 수백~수천 개로 늘어나면 행렬 연산의 비용이 매우 커집니다. 경사하강법(gradient descent)은 정답을 한 번에 구하는 대신, 손실함수가 줄어드는 방향으로 계수를 조금씩 반복해서 갱신하는 방법입니다. 신경망을 포함한 대부분의 현대 머신러닝은 정규방정식이 아니라 경사하강법 계열로 학습합니다.
쉽게 말하면: 안개 낀 산에서 눈을 가리고 정상(최솟값)을 찾는 상황을 떠올려 보세요. 한 번에 정상을 알 수는 없지만, 발밑의 기울기가 가장 가파르게 내려가는 방향으로 한 걸음씩 내딛으면 결국 골짜기(최솟값)에 가까워집니다.
기울기(그레이디언트) 구하기
MSE를 각 계수로 미분하면 다음과 같습니다.
- (파셜, partial): 편미분 기호. 다른 변수는 고정하고 해당 변수에 대해서만 변화율을 구한다는 뜻
- (나블라)로 두 편미분을 묶어 기울기 벡터(gradient)라고 부르기도 함
- 이 값이 양수면 그 계수를 줄여야 손실이 작아지고, 음수면 그 계수를 늘려야 손실이 작아짐
계수를 갱신하는 규칙은 다음과 같습니다.
- (에타): 학습률(learning rate). 한 걸음의 보폭을 정하는 값. 너무 크면 최솟값을 지나쳐 발산하고, 너무 작으면 수렴이 느려짐
1단계 손계산 — 초기값에서 출발
같은 데이터(공부 시간·점수 5개)로, 계수를 에서 출발해 학습률 로 갱신해 봅니다.
현재 예측값과 잔차를 구합니다. 이므로 모든 예측값 이고, 잔차는 실제값과 같습니다: .
의 기울기를 구합니다.
의 기울기를 구합니다.
계수를 갱신합니다.
1스텝 결과 해석: 두 기울기가 모두 음수였으므로, 갱신 규칙(빼기)에 따라 두 계수는 모두 증가하는 방향으로 움직였습니다. 아직 최소제곱법의 정답인 에는 한참 못 미치지만, 그 방향으로 한 걸음 다가간 것입니다.
2단계 손계산 — 갱신된 값으로 한 번 더
새 예측값을 구합니다. 을 대입합니다.
새 잔차를 구합니다.
| 학생 | 잔차 | ||
|---|---|---|---|
| A | 3 | 0.548 | 2.452 |
| B | 4 | 0.976 | 3.024 |
| C | 6 | 1.404 | 4.596 |
| D | 7 | 1.832 | 5.168 |
| E | 10 | 2.260 | 7.740 |
의 기울기를 구합니다.
의 기울기를 구합니다.
계수를 다시 갱신합니다.
2스텝 결과 해석: 는 , 은 로 정규방정식의 정답()을 향해 계속 다가가고 있습니다. 이 과정을 수백~수천 번 반복하면 결국 정규방정식이 준 값에 가까워집니다. 정규방정식은 한 번에 정확한 답을 주고, 경사하강법은 여러 번 반복해 그 답에 가까워진다는 점이 두 방법의 핵심 차이입니다.
자주 틀리는 점: 학습률 가 지나치게 크면 계수가 최솟값 근처를 오히려 지나쳐 진동하거나 발산할 수 있습니다. “학습률은 클수록 빨리 수렴하니 무조건 크게 잡는 것이 좋다”는 오답입니다.
6. 다중 선형회귀 — 변수가 여러 개일 때
설명변수가 여러 개면 다중 선형회귀(multiple linear regression)라고 부릅니다.
- : 개의 설명변수
- : 각 설명변수에 대응하는 회귀계수
각 계수 는 “다른 모든 설명변수를 고정했을 때” 가 1단위 늘어남에 따른 의 변화량으로 해석합니다. “다른 변수를 고정했을 때”라는 전제를 빼고 “면적이 늘면 무조건 가격이 오른다”처럼 단순화해 해석하면, 다른 변수와의 상호작용을 놓치는 함정에 빠집니다.
7. 다항 회귀 — 곡선을 직선처럼 다루기
데이터가 직선이 아니라 곡선 형태를 띨 때는 다항 회귀(polynomial regression)를 씁니다. 설명변수의 거듭제곱 항을 새로운 변수처럼 추가합니다.
- : 를 제곱한 항. 곡선의 휘어짐을 표현
중요한 점: 다항 회귀는 에 대해서는 곡선이지만, 계수 에 대해서는 여전히 선형(계수들의 단순한 합)입니다. 그래서 다항 회귀도 선형회귀와 같은 최소제곱법·경사하강법으로 계수를 구할 수 있습니다. “다항 회귀는 비선형 모형이라 선형회귀의 계산 방법을 쓸 수 없다”는 오답입니다. 다만 차수를 지나치게 높이면 학습 데이터에는 완벽히 들어맞지만 새로운 데이터에는 성능이 떨어지는 과적합(overfitting)이 생기기 쉬운데, 이 문제는 09편(정규화)과 19편(과적합·교차검증)에서 자세히 다룹니다.
8. 회귀의 가정과 한계
선형회귀가 신뢰할 만한 추정을 하려면 몇 가지 가정이 성립해야 합니다.
| 가정 | 뜻 | 깨졌을 때 문제 |
|---|---|---|
| 선형성 | 설명변수와 목표변수 사이의 관계가 실제로 직선(또는 다항식) 형태 | 곡선 관계를 직선으로 억지로 맞춰 예측이 부정확해짐 |
| 독립성 | 각 관측치의 오차가 서로 관련 없음 | 시계열처럼 오차가 이어지면 표준오차 추정이 왜곡됨 |
| 등분산성 | 오차의 흩어진 정도가 값과 관계없이 일정함 | 가 커질수록 오차가 커지면 신뢰구간 추정이 부정확해짐 |
| 정규성 | 오차가 정규분포를 따름 | 가설검정·신뢰구간의 정확도가 떨어짐 |
| 다중공선성 없음(다중회귀) | 설명변수끼리 서로 강하게 상관되지 않음 | 계수 추정이 불안정해지고 해석이 어려워짐 |
쉽게 말하면: 이 가정들은 “직선을 믿을 만한 상황”의 조건표입니다. 가정이 심하게 깨지면 계수 자체는 계산되더라도 그 해석과 신뢰구간은 믿기 어려워집니다.
핵심 정리
- 단순 선형회귀는 형태이며, MSE는 잔차 제곱의 평균으로 직선의 적합도를 숫자로 나타낸다.
- 최소제곱 정규방정식은 미분을 이용해 MSE를 최소로 만드는 계수를 한 번에 계산하며, 이 편의 예시 데이터에서는 , MSE는 0.22였다.
- 경사하강법은 기울기(그레이디언트) 방향으로 계수를 조금씩 갱신하며, 초기값 0에서 두 스텝을 거치며 이 정규방정식의 해를 향해 다가감을 직접 확인했다.
- 다중 선형회귀의 계수는 “다른 변수를 고정했을 때”의 변화량으로 해석하며, 다항 회귀는 계수 기준으로는 여전히 선형이라 같은 최소제곱법·경사하강법을 쓸 수 있다.
- 선형회귀는 선형성·독립성·등분산성·정규성·다중공선성 없음이라는 가정 위에서 신뢰할 수 있으며, 가정이 깨지면 해석과 신뢰구간이 왜곡될 수 있다.