"모델이 학습한다"의 안에서 무엇이 일어나는지 한 번도 안 들여다보면, 머신러닝은 늘 신비로 남습니다. 사실 그 안에는 단 한 가지 흐름이 있습니다 — "오차를 정의하고, 그 오차를 줄이는 방향으로 모델을 조정한다." 이 한 줄이 손실 함수와 학습의 본질입니다. 마케터·운영자가 머신러닝을 다룰 때의 두 번째 기초 체력.
1. 학습의 한 줄 정의
머신러닝의 학습을 한 줄로:
모델 예측과 실제 답의 차이를 작게 만들도록 모델 파라미터를 조정한다.
이 한 줄에 세 가지 요소가 들어 있습니다.
- 예측 — 모델이 출력하는 값
- 실제 답 — 학습 데이터의 정답
- 차이 — 손실 함수(loss function)로 측정
학습은 손실 함수의 값을 작게 만드는 방향으로 파라미터를 조정하는 과정. 모델이 처음엔 엉터리로 예측해도 반복하면서 점차 나아짐.

학습은 손실 함수 곡면에서 가장 낮은 자리(=최소 오차)로 내려가는 과정. 매 step마다 기울기 방향으로 파라미터 조정.
📌 이 글에서 다루는 것
이 글은 학습 알고리즘의 수학 디테일(미분·역전파)을 다루지 않습니다. "오차를 어떻게 줄이나"의 직관·운영적 의미·자주 보이는 손실 함수에 집중. 이 직관이 잡히면 overfitting 글·회귀·분류 글이 자연스럽게 이어집니다.
2. 손실 함수 — 오차의 단위와 자주 만나는 5가지
손실 함수의 한 줄 정의:
예측이 정답에서 얼마나 어긋났나를 한 숫자로 표현.
가장 단순한 회귀 손실 — Mean Squared Error (MSE):
직관: 각 데이터의 예측 오차를 제곱하고 평균. 제곱하는 이유는 양수·음수 오차가 상쇄되지 않도록(절댓값 효과), 그리고 큰 오차에 더 큰 페널티를 주기 위해서입니다.
분류 손실 — Cross-Entropy:
직관: 진짜 답( )에 대해 모델이 낮은 확률( )을 예측했으면 큰 손실. 모델이 자신 있게 틀리면 큰 페널티.
손실 함수 선택은 모델의 동작 자체를 결정합니다. 같은 피처·같은 아키텍처라도 손실 함수가 다르면 전혀 다른 모델이 됩니다. 자주 만나는 5가지:
MSE (Mean Squared Error) — 회귀의 표준. 큰 오차에 페널티 큼. outlier에 민감. LTV·매출 예측의 기본값이지만, 상위 5% 고가치 유저에 모델이 끌려가는 부작용 있음.
MAE (Mean Absolute Error) — 절대 오차의 평균. outlier에 강함. 매출 long-tail 데이터에서 MSE보다 안정적. "outlier 한 명이 모델을 망치지 않게" 하고 싶을 때.
Cross-Entropy — 분류의 표준. 다중 분류에도 자연스럽게 확장. 클릭·전환·이탈 예측의 운영 표준.
Huber Loss — MSE·MAE의 결합. 작은 오차는 MSE처럼, 큰 오차는 MAE처럼 처리. 운영 안정성이 좋음. outlier가 있지만 MSE 완전 포기가 아쉬울 때.
Focal Loss — 클래스 불균형 분류에 특화. 이미 잘 분류된 데이터의 가중치를 줄이고 어려운 소수 클래스에 집중. 이탈률 5% 같은 자리에서 Cross-Entropy보다 recall이 눈에 띄게 높아집니다.
| 손실 함수 | 가족 | 자주 쓰는 자리 | 특이점 |
|---|---|---|---|
| MSE | 회귀 | LTV·매출 예측 | outlier에 민감 |
| MAE | 회귀 | outlier 큰 자리 | 미분 불연속(0) |
| Cross-Entropy | 분류 | 이탈·클릭·전환 | 운영 표준 |
| Huber | 회귀 | 운영 안정성 | δ 파라미터 조정 필요 |
| Focal | 분류 | 클래스 불균형 | γ=2가 실용 기본값 |
3. Gradient Descent — 손실을 줄이는 방향
손실 함수가 정의되면 학습은 단순합니다 — 손실을 작게 하는 방향으로 파라미터 조정. 이 과정의 표준 도구가 gradient descent.
직관적 비유: 안개 낀 산에서 가장 낮은 자리로 내려가기. 발 끝에서 기울어진 방향(gradient)을 느끼고 그 방향으로 한 발씩.
수식으로:
- — 모델 파라미터
- — 손실 함수의 기울기(gradient)
- — learning rate (한 발의 크기)
매 반복(epoch)마다 모든 데이터 또는 일부 데이터의 gradient 계산해 파라미터 업데이트. 손실이 충분히 작아지거나 더 안 줄어들면 멈춤.
3-1. Learning Rate의 운영적 의미
- 너무 크면 — 한 발이 너무 커서 골짜기를 넘어갔다 와 (불안정)
- 너무 작으면 — 학습이 너무 느림
- 표준 — 0.001~0.01
운영자가 직접 만질 일은 적지만 모델 학습이 안 수렴할 때 첫 점검 자리.
3-2. Stochastic·Mini-batch
- Stochastic GD — 한 데이터씩 업데이트 (빠르지만 노이지)
- Batch GD — 모든 데이터 한 번에 (안정적이지만 느림)
- Mini-batch GD — 32~256개씩 (운영 표준)
운영 환경의 ML 모델은 거의 다 mini-batch.
4. 학습 과정의 시각화
학습이 잘 되고 있는지의 표준 시각화 — Training Loss Curve.
- 가로축 — epoch (학습 반복 횟수)
- 세로축 — 손실 함수 값
좋은 학습:
- 처음엔 빠르게 감소 (큰 패턴 학습)
- 점점 평탄화 (디테일 학습)
- 마지막엔 거의 평행 (수렴)
문제 패턴:
- 줄지 않음 — learning rate 너무 작거나 모델 부적합
- 흔들림 — learning rate 너무 큼
- 처음엔 줄다가 다시 증가 — overfitting (다음 글)
python
Top comments (0)