Federated Learning with Knowledge Distillation

1 minute read

Federated Learning에서 Knowledge Distillation으로 Communication Burden을 줄임과 동시에 GAN을 사용해서 Non-i.i.d를 해결하고자 하였다. 사실 두번째

Federated Learning에서 Knowledge Distillation으로 Communication Burden을 줄임과 동시에 GAN을 사용해서 Non-i.i.d를 해결하고자 하였다. 사실 두번째 논문인 FedMD

Federated Learning에서 Knowledge Distillation을 사용하는 논문은 2개 정도 있는 것 같은데 (다른게 있겠지만 제일 앞에 나온건 이 두 가지임), 첫번째 논문1은 KD로 Communication Burden을 줄임과 동시에 GAN을 사용해서 Non-i.i.d를 해결하고자 하였다. 사실 두번째 논문2 인 FedMD는 위에서 KD를 사용한 방식과 거의 유사하다.

fd-aug

요약

  • Federated Distillation에서는 나 이외의 다른 agent의 logit의 평균값을 knowledge distillation의 Teacher로 사용하였다(global-average logit vector). 그리고 local에서도 각각의 label마다의 logit의 평균을 이용하여 하나의 값을 도출하였다(local-average logit vector). local에서도 logit의 평균을 사용한 이유는 똑같은 데이터 샘플을 각각의 Learner가 가질 수 없기 때문에 그냥 statistically 평균으로 비교를 하고자 하였다.
  • 위의 세팅을 만족하기 위해서는 i.i.d가 되어야 하는데, 따라서 FL의 Non-i.i.d 문제를 해결하기 위해서는 중앙서버의 GAN에 각 agent가 일부 데이터를 샘플링하여 전달한 다음 서버에서 학습을 하고, GAN 모델을 다시 local에 전달을 한다. 이 때, 샘플링하는 데이터는 각자가 가지고 있는 데이터 중에서 모자라는 데이터의 클래스(target label)에서 일부를 가져온다. Privacy이슈를 줄이기 위해서 target label이 아닌 일반적인 데이터들도 섞어서 보내도록 한다.

생각

  • 첫째로 단순히 averaging logit vector를 사용하는 것은 충분히 문제가 될 수 있지 않나 싶다. 뭔가 증명이라도 해서 이걸 쓰면 의미가 있는 결과값이 나옴을 나타내야 한다.
  • 둘째로 결국 데이터를 반출해야 하기 때문에 GAN모델은 아무리 privacy leakage를 낮춘다고 할지라도 병원 데이터처럼 아예 밖으로 뺄 수 없는 상황에서는 해결하기 힘들다.
  • 따라서 Non-i.i.d에서는 KD를 단순히 average하는 방식에 의문을 품을 수 밖에 없다는 점, 그리고 Non-i.i.d를 해결하기 위해서 데이터를 빼와야한다는 점이 문제가 될 수 있을 것 같다.

Reference

  1. https://arxiv.org/abs/1811.11479 

  2. https://arxiv.org/abs/1910.03581 

Leave a comment