본문 바로가기

데이터사이언스/federated learning

[논문 리뷰] Motely: Benchmarking Heterogeneity and Personalization in Federated Learning

1. 소개 

 clustering, meta-learning을 비롯한 다양한 personalized FL 방법론이 제안되었다. 하지만 clustering을 제안하는 논문에서는 일정한 cluster를 따라 데이터를 생성하는 것처럼 자신들의 가정에 맞는 데이터를 임의로 만들어낸다. 이렇게 하면 그 방법에 대한 유효성은 검증할 수 있지만, 현실에 그 방법을 적용했을 때 성공적일지는 알 수 없다. 따라서 이 논문에서는 데이터 이질성에 대응하고 personalized FL을 효과적으로 검증할 수 있는 벤치마크 Motely를 제안한다. Motely는 데이터 이질성을 효과적으로 반영하는 7개의 데이터셋과 5가지 personalized FL baseline과 그 결과로 구성되어있다.

 

2. personalized FL baselines

1) local trainning

다른 client와 연합하지 않고 client 자신의 데이터만으로 학습하는 방식이다. local 데이터가 부족하면 좋지 않은 성능을 보인다.

 

2) FedAvg + Fine-tuning

FedAvg를 이용해 global model을 학습시키고, 각 client가 자신의 local data를 이용해서 fine-tuning을 진행하는 방식이다. meta-learning과 유사한 방식이다.

 

3) HypCluster + IFCA

client를 cluster로 나누는 한편, cluster별로 모델을 학습시키는 방식이다. 두 방식 모두 다음과 같은 방식으로 학습한다. 각 round에 서버는 모든 cluster의 모델을 모든 client로 보낸다. 각 client는 받은 모델 중 자신의 local data에서 가장 작은 loss를 가지는 모델을 선택한다. client는 해당 모델을 학습시키고 결과를 서버에 전송한다. 서버는 FedAvg와 같은 방식으로 Aggregation을 진행한다.

 

4) FedAvg + kNN-Per

FedAvg, k-Nearest Neighbors(kNN) 두 모델의 결과를 앙상블하는 방식이다. 각 client의 local data에 대해, FedAvg를 통해repersentation vector를 얻는다.(마지막 softmax layer의 input, LSTM의 state 등) repersentation 사이의 유클리드 거리를 사용하여 kNN 모델을 학습시킨다.

 

5) Multi-Task Learning(MTL)

MTL은 task 사이의 관계를 (암시적 또는 명시적으로) 학습하여 여러 task를 수행하는 모델을 만드는 방법이다. FL setting에서 하나의 task는 한 client를 의미한다.

 

3. Cross-Device Experiments

Cross-Device dataset에서 personalized FL method별 client의 accuracy

4 종류의 cross-device dataset에서의 실험 결과이다. EMNIST는 3400 client에서 알파벳+숫자를 분류하는 MNIST의 확장판이다. StackOverflow는 38만개의 client에서 다음 단어를 예측하는 문제, landmark는 1200 client에서 이미지 분류 문제다. 마지막으로 TedMulti는 Transformer를 이용한 next word prediction 문제다.

 

1)  FedAvg + Fine-tuning

Fine-tuning이 일부 client의 정확도를 하락시킬 수 있다. (b), (c)는 Fine-Tuning을 진행한 후 각 client의 정확도 변화량을 나타낸다. (d)는 evaluation data를 1/4로 줄였을 때 정확도 변화량에 nosie가 추가되어 데이터가 더 넓게 분포된 모습을 확인할 수 있다.

 TedMulti를 제외한 모든 데이터셋에서 5가지 방법 중 가장 높은 평균 정확도를 보였다. (a): 평균적인 client는 Fine-Tuning을 진행한 뒤 정확도가 상승했다. (b): 일부 client에서는 Fine-Tuning 이후에 오히려 정확도가 떨어지는 모습을 보이기도 했다. (c): 적은 양의 데이터를 가진 client에서 정확도 하락 현상이 더 많이 발생했다. (d): evalution data를 1/4로 줄여더니 정확도 분포에 nosie가 더해졌다. 이처럼 적은 데이터로 인한 noise가 정확도 하락에 영향을 미쳤을 가능성이 있다. 또한 Global model에 최적화된 hyperparameter가 영향을 미쳤을 수 있다.

 

 Fine-tuning method는 어떤 layer를 어떤 learning rate로 몇 차례 epoch을 거쳐서 fine-tuning할지 결정해야 한다. 따라서 최소 3가지의 하이퍼파라미터를 결정해야한다. 하지만 1) 사용하는 Metric에 따라 최선의 하이퍼파라미터가 바뀌고, 2) client별 정확도는 noise가 있고, 3) 연합학습 자체의 하이퍼파라미터도 선정해야하기 때문에 결정하기 어렵다. 또한 이 방법은 Fine-Tuning에 사용되는 데이터가 client의 test 데이터와 다른 distribution shift가 일어나면 성능이 크게 떨어진다.

 

2) HypCluster / IFCA

 세개의 데이터셋에서 FedAvg 보다 약간 낫고, FedAvg + Fine-Tuning 보다 꽤 낮은 성능을 보였다. 또한 첫번째에 고른 cluster를 지속적으로 고르는 'Mode Collapse' 현상이 발생한다. FedAvg를 사용해 초기에 어느정도 학습을 진행하는 warm start로 완화시킬 수 있다. 매 round에 k개의 모델을 모두 전송해야 해, 통신비용이 FedAvg의 k배가 더 든다는 것도 단점이다. 또한 FedAvg를 k번 진행하고, 각 결과 모델을 앙상블 하는 것과 큰 성능 차이가 없다. 따라서 client 사이의 유의미한 cluster 구조를 학습하는지 의문이 제기된다.

 

3) FedAvg + kNN-Per

(a-b): 하이퍼파라미터 조정에 따른 두 Metric 변화량, (c) personalization을 위한 데이터 양이 줄어들수록 급격히 감소하는 정확도

(a-b): interpolation coeffcient가 0일 경우에는 personalizaiton을 하지 않고, 1일 경우에는 local kNN model만 사용한다. 파란색 그래프는 평균 정확도, 빨간색 그래프는 Fine-Tuning 이후 더 나은 성능을 가지는 모델의 비율이다. 해당 하이퍼파라미터에 따른 두 Metric의 최대값이 다르기 때문에 선택하기 어렵다.