시작하기

이 문서에서는 귀하가 차등 개인 정보 보호에 이미 익숙하고 TF Privacy를 사용하여 모델에 차등 개인 정보 보호 보장을 구현하기로 결정했다고 가정합니다. 차등 개인 정보 보호에 익숙하지 않은 경우 개요 페이지를 검토하세요. TF Privacy를 설치한 후 다음 단계에 따라 시작하세요.

1. 기존 최적화 도구의 차등 비공개 버전을 선택하세요.

현재 TensorFlow 최적화 도구를 사용하고 있다면 [ TF Privacy ]의 [ DPKerasAdamOptimizer ]와 같이 DPKeras*Optimizer 라는 이름의 최적화 도구를 선택하고 싶을 가능성이 높습니다.

선택적으로 [ tf_privacy.VectorizedDPKerasAdamOptimizer ]와 같은 벡터화된 최적화 도구를 사용해 볼 수도 있습니다. 가능한 속도 향상을 위해(초당 글로벌 단계 측면에서) 벡터화된 최적화 프로그램의 사용은 실험에서 일관되지 않은 속도 향상을 제공하는 것으로 밝혀졌지만 아직 잘 이해되지 않았습니다. 이전과 마찬가지로 현재 사용하고 있는 것과 유사한 최적화 프로그램을 사용하고 싶을 가능성이 높습니다. 이러한 벡터화된 최적화 프로그램은 Tensorflow의 vectorized_map 연산자를 사용하는데, 이는 다른 Tensorflow 연산자와 함께 작동하지 않을 수 있습니다. 이 경우 TF Privacy GitHub 저장소에서 문제를 열어 주세요.

2. 입력 미니배치의 계산 손실

입력 미니배치의 손실을 계산할 때 스칼라로 집계하는 대신 예제당 하나의 항목이 있는 벡터인지 확인하세요. 이는 DP-SGD가 개별 마이크로배치에 대한 손실을 계산할 수 있어야 하기 때문에 필요합니다.

3. 모델 훈련

DP Optimizer(1단계) 및 벡터화된 손실(2단계)을 사용하여 모델을 훈련합니다. 이를 수행하는 데는 두 가지 옵션이 있습니다.

  • Model.fit 호출하기 전에 최적화 프로그램과 손실을 Model.compile 에 인수로 전달합니다.
  • 사용자 정의 훈련 루프를 작성할 때 벡터화된 손실에 대해 Optimizer.minimize() 사용하십시오.

이 작업이 완료되면 하이퍼파라미터를 조정하는 것이 좋습니다. 전체 연습을 보려면 분류 개인정보 보호 튜토리얼을 참조하세요.

4. DP-SGD 하이퍼파라미터 조정

모든 tf_privacy 최적화 프로그램은 세 가지 추가 하이퍼파라미터를 사용합니다.

  • l2_norm_clip 또는 \(C\) - 클리핑 표준(미니배치당 계산된 각 개별 그라데이션의 최대 유클리드(L2) 표준).
  • noise_multiplier 또는 \(σ\) - 클리핑 표준에 대한 표준 편차의 비율입니다.
  • num_microbatches 또는 \(B\) - 각 미니배치가 분할되는 마이크로배치 수입니다.

일반적으로 유효 표준 편차 \(σC / B\)가 낮을수록 평가 지표에 대한 훈련된 모델의 성능이 더 좋습니다.

세 가지 새로운 DP-SGD 하이퍼파라미터에는 다음과 같은 효과와 장단점이 있습니다.

  1. 마이크로배치 수 \(B\): 일반적으로 이를 늘리면 노이즈의 표준 편차가 낮아지므로 유용성이 향상됩니다. 그러나 시간 측면에서 훈련 속도가 느려집니다.
  2. 클리핑 표준 \(C\): 노이즈 스케일의 표준 편차는\(C\)이므로 \(C\) 그라디언트 표준의 일부 분위수(예: 중앙값, 75번째 백분위수, 90번째 백분위수)로 설정하는 것이 가장 좋습니다. \(C\) 값이 너무 크면 불필요하게 많은 양의 노이즈가 추가됩니다.
  3. 잡음 승수 \(σ\): 세 가지 하이퍼 매개변수 중 개인 정보 보호 수준은 잡음 승수에만 의존합니다. 소음 승수가 클수록 프라이버시가 더 많이 확보됩니다. 그러나 이는 또한 유용성의 상실을 동반합니다.

초당 단계 수 측면에서 유틸리티, 개인 정보 보호 및 속도 사이의 균형은 다음과 같이 요약됩니다.

절충

최적의 하이퍼파라미터를 찾으려면 다음 제안 사항을 따르세요.

  • 위에서 권장한 대로 \(C\) 분위수로 설정합니다. 1.00 값이 잘 작동하는 경우가 많습니다.
  • 최대 학습 속도를 얻으려면 \(B\) = 1로 설정하세요.
  • 허용 가능한 유용성을 제공하는 σ의 가장 큰 값을 찾기 위해 실험을 해보세요. 일반적으로 0.01 이하의 값이 잘 작동하는 것으로 관찰되었습니다.
  • \(σ\) 의 적절한 값을 찾으면 \(B\) 및 \(σ\) 상수로 확장하여 합리적인 개인 정보 보호 수준을 달성합니다.