ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Federated Learning (연합학습)
    최신 기술동향/인공지능 (AI) 2020. 9. 20. 08:09
    반응형

     AI와 5G/6G Communication Section에서 여러 인공지능 알고리즘을 소개했다. 인공지능은 전통적인 Machine Learning 알고리즘 이든, Deep Learning 알고리즘이든, 강화학습이든, 결국은 데이터를 기반으로 주어진 모델을 학습시키는 과정이다. AI는 Computer Vision이나 자연어처리 같은 다양한 분야에 쓰이고 있다. 통신 분야의 최신 논문에도 AI를 적용한 많은 연구결과가 실리고 있다. 최근, 통신 분야에 AI를 적용함에 있어서 Federated Learning (FL)이 주요 키워드로 자주 등장한다. 이번 글에서는 FL이 무엇이고, 왜 중요한 이슈이며, 어떤 연구가 이루어지고 있는지를 알아보고자 한다.

     

    Federated Learnign (FL)이란?

     Federated Learning (FL)을 번역하면 연합학습으로, 환경에 맞는 Model을 가지는 과정에서 다른 Uesr들과의 연합시스템을 구성하는 것이다. 기존의 Machine Learning 시스템은 User들의 데이터를 Centralized Server에 모으고, Server에 있는 Model을 학습시켜, User들에게 의사결정 결과를 전달하는 방식이었다. User들이 Low Latency를 요구하지 않고, 해당 정보가 일반적인 데이터라면, 시스템에 큰 문제는 없다. 하지만, 크게 두 가지의 Case에서 시스템에 문제가 생길 수 있다.

     

    1) Privacy가 담긴 Data를 주고 받을 때

     User와 Server가 주고 받아야하는 데이터가 환자의 진료기록이라는 가정을 해보자. 이 때, 여러 병원이 하나의 User로 생각될 수 있고, 병원이 가진 환자의 Data가 학습시키려는 데이터라고 생각할 수 있다. 이 때, 여러 병원이 사용하는 Server에서 각 병원이 가지고 있는 환자의 Data를 가져와서 학습을 시키려한다고 가정하자. 그러면, 병원은 환자의 데이터를 병원의 외부망으로 내보내야하는데, 이 때, 환자의 개인정보가 해킹당할 수도, 법적인 문제가 생길 수 있다.

     

    2) 많은 User들이 Low Latency를 요구할 때

     User들이 데이터를 Server에 업로드 하고, Server의 의사결정 반환값을 받은 User가 다음 Action을 선택한다고 가정하자. User들의 수가 적거나, 실시간 시스템을 요구하지 않는다면, Server에서 대답이 돌아오는 대로 다음 Action을 하면 된다. 하지만, 많은 User가 데이터를 보낸다면, End to End Latency로 인해 실시간 시스템에도 지장이 생길 수 있고, 통신 상의 Overhead도 너무 커진다.

     

    이를 해결하기 위해, Federated Learning (FL)이 등장했다. FL을 가장 잘 설명해주는 Google AI Blog [1]에서는 다음과 같이 설명하고 있다.

    "Federated Learning enables mobile phones to collaboratively learn a shared prediction model while keeping all the training data on device, decoupling the ability to do machine learning from the need to store the data in the cloud."

     즉, 여러 User가 Cloud에 있는 데이터를 사용하는 것이 아니라, 자신 Device에 있는 Data를 밖으로 안 나가게 하면서, 하나의 Prediction Model을 함께 학습시켜나간다는 얘기다. 이게 어떻게 가능한 얘기일까? 동작 방식은 다음과 같다.

    "Your device downloads the current model, improves it by learning from data on your phone, and then summarizes the changes as a small focused update. Only this update to the model is sent to the cloud, using encrypted communication, where it is immediately averaged with other user updates to improve the shared model. All the training data remains on your device, and no individual updates are stored in the cloud.

     요약하면, 우선 현재 최신의 AI Model을 다운받는다. 그리고, Cloud로 데이터를 올려보내는 것이 아니라, 각자가 가지고 있는 데이터로 학습을 시킨 Model을 올려보내는 것이다. 이렇게 여러 local User에서 올려보낸 Model 값을 기반으로 Cloud에서는 평균을 내는 등의 Globalization을 한다. 이런 최신 모델들을 여러 User들이 주기적으로 다시 다운 받는 방식으로 구성되어 있다.

    Federated Learning의 구조

    이 과정을 통해서 여러 User들의 큰 Data가 들어왔다 나갔다 하지 않음으로써, Power Consumption, Latency 측면에서도 이득을 볼 수 있다. 또한, Data의 내용이 전달되는 것이 아니고, 가중치 값들만 전달되기 때문에, 이 값만으로는 원래 Data가 무엇인지 알 수 없다. 따라서, Privacy 문제도 해결할수 있다.

     

    통신/네트워크에서의 Federated Learning

     Federated Learning (FL)의 Motivation은 크게 Priavcy 문제해결, 네트워크 성능향상으로 꼽았다. Privacy 문제는 데이터의 전송을 생각해보면 직관적으로 이해하기 쉽다. 하지만, 5G Section에서 다뤘던 것처럼 Distributed System을 구성할 때의 Control Overhead와 Real-Time 이슈를 생각해보면, FL이 네트워크 향상에 미치는 영향도 이해하기 쉽다. 이를 정리해놓은 [2] [3]논문을 보자.

     이 블로그의 5G Section에서도, Deep Reinforcement Learning (DRL)을 언급하면서 Distributed DRL에 대한 논문이 많이 나오고 있다는 얘기를 했다. 처음 DRL이 Base Station (BS)에서 정보를 모아, DRL 알고리즘에 의해, 최적의 Policy로 Action을 선택하고, User에게 명령을 내렸다. 시뮬레이션의 성능은 좋게 나오지만, Edge에 있는 User들과 빈번하게 정보를 주고받아야 하기 때문에 Overhead도 커지고, Impractical한 시스템이 만들어졌다.

     이를 보완하기 위해 나온 Distributed DRL에서는 각 User가 Agent가 되어 각각의 DRL Policy를 가지고 있다. 각 Agent들의 Policy는 독립적으로 Training하기도 하고, Cloud로 Data를 모아서 Training 시킨 후에, 모델을 다운받는 방식으로 이루어질 수 있다. Cloud로 Data를 모으고 Training 시키면, Privacy Issue를 해결할 수 없고, 데이터를 주고받는 Overhead도 커진다. 독립적으로 Training하기에는 각 UE에 들어오는 데이터의 양도 적고, 전체 Network 상황을 반영하기 힘든 상태로, Training하기 때문에 성능이 낮아질 수 있다. 더 나아가, Training 시키는 시간도 오래 걸린다. 이를 해결하기 위해 FL이 적용될 수 있다.

     FL은 UE에서 Train시킬 수 있는만큼 Train시키고, 가중치를 Cloud로 올려보낸다. 그러면 Cloud는 이렇게 모인 가중치를 평균내서 Global Optimized Model을 만든다. 이렇게 만들어진 Model을 UE가 주기적으로 Download받아서 다음 Download까지 다운받은 Model로 Action을 한다. 이렇게 함으로써, Privacy Issue도 해결하고, BS에서 Centralized하게 최적화하는 것과 비슷한 성능을 낼 수 있다.

     

    Federated Learning의 연구방향

     Federated Learning (FL)의 주요 연구방향은 작동방식을 보면 어느 정도 알 수 있다. Train시키는 알고리즘 자체는 DRL을 쓰던, 여러 AI를 쓸 수 있다. 하지만, 언제 어느 부분의 Weight를 Upload할 지, Cloud는 어떻게 이 Weight를 정리해서 Global Model을 만들지, Global Model을 언제 Download할지 등이 연구방향 중 하나가 될 수 있다.

     FL을 통신/네트워크에 적용한 연구들도 활발하게 이루어지고 있다. [4]에서는 Edge Network에 FL을 적용하는 논문에 대한 Survey를 진행하였다. Multi-Access Edge Computing (MEC)에 FL을 적용해서, 얼만큼의 데이터를 Edge Server로, Cloud Server로 Offloading할지에 대한 연구가 있다. 여러 User의 선호도를 취합해서 필요한 Data들을 Edge Sever에 가져다 놓기도 한다. 또한, 애초 목적 중 하나였던 보안을 위해 BlockChain과 결합해서, 각 User에서 들어온 가중치를 서로 Cross Verification (교차검증)하는 BlockFL이라는 알고리즘도 있다.

     이처럼 다양한 주제에 대해서 연구가 진행되고 있다. 최근에는 Tensorflow에서 FL을 위한 프레임워크 TensorFlow Federated (TFF) [5]를 만들었으니, 필요한 사람들은 링크에 있는 API를 참고하면 될 것 같다.

     

    Conclusion

     Federated Learning (FL)은 시스템을 구성하고 있는 User들의 연합을 통해서 실시간으로 좋은 성능을 내는 모델을 가질 수 있도록 한다. 데이터를 내보내는 것이 아니라 각자가 Train시킨 가중치만을 주고받기 때문에 Privacy Issue도 해결할 수 있고, 주기적으로 Model을 다운받고 다음 주기까지 그대로 쓰면 되기 때문에 Latency도 줄어들 수 있다. 이를 통해, 네트워크 성능도 Cloud나 BS에서 Centralized한 알고리즘을 만드는 것과 거의 유사한 성능을 보일 수 있다. 최근 5G에서 사용되는 Multi-Access Edge Computing (MEC)나, Deep Reinforcement Learning (DRL) 모델을 각 User가 갖고 있는 Multi-Agent DRL에도 적용될 수 있을 것으로 보인다. 또한, 개인정보가 담긴 중요한 데이터에 대해서도 Privacy 문제를 해결할 수 있는 좋은 기술이다. 단, 이 글에서 정확하게 FL 알고리즘을 하나하나 뜯어보지는 않았다. 관련 논문과 다른 분야 (5G, Security)의 논문을 읽어보면서, 적용될 수 있는 부분을 찾아, TFF [5] 프레임워크으로 구현해보면 좋은 결과가 나올 수 있지 않을까라는 생각을 해본다.

     

    Reference

    [1] Ai.googleblog.com/2017/04/federated-learning-collaborative.html

     

    Federated Learning: Collaborative Machine Learning without Centralized Training Data

    Posted by Brendan McMahan and Daniel Ramage, Research Scientists Standard machine learning approaches require centralizing the training data...

    ai.googleblog.com

    [2] X. Wang, Y. Han, C. Wang, Q. Zhao, X. Chen and M. Chen, "In-Edge AI: Intelligentizing Mobile Edge Computing, Caching and Communication by Federated Learning," in IEEE Network, vol. 33, no. 5, pp. 156-165, Sept.-Oct. 2019, doi: 10.1109/MNET.2019.1800286.

    [3] Sashank J Reddi, Jakub Konecn y, Peter Richt arik, Barnab as Pocz os, and Alex Smola. AIDE: Fast and communication efficient distributed optimization. arXiv:1608.06879, 2016.

    [4] W. Yang, et. al., "Federated Learning in Mobile Edge Networks: A Comprehensive Survey," arXiv: 1909.11875v1, Sept.2019.

    [5] www.tensorflow.org/federated?hl=ko

     

    TensorFlow Federated

    분산 데이터에 대한 기계 학습 및 기타 계산을위한 오픈 소스 프레임 워크입니다.

    www.tensorflow.org

     

    반응형

    댓글

Designed by Tistory.