Mô hình học máy đảm bảo vi sai

Bảo mật dữ liệu và Ẩn danh trong Python

Rebeca Gonzalez

Data Engineer

Chia sẻ dữ liệu an toàn

Các công ty có dữ liệu tương tự chia sẻ thông tin để cải thiện sản phẩm và dịch vụ.
  • Bao gồm mô hình Machine Learning (ML)

Hình ảnh người xem biểu đồ dữ liệu

Bảo mật dữ liệu và Ẩn danh trong Python

Mô hình học máy đảm bảo vi sai

  • Công ty SaaS có nhiều cửa hàng trực tuyến đối tác
  • Đối tác mới có thể mất vài tháng để thu thập đủ dữ liệu
  • Với DP, công ty SaaS có thể khuyến khích các đối tác chia sẻ dữ liệu

Hình vẽ người đàn ông cầm laptop với tên lửa bay ra từ màn hình

$$ $$ Hình vẽ một người với nhiều biểu tượng người phía dưới, đại diện cho nhiều đối tác

Bảo mật dữ liệu và Ẩn danh trong Python

Học máy và quyền riêng tư

  • Tập dữ liệu chứa thông tin nhạy cảm
  • Kẻ tấn công có thể khai thác đầu ra của thuật toán học máy
Bảo mật dữ liệu và Ẩn danh trong Python

Học máy và quyền riêng tư

Mô hình học máy đảm bảo vi sai

  • Tuân theo phân phối dữ liệu tương ứng
  • Có thể đảm bảo quyền riêng tư cho từng cá nhân
Bảo mật dữ liệu và Ẩn danh trong Python

Mô hình phân loại đảm bảo vi sai

# Import the scikit-learn naive Bayes classifier
from sklearn.naive_bayes import GaussianNB


# Import the differentially private naive Bayes classifier from diffprivlib.models import GaussianNB
Bảo mật dữ liệu và Ẩn danh trong Python

Bộ phân loại không riêng tư

from sklearn.naive_bayes import GaussianNB

# Xây dựng bộ phân loại không riêng tư nonprivate_clf = GaussianNB()
# Huấn luyện mô hình nonprivate_clf.fit(X_train, y_train)
print("The accuracy of the non-private model is ", nonprivate_clf.score(X_test, y_test))
The accuracy of the non-private model is  0.8333333333333334
Bảo mật dữ liệu và Ẩn danh trong Python

Bộ phân loại đảm bảo vi sai

from diffprivlib.models import GaussianNB as dp_GaussianNB

# Xây dựng bộ phân loại riêng tư với constructor rỗng private_clf = dp_GaussianNB()
# Huấn luyện mô hình và xem điểm số private_clf.fit(X_train, y_train)
print("The accuracy of the private model is ", private_clf.score(X_test, y_test))
The accuracy of the private model is  0.7
PrivacyLeakWarning: Bounds have not been specified and will be calculated 
  on the data provided. This will result in additional privacy leakage.
  To ensure differential privacy and no additional privacy leakage, specify bounds for each dimension.
  "privacy leakage, specify bounds for each dimension.", PrivacyLeakWarning)
Bảo mật dữ liệu và Ẩn danh trong Python

Tránh rò rỉ quyền riêng tư

Để tránh rò rỉ dữ liệu, hãy truyền tham số bounds để thay thế giá trị min và max. Có thể là:

  • Bộ (min, max)
    • Số nguyên bao phủ min/max của toàn bộ dữ liệu
      • Ví dụ:
        (0,100)
        
    • Mảng min và max cho từng cột dữ liệu
      • Ví dụ:
        ([0,1,0,2],[10,80,5,70])
        
Bảo mật dữ liệu và Ẩn danh trong Python

Tránh rò rỉ quyền riêng tư

# Đặt bounds bao phủ ít nhất giá trị min và max 
bounds = (X_train.min(axis=0) - 1, X_train.max(axis=0) + 1)

# Xây dựng bộ phân loại với epsilon = 0.5 dp_clf = dp_GaussianNB(epsilon=0.5, bounds=bounds)
# Huấn luyện mô hình và xem điểm số dp_clf.fit(X_train, y_train) print("The accuracy of the private model is ", private_clf.score(X_test, y_test))
The accuracy of the private model is  0.807000
Bảo mật dữ liệu và Ẩn danh trong Python

Thêm về việc đặt bounds

# Import mô-đun random
import random
# Đặt min và max của bounds trong dữ liệu cộng thêm nhiễu
bounds = (X_train.min(axis=0) - random.sample(range(0, 30), 12), 
          X_train.max(axis=0) + random.sample(range(0, 30), 12))


# Xây dựng bộ phân loại với epsilon = 0.5 dp_clf = dp_GaussianNB(epsilon=0.5, bounds=bounds)
# Huấn luyện mô hình và xem điểm số dp_clf.fit(X_train, y_train) print("The accuracy of private classifier with bounds is ", dp_clf.score(X_test, y_test))
The accuracy of private classifier with bounds is 0.7544444444
Bảo mật dữ liệu và Ẩn danh trong Python

Các giá trị epsilon khác nhau

Biểu đồ so sánh độ chính xác theo các giá trị epsilon khác nhau

Bảo mật dữ liệu và Ẩn danh trong Python

Hãy tạo các mô hình bảo vệ quyền riêng tư!

Bảo mật dữ liệu và Ẩn danh trong Python

Preparing Video For Download...