0Pricing
Learn AI with Python · درس

اكتشاف التحيّز في نماذج التعلم الآلي

السمات المحمية، والأثر المتباين، ومقاييس fairlearn، وتكافؤ الاحتمالات، والتكافؤ الديموغرافي

اكتشاف التحيّز في نماذج التعلم الآلي درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ما هو التحيز الخوارزمي

يكون النموذج متحيزًا عندما تضر تنبؤاته بصورة منهجية بمجموعة يحددها متغير حساس (مثل الجنس أو العرق أو العمر). وغالبًا ما ينشأ التحيز من بيانات تدريب غير متوازنة، وقد يسبب ضررًا حقيقيًا في قرارات التوظيف أو الإقراض أو الرعاية الصحية.

السمات الحساسة

السمة الحساسة هي المتغير الذي نقيس العدالة عبر فئاته، مثل الجنس أو الأصل العرقي. وتقارن مقاييس العدالة سلوك النموذج عبر المجموعات التي تحددها هذه السمة، حتى إن لم تُستخدم السمة كمدخل للنموذج.

التكافؤ الديموغرافي

التكافؤ الديموغرافي يقتضي أن يكون معدل التنبؤ الإيجابي متساويًا بين المجموعات. فإذا وافق نموذج القروض على 60% من طلبات المجموعة A، لكنه وافق على 35% فقط من طلبات المجموعة B، فإن التكافؤ الديموغرافي يكون منتهكًا بغض النظر عن الجدارة الائتمانية الحقيقية للمتقدمين.

# P(prediction = 1 | group = A) == P(prediction = 1 | group = B)

تكافؤ الاحتمالات

تكافؤ الاحتمالات أكثر صرامة؛ إذ يقتضي تساوي معدلي الإيجابيات الحقيقية والإيجابيات الكاذبة بين المجموعات. ويراعي هذا التعريف الوسم الحقيقي، ولذلك يسمح باختلاف معدلات الاختيار ما دام النموذج دقيقًا بالقدر نفسه لكل مجموعة.

# TPR and FPR equal across groups
# P(pred=1 | y=1, A) == P(pred=1 | y=1, B)
# P(pred=1 | y=0, A) == P(pred=1 | y=0, B)

التكافؤ مقابل الاحتمالات

يمكن أن تتعارض هذه المقاييس:

  • التكافؤ الديموغرافي يتجاهل الوسم الحقيقي، لذا قد يفرض تساوي المعدلات حتى عندما تختلف المعدلات الأساسية فعلًا
  • تكافؤ الاحتمالات يراعي الوسم الحقيقي، لكنه يسمح باختلاف معدلات الاختيار

لا يوجد مقياس واحد صحيح على نحو مطلق؛ إذ يعتمد الاختيار على السياق والقانون.

مقدمة إلى fairlearn

fairlearn مكتبة Python لقياس عدم الإنصاف والحد منه. وأداة القياس الأساسية فيها هي MetricFrame، التي تحسب أي مقياس بعد تفصيله حسب المجموعة الحساسة.

import pandas as pd
from fairlearn.metrics import MetricFrame
from sklearn.metrics import accuracy_score, selection_rate

إنشاء MetricFrame

تمرر قاموسًا من المقاييس، والوسوم الحقيقية، والتنبؤات، والسمات الحساسة. وتقيّم fairlearn كل مقياس لكل مجموعة.

mf = MetricFrame(
    metrics={
        "accuracy": accuracy_score,
        "selection_rate": selection_rate,
    },
    y_true=y_test,
    y_pred=y_pred,
    sensitive_features=X_test["gender"],
)

النتائج حسب المجموعة

تعيد السمة by_group جدولًا يضم كل مقياس لكل مجموعة، ما يجعل التفاوتات واضحة للوهلة الأولى.

print(mf.by_group)
#            accuracy  selection_rate
# gender
# female        0.81            0.34
# male          0.83            0.59

النتائج الإجمالية والفروقات

تعرض fairlearn أيضًا نتائج مجمعة: overall لمجموعة البيانات بأكملها، ودوالًا مساعدة مثل difference() وratio() تلخص الفجوة بين أفضل المجموعات وأسوأها.

print(mf.overall)
print(mf.difference(method="between_groups"))
# selection_rate    0.25  -> 25 point gap between groups

تصور التفاوتات

يحوّل مخطط أعمدة لـ by_group الأرقام إلى صورة بديهية. وتشكل الفجوة الكبيرة بين الأشرطة للمقياس نفسه إشارة تحذير واضحة إلى أن النموذج يعامل المجموعات بشكل مختلف.

mf.by_group.plot.bar(
    subplots=True,
    layout=[1, 2],
    figsize=(10, 4),
    title="Metrics by group",
)

من الكشف إلى التخفيف

بعد أن تقيس التحيز كميًا، توفر fairlearn خوارزميات للتخفيف (مثل ExponentiatedGradient والمعالجة اللاحقة باستخدام ThresholdOptimizer) تعيد تدريب النموذج أو تضبط العتبات لاستيفاء قيد من قيود الإنصاف. يأتي الكشف دائمًا أولًا: لا يمكنك إصلاح ما لم تقسه.

اختبار سريع

اختبر معرفتك بالإنصاف.

مراجعة

لقد تعلمت كيفية الكشف عن التحيز:

  • التكافؤ الديموغرافي يساوي معدلات التنبؤ الإيجابي بين المجموعات
  • تكافؤ الاحتمالات يساوي معدلي TPR وFPR مع مراعاة الوسم الحقيقي
  • يحسب fairlearn MetricFrame قاموسًا للمقاييس لكل مجموعة من sensitive_features
  • صوّر by_group لاكتشاف التفاوتات، ثم طبّق التخفيف

الأسئلة الشائعة

هل درس «اكتشاف التحيّز في نماذج التعلم الآلي» مجاني؟

نعم — نص درس «اكتشاف التحيّز في نماذج التعلم الآلي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «اكتشاف التحيّز في نماذج التعلم الآلي»؟

السمات المحمية، والأثر المتباين، ومقاييس fairlearn، وتكافؤ الاحتمالات، والتكافؤ الديموغرافي تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «اكتشاف التحيّز في نماذج التعلم الآلي»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. اكتشاف التحيّز في نماذج التعلم الآلي
  2. قيم SHAP لقابلية تفسير النماذج
  3. ‏LIME: تفسيرات محلية قابلة للتفسير
  4. أطر أخلاقيات الذكاء الاصطناعي وحوكمته
← العودة إلى Learn AI with Python