콘텐츠로 이동

Source: report/version5/exp-expert/v5_0413_FL_Report.md

Federated Learning 실험 보고서: Phase 2 & Phase 3

  • 작성일: 2026-04-13
  • 브랜치: claude/federated-learning-student-teacher-rcllW
  • 작성: Peak Analysis Research Team
  • 상태: Final

1. 실험 목적 및 배경

1.1 연구 맥락

본 프로젝트는 Knowledge Distillation 기반 경량 피크 예측 모델을 on-device BESS(Battery Energy Storage System)에 배포하기 위한 파이프라인을 구축하는 것을 목표로 한다. 기존 Ver3까지의 접근(Chronos Teacher → DLinear Student KD)에서 통계적으로 유의미한 성능 향상을 달성하지 못한 점이 확인되었으며, 이에 대한 대안으로 Federated Learning(FL)을 통해 다수 가구의 데이터를 프라이버시를 보존하면서 활용하는 방향을 탐색하게 되었다.

1.2 실험 목적

  • Phase 2: Local-Only 학습과 Federated 학습(FedAvg, FedProx, FedDF) 간 성능 비교를 통해 FL의 가치를 정량적으로 검증
  • Phase 3: FL로 학습된 글로벌 모델의 신규 가구(cold-start) 적용 가능성 평가, few-shot 시나리오에서의 효과 분석

2. 실험 설계

2.1 공통 설정

항목
모델 DLinear (univariate)
입력 길이 (seq_len) 96 timesteps
예측 길이 (pred_len) 24 timesteps
채널 수 1
Random Seed 42
GPU NVIDIA RTX 5070 Ti (bfloat16)
프레임워크 PyTorch 2.x, MLflow

2.2 평가 메트릭

메트릭 설명
MSE Mean Squared Error — 전반적 예측 정확도
MAE Mean Absolute Error — 절대 오차 평균
PAPE (%) Peak Absolute Percentage Error — 피크 시점의 예측 오차율 (낮을수록 좋음)

PAPE 정의: PAPE = mean(|peak(y_true) - peak(y_pred)| / peak(y_true)) × 100. 피크 시점의 상대 오차이므로 낮을수록 피크 예측이 정확하다.

2.3 Phase 2: Local vs Federated Baseline

항목 설정
Federation 구성 24가구 (20 random + 5 eval, EVAL_HOUSEHOLDS 포함)
평가 대상 Apt6, Apt15, Apt30, Apt51, Apt88
FL 라운드 수 10
로컬 에폭 5
학습률 1e-3
배치 크기 32

비교 조건 (5가지):

ID 방법 설명
L1 Local-Only 각 가구 데이터만으로 독립 학습
F1 FedAvg 10 round FedAvg 글로벌 모델 직접 적용
F3 FedAvg + FT(10ep) FedAvg 후 각 가구 데이터로 10 epoch fine-tuning
F4 FedProx (mu=0.01) Proximal term 추가로 non-IID 대응
F5 FedDF Data-Free Distillation 기반 연합 학습

2.4 Phase 3: Cold-Start Evaluation

항목 설정
Federation Pool EC50 중 45가구 (hold-out 제외)
Hold-Out Pool 5가구 (EVAL_HOUSEHOLDS)
FL 알고리즘 FedAvg, 10 rounds
Few-shot 비율 data_fraction ∈

비교 조건:

ID 조건 설명
CS0 Scratch 신규 가구 데이터만으로 처음부터 학습 (50 epoch)
CS1 Fed-Direct FL 글로벌 모델 zero-shot 적용 (fine-tuning 없음)
CS2 Fed-FT-10 FL 모델 + 10 epoch fine-tuning
CS3 Fed-FT-50 FL 모델 + 50 epoch fine-tuning

3. 실험 결과

3.1 Phase 2: 가구별 상세 결과

3.1.1 MSE (낮을수록 좋음)

Household L1: Local F1: FedAvg F3: FedAvg+FT F4: FedProx F5: FedDF
Apt6 0.7743 0.7790 0.7764 0.7771 0.7788
Apt15 0.1553 0.1506 0.1551 0.1508 0.1504
Apt30 0.0876 0.0830 0.0883 0.0831 0.0831
Apt51 0.6478 0.5754 0.6252 0.5727 0.5784
Apt88 0.9121 0.9092 0.9141 0.9068 0.9093

3.1.2 MAE (낮을수록 좋음)

Household L1: Local F1: FedAvg F3: FedAvg+FT F4: FedProx F5: FedDF
Apt6 0.6152 0.6201 0.6176 0.6191 0.6199
Apt15 0.2855 0.2810 0.2850 0.2812 0.2808
Apt30 0.2240 0.2185 0.2252 0.2186 0.2191
Apt51 0.5522 0.5196 0.5482 0.5185 0.5201
Apt88 0.6866 0.6811 0.6899 0.6801 0.6806

3.1.3 PAPE (%) (낮을수록 좋음)

Household L1: Local F1: FedAvg F3: FedAvg+FT F4: FedProx F5: FedDF
Apt6 40.74 47.59 40.92 47.21 47.53
Apt15 38.11 39.26 37.85 39.01 39.22
Apt30 42.99 42.82 42.70 42.55 42.65
Apt51 46.23 41.98 44.19 41.45 42.17
Apt88 44.47 46.32 44.42 45.95 46.29

3.1.4 평균 요약

Method Avg MSE Avg MAE Avg PAPE (%)
L1: Local 0.5154 0.4727 42.51
F1: FedAvg 0.4995 0.4641 43.60
F3: FedAvg+FT(10ep) 0.5118 0.4732 42.02
F4: FedProx(mu=0.01) 0.4981 0.4635 43.24
F5: FedDF 0.5000 0.4641 43.57

3.2 Phase 3: Cold-Start 결과

3.2.1 FL 수렴 상태

  • 45가구 FedAvg, 10 rounds 수행
  • Loss: 0.4128 (Round 1) → 0.4122 (Round 10)
  • Round 3부터 사실상 수렴 — 추가 라운드의 한계 효과 극히 미미

3.2.2 Few-Shot 평균 결과 (5가구 평균)

조건 Frac Avg MSE Avg MAE Avg PAPE (%)
CS0: Scratch 0.1 0.5732 0.5205 35.46
CS0: Scratch 0.3 0.5408 0.5037 37.25
CS0: Scratch 0.5 0.5254 0.4892 39.04
CS0: Scratch 1.0 0.5130 0.4720 42.33
CS1: Fed-Direct all 0.4993 0.4644 43.55
CS2: Fed-FT-10 0.1 0.5236 0.4870 38.96
CS2: Fed-FT-10 0.3 0.5288 0.4981 37.83
CS2: Fed-FT-10 0.5 0.5179 0.4863 39.20
CS2: Fed-FT-10 1.0 0.5133 0.4728 42.09
CS3: Fed-FT-50 0.1 0.6170 0.5624 31.17
CS3: Fed-FT-50 0.3 0.5574 0.5252 34.82
CS3: Fed-FT-50 0.5 0.5208 0.4889 38.72
CS3: Fed-FT-50 1.0 0.5111 0.4733 41.89

3.2.3 가구별 Cold-Start 상세 (frac=0.1, 극단적 few-shot)

Household Scratch MSE Fed-Direct MSE Fed-FT-10 MSE Fed-FT-50 MSE
Apt6 0.8775 0.7797 0.7994 0.9208
Apt15 0.1885 0.1501 0.1576 0.2089
Apt30 0.1160 0.0830 0.1021 0.1386
Apt51 0.6434 0.5756 0.6008 0.6556
Apt88 1.0411 0.9082 0.9582 1.1611

4. 분석 및 해석

4.1 Phase 2 핵심 분석

MSE/MAE 관점: FL이 소폭 우세

  • FedProx가 MSE 기준 최고 성능: Local 대비 MSE 3.4% 개선 (0.5154 → 0.4981)
  • FL 방법들(FedAvg, FedProx, FedDF) 간 성능 차이는 극히 미미 (MSE 차이 < 0.002)
  • Apt51에서 FL 효과가 가장 극적: Local MSE 0.648 → FedProx MSE 0.573 (약 11.6% 개선)
  • Apt6와 Apt88에서는 Local과 FL 간 차이가 거의 없음

PAPE 관점: Fine-Tuning의 중요성

  • FedAvg+FT(10ep)가 PAPE 기준 최고 (42.02%) — 가장 낮은 피크 오차
  • Local(42.51%)보다 소폭 개선, 순수 FL(FedAvg 43.60%)보다 확실히 우수
  • Apt6 anomaly: Local PAPE 40.74% → FedAvg PAPE 47.59% (악화). FedAvg+FT로 40.92%로 회복
  • Apt6의 고유한 피크 패턴이 FL 글로벌 모델의 일반화에 의해 희석됨. Fine-tuning이 이를 부분적으로 복원
  • Apt51: Local PAPE 46.23% → FedAvg PAPE 41.98% (개선)
  • Apt51은 FL을 통해 다른 가구의 피크 패턴 지식을 전이받아 피크 예측이 개선됨

MSE vs PAPE 트레이드오프

FL은 MSE/MAE(전반적 예측 정확도)를 개선하지만, PAPE(피크 오차)는 오히려 악화시키는 경향이 관찰된다. 구체적으로:

  • MSE 기준 순위: FedProx(0.498) > FedAvg(0.500) > FedDF(0.500) > FedAvg+FT(0.512) > Local(0.515)
  • PAPE 기준 순위: FedAvg+FT(42.02%) > Local(42.51%) > FedProx(43.24%) > FedDF(43.57%) > FedAvg(43.60%)

MSE가 좋은 방법일수록 PAPE가 나쁘고, PAPE가 좋은 방법(FedAvg+FT)은 MSE에서 상대적으로 약하다. 이는 FL의 글로벌 모델이 다수 가구의 평균적 패턴에 수렴하면서 개별 가구의 첨두(spike) 특성을 희석시키기 때문으로 판단된다. Fine-tuning은 이 희석된 피크 정보를 부분적으로 복원하는 역할을 한다.

4.2 Phase 3 핵심 분석

Fed-Direct(zero-shot)의 MSE/MAE 우위

  • 모든 data_fraction 구간에서 Fed-Direct가 MSE/MAE 최고 성능
  • frac=0.1 (극단적 few-shot): Fed-Direct MSE 0.4993 vs Scratch MSE 0.5732 → 12.9% 개선
  • frac=1.0 (full data): Fed-Direct MSE 0.4993 vs Scratch MSE 0.5130 → 2.7% 개선
  • 데이터가 적을수록 FL 글로벌 모델의 가치가 극대화됨

Fine-Tuning의 역설적 효과 (MSE 관점)

  • Fed-FT-10: Scratch보다는 좋지만, Fed-Direct보다 일관되게 나쁨
  • Fed-FT-50: frac=0.1에서 오히려 Scratch보다도 나쁨 (MSE 0.617 vs 0.573)
  • 적은 데이터로 과도한 fine-tuning을 수행하면 FL 글로벌 모델이 학습한 일반적 지식을 catastrophic forgetting으로 잃음
  • 데이터 부족 상황에서는 fine-tuning을 하지 않는 것이 MSE 기준 최선이라는 반직관적 결론

MSE vs PAPE Trade-off (Cold-Start)

Phase 2와 동일한 MSE↔PAPE 트레이드오프가 Cold-Start에서도 뚜렷하게 관찰된다:

Condition Frac MSE (↓) PAPE (↓)
CS_Fed-Direct all 0.499 (최선) 43.55 (최악)
CS0_Scratch 0.1 0.573 35.46
CS_Fed-FT-10 0.1 0.524 38.96
CS_Fed-FT-50 0.1 0.617 (최악) 31.17 (최선)
  • MSE가 가장 좋은 Fed-Direct가 PAPE에서는 가장 나쁘다 (43.55%)
  • PAPE가 가장 좋은 Fed-FT-50(frac=0.1)이 MSE에서는 가장 나쁘다 (0.617)
  • Fine-tuning은 MSE를 악화시키지만 피크 오차(PAPE)는 개선한다
  • 이 트레이드오프는 FL 글로벌 모델이 전반적 예측력은 높지만 피크 특성을 희석하고, fine-tuning이 그 피크 정보를 복원하는 구조로 설명된다
  • ESS 운영 관점: 피크 예측 정확도(PAPE)가 비용 절감에 직결되므로, MSE만으로 방법론을 선택하면 최적이 아닐 수 있음

4.3 가구별 특성 요약

Household 특성 FL 효과
Apt6 높은 MSE (고변동성), 고유한 피크 패턴 MSE 중립, PAPE 악화 (40.7→47.6%) — FL이 피크 희석
Apt15 낮은 MSE (안정적 패턴) MSE/PAPE 모두 소폭 개선
Apt30 매우 낮은 MSE (예측 용이) MSE 소폭 개선, PAPE 중립
Apt51 높은 MSE, 개성 강한 패턴 MSE 크게 개선 (11.6%), PAPE도 개선 (46.2→42.0%)
Apt88 가장 높은 MSE (난이도 최고) MSE 소폭 개선, PAPE 악화 (44.5→46.3%)

5. 기술적 이슈 및 해결

5.1 MLflow Active Run 충돌

  • 문제: 중첩된 MLflow run이 활성 상태로 남아 후속 실험 기록에 충돌 발생
  • 해결: mlflow.end_run() 호출을 명시적으로 추가하고, context manager 패턴으로 전환

5.2 FedDF deepcopy Non-Leaf Tensor

  • 문제: torch.nn.utils 기반 FedDF 구현에서 deepcopy 시 non-leaf tensor에 대한 gradient 오류 발생
  • 해결: model.state_dict() 기반 복사로 전환하여 tensor graph 의존성 제거

6. 한계점

6.1 실험 설계 한계

  1. 평가 가구 수 제한: 5가구만으로 통계적 일반화에 한계 (Apt6, Apt51의 이상치가 평균에 큰 영향)
  2. 단일 모델 아키텍처: DLinear만 평가하여, 다른 경량 모델(PatchTST-tiny, TimesNet 등)과의 비교 부재
  3. Non-IID 정도 미측정: 가구 간 데이터 분포 이질성을 정량화하지 않아, FL 효과의 원인 분석이 제한적
  4. FL 라운드 수 고정: 10 rounds만 실험하여, 더 많은 라운드에서의 효과 미확인 (단, Phase 3에서 Round 3부터 수렴 관찰)

6.2 메트릭 한계

  1. MSE와 PAPE의 트레이드오프: 두 메트릭이 상반된 결론을 제시하며, BESS 운영 관점에서 어떤 메트릭이 더 중요한지에 대한 분석이 필요
  2. PAPE 값의 절대 수준: 모든 방법에서 PAPE가 31~48% 수준으로, 피크 예측 정확도가 전반적으로 낮음

6.3 재현성 관련

  • 가구 샘플링(20 random households)에 seed를 고정했으나, 다른 random sample에서의 일관성은 미검증
  • FedDF의 public dataset 구성에 대한 민감도 분석 미수행

7. 결론

7.1 Phase 2 결론

  1. FL은 Local-Only 대비 MSE/MAE에서 소폭 개선 (FedProx 기준 3.4%)을 달성하나, 그 차이는 크지 않다.
  2. PAPE(피크 포착) 관점에서 FL의 가치는 불명확하며, 가구 특성에 따라 개선/악화가 갈린다.
  3. FedAvg, FedProx, FedDF 간 성능 차이는 무시할 수준이므로, 가장 단순한 FedAvg를 기본 알고리즘으로 채택하는 것이 합리적이다.
  4. Fine-tuning(F3)은 FL의 일반화 이점을 상쇄하여, Phase 2 맥락에서는 추가 가치가 미미하다.

7.2 Phase 3 결론

  1. Cold-start 시나리오에서 FL의 가치가 명확히 입증되었다. Fed-Direct(zero-shot)가 MSE/MAE 기준 모든 조건에서 최고 성능.
  2. 데이터가 적을수록 FL 모델의 이점이 극대화된다 (frac=0.1에서 MSE 12.9% 개선).
  3. MSE↔PAPE 트레이드오프가 Cold-Start에서도 재현: Fed-Direct는 MSE 최선이나 PAPE 최악(43.55%). Fine-tuning은 MSE를 악화시키지만 PAPE를 개선.
  4. Fine-tuning은 데이터 부족 시 MSE 기준 해로움: catastrophic forgetting으로 인해 MSE 악화. 단, PAPE 기준으로는 fine-tuning이 피크 예측을 개선.
  5. 실용적 시사점: MSE 최적화(일반 예측)와 PAPE 최적화(피크 예측)를 분리하여 고려해야 하며, ESS 운영에서는 PAPE가 더 직접적인 비즈니스 가치를 가질 수 있다.

7.3 종합 판단

FL은 cold-start 문제 해결에 가장 뚜렷한 가치를 제공하며, 기존 가구에 대해서는 marginal improvement에 그친다. 단, MSE와 PAPE가 상충하는 트레이드오프가 Phase 2와 Phase 3 모두에서 일관되게 관찰되므로, 최적 방법론은 운영 목표에 따라 달라진다:

  • 일반 예측 정확도(MSE) 우선: Fed-Direct(zero-shot) 배포
  • 피크 예측 정확도(PAPE) 우선: Fed 모델 + Fine-tuning (적절한 epoch 탐색 필요)

BESS 최적화 파이프라인에서는 피크 시점의 정확한 예측이 비용 절감에 직결되므로, PAPE를 1차 메트릭으로 설정하고 FT 전략을 최적화하는 방향이 연구적으로 유의미하다.


8. 향후 과제

  1. N-ablation 실험 (Phase 2 Experiment B): federation 참여 가구 수(N)에 따른 성능 변화 분석
  2. Non-IID 정량화: 가구 간 데이터 분포 이질성 측정 및 FL 효과와의 상관관계 분석
  3. Personalized FL: Per-FedAvg, FedBN 등 개인화 FL 알고리즘으로 PAPE 트레이드오프 해소 가능성 탐색
  4. BESS 시뮬레이션 연계: FL 모델의 예측 결과를 MILP 기반 BESS 스케줄링에 투입하여 실제 비용 절감 효과 검증
  5. KD-FL 결합: Chronos Teacher → FL-DLinear Student 경로의 타당성 재검토

부록

A. 실험 로그 파일 위치

파일 설명
outputs/fed_learning/logs/fed_train_local_20260413_135136.csv Phase 2 - Local baseline
outputs/fed_learning/logs/fed_train_fedavg_20260413_133700.csv Phase 2 - FedAvg (no FT)
outputs/fed_learning/logs/fed_train_fedavg_20260413_140534.csv Phase 2 - FedAvg + FT(10ep)
outputs/fed_learning/logs/fed_train_fedprox_20260413_141408.csv Phase 2 - FedProx
outputs/fed_learning/logs/fed_train_feddf_20260413_142334.csv Phase 2 - FedDF
outputs/fed_learning/logs/fed_cold_start_20260413_154834.csv Phase 3 - Cold-Start 전체

B. 모델 체크포인트

파일 설명
outputs/fed_learning/models/fed_global_model.pt Phase 2 글로벌 모델
outputs/fed_learning/models/fed_coldstart_fedavg_R10.pt Phase 3 글로벌 모델 (45가구)

C. 실험 스크립트

파일 설명
experiments/FedLearning/fed_train.py Phase 2 실험 스크립트
experiments/FedLearning/fed_cold_start.py Phase 3 실험 스크립트
src/fed_learning/trainer.py FederatedTrainer 구현
src/fed_learning/aggregators.py FedAvg, FedProx, FedDF aggregator
src/fed_learning/config.py FL 전용 설정