연합 학습(Federated Learning)은 다수의 학습 능력을 소유한 클라이언트 집단이 각각 학습하여 데이터를 중앙 서버 한 곳에 모으지 않고 글로벌 모델을 학습하는 기술이다. 연합 학습은 H. Brendan McMahan의 논문 “Communication-Efficient Learning of Deep Networks from Decentralized Data” 에서 제안한 군집 학습 방법론으로, 이후 2017년 구글에서 공식적으로 연합 학습 기술을 기반으로 안드로이드 스마트폰에서 사생활 침해를 줄이면서도 학습가능한 G-Board 에 활용하여 널리 알려지게 되었다. [1]
[그림1] 안드로이드 스마트폰을 활용한 연합 학습 (Google AI Blog)
연합 학습은 인공지능 학습 단계에서 발생하는 학습데이터 속에 포함된 개인정보의 공개 문제, 단말에서 클라우드로 데이터를 전송하는 네트워크 문제 및 학습 모델의 배포에서 발생하는 커뮤니케이션 문제 등을 해결할 수 있어 주목을 받고 있다. 대표적으로 병원의 임상 데이터에 포함된 환자의 개인정보를 침해하지 않고 의료서비스를 위한 학습모델을 구축할 경우 데이터를 중앙 서버로 보내지 않고 로컬 클라이언트에서 부분적인 학습을 통해서 학습모델을 생성하는 것이 가능하기 때문에 개인정보 침해의 가능성을 낮춘다. 또한, 로컬 클라이언트에서 생성된 데이터를 학습을 위해서 중앙 서버로 전송한다면 전체적인 네트워크 트래픽이 증가와 저장공간의 부담이 매우 크다. 또한, 데이터 간의 동기화 문제가 있어 전체 데이터를 배치 학습하는 불편함이 야기된다. 연합학습 시스템구조에서는 로컬 클라이언트는 자신의 데이터에서 학습을 통해서 부분적인 로컬 모델을 생성하고, 이 학습된 모델만 배포함으로써 개인정보 유출 가능성과 네트워크 트래픽, 저장공간 등의 상당한 문제점과 비용을 줄일 수 있다. [그림 2]는 연합 학습의 방법론을 4단계에 걸쳐서 설명하고 있다.
[그림2] Federated Learning 동작 개념 설명
Photo: Jeromemetronome via Wikimedia Commons, CC By S.A. 4.0 (https://en.wikipedia.org/wiki/File:Federated_learning_process_central_case.png)
연합 학습은 크게 나누면 수평 연합 학습과 수직 연합 학습으로 구분된다.
2.1 수평 연합 학습 (Horizontal Federated Learning)
수평 연합 학습은 동일한 데이터 구성에서 다수의 로컬 클라이언트가 데이터를 나누어 학습하거나, 자신이 생성한 데이터만 학습하여 모델을 취합하는 방법으로 [그림 3]과 같은 구성과 절차로 동작한다. 로컬 클라이언트는 같은 특성 공간(Feature Space)를 공유하지만 다른 공간(Different Space)을 공유하는 [그림4-a]상황에서 수평 연합학습을 적용할 수 있다. [그림3]의 예제에서는 쇼핑몰 지점이 지역에 흩어져 있는 상황에서, 각 쇼핑몰의 고객이 대부분은 다르고 아주 일부의 고객만 쇼핑몰을 모두 이용한다. 하지만 각 쇼핑몰을 이용하는 고객들의 사업 분야가 유사한 경우 쇼핑몰의 특성 공간(Feature Space)는 일치한다고 볼 수 있다. 이와같이, 일치하는 일부 특성 공간을 활용해 각 로컬 클라이언트에서 로컬 모델을 학습하고, 이를 중앙 서버에서 연합하는 방법이 수평 연합 학습이다. 2017년, 구글이 발표한 안드로이드 스마트폰에서 적용 가능한 G-Board의 인공지능 학습 방법이 수평 연합 학습을 활용한 방법이다.