|

AI가 차별하는 충격적 이유 – 데이터 편향과 공정성의 모든 것


핵심 요약

“AI가 공정할 것이라 믿었는데, 왜 여성을 차별하고 흑인을 더 위험하다고 판단할까?” 이것이 바로 AI 편향(Bias) 문제입니다.

Amazon 채용 AI는 ‘여성’이라는 단어가 포함된 이력서에 감점을 주었고, 미국 법원의 COMPAS 알고리즘은 흑인의 재범 가능성을 백인보다 2배 높게 예측했습니다.
문제의 근원은 학습 데이터에 이미 존재하는 사회적 편견입니다.
과거 10년간 남성 위주로 채용한 데이터를 학습하면, AI는 “남성이 더 적합하다”고 판단합니다.
공정성(Fairness)을 측정하는 지표로는 통계적 동등성(Statistical Parity), 기회의 동등성(Equal Opportunity), 예측적 동등성(Predictive Equality) 등이 있으며, IBM의 AI Fairness 360Microsoft의 Fairlearn70개 이상의 공정성 지표와 11개 편향 완화 알고리즘을 무료 제공합니다.

실전에서는 사전처리(데이터 리샘플링), 중간처리(공정성 제약 학습), 후처리(임계값 조정) 세 가지 방법으로 편향을 완화합니다. EU AI Act(2024)고위험 AI에 편향 분석 의무화, 미이행 시 매출 7% 또는 3,500만 유로 벌금을 부과합니다.

본 포스팅에서는 편향의 원인과 유형, 실제 사례(Amazon/COMPAS/얼굴인식), 공정성 지표 수학적 정의, AIF360/Fairlearn 실전 코드, EU AI Act 규제, 윤리적 AI 설계까지 전문가와 입문자 모두를 위한 완벽 가이드를 제공합니다.


📍 목차

  1. AI 편향이란? – AI가 차별하는 이유
  2. 충격적인 AI 편향 실제 사례
  3. 공정성 지표 – 수학으로 편향 측정하기
  4. 편향 완화 기법과 실전 코드
  5. 법적 규제와 EU AI Act
  6. 윤리적 AI 설계 가이드

1. AI 편향이란? – AI가 차별하는 이유

1-1. 편향(Bias)의 정의

기술적 정의:

AI 편향(Bias):
AI 시스템이 특정 집단에 대해 부당하게
유리하거나 불리한 결과를 산출하는 현상

비유:
- 저울이 한쪽으로 기울어진 것
- 심판이 한 팀만 편드는 것
- 기울어진 운동장에서 경기하는 것

핵심 개념:

보호 속성(Protected Attribute):
차별이 금지된 특성
- 성별 (남성/여성)
- 인종 (백인/흑인/아시아인)
- 연령 (청년/노년)
- 장애 여부
- 종교
- 출신 지역

이상적 AI:
보호 속성과 무관하게 동일한 자격 조건에
동일한 결과를 산출해야 함

1-2. 편향의 5가지 원인

1. 데이터 수집 편향 (Selection Bias):

정의:
데이터가 특정 집단에 편중되어 수집됨

예시:
- 얼굴 인식 학습 데이터: 백인 80%, 흑인 10%
- 의료 AI 데이터: 부유층 환자 위주
- 자율주행 데이터: 도시 지역 위주

결과:
- 흑인 얼굴 인식 정확도 35% 하락
- 저소득층 질환 진단 누락
- 농촌 지역 자율주행 오류

2. 역사적 편향 (Historical Bias):

정의:
과거 사회의 불평등이 데이터에 반영됨

예시:
- 과거 10년 채용 데이터: 남성 70%, 여성 30%
- 대출 승인 이력: 고소득층 위주
- 범죄 기록: 특정 지역/인종 집중 단속

핵심 문제:
"데이터가 정확해도 공정하지 않을 수 있다"
→ 과거의 차별을 미래에 재생산

3. 라벨링 편향 (Labeling Bias):

정의:
라벨 작업자의 편견이 데이터에 반영됨

예시:
- "전문적인 외모" 라벨링 → 백인 남성 편향
- "위험한 행동" 라벨링 → 특정 인종 편향
- "우수 직원" 라벨링 → 관리자 편견 반영

해결:
- 다양한 라벨러 확보
- 명확한 라벨링 가이드라인
- 교차 검증

4. 대리 변수 편향 (Proxy Bias):

정의:
직접적으로 인종/성별을 사용하지 않아도
간접적으로 추론 가능한 변수 사용

예시:
인종을 변수로 사용하지 않아도:
- 우편번호 → 인종 추론 가능
- 이름 → 성별/민족 추론 가능
- 학교 → 사회경제적 지위 추론 가능

COMPAS 사례:
"인종" 변수 없었지만
"거주지역", "가족범죄이력" 등으로
인종 차별 재현

5. 알고리즘 편향 (Algorithmic Bias):

정의:
모델 설계나 최적화 과정에서 발생하는 편향

예시:
- 정확도만 최적화 → 소수 집단 무시
- 다수 클래스 과적합
- 불균형 데이터 처리 미흡

해결:
- 공정성 제약 추가
- 균형 잡힌 평가 지표
- 집단별 성능 모니터링

1-3. 왜 AI 편향이 위험한가?

규모와 속도:

인간 면접관 vs AI 채용:

인간:
- 하루 10명 면접
- 개별 판단, 항소 가능
- 편향 발견 시 즉시 수정

AI:
- 하루 10,000명 평가
- 일괄 판단, 자동화
- 편향 발견까지 수개월/수년

결과:
AI 편향은 인간 편향보다
수백~수천 배 빠르게 피해 확산

책임 소재 불명확:

차별 발생 시:

인간 결정:
- 담당자 특정 가능
- 의도 확인 가능
- 법적 책임 명확

AI 결정:
- "알고리즘이 그렇게 판단"
- 의도 불명확
- 책임 분산

→ 피해자 구제 어려움

2. 충격적인 AI 편향 실제 사례

2-1. Amazon 채용 AI (2014-2018)

배경:

목표:
- 우수 엔지니어 채용 자동화
- 이력서 1-5점 평가
- 상위 5명 자동 추천

개발:
- 2014년 시스템 개발 시작
- 과거 10년 채용 데이터 학습
- 수백만 달러 투자

문제 발견:

2015년 시뮬레이션 결과:

발견 1: 남성 지원자 점수 > 여성 지원자 점수
발견 2: "여성"이 포함된 이력서 감점
  - "여성 체스 동아리 회장" → 감점
  - "여자대학교 졸업" → 감점
발견 3: 남성적 표현 가산점
  - "실행(executed)", "포착(captured)" → 가점

근본 원인:

과거 10년 채용 현실:
- 기술직 남성 채용 70%+
- 고성과자 대부분 남성
- 여성 퇴사율 높음 (경력 단절)

AI의 학습:
"남성 = 성공적 채용"
"여성 = 덜 적합"

→ 과거 불평등을 미래에 재생산
→ 데이터가 "정확"해도 "공정"하지 않음

Amazon의 대응:

1차 시도: 특정 단어 중립화
- "여성" 단어 감점 제거
- 결과: 다른 방식으로 차별 재현

2차 시도: 알고리즘 수정
- 결과: 편향 완전 제거 실패

최종 결정 (2018):
"근본적 해결 불가능"
→ AI 채용 프로젝트 전면 폐기
→ 수년간 투자 손실

교훈:

1. 편향된 데이터 → 편향된 AI
2. 사후 수정은 근본 해결 아님
3. 고위험 분야 AI는 신중해야 함
4. 인간 감독 필수

2-2. COMPAS 재범 예측 알고리즘

배경:

COMPAS (Correctional Offender Management 
Profiling for Alternative Sanctions):

목적:
- 피고인 재범 가능성 예측
- 보석, 가석방, 형량 결정 참고
- 미국 법원에서 광범위 사용

방식:
- 100개+ 요인 평가
- 1-10점 위험도 산출
- 인종은 변수에 미포함

ProPublica 조사 (2016):

플로리다 7,200명 피고인 분석:

전체 정확도: 61% (괜찮아 보임)

하지만 오류 패턴 분석:

위양성 (재범 안 했는데 고위험 판정):
- 흑인: 45%
- 백인: 23%
→ 흑인이 2배 높음!

위음성 (재범 했는데 저위험 판정):
- 흑인: 28%
- 백인: 48%
→ 백인이 더 자주 놓침

결론:
"인종을 변수로 사용하지 않았는데도
인종 차별적 결과 산출"

왜 이런 일이?

대리 변수 효과:

인종 변수 없어도:
- 거주 지역 → 인종 추론
- 체포 이력 → 경찰 편향 반영
- 가족 범죄 이력 → 사회구조적 불평등

역사적 편향:
- 흑인 거주 지역 집중 단속
- 동일 범죄에 흑인 더 많이 체포
- 이 데이터로 AI 학습

→ 과거 차별이 미래 차별로 이어짐

사회적 영향:

억울한 수감:
- 고위험 판정 → 보석 거부
- 더 긴 형량 선고
- 가석방 거부

악순환:
- 억울한 수감 → 범죄 기록
- 범죄 기록 → 다음 판결 불리
- 세대 간 불평등 고착화

2-3. 얼굴 인식 AI 인종 편향

MIT 연구 (2018):

상용 얼굴 인식 시스템 분석:
- IBM Watson
- Microsoft Face API
- Face++

성별 분류 정확도:

밝은 피부 남성: 99.2%
밝은 피부 여성: 93.7%
어두운 피부 남성: 88.0%
어두운 피부 여성: 65.3%

→ 흑인 여성 오류율 34.7%
→ 백인 남성 대비 44배 높음!

실제 피해 사례:

2020년 미국 디트로이트:

사건:
- 흑인 남성 Robert Williams
- AI 얼굴 인식이 범인으로 지목
- 경찰에 의해 체포, 구금

결과:
- 완전한 오인 판명
- 억울한 체포, 트라우마
- 가족 앞에서 체포 굴욕

원인:
- 학습 데이터 백인 편중
- 흑인 얼굴 인식 정확도 낮음

법적 대응:

미국 일부 도시/주:
- 샌프란시스코: 공공기관 얼굴인식 금지 (2019)
- 매사추세츠: 경찰 사용 제한 (2020)
- 콜로라도: AI 차별금지법 (2024)

EU:
- 공공장소 실시간 생체인식 금지
- EU AI Act 고위험 분류

2-4. 의료 AI 인종 편향

2019년 Science 연구:

미국 대형 병원 의료 AI 분석:

목적: 고위험 환자 식별, 집중 관리

발견:
- 같은 건강 상태에서
- 흑인 환자가 백인 환자보다
- 관리 프로그램 추천 확률 50% 낮음

영향:
- 흑인 환자 1억 명+ 영향
- 필요한 치료 못 받음

원인:

AI 학습 기준:
"의료비 지출" = "건강 필요도"

현실:
- 흑인: 의료 접근성 낮음 → 의료비 지출 적음
- 백인: 의료 접근성 높음 → 의료비 지출 많음

AI 학습 결과:
"흑인 = 의료비 적음 = 건강함"
"백인 = 의료비 많음 = 관리 필요"

→ 사회경제적 불평등이 건강 불평등으로

교훈:

1. 프록시 변수의 위험성
   - 의료비 ≠ 건강 필요도

2. 데이터의 맥락 이해 필수
   - 왜 이 숫자가 나왔는가?

3. 도메인 전문가 참여 필수
   - 의료진이 AI 설계에 참여해야

3. 공정성 지표 – 수학으로 편향 측정하기

3-1. 혼동 행렬(Confusion Matrix) 기반 이해

기본 용어:

이진 분류 예시 (채용 합격/불합격):

               예측값
              합격    불합격
실제값  합격   TP       FN
       불합격  FP       TN

TP (True Positive): 합격 예측, 실제 합격
TN (True Negative): 불합격 예측, 실제 불합격
FP (False Positive): 합격 예측, 실제 불합격
FN (False Negative): 불합격 예측, 실제 합격

집단별 분석:

채용 AI 분석 (가상 예시):

남성 지원자 1,000명:
- TP: 250 (합격 예측, 적합)
- FP: 50 (합격 예측, 부적합)
- FN: 50 (불합격 예측, 적합)
- TN: 650 (불합격 예측, 부적합)

여성 지원자 1,000명:
- TP: 100 (합격 예측, 적합)
- FP: 30 (합격 예측, 부적합)
- FN: 100 (불합격 예측, 적합)
- TN: 770 (불합격 예측, 부적합)

문제 발견:
- 남성 합격률: 30%
- 여성 합격률: 13%
- 여성 적합자 중 놓친 비율 더 높음

3-2. 주요 공정성 지표

1. 통계적 동등성 (Statistical Parity / Demographic Parity):

정의:
모든 집단에서 긍정적 결과 비율이 동일해야 함

수식:
P(Ŷ=1|A=0) = P(Ŷ=1|A=1)

예시:
남성 합격률 = 여성 합격률

측정:
Statistical Parity Difference (SPD)
= P(Ŷ=1|A=1) - P(Ŷ=1|A=0)

공정 기준: -0.1 

2. 차별적 영향 (Disparate Impact):

정의:
소수 집단의 긍정 비율 / 다수 집단의 긍정 비율

수식:
DI = P(Ŷ=1|A=0) / P(Ŷ=1|A=1)

예시:
여성 합격률 / 남성 합격률

공정 기준 (80% Rule):
DI > 0.8 (소수 집단이 다수의 80% 이상)

미국 법률:
DI 

3. 기회의 동등성 (Equal Opportunity):

정의:
실제 적합자 중 긍정 예측 비율(TPR)이 동일해야 함

수식:
P(Ŷ=1|Y=1,A=0) = P(Ŷ=1|Y=1,A=1)

예시:
남성 적합자 중 합격 비율 = 여성 적합자 중 합격 비율

의미:
"자격이 있는 사람은 공평한 기회를 가져야 한다"

측정:
Equal Opportunity Difference (EOD)
= TPR(A=1) - TPR(A=0)

공정 기준: EOD ≈ 0

4. 균등화된 오즈 (Equalized Odds):

정의:
TPR과 FPR 모두 집단 간 동일해야 함

수식:
P(Ŷ=1|Y=y,A=0) = P(Ŷ=1|Y=y,A=1), ∀y∈{0,1}

의미:
- 적합자를 놓치는 비율도 동일
- 부적합자를 잘못 뽑는 비율도 동일

더 엄격한 기준:
기회의 동등성 + 잘못된 긍정 동등성

5. 예측적 동등성 (Predictive Parity):

정의:
긍정 예측 중 실제 적합자 비율(PPV)이 동일해야 함

수식:
P(Y=1|Ŷ=1,A=0) = P(Y=1|Ŷ=1,A=1)

의미:
"AI가 합격시킨 사람 중 진짜 적합한 비율이
모든 집단에서 동일해야 함"

COMPAS 논쟁:
- 회사 주장: 예측적 동등성 만족
- 비판: 기회의 동등성 위반

3-3. 공정성 지표의 불가능성 정리

중요한 발견:

Chouldechova (2017) & Kleinberg et al. (2017):

정리:
기저율(Base Rate)이 집단 간 다르면
다음 조건을 동시에 만족 불가능:
1. 예측적 동등성
2. 위양성 동등
3. 위음성 동등

의미:
"모든 공정성 지표를 동시에 만족하는 것은
수학적으로 불가능할 수 있다"

실무적 함의:

어떤 공정성을 선택할지는
가치 판단의 문제

예시:
채용 AI:
- 기회의 동등성 중시
- "자격 있는 사람은 공평하게"

대출 AI:
- 예측적 동등성 중시
- "승인된 사람 중 상환 비율 동일"

형사 사법:
- 위양성 동등 중시
- "무고한 사람이 위험 판정받는 비율 동일"

→ 맥락에 따라 적합한 지표 선택 필요
→ 이해관계자와 합의 필수

4. 편향 완화 기법과 실전 코드

4-1. 편향 완화 3단계

전체 파이프라인:

[데이터] → [모델 학습] → [예측]
    ↓           ↓           ↓
사전처리     중간처리     후처리
(Pre)        (In)        (Post)

1. 사전처리 (Pre-processing):

정의: 학습 데이터 자체를 수정

방법:
- 리샘플링 (Resampling)
- 리웨이팅 (Reweighting)
- 데이터 변환 (Transformation)

장점:
- 모델 독립적
- 이해하기 쉬움

단점:
- 데이터 손실 가능
- 원본 왜곡

2. 중간처리 (In-processing):

정의: 학습 알고리즘에 공정성 제약 추가

방법:
- 정규화 항에 공정성 포함
- 적대적 학습 (Adversarial)
- 공정성 제약 최적화

장점:
- 정확도-공정성 균형 조절 가능
- 명시적 목표 설정

단점:
- 알고리즘별 구현 필요
- 학습 복잡도 증가

3. 후처리 (Post-processing):

정의: 모델 예측 결과를 조정

방법:
- 집단별 임계값 조정
- 확률 보정
- 순위 재조정

장점:
- 기존 모델 수정 불필요
- 빠른 적용

단점:
- 역차별 논란
- 개인 불공정 가능성

4-2. IBM AI Fairness 360 (AIF360) 실전

# AIF360 설치
# pip install aif360

from aif360.datasets import BinaryLabelDataset
from aif360.datasets import AdultDataset
from aif360.metrics import BinaryLabelDatasetMetric
from aif360.metrics import ClassificationMetric
from aif360.algorithms.preprocessing import Reweighing
from aif360.algorithms.inprocessing import PrejudiceRemover
from sklearn.linear_model import LogisticRegression
import numpy as np

# 1. 데이터 로드 (Adult Census 데이터셋)
dataset = AdultDataset(
    protected_attribute_names=['sex'],
    privileged_classes=[['Male']],
    categorical_features=[],
    features_to_keep=['age', 'education-num', 'capital-gain',
                      'capital-loss', 'hours-per-week']
)

# 2. 학습/테스트 분할
train, test = dataset.split([0.7], shuffle=True)

# 3. 편향 측정 (원본 데이터)
privileged_groups = [{'sex': 1}]  # 남성
unprivileged_groups = [{'sex': 0}]  # 여성

metric_orig = BinaryLabelDatasetMetric(
    train,
    unprivileged_groups=unprivileged_groups,
    privileged_groups=privileged_groups
)

print("=== 원본 데이터 편향 측정 ===")
print(f"Statistical Parity Difference: {metric_orig.statistical_parity_difference():.4f}")
print(f"Disparate Impact: {metric_orig.disparate_impact():.4f}")

# 출력 예시:
# Statistical Parity Difference: -0.1963
# Disparate Impact: 0.3615
# → 여성이 남성의 36%만 고소득 (심각한 편향!)

# 4. 사전처리: 리웨이팅 (Reweighing)
reweigh = Reweighing(
    unprivileged_groups=unprivileged_groups,
    privileged_groups=privileged_groups
)

train_reweighed = reweigh.fit_transform(train)

metric_reweighed = BinaryLabelDatasetMetric(
    train_reweighed,
    unprivileged_groups=unprivileged_groups,
    privileged_groups=privileged_groups
)

print("\n=== 리웨이팅 후 편향 측정 ===")
print(f"Statistical Parity Difference: {metric_reweighed.statistical_parity_difference():.4f}")
print(f"Disparate Impact: {metric_reweighed.disparate_impact():.4f}")

# 출력 예시:
# Statistical Parity Difference: -0.0049
# Disparate Impact: 0.9437
# → 거의 공정해짐! (0.8 이상)

# 5. 모델 학습 및 평가
from sklearn.preprocessing import StandardScaler

# 특성 스케일링
scaler = StandardScaler()
X_train = scaler.fit_transform(train_reweighed.features)
y_train = train_reweighed.labels.ravel()
weights = train_reweighed.instance_weights

X_test = scaler.transform(test.features)
y_test = test.labels.ravel()

# 가중치 적용 학습
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train, sample_weight=weights)

# 예측
y_pred = model.predict(X_test)

# 6. 분류 공정성 평가
test_pred = test.copy()
test_pred.labels = y_pred.reshape(-1, 1)

metric_pred = ClassificationMetric(
    test,
    test_pred,
    unprivileged_groups=unprivileged_groups,
    privileged_groups=privileged_groups
)

print("\n=== 모델 예측 공정성 평가 ===")
print(f"Accuracy: {metric_pred.accuracy():.4f}")
print(f"Statistical Parity Difference: {metric_pred.statistical_parity_difference():.4f}")
print(f"Equal Opportunity Difference: {metric_pred.equal_opportunity_difference():.4f}")
print(f"Average Odds Difference: {metric_pred.average_odds_difference():.4f}")

# 출력 예시:
# Accuracy: 0.8234
# Statistical Parity Difference: -0.0521
# Equal Opportunity Difference: -0.0312
# Average Odds Difference: -0.0289
# → 공정 기준 (-0.1 ~ 0.1) 내!

4-3. Microsoft Fairlearn 실전

# Fairlearn 설치
# pip install fairlearn

from fairlearn.metrics import (
    MetricFrame,
    selection_rate,
    demographic_parity_difference,
    demographic_parity_ratio,
    equalized_odds_difference
)
from fairlearn.reductions import (
    ExponentiatedGradient,
    DemographicParity,
    EqualizedOdds
)
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import train_test_split
import pandas as pd

# 1. 데이터 준비 (예시)
# X: 특성, y: 라벨, sensitive: 민감 속성
X_train, X_test, y_train, y_test, sensitive_train, sensitive_test = \
    train_test_split(X, y, sensitive_features, test_size=0.3, random_state=42)

# 2. 기본 모델 학습 (편향 가능)
base_model = GradientBoostingClassifier(n_estimators=100, random_state=42)
base_model.fit(X_train, y_train)
y_pred_base = base_model.predict(X_test)

# 3. 공정성 메트릭 평가 (편향 있는 모델)
metric_frame = MetricFrame(
    metrics={
        'selection_rate': selection_rate,
        'accuracy': lambda y_true, y_pred: (y_true == y_pred).mean(),
    },
    y_true=y_test,
    y_pred=y_pred_base,
    sensitive_features=sensitive_test
)

print("=== 기본 모델 (편향 가능) ===")
print(metric_frame.by_group)
print(f"\nDemographic Parity Difference: {demographic_parity_difference(y_test, y_pred_base, sensitive_features=sensitive_test):.4f}")

# 4. 공정성 제약 학습 (Exponentiated Gradient)
constraint = DemographicParity()  # 또는 EqualizedOdds()

fair_model = ExponentiatedGradient(
    estimator=GradientBoostingClassifier(n_estimators=100, random_state=42),
    constraints=constraint,
    eps=0.01  # 공정성 허용 오차
)

fair_model.fit(X_train, y_train, sensitive_features=sensitive_train)
y_pred_fair = fair_model.predict(X_test)

# 5. 공정 모델 평가
metric_frame_fair = MetricFrame(
    metrics={
        'selection_rate': selection_rate,
        'accuracy': lambda y_true, y_pred: (y_true == y_pred).mean(),
    },
    y_true=y_test,
    y_pred=y_pred_fair,
    sensitive_features=sensitive_test
)

print("\n=== 공정 모델 ===")
print(metric_frame_fair.by_group)
print(f"\nDemographic Parity Difference: {demographic_parity_difference(y_test, y_pred_fair, sensitive_features=sensitive_test):.4f}")

# 6. 시각화
from fairlearn.metrics import plot_model_comparison

fig = metric_frame.plot.bar()
fig.suptitle('집단별 성능 비교')

# 7. Fairlearn Dashboard (인터랙티브)
from fairlearn.widget import FairlearnDashboard

FairlearnDashboard(
    sensitive_features=sensitive_test,
    y_true=y_test,
    y_pred={"Base Model": y_pred_base, "Fair Model": y_pred_fair}
)

4-4. 후처리: 임계값 조정

from aif360.algorithms.postprocessing import CalibratedEqOddsPostprocessing
from aif360.algorithms.postprocessing import RejectOptionClassification

# 모델 예측 확률
y_proba = model.predict_proba(X_test)[:, 1]

# 1. 집단별 다른 임계값 적용
def find_optimal_thresholds(y_true, y_proba, sensitive, target_metric='demographic_parity'):
    """
    각 집단별 최적 임계값 찾기
    """
    thresholds = {}

    for group in np.unique(sensitive):
        mask = sensitive == group
        y_true_group = y_true[mask]
        y_proba_group = y_proba[mask]

        # 전체 선택률에 맞추는 임계값 찾기
        target_rate = y_true.mean()  # 또는 전체 선택률

        best_threshold = 0.5
        best_diff = float('inf')

        for t in np.arange(0.1, 0.9, 0.01):
            pred_rate = (y_proba_group >= t).mean()
            diff = abs(pred_rate - target_rate)
            if diff = threshold).astype(int)

# 3. 결과 비교
print("\n=== 임계값 조정 전 ===")
print(f"DPD: {demographic_parity_difference(y_test, (y_proba >= 0.5).astype(int), sensitive_features=sensitive_test):.4f}")

print("\n=== 임계값 조정 후 ===")
print(f"DPD: {demographic_parity_difference(y_test, y_pred_adjusted, sensitive_features=sensitive_test):.4f}")

5. 법적 규제와 EU AI Act

5-1. EU AI Act (2024)

개요:

유럽연합 인공지능법:
- 2024년 3월 유럽의회 통과
- 2024년 8월 발효
- 세계 최초 포괄적 AI 규제법

목적:
- AI의 안전성, 투명성, 공정성 확보
- 기본권 및 민주주의 가치 보호
- 혁신과 규제의 균형

위험 기반 분류:

4단계 위험 분류:

1. 허용 불가 위험 (Unacceptable Risk):
   - 완전 금지
   - 사회적 점수 시스템
   - 실시간 공공 생체인식 (일부 예외)
   - 무의식 조작 AI

2. 고위험 (High-Risk):
   - 엄격한 요구사항 적용
   - 채용 AI
   - 신용 평가 AI
   - 법 집행 AI
   - 의료 AI
   - 교육 AI

3. 제한 위험 (Limited Risk):
   - 투명성 의무
   - 챗봇 (AI임을 공개)
   - 딥페이크 (표시 의무)

4. 최소 위험 (Minimal Risk):
   - 규제 없음
   - 스팸 필터
   - 게임 AI

고위험 AI 의무사항:

공정성 관련 요구사항:

1. 위험관리시스템:
   - 편향 위험 식별
   - 지속적 모니터링
   - 위험 완화 조치

2. 데이터 거버넌스:
   - 학습 데이터 품질 관리
   - 편향 분석 및 수정
   - 대표성 확보

3. 투명성:
   - 의사결정 과정 설명
   - 사용자에게 AI 사용 고지
   - 기술 문서 작성

4. 인간 감독:
   - 인간이 AI 결정 검토
   - 개입/중단 가능
   - 최종 결정권 인간에게

5. 기본권 영향평가:
   - 배포 전 영향 분석
   - 차별 위험 평가
   - 완화 조치 수립

벌칙:

위반 시 제재:

허용 불가 AI 사용:
- 최대 3,500만 유로
- 또는 전 세계 연매출 7%

고위험 AI 요구사항 미준수:
- 최대 1,500만 유로
- 또는 전 세계 연매출 3%

정보 제공 의무 위반:
- 최대 750만 유로
- 또는 전 세계 연매출 1%

→ GDPR보다 높은 수준의 벌금!

5-2. 미국 규제 동향

콜로라도 AI 차별금지법 (2024):

최초의 주 단위 AI 차별 규제:

적용 대상:
- 고용, 교육, 금융, 주거, 보험
- 소비자 대상 고영향 AI

의무사항:
- 연간 편향 감사
- 차별 영향평가
- 소비자 고지 및 설명

위반 시:
- 민사 소송 가능
- 주 법무장관 조사

연방 차원:

행정명령 (2023):
- AI 안전성 및 보안 강화
- 차별 방지 가이드라인

입법 논의:
- 알고리즘 책임법 (제안)
- AI 공정성법 (제안)
- 아직 포괄적 연방법 없음

5-3. 한국 규제 현황

AI 기본법 (논의 중):

주요 내용:
- "고영향 AI" 개념 도입
- EU의 "고위험"보다 가치중립적 용어
- 위험 평가 및 관리 의무

공정성 관련:
- 차별 금지 원칙
- 투명성 요구
- 설명 의무

진행 상황:
- 국회 계류 중
- 2024-2025 입법 예상

현행 관련 법률:

개인정보보호법:
- 자동화된 결정에 대한 설명 요구권
- 프로파일링 제한

정보통신망법:
- AI 서비스 투명성

신용정보법:
- 자동화 신용평가 설명 의무

6. 윤리적 AI 설계 가이드

6-1. 공정성 설계 원칙

1. 다양성 확보:

데이터 수집:
☑ 모든 집단 충분히 대표
☑ 소수 집단 과소표집 방지
☑ 역사적 편향 인식

팀 구성:
☑ 다양한 배경의 개발자
☑ 도메인 전문가 참여
☑ 윤리 전문가 포함

2. 투명성 확보:

모델 문서화:
☑ 학습 데이터 출처 명시
☑ 평가 지표 공개
☑ 한계점 명시

의사결정 설명:
☑ 주요 영향 요인 제시
☑ 사용자 이해 가능한 언어
☑ 이의 제기 경로 제공

3. 책임성 확립:

거버넌스:
☑ 공정성 책임자 지정
☑ 정기적 편향 감사
☑ 문제 발생 시 대응 절차

모니터링:
☑ 배포 후 지속 모니터링
☑ 드리프트 감지
☑ 피드백 수집

6-2. AI 공정성 체크리스트

개발 전:

☐ 문제 정의가 공정성을 고려하는가?
☐ 적절한 공정성 지표를 선택했는가?
☐ 이해관계자와 공정성 기준을 합의했는가?
☐ 잠재적 피해 집단을 식별했는가?

데이터 수집:

☐ 데이터가 모든 집단을 대표하는가?
☐ 라벨링 과정에 편향이 없는가?
☐ 역사적 편향을 인식하고 있는가?
☐ 대리 변수를 점검했는가?

모델 개발:

☐ 베이스라인 공정성을 측정했는가?
☐ 편향 완화 기법을 적용했는가?
☐ 정확도-공정성 트레이드오프를 검토했는가?
☐ 집단별 성능을 평가했는가?

배포 전:

☐ 독립적인 공정성 감사를 받았는가?
☐ 영향평가를 수행했는가?
☐ 인간 검토 프로세스가 있는가?
☐ 이의 제기 절차가 있는가?

배포 후:

☐ 지속적으로 공정성을 모니터링하는가?
☐ 피드백을 수집하고 반영하는가?
☐ 정기적으로 재평가하는가?
☐ 문제 발생 시 신속 대응하는가?

6-3. 공정성 vs 정확도 트레이드오프

현실:

불편한 진실:
공정성 향상 시 정확도 하락 가능

예시:
기본 모델: 정확도 92%, SPD -0.25
공정 모델: 정확도 88%, SPD -0.05

→ 정확도 4% 하락으로 공정성 5배 개선

질문:
"4% 정확도 하락을 감수할 가치가 있는가?"

의사결정 프레임워크:

고려 사항:

1. 피해의 심각성:
   - 잘못된 결정의 영향은?
   - 피해 복구 가능한가?

2. 대안의 존재:
   - 인간 검토 가능한가?
   - 다른 정보원이 있는가?

3. 규모:
   - 영향받는 사람 수는?
   - 시스템 사용 빈도는?

4. 역사적 맥락:
   - 해당 집단의 과거 차별 이력은?
   - 사회적 책임 수준은?

결론:
고위험 분야(채용, 대출, 형사사법)에서는
공정성을 정확도보다 우선해야

FAQ: AI 편향과 공정성 Q&A

Q1. 모든 AI에 공정성 검증이 필요한가요?

A. 영향도에 따라 다릅니다:

높은 우선순위:
✅ 채용/인사 AI
✅ 대출/보험 AI
✅ 형사사법 AI
✅ 의료 진단 AI
✅ 교육 평가 AI

중간 우선순위:
⚠️ 콘텐츠 추천 AI
⚠️ 광고 타겟팅 AI
⚠️ 고객 서비스 AI

낮은 우선순위:
ℹ️ 스팸 필터
ℹ️ 게임 AI
ℹ️ 이미지 편집 AI

기준:
"이 AI의 결정이 개인의 기회나
권리에 영향을 미치는가?"

Q2. 어떤 공정성 지표를 선택해야 하나요?

A. 맥락과 가치에 따라:

채용 AI:
→ 기회의 동등성 (Equal Opportunity)
"자격 있는 사람은 공평한 기회를"

대출 AI:
→ 예측적 동등성 (Predictive Parity)
"승인된 사람의 상환율 동일하게"

형사사법 AI:
→ 위양성 동등 (False Positive Equality)
"무고한 사람이 잘못 분류되는 비율 동일하게"

의료 AI:
→ 기회의 동등성 + 예측적 동등성
"진짜 환자를 놓치지 않으면서
과잉 진단도 동등하게"

핵심:
이해관계자와 논의하여 결정
단일 정답은 없음

Q3. 편향 완화가 역차별 아닌가요?

A. 복잡한 윤리적 논쟁입니다:

반론:
"집단별 다른 기준 = 역차별"
"능력 기반 평가가 공정"

재반론:
"과거 차별 효과가 현재까지 지속"
"기회의 평등 ≠ 결과의 평등"
"구조적 불평등 고려 필요"

실무적 접근:
1. 개인 수준 공정성 먼저 고려
2. 집단 수준 불균형 시 원인 분석
3. 데이터 편향 수정 우선
4. 알고리즘 조정은 최후 수단
5. 투명하게 공개하고 논의

법적 기준:
- 미국: 적극적 조치 일부 허용
- EU: 양성평등 조치 허용
- 한국: 논의 진행 중

Q4. 공정성 도구를 처음 시작하려면?

A. 단계별 접근:

1단계: 학습 (1-2주)
- AIF360 튜토리얼 완료
- Fairlearn 문서 읽기
- 공정성 지표 이해

2단계: 측정 (1주)
- 현재 모델 편향 측정
- 집단별 성능 분석
- 문제 심각성 파악

3단계: 완화 (2-4주)
- 사전처리 먼저 시도
- 효과 미미하면 중간처리
- 마지막으로 후처리

4단계: 검증 (1-2주)
- 독립 데이터로 평가
- 다양한 지표로 확인
- 이해관계자 검토

5단계: 모니터링 (지속)
- 배포 후 지속 추적
- 정기 감사 (분기별)
- 피드백 반영

추천 시작점:
[IBM AI Fairness 360 데모])
[Microsoft Fairlearn 튜토리얼](https://fairlearn.org/)

최종 정리: 공정한 AI를 향하여

핵심 메시지:

✅ AI 편향은 데이터와 사회 구조에서 비롯됨
✅ Amazon, COMPAS 사례: 의도 없이도 차별 발생
✅ 공정성 지표: SPD, DI, EOD 등 다양
✅ 모든 지표 동시 만족 수학적 불가능
✅ AIF360, Fairlearn으로 측정 및 완화
✅ EU AI Act: 고위험 AI 편향 분석 의무화
✅ 공정성은 기술 + 가치 판단의 문제

실천 체크리스트:

개발자로서:
☑ 공정성 지표 1개 이상 모니터링
☑ AIF360 또는 Fairlearn 적용
☑ 집단별 성능 보고서 작성
☑ 편향 완화 기법 적용

조직으로서:
☑ 공정성 거버넌스 수립
☑ 정기적 편향 감사
☑ 다양성 있는 팀 구성
☑ 이해관계자 참여 프로세스

사회로서:
☑ AI 결정에 대한 설명 요구
☑ 차별 사례 제보
☑ 규제 및 정책 논의 참여
☑ AI 리터러시 향상

미래 전망:

2025-2030:

1. 규제 강화:
   - EU AI Act 전면 시행
   - 미국 연방법 제정 가능성
   - 한국 AI 기본법 시행

2. 기술 발전:
   - 인과 공정성 연구 활발
   - 자동 편향 탐지/완화
   - 공정성 인증 표준화

3. 인식 변화:
   - 공정성이 기본 요건으로
   - ESG와 AI 윤리 연계
   - 소비자 선택 기준

결론:
"공정한 AI는 선택이 아닌 필수"
"지금 시작하지 않으면 도태"

외부 참고 자료

AI 편향과 공정성을 더 깊게 배우고 싶다면:


같이보기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다