[AI System] Federated Learning - Part 2

"Federated Learning - Part 2"

[Personalization in FL]

· Client A : 고양이 사진만 존재 / Client B : 자동차 사진만 존재 → Global Model : 둘 다 평균적으로 잘하지만 개인에겐 최적 X
→ Personalized Federated Learning 필요

Ex. 스마트폰 Keyboard → 사람마다 쓰는 단어 다름 / 말투 다름 / 언어 섞어서 사용
· Global Model : 일반적인 단어는 잘 맞춤 / Personalized Model : 내 습관까지 반영

Q) 각 Client마다 다른 Model을 사용해서 개인화할 거면 그냥 Federated Learning 없이 각자 학습하면 되지 않나?
A) No. 여전히 FL 필요 (∵ 데이터 부족 / 다양성 부족 / Overfitting 위험)


▣ Ditto
· Global Model과 Local Personalized Model을 동시에 학습

> Global Model Update
· 일반적인 Loss(CE Loss 등) 사용
** Update 후 Server로 전송

> Personalized Model Update
· 다른 Loss 사용 (Regularization 포함)
· Fk(vk) : Local Data에 잘 맞도록 Update
· || vk - wt ||2 : Global Model과 너무 멀어지지 않게 Update → Global Model에 살짝 묶여 있어 완전히 독립적인 학습 X
** 해당 Model은 Server로 보내지 않고 Local에만 저장

· 모든 Client의 wt+1, E를 모아서 평균을 낸 후, 새로운 Global Model 생성
· 각 Client는 Personalized Model(vt+1) 사용

> FedProx vs Ditto
· FedProx : Global Model을 목표 (μ = 0 → FedAvg Model과 동일)
· Ditto : Personalized Model을 목표 (μ = 0 → 완전히 Local Training Model)

∴ Ditto는 다른 사람 데이터를 활용하여 Local Only 보다 좋고, 개인화 가능하여 FedAvg보다 좋음

▣ Fine-Tuning Global Model Locally

· Global Model을 먼저 생성한 후, 각 Client가 각자의 데이터로 미세 조정
→ Global Model을 통해 다른 Client의 지식을 활용하기 때문에 Fine-Tuning은 Local Only보다 성능 좋음

** Ditto : 동시에 학습 / Fine-Tuning : 단계적으로 학습

▣ FedRep - Personalize Partial Layers
· Model을 나눠서 일부는 공유 / 일부는 개인화 → 입력 Feature : 공통 / 출력 결정 : 개인화

> Representation Layer
· 모든 Client가 공유
· Server로 전송하여 Server에서 Aggregation (FedAvg)

> Head Layer
· 각 Client가 따로 학습
· Server로 전송 X

** "Shared Representation + Personalization"은 Full Model Fine-Tuning, Ditto보다도 좋은 성능을 보임


[Privacy & Security in FL]

· 데이터는 Server로 보내지 않지만, Server로 보내는 Gradient는 Training Data 정보를 포함
→ 특정 데이터 x에 대해 Loss가 어떻게 변하는지 담고 있는 Gradient 자체가 정보이므로 안전 X

▣ DLG(Deep Leakage from Gradients)
> Normal Training
① 원본 데이터를 Model에 통과시켜 예측 값을 얻음
② 정답 Label과의 Loss를 계산하여 Model의 Weight를 Update할 Gradient(∇W)를 Server로 전송

> Deep Leakage Attak
① Server(공격자)는 Dummy Input(x')과 Dummy Label(y')을 무작위로 초기화하여 Noise를 포함한 Dummy Data 생성
② 이를 Model에 통과시켜 Dummy Gradient(∇W') 계산
③ 수신한 실제 Gradient(∇W)와 Dummy Gradient(∇W') 사이의 평균 제곱 오차(MSE)를 계산
④ 해당 오차가 최소화되도록 목적 함수를 최소화하는 방향으로 Model Weight가 아닌 Dummy Input과 Dummy Label를 Update

** 목적 함수가 Dummy Input과 Dummy Label에 대해 미분 가능해야 하며, 모델 F가 두 번 미분 가능하다는 가정 필요

> DLG Algorithm

> 실제 데이터 복원 결과
· 반복 횟수가 0인 경우 완전히 무작위 Noise였던 이미지가 loop를 반복함에 따라 점차 형태를 갖춤
· 반복 횟수가 500인 경우 원본 정답 이미지와 거의 구별할 수 없을 정도로 데이터가 완벽하게 복원

▣ Preventing Information Leakage
> DP(Differential Privacy)
· Model Parameter 또는 Gradient에 무작위 Noise를 추가하여, Server가 특정 Client의 원본 데이터를 유추하기 어렵게 만드는 방식
· Gaussian Noise(ε, δ)를 추가 : Model Parameter Update 값에 평균이 0인 정규 분포 기반의 Noise를 더함
※ ε : Privacy Budget → 값이 작을수록 Privacy 강함 / δ : Probability of Privacy Failure → Privacy가 깨질 확률

** Noise로 인해 Server는 각 Client의 훈련 데이터 정보를 빼내기 어려워지지만, Model의 정확도 역시 감소 → Trade-Off

> Secure Aggregation
· 암호화를 기반으로, Server가 개별 Client의 Model이나 Gradient는 절대 볼 수 없고 오직 "모든 Client Model의 평균값"에만 접근 가능

① Client 1과 2는 m1,2 = -m2,1 Mask를 비밀리에 공유 (Client 1과 3, Client 2와 3도 합치면 0이 되는 쌍의 Mask 생성)
② 각 Client는 자신의 원래 Model Weight(w)에 다른 Client들과 약속한 Mask를 더해서 Server로 전송
③ Server가 세 Client로부터 받은 값을 모두 더하면, Mask들이 서로 상쇄되어 오직 원본 Model Weight의 합만 얻음

· 무작위성 : Mask를 생성할 때 충분한 무작위성이 보장되지 않으면 Mask를 예측할 수 있어 Privacy가 깨짐
· Server의 한계 : Server는 오직 Model들의 총합(또는 평균)만 알 수 있고, 개별 Model은 절대 볼 수 없음

** 단 하나의 Client라도 학습 도중 연결이 끊기거나 Mask가 씌워진 Update를 보내지 못하면, Server에서 Mask들이 정상적으로 상쇄되지 않아 Model의 합 자체를 복구 불가

▣ FL in Different Topologies
> Fully Decentralized FL
· Client들이 중앙 Server로 Model을 보내는 대신, Network 상에서 자신과 연결된 이웃 기기들과 직접 Model 공유
→ Model을 취합하고 분배하는 중앙 Server가 없기 때문에 전체 Model을 쉽게 동기화하기 어려움

∴ Network 내의 여러 Model들이 어떻게 하나의 일치된 결과로 수렴할 수 있을지 Model 간의 합의를 이루는 Algorithm 고려

> Hierarchical FL
· Infra가 넓은 지역의 경우 여러 대의 Server가 존재하지만, 각 Server가 통신을 감당할 수 있는 영역이 제한적인 상황을 해결
① Edge 단위 집계 : 1차적으로 Edge Device들이 Local Model 근처의 Edge Server로 Upload하여 취합
② Global 단위 집계 : 2차적으로 Edge Server들이 취합된 Model을 최상위 Cloud Server로 보내 Global Model 집계

[Reference]

· Federated Learning Part 2 (AI System : Week 6) - Dongjun Han

댓글

이 블로그의 인기 게시물

[Mini-NPU RTL] NN Reference Model

[Mini-NPU RTL] TPU (Study Paper)