Source:
report/version10/exp-expert/v10-04_E2_NHITS_FreqBand_analysis.md
v10-04: E2 NHITS + Frequency-Band Codebook — 단독 분석¶
0. Executive Summary¶
- 결과: E2 (
MinimalNHITS + FreqBandCB(low/mid/high) × M=32 × d=64, FedAvg + per-band Memory Alignment γ=0.98/0.95/0.85, peak-α=2.0, VQ_high_loss × 2)는 30 round 학습 후 test_pape=84.97%, test_hr1=13.22%, test_hr2=18.41%, test_mse=0.4816 로 종료. v10 VQ 4종 중 PAPE 워스트 (E1=55.01, E4=67.59, E2=84.97). - B3 NHITS noVQ 대비 +40.31 PAPE, v9-01 NHITS recap 39.26 대비 +45.71 PAPE, B0 DLinear Local 42.51 대비 +42.46 PAPE. v10 frequency-band 이식이 동일 backbone 무-VQ 대비 일관되게 악화.
- H10-1 판정 = FAIL (강한 형태). 검증 기준 두 축 —
PAPE < B0=42.51그리고high-freq CB util > 50%(설계서 §1.2) — 모두 위반. high-freq CB 평균 util 6.47%, peak window vs non-peak window 분리 로깅 자체가 누락(설계서 §9.2 명세 미구현)이라 가설의 정성 증거조차 수집 불가. - 3-band 동시 collapse: round 0 부터 low/mid/high 모두 util 5–6% 출발. 30 round 동안 low가 11.8%까지 회복, mid 10.6%, high는 6.5% 이하 유지(오히려 r=18 이후 더 하락). collapse alert가 매 round 3 band 모두에서 트리거.
- best_round=19, best_val_pape=307.76% (z-score scale validation 기준) — round 20–30 에서 추가 악화. 학습 발산 패턴.
- 결정적 발견 (smoking gun): 예측 분포가 평탄화 collapse. y_pred 평균 0.25 vs y_true 평균 0.39, peak_pred 평균 0.31 vs peak_true 평균 2.01 [정의 (A) window-wise max 후 평균; 정의 (B) pred_at_argmax 12.5%, 정의 (C) overall max 32.6%로도 평탄화 일관 확인 §3.3.1] — 모델이 peak 의 약 15% 진폭만 예측. std 비율 0.45/0.73=0.61 (per-household ratio mean=0.27, # ratio<0.20 = 24/50, broad-based collapse §3.3.2). y/ŷ correlation 0.411. 즉 "peak-α=2.0 + VQ_high×2" 가중이 작동했음에도 quantization noise 와 3-stack additive 합성이 평탄한 평균 회귀 예측을 강화.
- E2_simple ablation (revision 1 통합): weighting 균일 + K-means++ 비활성 변형에서 PAPE 68.35 (본 84.97 대비 -16.62) 로 표면 개선처럼 보이나, MSE 1.40 (본 0.48 대비 +191% 악화) / std_ratio 0.066 (1/10 더 평탄) / corr -0.003 / best_round=0 으로 더 극단적 단조 상수 출력 collapse 임이 확인. PAPE 개선은 분모-분자 비율에 단조 상수가 우연히 favorable 했기 때문. 4 후보 (3-stack additive / VQ_high×2 / γ=0.85 / K-means++ cliff) 중 어느 것도 simple 로 분리되지 않음. "E2 drop, v11 STFT/wavelet 재설계" 결론은 simple 결과로 약화되지 않고 강화 (§3.3.4).
- 통신량 trade-off: bytes_per_round 24,576 (B3 NHITS noVQ 90,912 대비 −73.0%) — 그러나 PAPE +40.31. 통신 절감 대비 성능 손실 비율이 v10 4 E* 중 가장 비현실적.
- 다음 단계 권고: E2 drop. v11 에서 (a) FreqBandCB 를 명시적 STFT/wavelet 기반 frequency 분해로 재설계, (b) NHITS 의 hierarchical additive 합성과 VQ noise 의 상호작용 회피 (예: residual quantization, 또는 마지막 stack 만 VQ 이식), (c)
cb_util_{band}_{peak|nonpeak}로깅 의무화 — 가설 검증의 정성 증거 수집 자체가 불가능했던 phase 설계 결함 시정.
1. 메트릭 요약 표¶
| ID | Model | test_pape | test_hr1 | test_hr2 | test_mse | best_round | bytes/round | comm-vs-B3 |
|---|---|---|---|---|---|---|---|---|
| E2 | NHITS + FreqBandCB | 84.97 | 13.22 | 18.41 | 0.4816 | 19 | 24,576 | −73.0% |
| B3 | NHITS noVQ (FedAvg) | 44.66 | 17.14 | 37.14 | 0.7732 | 26 | 90,912 | baseline |
| Phase1 | NHITS Local (no-FL, no-VQ) | 37.23 | 19.66 | 29.45 | — | — | 0 | — |
| v9-01 recap | NHITS (NF) | 39.26 | 22.29 | 31.71 | 0.648 | — | 0 | — |
| B0 | DLinear Local (recap) | 42.51 | 34.58 | 46.60 | 0.515 | — | 0 | — |
| B1 | DLinear FedAvg (recap) | 43.64 | 36.92 | 49.39 | 0.505 | — | — | — |
| B3 R1b (recap) | FedPM+DLinear (v6 R1b) | 37.36 | 21.27 | 32.42 | 0.629 | — | — | — |
| E1 | NBEATSx + DecompCB | 55.01 | 15.71 | 31.43 | 0.8074 | 16 | — | — |
| E4 | Crossformer + PQ | 67.59 | n/a | n/a | 0.7901 | 23 | — | — |
E2 vs B3 동일 backbone 비교 (가장 직접 통제 비교): - ΔPAPE = +40.31 (84.97 vs 44.66) - ΔHR@1 = −3.92 (13.22 vs 17.14) - ΔHR@2 = −18.73 (18.41 vs 37.14) — peak 시간 ±2h 이내 적중률이 절반 이하로 무너짐 - ΔMSE = −0.2916 (0.4816 vs 0.7732, MSE는 오히려 E2가 낮음)
MSE만 보면 E2가 좋아 보이는 함정: §3.3.3 평탄화 collapse 분석 참조. 평균 회귀 예측은 MSE를 줄이지만 peak는 잡지 못함. peak 기반 메트릭(PAPE/HR)이 모두 무너진 것이 일관된 진단. 본 함정은 E2 평탄화 specific — E1 (PAPE 55.01 / MSE 0.81) / E4 (PAPE 67.59 / MSE 0.79) 는 PAPE/MSE 동시 악화로 함정 패턴 없음. reporter 단계에서 "MSE-only 보고 금지" 권고는 E2 평탄화 collapse 와 묶어 narrative 화해야 함.
2. 가설 H10-1 판정¶
2.1 설계서 §1.2 falsification 조건¶
H10-1: NHITS + Frequency-band CB 에서 high-freq CB 가 peak 정보를 선택적으로 집중한다. Falsification: PAPE ≥ 42.51 (= B0) 또는 high-freq CB util < 50%.
2.2 검증¶
| 기준 | 임계 | 관측 | 판정 |
|---|---|---|---|
| test_pape < B0=42.51 | < 42.51 | 84.97 | FAIL (+42.46 위반) |
| high-freq CB util > 50% | > 50% | 6.47% (round-mean) | FAIL (43.5pp 위반) |
| peak vs non-peak window 분리 활성 | high/non-peak 비율 > 2× | 측정 자체 불가 | FAIL (로깅 미구현) |
세 축 모두 위반. H10-1 falsification 조건이 OR 이므로 단일 축 위반만으로도 기각이 충족되며, 본 case 는 두 축이 독립적으로 위반되어 robust 한 기각. (revision 0 의 "강한 형태" 표현은 "독립 두 축 동시 위반" 으로 정확화.)
2.3 정성 증거의 부재 (설계 결함 disclosure)¶
설계서 §9.2 는 cb_util_{cb_id}_{peak|nonpeak} per-round 로깅을 H10-1 검증 hook 으로 명시했으나, experiments/federated/v10_e2_nhits_freqband.py:686-699 의 mlflow.log_metric 호출은 일반 codebook_utilization_{name} 만 기록. peak-window 분리 로깅이 구현 누락됨.
이로 인해 본 분석은 H10-1 의 "high-freq CB가 peak 정보를 집중" 명제의 정성 증거 (peak 시점에서만 high CB 가 활성되는 패턴)를 직접 측정할 수 없다. 다만 round-aggregated util 자체가 6.47% 로 codebook 채널이 거의 활성화되지 않은 상태이므로, peak/non-peak 분리 없이도 가설은 "검증 자체가 의미 없음" 수준으로 무효. 이는 가설을 약하게 기각하는 것이 아니라 강하게 기각.
3. +40.31 PAPE 악화 원인 분석¶
본 phase 점수 추정만 보고 (seed=42 단일). 인과 주장 금지, 패턴 보고만.
3.1 3-band 동시 collapse — round-by-round trajectory¶
| round | val_pape | val_hr1 | util_low | util_mid | util_high | align_low | align_mid | align_high |
|---|---|---|---|---|---|---|---|---|
| 0 | 362.41 | 13.69 | 0.057 | 0.060 | 0.051 | 0.976 | 0.971 | 0.965 |
| 1 | 387.85 | 13.07 | 0.069 | 0.065 | 0.053 | 0.055 | 0.054 | 0.109 |
| 5 | 340.36 | 16.70 | 0.102 | 0.081 | 0.087 | 0.049 | 0.050 | 0.054 |
| 10 | 354.08 | 18.16 | 0.124 | 0.113 | 0.071 | 0.054 | 0.051 | 0.064 |
| 15 | 339.88 | 19.62 | 0.130 | 0.122 | 0.066 | 0.058 | 0.059 | 0.040 |
| 19 (best) | 307.76 | 19.64 | 0.131 | 0.120 | 0.059 | 0.040 | 0.057 | 0.031 |
| 25 | 327.55 | 19.29 | 0.124 | 0.117 | 0.058 | 0.038 | 0.051 | 0.026 |
| 29 (final) | 342.17 | 19.21 | 0.118 | 0.106 | 0.065 | 0.043 | 0.039 | 0.026 |
관찰 (점추정):
- 모든 round 에서 3 band 모두 util < 20% — Collapse Alert 매 round 3회 트리거 (collapse_alert_low/mid/high = 1).
- low / mid 는 round 0→13 까지 5.7% → 13.8% 로 점진 상승 후 plateau.
- high band 는 round 4 (8.8%) 가 peak 후 continuous decline → final 6.5%. peak 정보를 가장 많이 담아야 할 stack 이 학습 진행과 함께 codebook 사용을 줄임.
- peak-α=2.0 + VQ_high_loss × 2 가중에도 high band 만 수축하는 패턴은 "high CB 가 peak 신호를 인코딩하지 못해 task loss 가 high stack 의 forecast 출력 자체를 0 쪽으로 누르는 방향" 으로 해석 가능. 단 단일 seed 점추정이라 강한 인과 주장 금지.
3.2 alignment_sim_mean 의 round 0→1 cliff¶
round 0: 0.976 / 0.971 / 0.965 → round 1: 0.055 / 0.054 / 0.109. 약 18×–20× 하락. 이는 K-means++ init (round 0 끝의 model.freq_cb.initialize_from_data) 직후 server aggregate 한 codebook 이 클라이언트 next-round local 학습에서 거의 직교 한 방향으로 이동했음을 시사. Memory Alignment γ=0.98/0.95/0.85 의 EMA-style 보호가 작동하기 전에 aggregate 가 codebook 을 deviation 시킴. 이 cliff 가 collapse 의 trigger 일 가능성 — 그러나 ablation 부재라 가설 수준.
Cliff 가 K-means++ unique 가 아닐 가능성 (revision 1 추가): E2_simple 은
kmeans_init=False(random init) 임에도 best_round=0 (학습 사실상 미진행). 이는 round 1 cliff 가 K-means++ init 의 stochasticity 가 아니라 codebook random init 후 첫 FedAvg aggregation 이 항상 발생시키는 일반 현상 일 가능성을 시사. 후보 #4 (K-means++ cliff) 의 가설 강도는 simple 결과로 약화 — 그러나 단일 ablation 이라 강한 기각은 아님.
3.3 평탄화 collapse — predictions 분포 분석 (smoking gun)¶
artifact path: mlruns/738860791398377455/3d377754b8a54dbaafcf4ec85000e8ba/artifacts/predictions/e2_y_pred.npy (1657 windows × H=24, z-score scale).
3.3.1 Aggregate 통계 + denominator 정의¶
| 통계 | y_true | y_pred | 비율 |
|---|---|---|---|
| mean | 0.393 | 0.251 | 0.64× |
| std | 0.727 | 0.446 | 0.61× |
| min | −0.794 | −0.887 | — |
| max | 3.962 | 1.289 | 0.33× |
| peak_mean (windowwise max) [정의 (A)] | 2.011 | 0.310 | 0.154× |
| corr(y_true, y_pred) | — | 0.411 | — |
peak denominator 정의 (본 보고서 채택값 = (A)): - (A) window-wise max 후 평균 = 1657 windows 각각에서
max_h y_true[w,h]계산 후 mean. 채택. 결과: 2.011 / 0.310 = 0.154 (15.4%). - (B) pred_at_argmax(y_true) = argmax 시점에서의 prediction 값 평균. 결과: 0.252 / 2.011 = 0.125 (12.5%) — true peak 시점에서 모델이 예측한 값이 더 낮음. - (C) overall max 비교 =y_true.max() / y_pred.max()= 3.962 / 1.289 = 0.326 (32.6%). 단일 outlier window dominated.세 정의 모두 평탄화를 일관되게 시사 (15%, 12%, 33%). 본문은 (A) 채택 — 가구별·window별 peak 분포의 평균이라 robust. (B)/(C) 는 robustness check 용 footnote.
3.3.2 가구별 분산 — broad-based collapse 확인 (Apt51 cherry-picking lesson 준수)¶
50가구 각각의 std(y_pred[h]) / std(y_true[h]) 비율 분포:
| 통계 | per-household std_ratio (n=50) |
|---|---|
| mean | 0.267 |
| std | 0.148 |
| min / 5% / 25% / median / 75% / 95% / max | 0.056 / 0.080 / 0.150 / 0.259 / 0.349 / 0.536 / 0.625 |
| IQR | [0.150, 0.349] |
| # households with ratio < 0.20 | 24 / 50 (48%) |
관찰: 가구의 절반이 std_ratio < 0.20 (진폭 보존도 20% 미만)이며, IQR [0.15, 0.35] 가 좁지 않음에도 95-percentile 이 0.54 에 그쳐 어떤 가구도 진폭을 80% 이상 보존하지 못함. 단일 outlier 1-2 가구가 평균을 끌어내린 것이 아니라 50가구 전반에 걸친 broad-based collapse. v9-06 revision 1 lesson (Apt51 cherry-picking 검증 순서 — 분포 disclosure → outlier 식별 → 변호 거부) 을 준수해 점추정 단일 비율 (62%) 의 본문 단독 보고를 가구 분포로 보강.
3.3.3 해석¶
- 모델이 peak window 에서 실제 peak 진폭의 약 15% 만 예측 (정의 (A) 기준). 즉 거의 평탄한 평균 회귀 출력.
- std 도 평균 ~62% (가구별 mean 0.267 — 가구별 가중 차이로 두 수치가 다름. aggregate-level 0.61 / per-household-mean 0.27 사이 차이는 가구간 분산이 다른 분모-분자 결합 효과) 로 축소 → variance 부족.
- y/ŷ correlation 0.411 — 약한 상관, 대부분 "평균값 출력".
- MSE 0.4816 이 좋아 보이는 이유 = MSE 는 평균 회귀 예측을 보상한다. 그러나 peak-task 입장에서 무용. 이것이 PAPE / HR 메트릭이 동시에 무너지면서 MSE 만 좋아지는 이유.
MSE 함정 적용 범위 (E2 specific): 본 함정은 E2 평탄화 collapse 에 specific 한 패턴이며 v10 일반론이 아님. v10 다른 모델 비교: - E1 (NBEATSx+DecompCB): PAPE 55.01 / MSE 0.8074 — PAPE 와 MSE 가 동시 악화 (B3 0.7732 대비 +0.04). 함정 패턴 없음. - E4 (Crossformer+PQ): PAPE 67.59 / MSE 0.7901 — 마찬가지 PAPE/MSE 동시 악화. 함정 패턴 없음. - E2 만 PAPE 84.97 (워스트) / MSE 0.4816 (best) 의 trade-off — 평탄화가 MSE 를 좋아 보이게 만드는 메커니즘이 E2 unique.
따라서 reporter 단계의 "MSE-only 보고 금지" 권고는 v10 합본 narrative 에서 E2 의 평탄화 collapse 와 묶어 제시해야 하며, E1/E4 에는 적용되지 않음.
3.3.4 평탄화 메커니즘 — 후보 4 가지 + E2_simple ablation 검증¶
후보 메커니즘 (점추정 가설, 단일 seed):
1. 3-stack additive 합성 + 동시 collapse: y_hat = forecast_low + forecast_mid + forecast_high. 3 stack 의 quantization noise 가 평균적으로 0 에 가까운 codeword 만 활성 → 합산 결과가 0 쪽으로 수축.
2. VQ_high_loss × 2 의 의도 역전: peak-focus 의도였으나 commitment loss 만 키워 high stack 의 hidden representation 이 codebook 의 좁은 영역으로 강제 수렴 → quantized hidden 이 거의 단일 vector 에 가까워짐 (util 6.5% 의 다른 표현). high stack forecast 가 평탄 0 출력에 수렴.
3. per-band γ=0.85 (high) 의 over-aggregation: high band 의 server-side EMA 비율을 가장 낮게 (0.85) 둔 의도는 "client-specific peak 정보 흡수" 이지만, 단일 seed 50가구 환경에서 client-side codebook 변동성이 수렴 신호보다 noise 가 더 큰 상태이면 γ 작은 편일수록 noise 가 codebook 으로 더 많이 누적. 이는 1번 가설과 결합 시 high CB collapse 가속.
4. K-means++ init → round 1 cliff: §3.2. init 직후 codebook 이 client 학습 방향과 정합하지 못해 round 1 에서 alignment_sim 급락 → encoder 가 quantized output 을 사용하지 못하고 평탄 출력으로 "VQ bypass" 방향으로 학습.
E2_simple ablation 결과 통합¶
본 critique cycle 에서 추가 확보된 ablation: E2_simple (run_id 621d889c2f61483ba3222f9710b10d36, params: vq_strategy=FreqBandCBSimple, kmeans_init=False, peak_alpha=2.0 하지만 weighting 균일).
| 메트릭 | E2 본 (3d377754) | E2_simple (621d889c) | 비교 |
|---|---|---|---|
| test_pape | 84.97 | 68.35 | simple −16.62 (개선처럼 보임) |
| test_mse | 0.4816 | 1.4036 | simple +0.92 = 191% 악화 |
| test_hr1 | 13.22 | 12.31 | simple −0.91 |
| std_ratio (y_pred std / y_true std) | 0.61 | 0.066 | simple 1/10 = 더 평탄 |
| corr(y_true, y_pred) | 0.411 | −0.003 | simple 거의 무상관 |
| best_round | 19 / 30 | 0 / 30 | simple 학습 자체 미진행 |
simple 의 PAPE 16 개선은 "회복" 이 아니라 "다른 형태의 더 극단적 collapse": - std_ratio 0.066 = simple 출력은 거의 단조 상수 (mean ≈ 1.03 균일 출력 추정). - corr −0.003 = 입력 신호와 거의 무상관 — 학습된 신호 자체 없음. - best_round=0 = 첫 round 에서 best 갱신 후 한 번도 개선되지 못함 (학습 진행 실패). - MSE 1.40 (B3 0.77 의 1.8×, E2 본 0.48 의 2.9×) = MSE 함정조차 사라짐. 단조 상수 출력은 평균값 회귀보다도 나쁨.
simple 의 PAPE 개선은 단조 상수 출력이 PAPE 분모-분자 비율에 우연히 favorable 했기 때문 (PAPE 는 |peak_true − peak_pred| / |peak_true| 형태로, peak_pred 가 거의 일정하면 peak_true 큰 window 에서 분모도 크고 분자도 큰 부분 상쇄). MSE/std/corr 의 다축 검증 없이 PAPE 만 보면 simple 이 "회복" 으로 오인될 수 있는 denominator-favorable collapse mode 의 전형적 사례.
후보 4 ablation 분리 검증¶
| 후보 | simple 에서 제거된 요인 | simple 결과 시사 | 분리 판정 |
|---|---|---|---|
| #1 3-stack additive | 유지 (NHITS backbone 동일) | simple 도 평탄화 collapse → 분리 미완 | 분리 미완 |
| #2 VQ_high×2 | 제거 (균일 weighting) | simple 도 collapse, 오히려 더 극단적 | 약하게 기각 (#2 단독 원인 아님) |
| #3 γ=0.85 비대칭 | 제거 (simple 명세 추정) | simple 도 collapse | 약하게 기각 (#3 단독 원인 아님) |
| #4 K-means++ cliff | 제거 (kmeans_init=False) |
simple best_round=0 → cliff 가 K-means unique 가 아닐 가능성 | 약화 (random init 에서도 첫 FedAvg 직후 cliff 발생 가능) |
결론: simple ablation 은 4 후보 중 어느 것도 분리하지 못했으며, simple 자체가 더 극단적 collapse mode 로 빠짐. "VQ_high×2 와 γ=0.85 만 제거하면 회복" 의 변호는 거부됨. 4 후보는 여전히 enumerate 단계이며, 본 E2 디자인 (NHITS + MaxPool-band CB + 3-stack additive forecast 합성) 자체에 collapse 를 강제하는 구조적 요인이 있다는 가설이 simple 결과로 강화.
expert "E2 drop, v11 STFT/wavelet 재설계" 결론은 simple 결과로 약화되지 않고 강화됨. simple ablation 으로도 회복 불가능 = 디자인 자체 결함.
3.4 best_round=19 의 의미¶
- best_val_pape = 307.76 @ round 19 — z-score scale validation PAPE. round 0 (362.41) 부터 round 19 까지 16% 개선 후 round 20 부터 다시 322–344 사이 진동.
- best_round=19/30 은 학습 progressive convergence 가 아닌 최저점 운 (lucky local minimum).
- round-window 평균 정정 (mlflow
metrics/round_val_pape직접 재계산): - round 10-19 mean = 335.74 (std 12.17)
- round 20-29 mean = 335.07 (std 9.58)
- 차이 = −0.67 (−0.20%)
- 통계적 검정 (revision 1 추가):
- Welch t-test: t = 0.13, p = 0.899
- Mann-Whitney U: u = 48, p = 0.910
- 두 검정 모두 두 구간이 동일 분포라는 귀무가설을 기각하지 못함 → divergence 가설은 통계적으로 강하게 기각.
- 해석: 30 round 추가 학습이 무의미. round 19 이후도 wide plateau. divergence 라기보다 정체. 학습 길이 문제는 아니며, VQ 메커니즘의 작동 자체가 안 되어 plateau.
Note: revision 0 의 수치 (10-19 평균 339.4 / 20-29 평균 333.5 / 차이 -5.9, -1.7%) 는 산정 오류였음. 정정된 차이 -0.67 (-0.20%) 은 plateau 결론을 더 강하게 지지.
val_pape vs test_pape 의 한 자릿수 차이 (340% vs 85%) 는 z-score 스케일에서 peak_true 가 0 근처인 validation window 가 test window 보다 더 많기 때문. compute_pape 는 |peak_true|>1e-5 valid mask 만 적용하므로 z-score normalization 후 작은 peak window 에서 값이 폭발. test set 은 분포가 달라 peak_true 평균 2.01 로 정상 범위 → 두 수치 모두 동일 scale 의 같은 모델이지만 z-score window peak 분포 차이로 다른 자릿수가 나옴. 본 분석은 test_pape 84.97 을 단일 정식 지표 로 채택하고, val_pape 는 round-trajectory 패턴 비교용으로만 사용.
3.5 NHITS hierarchical pooling × FreqBandCB 의 구조적 부정합 가능성¶
설계서 §3.6 / §5.2 는 NHITS 의 pooling kernel hierarchy 가 자연스럽게 frequency 분리를 한다고 가정. 그러나: - MaxPool(8/4/2) 은 amplitude-based downsampling 으로, 명시적 frequency-domain 분해 (STFT, wavelet) 가 아님. 동일 시계열을 단순 down-sample 한 3 view 가 "low/mid/high freq" 로 명명될 뿐, 정보 채널이 직교한다고 보장되지 않음. - 3 stack hidden h_low/h_mid/h_high 가 서로 강하게 상관일 경우, 3 codebook 이 동일 representation manifold 의 다른 partition 을 학습해야 하는데, 단일 task loss 를 공유하므로 3 codebook 이 redundancy 로 수렴 → 각 CB util 이 모두 낮게 유지되는 패턴과 정합. - 즉, "구조 정합 (structural match)" 의 전제 — backbone 의 자연 분해가 codebook 축에 매핑된다 — 가 NHITS+MaxPool 의 경우 구조적으로 약함. E1 (NBEATSx 의 basis expansion 분해는 명시적 trend/seasonal/generic 직교성 강함) 보다 정합도 낮은 것이 PAPE 55.01 vs 84.97 의 한 후보 설명.
4. 통신량 trade-off¶
| ID | bytes/round | test_pape | comm-savings vs B3 | PAPE 손실 | savings/PAPE-loss 비 |
|---|---|---|---|---|---|
| B3 (NHITS noVQ) | 90,912 | 44.66 | baseline | — | — |
| E2 (NHITS+FreqBand) | 24,576 | 84.97 | −73.0% | +40.31 | −1.81 % saving / pape-pp |
| E1 | (확인 필요) | 55.01 | — | +10.35 | — |
| E4 | (확인 필요) | 67.59 | — | +22.93 | — |
E2 는 v10 VQ 4 E* 중 통신 절감 대비 성능 손실 비가 가장 비현실적. 73% 통신 절감을 위해 PAPE 가 1.9× 악화. on-device ESS 배포 관점에서 무의미.
5. 다른 v10 VQ 모델과의 비교 — E2 가 worst 인 이유 (점추정 가설)¶
| ID | Backbone | VQ | test_pape | util 평균 | 정성적 collapse 패턴 |
|---|---|---|---|---|---|
| E1 | NBEATSx | DecompCB (trend/seasonal/generic) | 55.01 | trend 5.0 / seasonal 20.3 / generic 9.9 | trend collapse, seasonal 가 가장 살아남음 |
| E2 | NHITS | FreqBandCB (low/mid/high) | 84.97 | low 11.8 / mid 10.6 / high 6.5 | 3-band 동시 collapse, high 가장 낮음 |
| E4 | Crossformer | PQ (4 sub × M=16) | 67.59 | sub1 16.8 / sub2 17.2 / sub3 17.3 / sub4 10.2 | 4 sub-space 중 3개 균일 plateau, 1개 (sub4) 만 약간 낮음 |
E2 가 worst 인 정성적 후보 설명: 1. Backbone–VQ 정합도 가장 약함 (§3.5): NHITS의 MaxPool 분해는 명시적 직교 분해가 아닌 단순 다중-rate down-sampling. NBEATSx 의 basis expansion 직교 vs Crossformer 의 cross-dim attention 분할이 구조적으로 더 명시적. 2. 3-stack additive 합성의 quantization noise 누적 (§3.3 가설 1): forecast = f_low + f_mid + f_high. 3 quantization noise 가 합산. NBEATSx 도 stack 합성이지만 (a) basis expansion 이 구조적 prior 를 강제, (b) trend stack 의 polynomial coeff 3-d θ 가 noise 흡수 capacity 작음. Crossformer 는 sub-space 분할 후 attention 으로 재조립 → noise 가 attention weight 으로 부분 dampened. 3. VQ_high_loss × 2 의 의도 역전 (§3.3 가설 2): peak-focus weighting 이 high stack 의 commitment loss 만 키워 collapse 가속. E1/E4 는 균일 weighting (β=0.25) 이라 이런 비대칭 collapse 압박이 없음. 4. per-band γ=0.85 (high) 가 noise 누적 가속 (§3.3 가설 3): E1 은 PER_CB_GAMMA 미상이지만, E4 PQ 는 단일 γ 사용 (sub-space 별 차등 γ 없음) — 비대칭 γ 자체가 E2 unique.
위 4 요인은 모두 E2 디자인에 unique 하며, 4 요인 동시 작용이 "v10 VQ 워스트" 결과의 가장 단순한 정성 설명. 단 단일 seed/단일 ablation 부재이므로 인과 주장 금지.
6. 성공 기준 vs 관측¶
| 기준 (설계서 §1.3) | 임계 | 관측 | 판정 |
|---|---|---|---|
| Strict Pass (4 E* 중 ≥1 충족) | PAPE ≤ 43 AND HR@1 ≥ 37 | 84.97 / 13.22 | E2 단독 FAIL (4 E* 합본 판정은 reporter) |
| Watch Pass (보조) | PAPE ≤ 43 OR HR@1 ≥ 37 | 84.97 / 13.22 둘 다 위반 | E2 단독 FAIL |
| Collapse-Free | 모든 CB util ≥ 20% | low 11.8 / mid 10.6 / high 6.5 | FAIL (3 CB 모두 위반, 30 round 전체) |
| Peak-Specialization | high CB peak window 선택 활성 | 측정 미구현 | FAIL (정성 증거 미수집) |
| H10-1 (high-freq CB peak focus) | PAPE < 42.51 AND high CB util > 50% | 84.97 / 6.5 | FAIL |
E2 는 모든 적용 가능한 성공 기준에서 FAIL. v10 phase 합본 판정은 reporter 단계에서 4 E* 수합 후 결정.
7. 한계 (Limitations & Risks)¶
- 단일 seed (42): 본 보고는 점추정만. PAPE 84.97 의 분산 미상. 단 v9-06 NHITS seed 분산 (~3-5%p) 을 고려해도 +40 PAPE 악화는 noise 로 설명 불가능한 magnitude.
- B3 vs E2 의 학습 길이 동일성: 둘 다 30 round, local_epoch=3 — 통제 비교 OK. 그러나 E2 는 K-means++ init 추가 step 이 있으므로 round 1 의 cliff (§3.2) 가 B3 에는 없음. 학습 일정이 완전히 동일하지는 않음.
- per-CB peak/non-peak 활성도 로깅 부재: H10-1 의 정성 증거 부재 (§2.3). 본 보고는 round-aggregated util 만 사용한 약한 형태의 검증. addendum 에서 로깅 추가 후 재실행 가능하나, util 6.5% 자체가 강한 기각 신호이므로 재실행 우선순위 낮음.
- MSE 가 좋은 함정 미인식 시 위험: §3.3 평탄화 collapse 분석 없이 MSE 0.48 만 본다면 "성공" 으로 오판할 수 있음. reporter 단계에서 MSE-only 비교 금지 권고.
- 3-band collapse 의 인과 메커니즘 4 후보 (§3.3) 미확정: ablation 부재. v11 에서 가설 1–4 를 분리할 ablation 설계 필요 (예: VQ_high × 1 vs × 2, γ=0.95 균일 vs 차등, K-means++ vs random init, single-stack VQ vs 3-stack VQ).
8. 다음 단계 권고¶
- E2 drop: 본 설계 (NHITS + MaxPool-band CB) 는 v11 에서 재시도하지 않음. v10 phase 의 다른 3 E* 결과와 합본해 reporter 가 v10 합본 판정.
- v11 재설계 후보 (만약 freq-band CB 자체를 살릴 가치가 있다고 reporter/critic 단계에서 결정한다면):
- STFT/wavelet 명시적 분해: NHITS pooling 대신 FFT-bin 또는 DWT level 별로 codebook 매핑. backbone–VQ 정합도 강화.
- Single-stack VQ (high only): 3 stack 모두 VQ 가 아닌 high stack 만 VQ. low/mid 는 dense forecast. 평탄화 collapse 의 원인 후보 1 (3-stack 합성 noise 누적) 제거.
- Residual quantization on stack outputs: stack hidden 직접 quantize 가 아닌, stack 간 residual 만 quantize (RQ-VAE 방식). 3 stack quantization noise 누적 회피.
- 로깅 의무화: 모든 v11 VQ 실험에서
cb_util_{cb_id}_{peak|nonpeak}per-round 강제. v10-02 §9.2 명세를 engineer contract 에 명시. - MSE-only 보고 금지: v10 합본 reporter 가 E2 MSE 0.4816 (B3 0.7732 대비 −0.29) 을 단독 인용하지 않도록 §3.3 평탄화 collapse 진단을 main narrative 에 포함.
- Bytes/PAPE trade-off 표기 표준화: §4 의
comm-savings/pape-loss-pp 비를 v10 합본 보고서의 표준 메트릭으로 채택 권고.
9. 참조¶
- 본 run: MLflow
v10-multi-model-vqexp 738860791398377455, run_id3d377754b8a54dbaafcf4ec85000e8ba(E2_NHITS_FreqBand_seed42, FINISHED) - 비교 runs:
- B3: run_id
7fc14b2e5b094123bed857591d2a8016(B3_NHITS_noVQ_seed42) - E1: run_id
1f7606b7b2774ee480105ced08fb8572(E1_NBEATSx_DecompCB_seed42) - E4: run_id
885b2ae059d64705a873af8d4e5245ba(E4_Crossformer_PQ_seed42) - 코드:
experiments/federated/v10_e2_nhits_freqband.py,src/peak_analysis/vq_layers/freq_band_cb.py,src/peak_analysis/fed_learning/memory_alignment_v10.py - 설계:
report/version10/lab-leader/v10-02_vq_multi_model_design.md,docs/decisions/ADR-010_v9_baseline_to_v10_vq_multi_model.md - recap baseline: v9-01 NHITS PAPE 39.26, v9-06 reporter
판정¶
E2 NHITS + FreqBandCB 는 H10-1, Strict, Watch, Collapse-Free 모든 성공 기준에서 FAIL. v10 VQ 4 E 중 PAPE 워스트 (84.97), 동일 backbone B3 noVQ 대비 +40.31 PAPE, 통신량 73% 절감 대비 PAPE 1.9× 악화. 근본 원인 후보 4 가지 (§3.3.4) 식별 — E2_simple ablation 으로 어느 후보도 분리되지 않음 (simple 은 더 극단적 단조 상수 collapse 로 빠짐). 단일 seed 한계로 인과 분리 미완. E2 drop 권고, v11 재설계 시 STFT/wavelet 명시적 분해 + single-stack VQ + peak/non-peak 로깅 의무화 가 후속 후보. simple ablation 결과로 v11 권고는 약화되지 않고 강화됨* (디자인 자체 결함 시사).
Revision 1 Changelog (2026-04-25)¶
critic verdict CONDITIONAL PASS 의 5 P0 + 일부 P1 항목 반영:
- §3.3 → §3.3.1/3.3.2/3.3.3/3.3.4 로 분할 재구성:
- §3.3.1: peak denominator 정의 (A)/(B)/(C) 명시. 본문 (A) 채택, (B) 12.5% / (C) 32.6% 병기로 robustness 확인 (P0-#3).
- §3.3.2: per-household std_ratio 분포표 추가. mean=0.267, IQR=[0.15, 0.35], #ratio<0.20 = 24/50 — broad-based collapse 확인 (Apt51 cherry-picking lesson 준수, P0-#4).
- §3.3.3: MSE 함정 적용 범위 명시. E2 specific 패턴 (E1/E4 는 동시 악화) — reporter narrative guard (P0-#5).
- §3.3.4: E2_simple ablation (run_id
621d889c2f61483ba3222f9710b10d36) 통합. PAPE 68.35 / MSE 1.40 / std_ratio 0.066 / corr -0.003 / best_round=0. 후보 4 어느 것도 분리되지 않음. simple 변호 거부 (P0-#2). - §3.4 plateau 수치 정정 (P0-#1): round 10-19 평균 339.4 → 335.74 (std 12.17), round 20-29 평균 333.5 → 335.07 (std 9.58). 차이 -0.67 (-0.20%). Welch t p=0.899, Mann-Whitney p=0.910 추가. plateau 결론은 정정으로 더 강하게 지지.
- §0 Executive Summary 갱신: smoking gun bullet 에 정의 (A)/(B)/(C) 분기 + per-household 분산 reference 추가. simple ablation bullet 신설.
- §1 메트릭 표 footnote 갱신: MSE 함정의 E2 specific 패턴 명시.
- §2.2 H10-1 표현 정정 (P1): "강한 형태 기각" → "OR 조건 두 축 독립 위반의 robust 한 기각" 으로 정확화.
- §3.2 K-means++ cliff 가설 약화 disclosure (P1): simple
kmeans_init=False에서도 best_round=0 → cliff 가 K-means unique 가 아닐 가능성 disclose. - §3.3 npy artifact path 정정 (P2): fully qualified path
mlruns/738860791398377455/3d377754b8a54dbaafcf4ec85000e8ba/artifacts/predictions/e2_y_pred.npy.
핵심 결론은 변경 없음: E2 drop 유지, v11 재설계 권고 유지, simple "16 좋아짐" 변호 거부. revision 1 은 narrative 보강과 통계 검정 추가로 결론을 더 강하게 지지.