Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

Federated Learning vs. Distributed Learning 본문

Computing Tech. Diary/Artificial Intelligence

Federated Learning vs. Distributed Learning

똘키아빠 2022. 5. 2. 11:29
AI나 컴퓨터와 관련해서 새로운 용어들이 계속 등장합니다. 그리고 요즘 세계적인 리서치회사에서 새로운 기술들의 개념을 쉽게 이해하도록 신조어들을 만들어 냅니다. 그래서 많은 사람들이 왜 이렇게 모르는 용어가 많으냐고 불평하기도 하는데, 아이가 태어나면 이름이 붙여주듯이 어떤 기술 및 개념에 이름을 붙인다고 이해하시면 좋겠습니다. 이렇게 이름을 붙이는 것도 추상화(abstaction)의 한 기법이 아닐까 생각합니다.

 

Federated learning이란 새로운 모델을 의미하는 것이 아니라 학습을 하는 형태를 구분하는 용어라고 이해하시면 될 것 같습니다. federared learning은 다수의 분산된 edge device 또는 서버들이 각각에 저장된 데이타를 활용하여 스스로 local model을 학습을 하고 학습한 결과 만을  중앙 서버로 전송하여 학습된 local model을 취합하여 global model을 학습시키는 기계학습 방법이라고 할 수 있습니다.
 

 

위의 표는 이러한 방법에 대한 절차를 설명하고 있습니다. 서버에서 학습한 모델을 선정하여, 해당 모델을 각 노드에 전송하고, 각 노드는 자체의 데이타를 활용하여 모델을 학습하고, 각 노드에서 학습한 local model을 중앙의 서버로 전송하면 이를 이용하여 global model을 학습하게 됩니다. 학습을 통제하는 방식이나 데이타의 복잡도 등에 따라 federated learning을 centralized federated learning, decentralied federated learning, heterogenous federated learning 등으로 분류하기도 합니다.

 

federated learning하면 언급되는 용어중에 Non-IID(Independent and Identically Distributed) data 라는 것이 있습니다. 확률 및 통계의 용어로서 확률변수 집합이 서로 독립적이고 동일한 확률분포를 가질 때 IID라고 합니다. 즉 Non-IID라는 것은 반대로 분산된 각 노드가 갖고 있는 데이타가 매우 성격이 다른 데이타와 불균형의 데이타가 존재한다는 것을 의미합니다. 따라서 federated learning에서는 이러한 문제를 어떻게 해결할 것인가, 그리고 각 모델 파라미터들을 어떻게 취합할 것인가 하는 것이 해결과제라고 할 수 있습니다.

 

그럼 distributed learning과는 어떤 차이점이 있을까요? distributed learning은 하나의 서버에서 처리하는 일반적인 centralized learning이 아니고 여러 컴퓨팅자원에 분산하여 처리한다는 개념을 통칭하는 용어입니다. 분산처리의 관점에서는 유사하다고 할 수 있지만 가장 큰 차이점은 distributed learning은 데이타를 중앙으로 취합하며, 데이타를 pre-processing 등을 통해 IID 데이타 형태로 처리하는 것이라고 할 수 있습니다. 따라서 local model을 취합하여 global model을 생성하는 방법에 차이가 존재하며, distributed learning의 경우는 데이타를 서버로 다 취합하여 이를 가공하여 다시 분산으로 학습을 진행하기때문에 data privacy 이슈가 존재하게 됩니다. 다시말해 fedrated learning은 local model을 학습하고 이를 취합하여 globla model을 생성하는 방식이 distributed learning보다 매우 복잡하다고 할 수 있으나,  data privacy 관점에서는 유리하다고 할 수 있습니다.
 

Comments