SplitNN-driven Vertical Partitioning
원문 : https://arxiv.org/pdf/2008.04137.pdf
이 페이퍼는 수직으로 분산된 훈련 partition에서 학습을 용이하게 하기 위해 SplitNN이라는 분산 딥 러닝 방법의 일환인 SplitNN 기반 수직 분할을 소개합니다. SplitNN은 협력 서버와 원시 데이터 또는 사용자 세부 정보를 공유하지 않습니다. 제안된 방법을 통해 복잡한 암호화 알고리즘이나 안전 계산 프로토콜 없이도 다양한 데이터 소스를 보유한 기관 간의 신경망 교육이 가능합니다. 이를 다양한 구성을 통해 평가하여 분할 모델의 출력을 병합하고 성능과 리소스 효율성을 비교합니다. 제안하는 splirNN은 유연한 architecture를 가지며 다양한 구성을 통해 수직 분할 데이터 세트로 인해 발생하는 문제를 해결할 수 있다는 장점을 갖습니다.

splitNN의 전반적인 목표는 데이터 프라이버시를 유지하면서 공유 모델을 훈련하는 것입니다.
이를 위해 그림과 같이 각 클라이언트에서 부분 신경망(NN)을 교육한 다음 서버 측에서 결합된 모델의 마지막 단계에 공급하기 전에 모든 출력을 집계합니다. 보다 구체적으로 SplitNN 아키텍처를 확장하여 순차적으로 사용하는 대신 각 반복에서 모든 client의 분할된 네트워크를 사용합니다.
집계 메커니즘 중에서 연결은 가장 간단한 접근 방식이며 모든 입력 기능을 사용하여 단일 네트워크를 교육하는 것과 유사합니다. 하지만 이 방법은 모든 반복에서 모든 네트워크의 중간 출력을 필요로 하므로 stragglers에 내구성을 갖지않습니다.
각 출력의 합과 평균 풀링은 굉장히 유사 합니다. 이 집계 방법의 문제는 모든 네트워크가 출력을 함께 결합할 수 있도록 호환 가능한 shape를 가져야 한다는 점입니다. 하지만 이러한 방법은 안전한 집계 프로토콜을 사용하여 알고리즘의 프라이버시와 보안을 강화할 수 있습니다.
각 요소별 최대 풀링은 또한 모든 네트워크가 호환 가능한 출력 형태를 가져야 한다고 했습니다. 이 경우 각 뉴런에 대해 최대값으로 활성화된 값만 채용하고 나머지는 버립니다. 이러한 과정은 main 네트워크에서 더 작은 네트워크로 오류를 역전파하는 과정에서 순차적으로 최적화되기 때문에 각 iteration에서 통신이 필요합니다.
제안하는 방법에서 각 client의 네트워크 일부는 출력을 다른 형태로 인코딩한 다음, 다음 차례의 네트워크(서버)를 위해 전송됩니다.
순차 계층의 시퀀스로 설명가능한 함수 F(x)라고 하면 다음과 같이 표현됩니다.

기울기는 이전 레이어의 gradient를 통해 현재 레이어를 업데이트 하는 형태로 순차 역전파가 진행됩니다. 이는 다음과 같이 구성됩니다.

순차적으로 계산된 결과를 전송하고 나머지 레이어를 계산하는 것은 실제로 하나의 신경망을 훈련하는것과 동일합니다.
미분의 chain rule 또한 위배 되지 않습니다. 이를 동시에 여러 client로 분할해서 전달하는 것은 오류가 분산되어 전달되는것과 같으므로 원 구성과 다르지 않습니다.

하지만 그림에서와 같이 특정 straggler가 존재하는 경우에 신경망의 일부를 잃어버릴 수 있습니다. 이는 Centralize를 제외한 다른 모든 경우에서 나타납니다. 이에 낙오자의 영향을 최소화 하는 것이 future work로 제시 됩니다.