การตรวจจับอคติในโมเดลแมชชีนเลิร์นนิง
คุณลักษณะที่ได้รับการคุ้มครอง ผลกระทบที่แตกต่าง ตัวชี้วัด fairlearn โอดส์ที่เท่าเทียม และความเท่าเทียมทางประชากร
การตรวจจับอคติในโมเดลแมชชีนเลิร์นนิง เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
อคติเชิงอัลกอริทึมคืออะไร
โมเดลมี อคติ เมื่อการคาดการณ์ของโมเดลทำให้กลุ่มที่กำหนดโดยคุณลักษณะที่อ่อนไหว (เพศ เชื้อชาติ อายุ) เสียเปรียบอย่างเป็นระบบ อคติมักเกิดจากข้อมูลฝึกที่มีสัดส่วนไม่สมดุล และอาจก่อให้เกิดอันตรายจริงในการตัดสินใจเรื่องการจ้างงาน การให้กู้ยืม หรือการดูแลสุขภาพ
คุณลักษณะที่อ่อนไหว
คุณลักษณะที่อ่อนไหว คือคุณลักษณะที่เราใช้วัดความเป็นธรรม เช่น เพศหรือชาติพันธุ์ เมตริกความเป็นธรรมจะเปรียบเทียบพฤติกรรมของโมเดลระหว่างกลุ่มที่คุณลักษณะนี้กำหนด แม้จะไม่ได้ใช้คุณลักษณะดังกล่าวเป็นอินพุตของโมเดลก็ตาม
ความเสมอภาคทางประชากร
ความเสมอภาคทางประชากรกำหนดให้อัตราการทำนายผลบวกต้องเท่ากันในทุกกลุ่ม หากโมเดลสินเชื่ออนุมัติคำขอของกลุ่ม A 60% แต่อนุมัติของกลุ่ม B เพียง 35% ก็ถือว่าละเมิดความเสมอภาคทางประชากร โดยไม่คำนึงถึงความน่าเชื่อถือด้านเครดิตที่แท้จริงของผู้สมัคร
# 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)ความเสมอภาคกับอัตราต่อรอง
ตัวชี้วัดเหล่านี้อาจขัดแย้งกันได้:
- ความเสมอภาคทางประชากรไม่สนใจป้ายกำกับจริง จึงอาจบังคับให้อัตราต่าง ๆ เท่ากัน แม้อัตราพื้นฐานจะแตกต่างกันอย่างแท้จริง
- อัตราต่อรองที่เท่าเทียมกันคำนึงถึงป้ายกำกับจริง แต่ยอมให้อัตราการคัดเลือกไม่เท่ากัน
ไม่มีตัวชี้วัดใดถูกต้องเสมอไปสำหรับทุกกรณี การเลือกใช้ขึ้นอยู่กับบริบทและกฎหมาย
ทำความรู้จักแฟร์เลิร์น
แฟร์เลิร์นเป็นไลบรารีไพธอนสำหรับวัดและลดความไม่เป็นธรรม เครื่องมือหลักสำหรับการวัดคือ MetricFrame ซึ่งคำนวณตัวชี้วัดใด ๆ โดยแยกตามกลุ่มที่มีความอ่อนไหว
import pandas as pd
from fairlearn.metrics import MetricFrame
from sklearn.metrics import accuracy_score, selection_rateการสร้าง MetricFrame
คุณส่งพจนานุกรมของตัวชี้วัด ป้ายกำกับจริง ผลการทำนาย และคุณลักษณะที่อ่อนไหวเข้าไป แฟร์เลิร์นจะประเมินตัวชี้วัดแต่ละรายการแยกตามกลุ่ม
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ผลรวมและความแตกต่าง
แฟร์เลิร์นยังรายงานมุมมองแบบรวมด้วย ได้แก่ 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",
)จากการตรวจจับสู่การลดความไม่เป็นธรรม
เมื่อคุณวัดปริมาณอคติแล้ว แฟร์เลิร์นมีอัลกอริทึมสำหรับลดความไม่เป็นธรรม เช่น ExponentiatedGradient และการประมวลผลภายหลังด้วย ThresholdOptimizer ซึ่งฝึกโมเดลใหม่หรือปรับค่าเกณฑ์เพื่อให้เป็นไปตามข้อกำหนดด้านความเป็นธรรม การตรวจจับต้องมาก่อนเสมอ เพราะคุณไม่สามารถแก้ไขสิ่งที่ยังไม่ได้วัดได้
ตรวจสอบความเข้าใจ
ทดสอบความรู้เกี่ยวกับความเป็นธรรมของคุณ
ทบทวน
คุณได้เรียนรู้การตรวจจับอคติ:
- ความเสมอภาคทางประชากรทำให้อัตราผลบวกเท่ากันในทุกกลุ่ม
- อัตราต่อรองที่เท่าเทียมกันทำให้ TPR และ FPR เท่ากันโดยพิจารณาจากป้ายกำกับ
- แฟร์เลิร์น MetricFrameคำนวณพจนานุกรมตัวชี้วัดแยกตามกลุ่ม
sensitive_features - แสดงภาพ
by_groupเพื่อค้นหาความแตกต่าง จากนั้นจึงใช้วิธีลดความไม่เป็นธรรม
คำถามที่พบบ่อย
บทเรียน “การตรวจจับอคติในโมเดลแมชชีนเลิร์นนิง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การตรวจจับอคติในโมเดลแมชชีนเลิร์นนิง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การตรวจจับอคติในโมเดลแมชชีนเลิร์นนิง”
คุณลักษณะที่ได้รับการคุ้มครอง ผลกระทบที่แตกต่าง ตัวชี้วัด fairlearn โอดส์ที่เท่าเทียม และความเท่าเทียมทางประชากร คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การตรวจจับอคติในโมเดลแมชชีนเลิร์นนิง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตรวจจับอคติในโมเดลแมชชีนเลิร์นนิง
- ค่า SHAP สำหรับการอธิบายแบบจำลอง
- LIME: คำอธิบายเฉพาะที่ที่ตีความได้
- กรอบจริยธรรมและธรรมาภิบาลด้านปัญญาประดิษฐ์