[FedProx] 등장 배경
·
통계 & 머신러닝/연합학습
`FedProx`의 첫번째 포스팅입니다.등장 배경이 논문은 기존의 연합학습에서의 이질성(Heterogeneity)을 해결하기 위해 등장한 방법론입니다. 여기서의 이질성은 크게 두가지로, client의 device와 같은 환경이 다름을 나타내는 `system heterogeneity` 와 client의 데이터의 분포가 다름을 나타내는 `statistical heterogeneity` (NON-IID와 거의 같은 개념) 로 나뉩니다. `FedProx`는 `FedAVG` 다음 시점에 등장한 방법론으로 보다 일반화된 방법을 제시합니다. FedAVG에서의 문제점그렇다면 기존의 방법론에서 구체적으로 어떤 문제점이 있을까요? 우선 기존의 방법에서 `local epoch`는 전반적인 수렴에 영향을 끼칩니다. 예를들어,..
[SplitFed] 구조
·
통계 & 머신러닝/연합학습
지난 글 `[SplitFed] 개념`에 이어지는 내용입니다.구조SplitFed(SFL)는 이름에서 알 수 있듯이, Split Learning(SL)과 Federated Learning(FL)을 결합한 방식입니다. 이 방법의 가장 큰 특징은 두 개의 서버를 사용한다는 점입니다. 하나는 FL을 위한 `fed server`, 다른 하나는 SL을 위한 `main server`로, 그림상 각각 `server2`와 `server1`에 해당됩니다. 주된 학습은 `server1`에서 이루어지기 때문에 이를 `main server`라 부릅니다.SFL에서 모델을 업데이트하는 방식은 FL의 방식을 차용하며, 계산의 효율성과 구조적인 보안성을 고려하여 SL도 활용합니다. 먼저 SL 부분을 살펴보면, SFL은 기존 SL의 모델..
[SplitFed] 개념
·
통계 & 머신러닝/연합학습
`SplitFed`의 첫번째 포스팅입니다.서론SplitFed (SFL)은 Federated Learning (FL)과 Split Learning (SL)을 결합한 방법론입니다. 이 내용은 호주 연방과학산업연구기구(CSIRO)에서 출판한 논문에 등장합니다. 사실 이 논문의 결과는 그리 만족스럽지 않았습니다. 결과 부분을 보고 이 논문에 대한 리뷰를 할지 말지 고민이 많았던 논문입니다. 그럼에도 불구하고 논문을 읽다 보니, 구조적으로 활용 가능하거나 여러 개념을 조립하여 적용할 수 있을 것 같아 결국 끝까지 읽게 되었습니다. 이 논문에서는 새로운 구조의 제시와 프라이버시 보호 방법에 중점을 두고 있지만, 오늘은 이 논문의 구조에 대해서만 집중하여 포스트를 작성하려 합니다.SplitFedSplitFed는 Fe..
[Split Learning] 결과
·
통계 & 머신러닝/연합학습
지난 글 `[Split Learning] 기본 구조`에서 이어지는 내용입니다.결과Split Learning(SL)은 매우 간단하지만 흥미로운 아이디어입니다. 그렇다면 이 방법의 결과는 어떨까요? 아래는 VGG를 사용하여 CIFAR-10을, ResNet-50을 사용하여 CIFAR-100을 학습시킨 결과입니다. 여기서 주목할 점은, Client-side의 연산 부담이 적다는 것입니다. (참고로, 여기서 언급된 Split NN은 SL을 의미합니다.)또한, 주고받는 데이터 양에 대해서도 분석한 그래프가 있습니다.하지만, 이러한 기본적인 데이터셋에 대한 validation accuracy를 살펴볼 때, 기존의 FL 방법론이 수렴하지 못한다는 것은 다소 이상한 현상입니다. 실험 설계 단계에서 무엇인가 잘못된 것이 ..
[Split Learning] 응용 구조
·
통계 & 머신러닝/연합학습
지난 글 `[Split Learning] 기본 구조`에서 이어지는 내용입니다.U-shape 구조이 방법이 적합하게 적용될 수 있는 분야 중 하나는 의료 데이터, 특히 임상 정보를 다룰 때입니다. 의료 데이터는 원시 데이터뿐만 아니라 라벨(label)도 매우 민감한 자료이기 때문에, 라벨을 숨길 필요가 있습니다. SL에서는 라벨도 공유해야 한다는 부담이 있지만, 이는 간단한 방법으로 해결할 수 있습니다. 아래와 같이 구조를 변경하여 학습을 진행하면 됩니다.Vanilla 구조에서 라벨을 client에 남겨두고, 모델의 가장 끝단 정보를 client와 주고받으며 업데이트를 수행합니다. 물론 client와 server 간의 통신이 거의 두 배가 되겠지만, 민감한 정보를 완전히 노출하지 않는다는 점에서 큰 장점이..
[Split Learning] 기본 구조
·
통계 & 머신러닝/연합학습
`Split Learning`의 첫번째 포스팅입니다.Split LearningFederated Learning (FL)은 여러 기관이 원시 데이터를 공유하지 않고도 협업할 수 있도록 하는 학습 전략입니다. FL은 구조적으로 분산된 데이터를 학습하기 때문에, 단일 머신에서의 학습 결과와는 다소 차이가 발생할 수밖에 없습니다. 이에 비해 Split Learning (SL)은 FL과 마찬가지로 원시 데이터를 공유하지 않으면서도 단일 머신에서의 학습과 동일한 결과를 얻을 수 있도록 하는 새로운 접근 방식을 제시합니다. SL에 대해 공부하기 전에는, 'Split'이라는 단어가 무엇을 쪼갠다는 의미인지 쉽게 감이 오지 않았습니다. 데이터를 쪼갠다는 의미일까? 그렇다면 샘플을 쪼개는 것인지, 아니면 피처를 쪼개는 것..