Anti Math Math Club

Privacy Preserving Machine Learning (2) - Differential Privacy 본문

Machine Learning & Deep Learning/Privacy Preserving ML

Privacy Preserving Machine Learning (2) - Differential Privacy

seewoo5 2021. 6. 13. 18:11

지난번 포스트에서는 Federated Learning에 대해서 알아보았습니다. 이번에는 Private Machine Learning 시리즈의 두번째, Differential Privacy에 대해서 소개하겠습니다. 

 

먼저, 저희가 데이터 과학자가 되었다고 생각해봅시다. (이미 데이터 과학자이신가요? 축하드립니다!) 저희가 다룰 데이터는 민감한 정보를 포함하고 있는 의료 데이터로, 각 환자들의 진료 기록이나 설문 기록등을 담고 있습니다. 이 데이터를 이용해서 여러가지 분석을 하고 모델을 만드려고 하는데, 데이터 하나하나에 직접 접근하는것은 불가능하다고 가정합시다. 대신, 우리는 이 데이터들이 있는 DB에 여러가지 쿼리(query)를 날려서 그 결과를 얻을 수 있습니다. 예를 들어, 특정 환자의 질병 유무를 물어보는 것은 금지되어있지만, 전체 환자들 중에서 특정 질병을 가진 사람이 몇명인지, 그 비율은 어느정도인지, 혹은 더 나아가 환자들의 데이터를 바탕으로 머신러닝 모델을 구축한다든지 등의 작접을 할 수 있습니다.

 

하지만 이런 방법은 데이터의 프라이버시를 지키는데에 전혀(!) 도움이 되지 않습니다. 특정 한명의 데이터에 직접 접근할 수 없다고 해도, 그 한명의 데이터가 포함된 데이터셋과 포함되지 않은 데이터셋에 대한 쿼리의 결과만 비교하면 한명에 대한 결과를 역으로 알아낼 수 있기 때문입니다. 가장 쉬운 예로, 특정 환자가 암에 걸렸는지 여부를 알기 위해서는 그 환자를 포함한 데이터셋과 포함하지 않은 데이터셋에 대한 암환자의 수를 비교하기만 하면 됩니다. (결과가 같다면 암에 걸리지 않았다는 것이고, 다르다면 걸렸다는 것이겠죠.) 다시말해서, 데이터셋을 입력으로 받는 특정 알고리즘(단순히 갯수를 세는 쿼리부터 머신러닝 모델까지)이 하나의 데이터의 변화(테이블에 하나의 row가 추가되었다고 생각해도 됩니다)에 대해 그 결과가 급격하게 변한다면, 그 변화를 바탕으로 역으로 그 '하나'의 데이터에 대해서 쉽게 추적할 수 있을 것입니다.

 

Microsoft Research의 Dwork를 비롯한 여러 학자들은 이러한 문제점을 개선하기 위해서 먼저 위의 상황을 수학적으로 정의합니다. 특정 알고리즘(여기서는 데이터셋을 입력으로 받아 실수값 여러개를 내뱉는 함수라고 생각하겠습니다)이 ε-differential privacy를 만족한다는 것은 다음과 같이 정의됩니다. (위키피디아에 있는 정의를 그대로 가져왔습니다.)

 

이 정의가 무슨 의미인지 음미해봅시다. A는 앞에서 언급한 쿼리에 해당하고, D1과 D2는 딱 하나의 element만큼만 다른 두 데이터셋입니다. 이때 각 데이터셋에 쿼리를 날려서 얻은 결과 A(D1)과 A(D2)가 같은 집합에 속할 확률의 비율이 최대 exp(ε)만큼 차이가 난다는 것입니다. 만약 epsilon이 0이라면 두 확률은 같아야하고 이는 쿼리의 결과로부터 D1과 D2를 전혀 구분할 수 없음을 의미합니다. 즉, 차이가 나는 하나의 element에 대한 정보를 전혀 얻을 수 없다는 것이죠. 반대로, ε이 매우 큰 값이라면 위의 부등식이 나타내는 확률에 대한 조건은 큰 의미가 없어지게 됩니다. 따라서 알고리즘의 ε이 작을수록 알고리즘의 결과로부터 D1, D2의 차이에 해당하는 element에 대한 정보를 알기가 더 힘들어지고, privacy를 좀 더 보장한다고 생각할 수 있습니다.

 

그렇다면, epsilon = 0인 알고리즘를 만들 수 있으면 privacy가 가장 잘 보존된다고 할 수 있겠죠? 안타깝게도, differential privacy에는 privacy와 알고리즘의 정확도 사이에 trade off가 존재합니다. 예를 들어, 입력 데이터셋에 관계없이 항상 동일한 방법으로 랜덤한 결과를 주는 알고리즘은 위 정의에 따르면 ε = 0인, 가장 이상적인 알고리즘입니다. 하지만, 이러한 알고리즘은 사실상 아무도 쓰지 않겠죠? 반대로, 알고리즘이 입력 데이터셋에 민감하면 민감할수록, ε의 값이 커질 수 밖에 없습니다. 그렇기 때문에 둘의 trade-off를 잘 고려해서 적절한 epsilon에 대한 A를 설정하는 것이 중요합니다.

 

다시 처음의 예시로 돌아가서, 암 환자의 수를 세는 쿼리를 좀 수정해서 differential privacy를 만족하도록 해 봅시다. Differential privacy의 개념을 처음 제시한 Dwork의 논문에서는 그 예시로 Laplace mechanism을 소개합니다. 이는 실제 결과에 noise를 더해줌으로써 differential privacy를 만족하도록 하는 것인데, 여기서 더해주는 noise를 Laplace distribution을 바탕으로 sampling하기 때문에 붙여진 이름입니다. (Laplace distibution은 exponential distribution의 symmetric한 버전이라고 생각하면 됩니다.) 정확히 말하자면, Dwork는 다음을 증명하였습니다.

 

논문을 보시면 알 수 있지만, 증명도 매우 간단합니다. 여기서 ε을 작게 잡을수록 privacy의 정도는 더 좋아지는 반면 해당되는 noise의 분포가 좀 더 퍼진 형태가 되기 때문에, 결과에 noise가 더 많이 포함되게 됩니다. 반대로, ε이 커질수록 noise의 분포가 0근처에 몰리는 형태가 되기 때문에 Laplace mechanism을 적용하지 않은 결과와 큰 차이가 없어지게 되고, privacy가 약해지게 됩니다.

 

Laplace mechanism외에도, 가우시안 분포를 noise로 이용하는 Gaussian mechanism도 있고, 고차원 버전 역시 비슷한 방법으로 보일 수 있습니다. 또한, 위의 예시처럼 단순한 쿼리 이외에도 머신러닝이나 딥러닝 모델에 differential privacy를 적용하는 연구도 최근에 많이 나오고 있습니다. 일례로, DP-SGD는 이름처럼 머신러닝 모델이 differential privacy를 만족시키도록 Stochastic Gradient Descent를 수정하였습니다(예상하셨겠지만, gradient에 noise를 더해줍니다). 머신러닝이나 딥러닝에 differential privacy를 적용하는 연구들에 대해서는 이 survey 논문과  이 survey 논문을 참조하시면 좋을 것 같습니다.

 

다음 포스팅에서는 Private ML의 세번째이자 마지막인 Homomorphic Encryption(동형암호)에 대해서 소개하도록 하겠습니다.