[연합학습 기본] 예시를 통한 핵심 개념 및 작동 원리 확인

2024. 8. 6. 01:22·통계 & 머신러닝/연합학습

`[연합학습 기본] FedSGD & FedAVG `에 이어지는 내용입니다.


과연...?!

뭐 이런 방법으로 원본 자료에 대한 프라이버시는 잘 지켜지는것을 잘 알겠습니다.... 그런데, 그냥 weight를 평균낸건데 과연 잘 작동 할까요..? 아래의 그림은 MNIST data set을 학습한 두개의 모델에 대해 weight를 평균내었더니 더 잘 결과가 나왔(오른쪽 plot)더라는 내용입니다.

 

해석해보면 각 plot에서 x축 맨 왼쪽은 첫번째 모델의 weight, 맨 오른쪽의 결과는 두번째 모델의 weight만으로 loss를 구한게 되겠고, 가운데로 갈수록 단순평균 낸 꼴이 됩니다.

 

그저 단순히 평균내면 잘 나오는게 아니라, 각 모델의 intialization point가 같아야 (오른쪽 plot) 나중에 업데이트되어 나온 weight들을 평균내었을때 이 방식이 잘 작동한다는걸 보입니다. 왼쪽의 plot은 initialization point가 달라 기존의 모델들보다 성능이 나빠진다는 이야기입니다.

FL로 학습시 매 round 마다 학습의 시작점이 모두 공통적으로 가장 최신에 update된 weight라, 이 내용이 적용됩니다.

(아래 참고)

Example code

약간 사기같다는 생각을 품은채 시뮬레이션을 돌려봤습니다. MNIST subset에 대해 다른 두 모델을 만들고, $\theta$에 따라 loss를 test dataset으로 평가해보았습니다.

Common Initialization

사실이었다(!!) 기존의 두 모델보다 더 좋은 성능을 보입니다...!! ㄷㄷ

그럼 시작점 다르게하면 더 나쁠까요...?

Independent Initialization

진짜 더 나쁘다...!! 신기하다... 누가 증명좀!!!

 

그렇다면 NON-IID에 대해서도 더 좋으려나? 일단 진짜 간단하게 모델 1은 train set에 1,2,7만 들어가고 모델 2는 나머지 digit이 들어가게하고, 샘플 수 또한 3:7로 불균형하게 해보았습니다. 그 결과 역시 평균낸게 기존의 방법보다 더 좋게 나옵니다!

Non-IID, common initialization

첨부된 코드로 한번 해보세요!

FLValidation.ipynb
0.06MB
FIG1_FLValidationNonIID.ipynb
0.05MB

 

'통계 & 머신러닝 > 연합학습' 카테고리의 다른 글

[Split Learning] 기본 구조  (0) 2024.08.11
[연합학습 기본] 결과  (0) 2024.08.06
[연합학습 기본] FedSGD & FedAVG  (0) 2024.08.06
[연합학습 기본] 구조와 고려 사항  (0) 2024.08.06
[연합학습 기본] 개념  (0) 2024.08.06
'통계 & 머신러닝/연합학습' 카테고리의 다른 글
  • [Split Learning] 기본 구조
  • [연합학습 기본] 결과
  • [연합학습 기본] FedSGD & FedAVG
  • [연합학습 기본] 구조와 고려 사항
CDeo
CDeo
잘 부탁해요 ~.~
  • 링크

    • Inter-link
    • LinkedIn
  • CDeo
    Hello World!
    CDeo
  • 공지사항

    • Inter-link
    • 분류 전체보기 (123)
      • 월간 (1)
        • 2024 (1)
      • 논문참여 (2)
      • 통계 & 머신러닝 (47)
        • 피처 엔지니어링 (2)
        • 최적화 (2)
        • 군집화 (5)
        • 공변량 보정 (4)
        • 생물정보통계 모델 (3)
        • 연합학습 (13)
        • 통계적 머신러닝 (13)
        • 논의 (0)
        • 구현 (2)
        • 스터디 (3)
      • 데이터 엔지니어링 (1)
        • 하둡 (1)
      • 코딩 (26)
        • 웹개발 (1)
        • 시각화 (2)
        • 이슈 (8)
        • 노트 (5)
        • PyTorch Lightning (5)
        • JAX (5)
      • 에너지 (2)
        • 뉴스 및 동향 (2)
        • 용어 정리 (0)
      • 기본 이론 (0)
        • 집합론 (0)
        • 그래프 이론 (0)
      • 약리학 (28)
        • 강의 (5)
        • ADMET parameter (16)
        • DDI (4)
        • DTI (0)
      • 생명과학 (1)
        • 분석기술 (1)
      • 일상 (15)
        • 연구일지 (3)
        • 생각 (8)
        • 영화 (1)
        • 동화책 만들기 (1)
        • 요리 (0)
        • 다이어트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.1
CDeo
[연합학습 기본] 예시를 통한 핵심 개념 및 작동 원리 확인
상단으로

티스토리툴바