چیت‌شیت

سوگیری، عدالت و حریم خصوصی تفاضلی

Bias, Fairness and Differential Privacy

سنجش سوگیری، انتخاب معیار عدالت، آموزش با DP-SGD و ممیزی ادعای حریم خصوصی. نمونه‌های سبک با کتابخانه استاندارد پایتون.

  • ۱۲ بخش
  • ۳ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. مقایسه سه دسته‌ی عدالت در کنار هم
  2. کاربرد هر معیار
  3. فرمول‌ها
  4. دستورالعمل DP-SGD
  5. سوگیری در کجا سنجیده می‌شود
  6. آزمون ارزیابی ساده WEAT
  7. معیارهای گروهی و وزن‌دهی مجدد DP
  8. نمونه ساده DP-SGD
  9. پیش‌فرض‌های نمونه
  10. عیب‌یابی
  11. فراخوانی کدهای نمونه
  12. پرسش‌ها

مقایسه سه دسته‌ی عدالت در کنار هم

مقایسه
عاملعدالت گروهیعدالت فردیعدالت پادواقعی
قاعدهنرخ‌های یکسان میان گروه‌های محافظت‌شدهتصمیم‌های یکسان برای افراد مشابهعدم تغییر تصمیم با تغییر ویژگی‌های حساس
منبعبرابری آماری، برابری شانس‌ها، CUAEDwork و همکاران 2012Kusner و همکاران 2017
نیازمندی‌هابرچسب‌های گروه و پیامدهایک معیار تشابه dیک DAG علی
آزمون صورینرخ‌های برابر برای هر گروهثابت لیپشیتز Lتغییر پادواقعی
نقطه ضعفتعارض معیارها در صورت نابرابری نرخ‌های پایهتعریف d یک تصمیم سیاستی استاعتبار آن فقط به اندازه توجیه DAG است

کاربرد هر معیار

نکته‌ها
  • استفاده از برابری آماری وقتی ادعا، برابری نرخ پذیرش است.
  • استفاده از برابری شانس‌ها وقتی ادعا، برابری TPR و FPR در تمام گروه‌هاست.
  • استفاده از برابری دقت استفاده‌ی مشروط وقتی ادعا، برابری ارزش پیش‌بینی‌کنندگی است.
  • استفاده از عدالت فردی وقتی می‌توانید یک متریک d ویژه‌ی وظیفه تعریف کنید.
  • استفاده از عدالت پادواقعی وقتی یک DAG علی از جامعه آماری دارید.
  • استفاده از پادواقعی‌های پس‌گرد وقتی قانون مداخله در ویژگی‌های محافظت‌شده را منع می‌کند.

فرمول‌ها

مفهوم‌ها
برابری آماری
برای تمام گروه‌ها P(Y=1 | A=a) = P(Y=1 | A=a').
برابری شانس‌ها
P(Y=1 | Y*=y, A=a) = P(Y=1 | Y*=y, A=a').
برابری دقت استفاده‌ی مشروط
P(Y*=y | Y=y, A=a) = P(Y*=y | Y=y, A=a').
عدالت فردی
|f(x) - f(x')| <= L * d(x, x')
(ε, δ)-DP
$P(M(D) \in S) \le e^{\varepsilon} \cdot P(M(D') \in S) + \delta$
عبارت WEAT
s(w, X, Y) = mean cosine(w, X) - mean cosine(w, Y)
اندازه اثر WEAT
mean_a(s) - mean_b(s) روی گروه‌های هویتی.

دستورالعمل DP-SGD

گام‌به‌گام
  1. نمونه‌گیرنمونه‌گیری یک دسته‌ی کوچک.
  2. آموزش‌دهندهمحاسبه‌ی گرادیان‌ها به ازای هر نمونه.
  3. برش‌دهنده (Clipper)برش گرادیان هر نمونه تا سقف آستانه C.
  4. نوفهجمع گرادیان‌های برش‌خورده و افزودن نوفه‌ی گوسی با انحراف معیار $\sigma \cdot C$.
  5. بهینه‌سازاستفاده از مجموع نوفه‌دار برای به‌روزرسانی پارامترها.
  6. حسابداررهگیری هزینه حریم خصوصی با Moments Accountant یا Rényi DP accountant.

سوگیری در کجا سنجیده می‌شود

معماری
بازنماییرفتارمبتنی بر امبدینگWEAT روی امبدینگ‌های پیش از RLHFمبتنی بر احتمالدرست‌نمایی لگاریتمی کلیشه‌هامبتنی بر متن تولیدشدهامتیازدهی به رزومه‌ها، گفتگوآسیب بازنماییکلیشه‌سازی، نادیده‌انگاریآسیب تخصیصیپیامدهای مادی نابرابر

آزمون ارزیابی ساده WEAT

کد
python
A = ["he", "his", "man"]                     # گروه هویتی A
B = ["she", "her", "woman"]                  # گروه هویتی B
X = ["engineer", "programmer", "scientist"]  # فناوری / شغل
Y = ["nurse", "teacher", "caregiver"]        # مراقبت / خانواده
pre = weat_score(A, B, X, Y)                 # مثبت: A نزدیک‌تر به X
EMB = debias(EMB)                            # حذف راستای جنسیت از تصویر بردار
gender_dir = [1.0, -1.0, 0.0, 0.0]           # محور 1 منهای محور 0
post = weat_score(A, B, X, Y)                # کاهش می‌یابد، اما صفر نمی‌شود

معیارهای گروهی و وزن‌دهی مجدد DP

کد
python
train_data = gen(1000)                # پایه A=0 برابر 0.3، پایه A=1 برابر 0.6
test_data = gen(500)
baseline = train(train_data)          # تعداد گام 200، lr برابر 0.1
preds = predict(baseline, test_data)  # (pred, label, group)
demographic_parity(preds)             # rate0, rate1
equalized_odds(preds)                 # (TPR, FPR) به ازای هر گروه
conditional_use(preds)                # (PPV, NPV) به ازای هر گروه
dp_reweighted = train(train_data, sample_weights=weights)  # a=0 y=1: 2.0, a=1 y=1: 0.5

نمونه ساده DP-SGD

کد
python
grad_w = clip(grad_w, C)                 # مقیاس‌بندی به نرم C
grad_b = max(-C, min(C, grad_b))         # برش گرادیان بایاس
noise_b = random.gauss(0.0, sigma * C)   # انحراف معیار نوفه sigma * C
b -= lr * (grad_b + noise_b)             # به‌روزرسانی نوفه‌دار به ازای هر نمونه
for sigma in (0.0, 0.5, 1.0, 2.0, 4.0):  # پیمایش ضریب نوفه
    model = dp_sgd(train_data, epochs=epochs, lr=0.05, sigma=sigma, C=C)
    acc = accuracy(model, test_data)
eps = analytical_epsilon(max(sigma, 0.01), steps=epochs * len(train_data), delta=delta)

پیش‌فرض‌های نمونه

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
Clip norm `C`1.0نمونه درس 22
delta1e-5پیش‌فرض analytical_epsilon
epochs10نمونه DP-SGD، 500 ردیف آموزشی
DP-SGD `lr`0.05ثابت در پیمایش
sigma0.0SGD استاندارد، اپسیلون بی‌نهایت
Published ε[1, 10]صرفاً جهت نمایش، پیش‌فرض توصیه نمی‌شود
Fairness `train`steps: int = 200lr: float = 0.1

عیب‌یابی

عیب‌یابی
  • اثر WEAT به صفر نمی‌رسد

    علت
    سوگیری‌زدایی اثر را کم می‌کند اما از بین نمی‌برد
    راه‌حل
    افزودن معیارهای مبتنی بر احتمال و متن تولیدشده
  • تصویرسازی‌های متنوع، تصمیم‌گیری‌های نابرابر

    علت
    فقط آسیب بازنمایی سنجیده شده است
    راه‌حل
    آسیب تخصیصی را هم اندازه بگیرید
  • ارزیابی جنسیت قبول شد، سوگیری باقی ماند

    علت
    سوگیری روی جفت‌های (جنسیت، نژاد) فعال می‌شود
    راه‌حل
    اجرای آزمون‌های تقاطعی
  • شکاف DP کم می‌شود، EO و CUAE بدتر می‌شوند

    علت
    نرخ‌های پایه نابرابر
    راه‌حل
    معیار انتخابی را رسماً به عنوان سیاست اعلام کنید
  • MIA روی قناری نشت داده کمی نشان می‌دهد

    علت
    قناری‌ها «بیشترین داده‌های قابل استخراج» نیستند
    راه‌حل
    افزودن آزمون‌های استخراج داده‌های آموزشی
  • خروجی‌ها امن است، هویت افراد بازشناسایی شد

    علت
    نمرات اطمینان نشت می‌کنند
    راه‌حل
    آن‌ها را فاش نکنید، یا بُرش/کوانتایز کنید

فراخوانی کدهای نمونه

کار و کد
وظیفهکد
امتیازدهی به یک آزمون ارزیابی WEATweat_score(<identity_a>, <identity_b>, ...)
تصویر کردن بردار خارج از راستای سوگیریdebias(<emb>)
آموزش با وزن‌دهی مجددtrain(data, sample_weights=<w>)
برابری آماری به ازای هر گروهdemographic_parity(preds)
برابری شانس‌ها به ازای هر گروهequalized_odds(preds)
برش یک گرادیانclip(<g>, <C>)
آموزش با DP-SGDdp_sgd(data, epochs, lr, sigma, C)
اپسیلون برای یک اجراanalytical_epsilon(sigma, steps)

پرسش‌ها

پرسش و پاسخ
آیا یک مدل می‌تواند هر سه معیار گروهی را برآورده کند؟
خیر. نابرابری نرخ‌های پایه مانع آن می‌شود (Chouldechova, KMR 2017).
چرا پادواقعی‌های پس‌گرد؟
چون آن‌ها بر اساس ویژگی‌های واقعی استدلال می‌کنند و در ویژگی حساس مداخله‌ای انجام نمی‌دهند.
چرا MIA و آزمون استخراج هم‌نظر نیستند؟
آن‌ها چیزهای متفاوتی را می‌سنجند: قناری‌های درج‌شده در برابر «بیشترین داده‌های قابل استخراج».
ترکیب LoRA + DP-SGD از چه چیزی محافظت می‌کند؟
از تطبیق‌دهنده. مدل پایه ثابت نگه داشته می‌شود.
چرا عدم قطعیت در WinoIdentity مهم است؟
خطای برابر با عدم قطعیت نابرابر همچنان تخصیص را تغییر می‌دهد.