콘텐츠로 이동

v6 실험1: 진행 상황 중간 정리

  • Date: 2026-04-14
  • Status: Batch 0+1 완료, Batch 2 P1 미완
  • TODO: todos/track-b_ver6_fl_advanced.md (실험1 실행 계획 섹션)
  • Goal analysis: report/version6/lab-leader/v6_0414_exp1_goal_analysis.md

1. 완료된 작업

Batch 0+1 (사전 작업 5건 중 4건 완료)

ID 작업 Status 결과
P0 PAPE 정의 통일 ✅ 완료 이미 compute_pape() 호출로 통일되어 있음 (추가 작업 불필요)
P4 pwlf 패키지 설치 ✅ 완료 pwlf 2.5.2 이미 설치됨
P5 TOU 시간대 매핑 유틸 ✅ 완료 classify_tou_period(), get_kepco_tou_prices() 이미 구현됨 (optimization.py)
P2 BESSParams 스케일링 검증 ✅ 완료 report/version6/exp-expert/v6_0414_bess_params_validation.md
P1 6 methods 예측값 추출 ✅ 스크립트 작성 완료 v6_0414_prediction_extraction.py (224 tests passed, 미실행)

P2 핵심 결론 (BESSParams)

  • 현재 cap_per_hh=12.0kWh → ceiling effect 확인 (Apt30에서 142% 에너지 커버리지)
  • 추천: cap_per_hh=5.0kWh (usable 4.0kWh, max_power=1.25kW)
  • Cross-HH mean 에너지 커버리지 27% → PAPE 차이가 비용으로 분화
  • 민감도 분석: 2.0 / 5.0 / 12.0 kWh 세 시나리오 실행
  • 분석 스크립트: experiments/ess_simulation/v6_0414_bess_params_analysis.py

UMass 가구별 피크 통계 (P2에서 확인)

가구 Daily Peak Mean (kW) P95 (kW) High-price Energy (kWh/day)
Apt6 3.83 6.07 ~20
Apt15 1.63 3.19 ~11
Apt30 1.10 2.13 ~7
Apt51 2.34 5.39 ~15
Apt88 3.89 6.42 ~22

2. 미완료 작업 (다음 세션 시작점)

P1: 6 methods 재학습 + 예측값 저장 스크립트 [스크립트 완료, 실행 대기]

스크립트 완료: experiments/ess_simulation/v6_0414_prediction_extraction.py - 224 tests passed, 문법 검증 완료 - GPU 실행 필요 (method당 5-15분, 전체 ~60분 예상)

# 전체 실행
uv run python experiments/ess_simulation/v6_0414_prediction_extraction.py

# 특정 method만
uv run python experiments/ess_simulation/v6_0414_prediction_extraction.py --methods scratch,fedavg

# 기존 결과 건너뛰기
uv run python experiments/ess_simulation/v6_0414_prediction_extraction.py --skip-existing

6 methods: scratch, local, fedavg, fedavg_ft_10, fedavg_ft_50, fedprox, feddf 출력:

outputs/ess_simulation/exp1_pape_cost/predictions/
  {method}_{household}.npz   # keys: predictions, targets, mean, std
  metrics_summary.csv         # method, household, mse, mae, pape, monthly_pape, hr

주의사항: - fedavgfedavg_ft를 모두 실행 시 FedAvg 학습이 2회 실행됨 (독립 trainer) - 전체 재학습 (수정된 v6 코드 반영), 기존 체크포인트 미사용

P3: Window→ESS 파이프라인 (P1 완료 후)

스크립트: experiments/ess_simulation/v6_0414_pape_cost_data_gen.py

핵심 설계 (A→B→C):

Step A: schedule = PulpBessSolver.solve(forecast, prices)  → p_ch, p_dis
Step B: actual_grid = actual_load + p_ch - p_dis  (고정 스케줄 적용)
Step C: actual_cost = sum(actual_grid * prices)

파라미터: - BESSParams(cap_per_hh=5.0, c_rate=0.25) - TOU: get_kepco_tou_prices() 사용 - 민감도: cap_per_hh = [2.0, 5.0, 12.0]

Batch 3-4 (P3 완료 후)

  • v6_0414_exp1a_monotonicity.py — Spearman rho + scatter (H1)
  • v6_0414_exp1b_threshold.py — Piecewise regression (H2)
  • v6_0414_exp1c_hr_complement.py — Partial correlation (H3)
  • v6_0414_exp1_summary.py — 종합 figure

3. 의존성 그래프 (현재 상태)

[✅] P0 (PAPE 통일)
[✅] P4 (pwlf 설치)
[✅] P5 (TOU 유틸)
[✅] P2 (BESSParams → 5.0kWh)
[✅] P1 (스크립트 작성 완료)
[⏳] P1 실행 (GPU) ←── 다음 세션 최우선
[  ] P3 (ESS 파이프라인) ←── P1 실행 완료 후
[  ] 실험1a/1b/1c (분석) ←── P3 완료 후
[  ] 실험1 종합

4. 다음 세션 액션 아이템

  1. 즉시: uv run python experiments/ess_simulation/v6_0414_prediction_extraction.py 실행 (GPU, ~60분)
  2. P1 실행 완료 후: P3 ESS 파이프라인 작성 (v6_0414_pape_cost_data_gen.py) — engineer
  3. P3 완료 후: Batch 3 실험 스크립트 1a/1b/1c (exp-expert)
  4. 실험 완료 후: 종합 figure + H1/H2/H3 판정