동그리동동 강의
머신러닝 기초 · CHAPTER 2

기계는 어떻게 배우는가

손실을 정의하고, 경사를 따라 내려가며 파라미터를 맞춘다

2-1

"잘못된 정도"를 숫자로: 손실 함수

1장에서 직선을 손으로 맞춰봤죠. 컴퓨터가 자동으로 맞추려면, 먼저 "지금 얼마나 틀렸는가"를 숫자 하나로 잴 수 있어야 해요. 이 숫자를 손실(loss) 또는 비용(cost)이라고 해요.

숫자를 예측하는 회귀에서 가장 흔한 손실은 평균제곱오차(MSE, Mean Squared Error)예요. 예측과 정답의 차이를 제곱해서 평균낸 거죠.

손실 = 평균( (예측값 − 실제값)² )

왜 제곱할까요? 두 가지 이유예요. ① 부호를 없애 +오차와 −오차가 상쇄되지 않게 하고, ② 크게 틀린 걸 더 크게 벌해서 모델이 큰 실수를 피하게 해요. 학습이란 결국 이 손실을 가장 작게 만드는 파라미터를 찾는 일이에요.

2-2 · 직접 해보기

경사하강법: 어두운 산에서 가장 낮은 곳 찾기

손실을 파라미터에 대해 그리면 보통 골짜기 모양 곡선이 나와요. 우리는 이 곡선의 가장 낮은 지점을 찾고 싶어요. 그런데 곡선 전체를 한눈에 볼 수 없다고 해봐요. 안개 낀 산에서 발밑 기울기만 느낄 수 있는 상황이죠.

방법은 단순해요. 발밑이 가장 가파르게 내려가는 방향으로 한 걸음씩 내딛는 거예요. 이게 경사하강법(Gradient Descent)이에요. 여기서 "기울기"가 곧 그래디언트(gradient), "한 걸음 크기"가 학습률(learning rate)예요.

새 파라미터 = 현재 파라미터 − 학습률 × 기울기

공을 굴려 골짜기 바닥 찾기 — 학습률을 바꿔보세요

학습률이 핵심이에요. 너무 작으면(왼쪽) 거북이처럼 느리고, 너무 크면(오른쪽 끝) 골짜기를 건너뛰며 오히려 튕겨 나가요(발산). 적당한 값을 찾는 게 실전의 큰 부분이에요.
2-3 · 직접 해보기

선형회귀: 점들에 가장 잘 맞는 직선 자동으로 찾기

이제 진짜 학습을 봐요. 점들이 흩어져 있을 때, 예측 = w·x + b 라는 직선 모델의 기울기 w와 절편 b를 경사하강법으로 자동으로 맞춥니다. "학습 시작"을 누르면 직선이 스스로 점들 사이로 파고들어요.

선형회귀 학습 — 직선이 스스로 맞춰집니다

매 걸음마다 컴퓨터는 "w와 b를 각각 조금 늘리면 손실이 늘까 줄까?"를 계산(그래디언트)하고, 손실이 주는 방향으로 둘을 동시에 조금씩 바꿔요. 이걸 수백 번 반복하면 손실 곡선이 바닥에 닿고, 직선이 자리를 잡아요. 신경망도 파라미터가 수백만 개로 많아질 뿐, 원리는 똑같아요.

2-4 · 직접 해보기

과적합: 너무 열심히 외우면 오히려 못한다

모델이 복잡할수록 훈련 데이터는 더 잘 맞혀요. 그런데 너무 복잡하면 데이터의 노이즈(우연한 잡음)까지 통째로 외워버려서, 처음 보는 데이터엔 오히려 엉망이 돼요. 이게 과적합(overfitting)이에요. 반대로 너무 단순하면 패턴조차 못 잡는 과소적합(underfitting)이고요.

아래에서 곡선의 복잡도(다항식 차수)를 올려보세요. 회색 점은 훈련 데이터, 빨간 점은 처음 보는 시험 데이터예요. 두 오차가 어떻게 갈라지는지 보세요.

다항식 차수를 높여보기 — 훈련오차 vs 시험오차

훈련 데이터   시험 데이터   모델이 학습한 곡선

차수를 1~2로 두면 곡선이 너무 뻣뻣해 패턴을 놓쳐요(과소적합). 12~13으로 올리면 훈련 점은 거의 다 지나가는데 곡선이 미친 듯 출렁여서 시험오차가 폭발해요(과적합). 보통 중간 어딘가에 가장 좋은 지점이 있어요.

2-5

편향-분산 트레이드오프, 그리고 정규화

방금 본 걸 정리하는 개념이 편향-분산 트레이드오프(bias-variance tradeoff)예요.

둘은 보통 시소예요. 복잡도를 올리면 편향은 줄지만 분산이 커지죠. 좋은 모델은 그 사이의 균형점을 찾은 모델이에요.

위 데모의 λ(정규화) 슬라이더를 올려보면, 높은 차수에서도 곡선이 얌전해지는 걸 볼 수 있어요. 정규화(regularization)는 "파라미터가 너무 커지면 벌점을 준다"는 규칙을 손실에 더해서, 모델이 과하게 출렁이지 못하게 잡아주는 기법이에요. 과적합을 다스리는 가장 흔한 도구예요.

과적합을 줄이는 다른 방법들: 데이터 더 모으기, 데이터 늘리기(augmentation), 모델 단순화, 학습을 적당할 때 멈추기(early stopping), 드롭아웃(dropout, 3장).
2-6

정리 — 학습의 한 사이클

① 예측한다 → ② 손실을 잰다 → ③ 기울기를 구한다 → ④ 파라미터를 조금 고친다 → ①로 반복

이 네 단계가 머신러닝 학습의 심장이에요. 선형회귀든, YOLO 같은 거대한 신경망이든, 본질은 이 사이클을 수없이 도는 거예요. 다음 장에서는 이 사이클을 그대로 쓰되, 모델을 직선보다 훨씬 표현력 있는 신경망으로 바꿔봅니다.

◀ 이전1. 머신러닝이란 다음 ▶3. 신경망과 딥러닝