예측식과 매개변수
선형회귀는 입력과 출력 사이의 관계를 직선으로 근사하는 가장 작은 학습 모델 중 하나입니다. 입력을 x, 예측을 ŷ, 가중치를 W, 편향을 b라고 하면 한 특징의 예측식은 ŷ = Wx + b입니다. 가중치는 입력이 예측에 미치는 기울기이고, 편향은 입력이 0일 때의 기준값입니다.
모델은 처음부터 정답 직선을 알고 있지 않습니다. 학습 데이터의 입력과 실제 출력 y를 보고 예측과 실제값의 차이를 줄이는 방향으로 W와 b를 바꿉니다. 모델이 내놓은 숫자와 그 숫자를 실제 행동으로 바꾸는 제품 정책은 같은 것이 아닙니다. 이 장에서는 연속적인 숫자를 예측하는 회귀에 집중하고 분류 임계값은 인접 노트로 연결합니다.
손실과 목적 함수
한 표본의 잔차(residual)는 실제값에서 예측값을 뺀 y - ŷ입니다. 평균 제곱 오차(MSE, Mean Squared Error)는 잔차를 제곱해 평균한 값입니다. 잔차를 ŷ-y로 적어도 제곱한 MSE와 기울기 식은 같지만, 표와 문장에서 어느 부호를 쓰는지 일관되게 밝혀야 합니다.
MSE = (1/n) Σ(ŷᵢ - yᵢ)²
제곱을 사용하면 양수와 음수 오차가 서로 상쇄되지 않고 큰 오차가 더 크게 반영됩니다. 다만 MSE가 작다고 모든 운영 목적이 달성된 것은 아닙니다. 허용 오차 안의 비율, 극단값의 비용, 특정 집단의 최악 오차처럼 별도 결과를 함께 측정해야 합니다.
| 용어 | 계산 대상 | 역할 |
|---|---|---|
| 표본 손실 | 한 예측의 오차 | 학습 신호의 기본 단위 |
| MSE | 여러 표본 손실의 평균 | 회귀 목적의 대표 집계 |
| 정규화 항 | 매개변수 크기 등 | 복잡도에 대한 추가 비용 |
| 운영 지표 | 실제 제품 결과 | 배포 판단과 자원 제약 |
현재 저장소의 학습 손실과 운영 지표의 불일치는 손실·목적 함수·판정 지표가 서로 다른 이유를 더 깊게 설명합니다. 회귀에서도 학습 때 줄인 숫자와 사용자가 체감하는 오류를 같은 것으로 부르지 않습니다.
네 개 점의 수치 계산
다음 네 점을 사용하겠습니다. (x,y) = (1,5), (2,8), (3,11), (4,14)입니다. 각 점은 y = 3x + 2 위에 있으므로 W=3, b=2인 모델은 정확히 맞습니다.
| x | 실제 y | W=0,b=0 예측 |
잔차 ŷ-y |
제곱 오차 |
|---|---|---|---|---|
| 1 | 5 | 0 | -5 | 25 |
| 2 | 8 | 0 | -8 | 64 |
| 3 | 11 | 0 | -11 | 121 |
| 4 | 14 | 0 | -14 | 196 |
| 합계 | 406 |
초기 MSE는 406/4 = 101.5입니다. 이 값은 모델이 네 점을 얼마나 빗나갔는지 보여 주지만, 아직 W와 b를 어떻게 바꿀지 알려면 기울기를 계산해야 합니다. 제곱 오차의 합계만 보고 가중치를 임의로 올리면 입력 크기와 표본 수에 따라 보폭이 달라집니다.
기울기 계산과 갱신
MSE를 L(W,b) = (1/n)Σ(Wxᵢ+b-yᵢ)²로 두면 편미분은 다음과 같습니다.
∂L/∂W = (2/n)Σ xᵢ(Wxᵢ+b-yᵢ)
∂L/∂b = (2/n)Σ(Wxᵢ+b-yᵢ)
초기 W=0,b=0에서 ŷ-y는 -5,-8,-11,-14입니다. 따라서 Σ x·(ŷ-y) = 1(-5)+2(-8)+3(-11)+4(-14) = -110, 잔차 합은 -38입니다. 기울기는 ∂L/∂W = 2(-110)/4 = -55, ∂L/∂b = 2(-38)/4 = -19입니다.
학습률을 η=0.01로 두면 경사하강법은 W ← W - η∂L/∂W, b ← b - η∂L/∂b를 적용합니다. 첫 갱신 결과는 W=0.55, b=0.19입니다. 새 예측은 각각 0.74, 1.29, 1.84, 2.39이고 제곱 오차 합은 281.8694, MSE는 70.46735입니다. 따라서 이 예제의 첫 단계는 101.5 → 70.46735로 줄어듭니다. 이 수치는 수식으로 직접 계산한 설명용 산술이며 학습 프레임워크 실행 결과가 아닙니다.
그림을 글로 읽기
- 훈련 표본: x·y 네 행
- 예측 ŷ=Wx+b: 초기 W=0,b=0
- MSE 계산: 초기 101.5
- W·b 기울기: -55 · -19
- 매개변수 갱신: η=0.01 → W=.55,b=.19
- 훈련 표본 → 예측 ŷ=Wx+b: 입력
- 예측 ŷ=Wx+b → MSE 계산: 잔차 제곱 평균
- MSE 계산 → W·b 기울기: 미분
- W·b 기울기 → 매개변수 갱신: 경사 반대 방향
η=0.1로 같은 초기 상태에서 한 번 갱신하면 W=5.5,b=1.9가 됩니다. 이처럼 학습률이 커지면 한 단계의 이동이 커져 빠르게 좋아질 수도 있지만, 곡률과 입력 스케일에 따라 최소점을 지나치거나 발산할 수 있습니다. 경사하강법의 보폭과 학습 예산의 L(w)=(w-3)² 예는 학습률의 일반 법칙이 아니라 한 이차식에서 보폭을 이해하기 위한 검산입니다.
배치와 학습 예산
전체 네 점을 한 번에 사용하면 한 step에서 네 행의 평균 기울기를 계산합니다. 미니배치를 사용하면 한 번에 일부 행을 보고 갱신하므로 계산을 나눌 수 있지만, 표본마다 기울기 추정에 잡음이 생깁니다. 데이터가 10,240개일 때 batch 32는 나머지가 없다는 가정 아래 한 epoch에 320번, batch 128은 80번 갱신합니다. 같은 epoch라는 말만으로 같은 갱신 횟수나 같은 계산 비용을 뜻하지 않습니다.
| 비교 기준 | 고정되는 것 | 달라지는 것 |
|---|---|---|
| 표본 수 | 데이터 노출량 | step 수·벽시계 시간 |
| optimizer step 수 | 갱신 횟수 | 표본 노출량 |
| 시간 | 장비 사용 시간 | 완료한 표본·step 수 |
배치 평균인지 합인지에 따라 기울기 크기가 달라집니다. 배치 크기를 네 배로 바꾼 뒤 학습률을 네 배로 올리는 규칙을 자동으로 적용하지 않습니다. optimizer, 손실 집계, 정규화, 장비 효율을 함께 고정하거나 기록하고 비교해야 합니다.
학습률과 수치 상태
학습률은 기울기의 방향을 바꾸지 않고 이동 크기를 정합니다. 특징의 한 열이 0~1이고 다른 열이 수백만이면 방향별 손실 곡률이 크게 달라져 같은 학습률이 서로 다른 보폭을 만들 수 있습니다. 표준화가 필요하다면 통계는 훈련 자료에서만 fit하고 검증·테스트에는 같은 변환을 적용합니다.
훈련 중 손실이 NaN이 되면 먼저 그 배치의 입력·정답·손실이 유한한지 확인합니다. 그 뒤 로그의 정의역, 0으로 나누는 연산, 낮은 정밀도 계산의 overflow, 잘못된 배치 생성을 분리합니다. 전체 gradient norm만 정상이어도 특정 층이나 특징의 gradient가 폭발하거나 사라질 수 있으므로 매개변수별 상태와 step 전후 실제 변화량을 기록합니다.
for batch in training_batches:
optimizer.zero_grad()
prediction = model(batch.inputs)
loss = mse(prediction, batch.labels)
require finite(loss)
loss.backward()
inspect_gradient_and_parameter_norms()
optionally_clip_under_fixed_policy()
optimizer.step()
위 코드는 의사코드입니다. optimizer와 mse는 특정 프레임워크의 구현이 아니며, 실제 코드에서는 loss reduction과 device·dtype·gradient accumulation 정책을 명시해야 합니다. zero_grad를 빠뜨리면 이전 batch의 gradient가 남을 수 있고, 의도한 누적을 한다면 평균·합과 step 주기를 일관되게 정해야 합니다.
훈련·검증·테스트의 시간 순서
훈련 자료는 W,b와 전처리 통계를 맞추는 데 사용합니다. 검증 자료는 학습률, 모델 후보, 조기 종료 시점, 전처리 흐름을 선택하는 데 사용합니다. 테스트 자료는 선택이 끝난 뒤 최종 절차를 한 번 평가하는 독립 자료입니다. 테스트 점수를 여러 후보 중 최고로 고르면 모델이 테스트의 우연한 특성에 맞춰졌으므로 독립 평가라는 해석이 약해집니다.
특히 표준화 평균과 분산을 전체 데이터에 먼저 fit하면 검증·테스트의 분포 정보가 훈련 절차에 흘러갑니다. 시간에 따라 미래를 예측하는 문제라면 사건 시간뿐 아니라 특징을 관찰할 수 있었던 시간과 라벨이 확정된 시간도 봅니다. 새 사용자가 목표라면 같은 사용자의 행이 train과 validation에 동시에 들어가지 않게 그룹 단위로 나눕니다.
그림을 글로 읽기
- 훈련 자료: transformer fit · W,b fit
- 검증 자료: transform만 적용 · 학습률·후보 선택
- 절차 고정: 모델·전처리·학습 정책
- 테스트 자료: 최종 성능 추정
- 훈련 자료 → 검증 자료: 후보 평가
- 검증 자료 → 절차 고정: 선택 확정
- 절차 고정 → 테스트 자료: 한 번 평가
학습 데이터 분할과 선택 정보의 누출은 접기별 전처리 fit, 시간 분할, 후보 선택 비용을 다룹니다. 회귀의 MSE가 아무리 낮아도 이 경계를 지키지 않았다면 미래 데이터에서의 성능을 정직하게 설명할 수 없습니다.
일반화와 실패 곡선
훈련 MSE가 내려가는 것은 모델이 훈련 자료를 더 잘 맞춘다는 뜻입니다. 검증 MSE도 내려가면 현재 분할에서 일반화가 개선되는 신호일 수 있습니다. 훈련 MSE는 계속 내려가는데 검증 MSE가 어느 시점부터 올라가면 훈련 자료의 우연한 패턴을 외우는 과적합을 의심합니다.
훈련과 검증이 모두 높으면 모델이 너무 단순하거나 특징·라벨·최적화가 맞지 않을 수 있습니다. 검증만 나빠지면 과적합 외에 분포 차이, 그룹 누출의 반대인 그룹 불일치, 시간 변화도 조사합니다. 정규화는 매개변수 크기나 복잡도를 억제할 수 있지만, 잘못된 예측 시점이나 누출을 고치지는 않습니다.
step 0: train MSE 101.50, validation MSE 120.00
step 1: train MSE 70.47, validation MSE 72.00
step 2: train MSE 38.00, validation MSE 74.00
위 표의 validation 값은 곡선 읽는 법을 보이는 가상 수치입니다. step 2에서 훈련은 좋아졌지만 검증은 step 1보다 나빠졌으므로, 더 오래 학습하는 것만이 답이라고 결정하지 않습니다. 조기 종료나 정규화를 고려하더라도 검증 자료를 반복해서 본 선택 비용을 기록하고, 최종 테스트는 선택이 잠긴 뒤에 사용합니다.
구현과 운영의 확인 순서
작은 네 행 표로 먼저 예측, 잔차, MSE, W/b 기울기, 첫 갱신의 부호를 손으로 대조합니다. 그다음 같은 seed와 같은 sample·step·시간 예산으로 학습률 후보를 비교하고, 각 단계의 train/validation MSE와 parameter·gradient norm을 기록합니다. 수치가 줄어드는 것과 코드가 의도대로 실행되는 것을 분리해 검증합니다.
운영에서는 실제 입력의 분포, 결측·이상값, 예측 오차의 크기와 방향, 집단별 오차, 시간별 오차를 모니터링합니다. 예측값이 정상 범위를 벗어나면 모델 손실만 보지 않고 입력 계약과 단위 변환을 확인합니다. 정규화나 target 변환을 사용했다면 운영 로그에 원래 단위의 값도 남겨야 담당자가 의미 있는 숫자를 볼 수 있습니다.
실패 진단은 “loss가 줄었는가”에서 끝나지 않습니다. 손실이 줄지 않으면 기울기·학습률·특징·라벨을 보고, 훈련만 좋아지면 과적합·분할·분포를 보고, 검증은 좋은데 제품 결과가 나쁘면 운영 지표·단위·후속 정책을 봅니다. 이 순서는 후보를 좁히는 진단 모형이며 모든 장애를 한 원인으로 단정하는 규칙이 아닙니다.
참고 자료와 검증 범위
- Linear regression | Google for Developers — 2026-09-17 확인, 페이지에 2025-12-09 UTC 업데이트가 표시된 입문 모듈.
y'=b+w*x, bias·weight 조정, loss·gradient descent 학습 목표의 근거로 사용했습니다. - Datasets, generalization, and overfitting | Google for Developers — 2026-09-17 확인, 번호가 표시되지 않은 현재 ML Crash Course 페이지. train/validation/test, overfitting, regularization 학습 목표의 근거로 사용했습니다.
- 학습 손실과 운영 지표의 불일치, 경사하강법의 보폭과 학습 예산, 학습 데이터 분할과 선택 정보의 누출 — 저장소의 기존 심화 노트입니다.
- Part 3-3 Machine Learning — 2026-09-17 확인, 고정 Git commit
26c959a31f279295931130833cb6d0a43592e26e. 네 개 점과y=Wx+b, W/b 학습과 경사하강법 주제를 확인하는 참고 목록입니다.
이 장의 네 점 계산은 수식으로 직접 검산한 설명용 산술이며 학습 프레임워크를 실행한 결과가 아닙니다. 의사코드는 특정 플랫폼에서 바로 컴파일되는 코드가 아닙니다. 실제 optimizer, dtype, batch reduction, seed, 장비 시간과 검증 곡선은 목표 프레임워크에서 별도로 실행하고 증거를 보존해야 합니다. 2026-09-17 기준으로 확인할 수 없는 프레임워크 버전별 동작은 주장하지 않았습니다.