Deep Learning with Differential Privacy
[Abadi et al. CCS 2016] 딥러닝은 많은 데이터를 통해 학습이 이루어지는데, 이 데이터 중에 보안에 민간함 데이터가 포함되어 있을 수 있다. 따라서 모델은 이렇게 민간함 정보를 표출시키면 안된다. 이 논문에서는 새로운 SGD 알고리즘을 통해 수정된 privacy costs를 분석하고 differential privacy를 보장하는 모델 학습법을 제안한다.
Motivation
논문에서 가정하는 상황은 다음과 같다. attacker는
- 모델 파라미터에 접근이 가능하고
- 학습 매커니즘을 모두 알고 있다.1
Federated Learning이나 Edge Computing과 같은 분산 학습이 활발해질수록 위와 같은 상황에서 privacy를 적용하는 것은 중요하다. 왜냐하면 분산 학습에서 데이터는 Edge에 남아있기 때문에 데이터가 직접적으로 노출될 여지는 극히 드물게 된다. 다만, 서버와 유저 사이의 communication 단계에서 모델 자체에 대한 leakage가 일어날 수 있기 때문이다.
기존의 기계 학습에서는 Regularizer를 도입하여 학습된 데이터에 오버피팅을 방지하여, 모델에 대한 데이터의 노출을 방지할 수 있었다[^2]. 그러나 딥러닝으로 넘어와서 모델이 워낙 방대해지고 우리가 알 수 없는 영역들까지 학습을 해버리기 때문에 아무리 Regularization을 도입한다고 할지라도 Inverse Engineering이 가능해져버렸다. (라고 말하는데 진짜 그런지 찾아봐야하지 싶다. 본 논문에서 reference 달아놓은 논문들은 적절한 예시인지 나는 잘 모르겠다) 따라서 본 논문에서는 모델 파라미터를 안다고 할지라도 유저의 데이터를 구별해낼 수 없는 학습 알고리즘을 제안한다.
Method
Differential private SGD
저자들은 단순히 최종 모델에서 noise를 주는 것은 모델의 성능을 저해할 수도 있기 때문에, 학습 과정 중에서 treatment를 취하고자 한다. 아래 알고리즘에서 볼 수 있듯이, 기존의 SGD에서 Clipping과 Adding noise 부분이 추가되었다.
Clipping
개인적으로 기존의 Regularizer 혹은 Optimize를 용이하도록 해주었던 Clipping의 기능과 유사하다고 생각한다. 어떤 샘플 중에서 특별히 영향을 많이 미치는 부분들을 감쇄시키는 작업이라 여겨진다. 파라미터의 L2 norm이 C보다 클 경우에는 파라미터의 스케일을 C로 맞춰주고, C보다 작을 경우에는 그대로 사용을 한다.
Per-layer and Time Dependent Parameters
알고리즘에서는 나와있지 않지만 위의 Clipping Threshold C와 noise \(\sigma\)는 1) 레이어 별로 다를 수 있고, 2) 학습이 진행됨에 따라 변경할 수 있다. 본 논문에서는 고정을 하고 사용한 듯 하다.
Experiments
Dicussions
-
학습 매커니즘(mechanism)을 모두 안다라는게 정확하게 어떤 의미인지 모르겠다. 모델 파라미터까지 모두 알고 학습 매커니즘을 모두 알고 있다라는 것은, 애시당초 데이터를 제외한 모든 정보를 알고 있다는 말일까? ↩
Leave a comment