제1원리 질문. 모델이 ‘잘하고 있는지’를 왜 숫자 하나로 줄여야 하는가. 경사하강법은 하나의 값을 내려가는 방법이라, 데이터마다 흩어진 수많은 오차를 먼저 하나의 점수로 모아야 ‘내려갈 산’이 생기기 때문이다.

핵심 — 세 단계로 만든 숫자 하나
로드맵은 45주차를 “‘얼마나 틀렸나’를 숫자 하나로”라고 요약한다. MSE(Mean Squared Error, 평균 제곱 오차)는 이름 그대로 오차를 구하고, 제곱하고, 평균 낸 값이다. MSE = (1/n) Σ(ŷi − yi)2. 3편의 시그마가 여기서 그대로 쓰인다.
| 단계 | 하는 일 | 이유 |
|---|---|---|
| 오차 | 예측 − 정답 | 얼마나 빗나갔나 |
| 제곱 | 오차2 | 부호 제거 + 큰 오차를 더 크게 |
| 평균 | 합 / 개수 | 데이터 개수와 무관한 점수 |
아래 코드의 가정 데이터로 계산했다. 제곱 오차의 합은 1.5, 평균(MSE)은 0.375다.
코드로 번역하기
import numpy as np
y_true = np.array([3.0, 5.0, 7.0, 9.0]) # 정답 (가정 값)
y_pred = np.array([2.5, 5.0, 8.0, 9.5]) # 모델 예측 (가정 값)
err = y_pred - y_true # 오차
print(err) # [-0.5 0. 1. 0.5]
print(err ** 2) # 제곱: 부호 제거 + 큰 오차 강조
mse = np.mean(err ** 2) # 평균 -> 숫자 하나
print(mse) # 0.375
# 오차 하나가 2배가 되면 손실 기여는 4배
print((2 * 1.0) ** 2 / 1.0 ** 2) # 4.0
실행 결과
[-0.5 0. 1. 0.5]
[0.25 0. 1. 0.25]
0.375
4.0
사례 적용 — 제곱이 만드는 성격
그래프에서 보듯 오차가 0.5인 데이터 두 건은 각각 0.25만 기여하지만, 오차가 1.0인 한 건은 1.0을 기여한다. 오차가 2배면 손실 기여는 4배다. 그래서 MSE를 줄이려는 학습은 크게 틀린 데이터부터 우선 고치려는 성격을 갖는다. 작은 실수 여러 번보다 큰 실수 한 번을 더 엄하게 보는 채점 기준인 셈이다.
또 제곱 덕분에 MSE를 가중치에 대한 식으로 쓰면 12주차에서 본 포물선(골짜기) 모양이 된다. 로드맵이 이차함수를 ‘손실함수 형태의 예고편’이라고 부른 이유가 여기서 이어진다. 골짜기 모양이면 8편의 경사하강법으로 바닥을 찾아 내려갈 수 있다.
1분 개념 체크
로드맵 교재 템플릿의 ‘1분 개념 체크’ 형식을 빌려 스스로 확인할 문제 두 개를 만들었다.
| 질문 | 답 | 근거 |
|---|---|---|
| 오차가 (1, −1, 2)일 때 MSE는? | 2 | (1 + 1 + 4) / 3 |
| 오차가 3배가 되면 그 데이터의 제곱 오차는 몇 배가 되는가? | 9배 | 32 |
내 해석 — Rhymbro가 읽은 것
MSE의 ‘큰 오차를 더 엄하게’ 성격은 공차 관리 감각과 비교해 볼 만했다. 치수 검사에서도 공차를 살짝 벗어난 부품 여러 개보다 크게 벗어난 부품 하나가 조립 불량으로 이어지기 쉽다. 오차를 제곱해서 모으는 방식은 그런 ‘큰 벗어남’에 더 민감한 지표라고 이해했다.
반대로 측정 실수로 생긴 이상치 하나가 MSE를 크게 끌어올릴 수 있다는 점도 같이 기억해 둔다. 지표의 성격을 알고 써야 한다는 점에서 품질 지표를 고르는 일과 비슷하다.
한계로, MSE는 이상치 하나에 크게 흔들리고 분류 문제에는 잘 맞지 않아서, 문제의 성격에 따라 다른 손실함수를 고르는 판단이 필요하다.
요약
| 항목 | 정리 |
|---|---|
| 정의 | MSE = 오차 제곱의 평균 |
| 제곱의 효과 | 부호 제거, 큰 오차 강조 (2배 → 4배) |
| 코드 | np.mean((y_pred − y_true) ** 2) |
| 연결 | MSE의 골짜기를 경사하강법으로 내려감 |
그래서 나는 무엇을 하기로 했나
이번 주는 같은 가정 데이터에 이상치 하나(오차 5.0)를 추가했을 때 MSE가 얼마나 바뀌는지 계산하고, 오차 절댓값의 평균과 나란히 비교해 보기로 했다.
주제와 순서는 개인 학습용으로 정리한 104주 AI 수학 로드맵 목차를 따랐고, 설명과 예제는 그 목차를 바탕으로 내 언어로 다시 썼다. 코드는 Python 3 + NumPy 2.x에서 실행해 출력을 확인했으며, 예시 수치는 설명용 가정 값이다.
AI 수학 로드맵 노트 · 전체 10편
- AI 수학 로드맵 노트 1 — y = wx + b, 가중치와 편향의 정체
- AI 수학 로드맵 노트 2 — 지수와 로그, 폭발과 압축의 언어
- AI 수학 로드맵 노트 3 — Σ(시그마)는 그냥 for문이다
- AI 수학 로드맵 노트 4 — 벡터의 크기와 거리, 노름
- AI 수학 로드맵 노트 5 — 내적과 코사인 유사도, 방향이 비슷하면 취향도 비슷하다
- AI 수학 로드맵 노트 6 — 행렬곱, 신경망 한 층의 정체
- AI 수학 로드맵 노트 7 — 미분과 체인룰, 변화가 전달되는 법
- AI 수학 로드맵 노트 8 — 경사하강법과 학습률, 산을 내려가는 보폭
- AI 수학 로드맵 노트 9 — 손실함수 MSE, 얼마나 틀렸나를 숫자 하나로
- AI 수학 로드맵 노트 10 — 베이즈 정리, 검사 결과를 뒤집어 읽기
같은 카테고리에서 함께 읽기
강의자료 121편독일어 문법 노트 10 — 관계절, Die Maschine, die wir kauften
관계대명사의 성·수는 선행사를 따르고, 격은 관계절 안에서의 역할로 정해진다. 전치사 + 관계대명사, wo와 was·wer까지 설비·부품 예문으로 정리했다.
독일어 문법 노트 9 — 종속절과 동사 후치, weil·dass·wenn·als
weil·dass·wenn·obwohl·ob가 이끄는 절에서는 활용된 동사가 맨 끝으로 간다. 종속절이 앞에 오면 쉼표를 사이에 두고 동사가 마주 보는 구조, als…
독일어 문법 노트 8 — 형용사 어미변화, 다섯 칸의 -e와 나머지 -en
정관사가 성·격을 표시하면 형용사는 -e나 -en만 붙는다. -e가 오는 자리는 다섯 칸뿐이고 나머지는 전부 -en. 서술 용법에는 어미가 없다는 점까지 정리했다.



[…] AI 수학 로드맵 노트 9 — 손실함수 MSE, 얼마나 틀렸나를 숫자 하나로 […]
[…] AI 수학 로드맵 노트 9 — 손실함수 MSE, 얼마나 틀렸나를 숫자 하나로 […]