오차 해부 축 (Stage 3) — 교과서 + history 통합 노트
error-anatomy-flow의 4개 질문을 교과서 개념 + 우리가 밟은 절차의 history로 확장한 노트.
Q1. 오차의 구조는 무엇으로 되어 있나 — 해부
교과서: 오차의 3분해 — 처방이 다른 세 가지 병
- Bias²: 학습을 반복해 평균을 내도 남는 체계적 빗나감 — "모델이 닿지 못하는 거리"
- Variance: 학습 데이터가 바뀔 때마다 예측이 출렁이는 양 — "모델의 손떨림"
- Irreducible: target 자체의 noise — 어떤 모델도 못 줄이는 바닥
중요한 이유: 처방이 전혀 다르다. Variance ↑ → 데이터 추가·정칙화·bagging. Bias ↑ → 그 처방들은 헛수고, 더 풍부한 입력/표현력이 필요. 진단 없는 처방 = 비용만 쓰고 무효.
교과서: 기대값의 실측 — bootstrap
정의의 는 "서로 다른 학습 데이터셋들"에 대한 기대인데 train은 한 벌뿐. → bootstrap: 복원추출로 유사 데이터셋 N=50벌 생성, HGB 50번 학습, 검증 점마다 예측 50개 수집 — 50개 평균의 빗나감 = Bias², 50개의 흩어짐 = Variance. "평행우주 학습"의 시뮬레이션.
실측·판정
Bias² 96.3% vs Variance 3.7% — 압도적 편향 지배. 모델은 손을 떨지 않는다(50번 재학습해도 같은 곳을 가리킴), 그 가리키는 곳이 체계적으로 떨어져 있을 뿐. "흔들려서"가 아니라 "닿지 못해서".
→ 처방 지도 완성: 분산 처방(앙상블·정칙화)의 이득 상한 = 3.7%의 일부 (Q4에서 실현 확인). Bias의 두 용의자(용량 부족 vs 입력의 정보 부족)는 Q2·Q3가 가른다.
예상 질문:
- "N=50 충분한가?" → 96.3 vs 3.7처럼 극단적으로 갈린 결과는 N을 늘려도 안 뒤집힌다. 경계 사례였다면 늘렸어야 — 결과의 극단성이 표본 수의 면죄부.
- "Irreducible은 어디에?" → 실측에선 정답 를 모르므로 Bias²와 함께 잡힌다. 96.3% = "Bias² + 못 줄이는 noise"의 합 — 이 모호함의 해소가 Q2·Q3 교차 증거의 역할.
Q2. 데이터를 더 주면 줄어드나 — 자원 가설 1
교과서: learning curve — "데이터가 약이 되는 병인가"의 검사지
train 크기를 5%→100%로 늘려가며 train/val 두 곡선을 그린다. 패턴 읽기:
- High variance의 지문: gap 크고(train≫val), 데이터를 늘릴수록 val 상승 중 → 데이터 추가가 듣는다
- High bias의 지문: 두 곡선이 일찍 수렴·평탄(plateau), gap 작음 → 데이터 추가 헛돈, 입력/모델을 바꿔야
직관: 같은 유형의 문제집을 더 사주는 게 효과 있는 건 유형을 덜 익혔을 때뿐. 유형을 다 익혔는데 점수가 안 오르면 시험 범위에 그 문제집이 안 다루는 단원이 있는 것.
실측·판정
후반 plateau — 마지막 구간 Δ +0.0010 (기준 0.002 미만), train-val gap 0.0072. 둘 다 high bias의 지문. 교차 정합: Q1의 Var 3.7% ↔ 작은 gap — 다른 도구, 같은 진단서. 외삽: 데이터 2배여도 기대 이득은 소수점 셋째 자리 — 수집 비용 대비 적자.
결정: 행이 아니라 열
기각된 것은 "같은 종류의 행 추가". 모델이 목마른 건 새로운 열 — 프로모션·휴일·가격·날씨 같은 외생 변수. 처방의 방향이 90도 회전 — 최종 결론의 두 번째 다리.
예상 질문:
- "plateau가 일시적일 수 있지 않나?" → learning curve는 포화 곡선(power law)을 따르는 게 정설. 누운 곡선이 다시 서는 건 입력에 새 정보가 추가될 때뿐.
- "0.002 기준의 근거?" → 자체 휴리스틱(명시). 실측 0.0010이 기준의 절반 + gap·bootstrap 교차 정합 — 임계값 하나에 기대지 않는 구조.
Q3. 더 오래 학습시키면? 과적합은? — 자원 가설 2
교과서: loss curve — 학습량(복잡도) 축의 검사지
boosting은 iteration마다 잔차를 새 tree가 보정 — 반복 횟수 = 누적 복잡도. "더 오래 학습"과 "더 복잡한 모델"이 같은 다이얼. 표준 패턴: train은 단조 개선(계속 외움), val은 ∩자 — 오르다(신호 학습) 최고점(신호 소진) 후 하락(noise 암기 = 과적합 시작). 최고점이 최적 반복 수 = early stopping의 근거. 과적합의 조작적 정의: train-val 괴리의 확대.
실측·판정
HGB 300 iter 추적: val 최고점 iter 82, 이후 218회 동안 개선 없음 — 그런데 추락도 없음(수평 정체). gap +0.0038.
판정 ①: 추가 학습 무효 — 82 이후의 반복은 계산만 소비. ②: 과적합 미발생 — ∩자 오른쪽 추락 없음 + gap 미미 (HGB 내장 정칙화의 작동). 세 번째 교차 정합: 과적합 = variance의 증상 — Q1(3.7%), Q2(gap 0.0072), Q3(gap 0.0038). 세 도구, 같은 진단서.
진단의 완성
자원 처방 전멸: 데이터 추가(Q2 기각), 학습량 증가(Q3 기각), 과적합 해소(병 자체가 없음). 용량 부족이었다면 반복(=용량)을 늘릴 때 val이 올랐어야 — 안 올랐다. → Bias 96.3%의 용의자는 "입력에 정보가 없다" 하나로 압축. 삼각측량의 마지막 변.
예상 질문:
- "val이 안 추락하는데 왜 점검했나?" → 결과는 미리 모른다. boosting은 과적합이 기본 성향(그래서 early stopping이 표준 장비) — "없음"의 확인 자체가 Bias 지배 가설의 증거.
- "early stopping 지점 선택도 튜닝 아닌가?" → 기준은 CV의 validation fold. test는 닫혀 있었다(③ 축 원칙 준수).
Q4. 남은 처방들의 실측 — 분산 쪽 총공세
교과서 원리 × 실측
튜닝 (RandomizedSearch) — 상위 q 영역에 적어도 한 발 들어갈 확률:
(Bergstra & Bengio: 중요 차원이 소수일 때 random > grid.) 실측 +0.0002 — 탐색은 충분했는데 수확이 없다 = 기본값이 이미 plateau 위에 있었다는 증명.
Voting — 평균은 오차가 독립일 때만 분산을 1/k로:
4모델이 같은 입력에서 같은 신호(lag_52 94%)를 학습 → 오차 강한 상관 → 평균이 아무것도 못 지움. 실측 −0.0011 — 약한 모델들이 best를 끌어내림.
Stacking — meta 모델이 가중을 학습. 실측 ≈ ±0, 진짜 정보는 meta 계수: HGB +0.78 / RF +0.17 / Linear +0.06 / SVR −0.0099 — "HGB 말만 들으면 된다"는 앙상블 자신의 자백. (Linear +0.06은 ③ Q3 시즌 민감성 복선 회수.)
Lasso (L1) — 계수를 정확히 0으로 보내는 sparsity → feature 선별기. 실측 non-zero 4/79 — 성능 무효, 부산물이 값짐: 살아남은 4개가 진단으로 고른 그 feature들 = ② 축 PACF 절제의 독립적 사후 정당화.
(+ lag_104 확장 +0.0010 기각 — "같은 종류의 열" 늘리기도 무효.)
판정: 예고의 실현 + Occam
전과: +0.0002 / −0.0011 / ±0 / 무효 — 전부 Q1의 3.7% 상한 안의 미동. 진단 → 예고 → 실측의 사슬 폐쇄. 같은 성능이면 단순한 쪽(Occam's razor): 모델 4개 유지 비용에 이득 0인 Stacking 대신 Tuned HGB 단독 확정. → "남은 오차 = 자원이 아니라 정보 부족" 삼각측량 완성 → 결론(외생 변수 확보)으로 인계.
예상 질문:
- "무효일 줄 알았으면 왜 했나?" → "알았다"와 "확인했다"는 다른 상태. 게다가 부산물(meta 자백, Lasso 정당화, 기본값 plateau 증명)이 측정마다 진단 신뢰도를 올렸다.
- "Bias 96.3%면 더 복잡한 모델(딥러닝)을 쓰면?" → 이 Bias는 용량이 아니라 입력의 정보 한계(Q3에서 용량 다이얼 무효로 확인). 어떤 모델도 입력에 없는 정보를 만들 수 없다 — 처방은 모델 교체가 아니라 외생 변수.
한 줄 사슬 요약
bootstrap이 96.3 대 3.7로 편향 지배를 선고하고(Q1), learning curve가 "행 추가 무효"(Q2), loss curve가 "학습량 무효 + 과적합 없음"(Q3)으로 자원 가설을 전멸시켰으며, 분산 무기고 전체가 예고대로 미동에 그쳤다(Q4) — Tuned HGB 단독 확정, 남은 오차의 정체는 정보 부족, 처방은 외생 변수.