---
title: "AI가 차별하는 충격적 이유 – 데이터 편향과 공정성의 모든 것"
id: "199"
type: "post"
slug: "ai-bias-fairness-ethics-aif360-fairlearn-eu-ai-act"
published_at: "2025-11-25T03:39:43+00:00"
modified_at: "2026-07-19T10:27:17+00:00"
url: "https://doyouknow.kr/ai-bias-fairness-ethics-aif360-fairlearn-eu-ai-act/"
markdown_url: "https://doyouknow.kr/ai-bias-fairness-ethics-aif360-fairlearn-eu-ai-act.md"
excerpt: "Amazon 채용 AI 여성 차별, COMPAS 흑인 재범 2배 예측 사례! 편향 5가지 원인(데이터/역사/라벨/대리변수/알고리즘), 공정성 지표(SPD, DI, EOD) 수학 정의, IBM AIF360/MS Fairlearn 실전 코드, EU AI Act 규제(벌금 3,500만 유로), 윤리적 AI 설계 완벽 가이드."
taxonomy_category:
  - "AI"
  - "컴플라이언스"
taxonomy_post_tag:
  - "AI"
  - "AI 공정성"
  - "AI 편향"
  - "AIF360"
  - "Amazon 채용 AI"
  - "Bias"
  - "COMPAS"
  - "Disparate Impact"
  - "Equal Opportunity"
  - "EU AI Act"
  - "Fairlearn"
  - "Fairness"
  - "Statistical Parity"
  - "고위험 AI"
  - "데이터 편향"
  - "알고리즘 윤리"
  - "알고리즘 차별"
  - "얼굴 인식 편향"
  - "윤리적 AI"
  - "책임감 있는 AI"
  - "컴플라이언스"
---

![Gemini Generated Image Womezhwomezhwome](https://doyouknow.kr/wp-content/uploads/cwv-webp-images/2025/11/xGemini_Generated_Image_womezhwomezhwome.jpg.webp.pagespeed.ic.t-RYSDqjap.webp)

---

## 핵심 요약

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

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

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

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

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

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

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

미국 법률:
DI < 0.8이면 차별 혐의 조사 대상
```

**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 < best_diff:
                best_diff = diff
                best_threshold = t

        thresholds[group] = best_threshold

    return thresholds

# 2. 임계값 적용
thresholds = find_optimal_thresholds(y_test, y_proba, sensitive_test)

print("집단별 최적 임계값:")
for group, threshold in thresholds.items():
    print(f"  {group}: {threshold:.3f}")

# 차등 임계값으로 예측
y_pred_adjusted = np.zeros_like(y_proba)
for group, threshold in thresholds.items():
    mask = sensitive_test == group
    y_pred_adjusted[mask] = (y_proba[mask] >= 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 편향과 공정성을 더 깊게 배우고 싶다면:

- [IBM AI Fairness 360 (AIF360)](https://research.ibm.com/blog/ai-fairness-360) – 70개+ 공정성 지표, 11개 완화 알고리즘
- [Microsoft Fairlearn](https://fairlearn.org/) – 공정성 평가 및 완화 라이브러리
- [Google What-If Tool](https://pair-code.github.io/what-if-tool/) – 인터랙티브 편향 분석
- [EU AI Act 전문](https://artificialintelligenceact.eu/) – 유럽연합 AI 규제 원문
- [ProPublica COMPAS 분석](https://www.propublica.org/article/machine-bias-risk-assessments-in-criminal-sentencing) – COMPAS 편향 원본 보도

---

## 같이보기

- [Transfer Learning으로 100배 적은 데이터로 SOTA 달성 – 거인의 어깨 위에서 AI 만들기](https://doyouknow.kr/transfer-learning-fine-tuning-lora-peft-pretrained-model/)
- [하이퍼파라미터 튜닝 하나로 AI 성능 2배 – 같은 모델, 완전히 다른 결과의 비밀](https://doyouknow.kr/hyperparameter-tuning-optuna-bayesian-optimization-guide/)
- [특성 공학(Feature Engineering) – AI 성능을 2배 높이는 데이터 변환의 기술](https://doyouknow.kr/feature-engineering-selection-extraction-pca-normalization/)
- [모델 학습과 최적화 – AI가 스스로 똑똑해지는 4가지 비밀](https://doyouknow.kr/ai-model-training-optimization-loss-gradient-descent-backpropagation/)
- [과적합과 과소적합 – 완벽한 균형으로 AI 성능 2배 높이기](https://doyouknow.kr/overfitting-underfitting-regularization-dropout-early-stopping/)
- [과적합 해결 못하면 AI 프로젝트 70% 실패 – AI가 세상 모든 걸 외우면 왜 쓸모가 없을까?](https://doyouknow.kr/overfitting-underfitting-regularization-dropout-solution/)
- [AI 프로젝트 85% 실패의 진짜 원인 – 데이터 품질과 정제의 모든 것](https://doyouknow.kr/data-quality-labeling-ai-project-failure-prevention/)
- [AI가 데이터를 이해하는 방법 – 데이터가 AI의 연료인 이유](https://doyouknow.kr/ai-data-importance-structured-unstructured-bias/)
- [AI 블랙박스 99% 못 믿는 이유 – 설명가능한 AI(XAI) 완벽 가이드](https://doyouknow.kr/explainable-ai-xai-shap-lime-gradcam-blackbox-solution/)
- [역설의 칩들: 왜 똑같이 AI를 돌리는데 어떤 건 배우지 못하고 추론만 하는가?](https://doyouknow.kr/why-ai-chips-cannot-learn-inference-only-paradox/)
- [EU AI Act 완벽 해부: 세계 최초 AI 규제법의 모든 것 – 위반 시 매출 7% 벌금, 당신의 AI는 안전한가?](https://doyouknow.kr/eu-ai-act-complete-guide-risk-levels-compliance/)
- [AI 보안 완벽 가이드: 당신의 AI를 해킹하는 6가지 방법과 막는 법 – 공격과 방어의 모든 것!](https://doyouknow.kr/ai-security-guide-adversarial-attack-defense/)
- [합성 데이터(Synthetic Data) 완벽 가이드: AI가 AI를 위해 데이터를 만든다! 실제 데이터 부족을 해결하는 마법](https://doyouknow.kr/synthetic-data-guide-gan-vae-diffusion-ai-training/)
- [AI 환각(Hallucination) 완벽 분석: 왜 AI는 자신있게 거짓말을 하는가? 원인, 탐지, 해결법까지!](https://doyouknow.kr/ai-hallucination-causes-detection-solutions-rag-grounding/)

### 관련된 글:

1. [EU AI Act 완벽 해부: 세계 최초 AI 규제법의 모든 것 – 위반 시 매출 7% 벌금, 당신의 AI는 안전한가?](https://doyouknow.kr/eu-ai-act-complete-guide-risk-levels-compliance/)
2. [생성형 AI 윤리 & 저작권 완벽 가이드: ChatGPT가 당신의 창작물로 학습했다면? 2025년 핵심 쟁점 총정리](https://doyouknow.kr/generative-ai-ethics-copyright-eu-ai-act-deepfake-hallucination-guide/)
3. [AI 블랙박스 99% 못 믿는 이유 – 설명가능한 AI(XAI) 완벽 가이드](https://doyouknow.kr/explainable-ai-xai-shap-lime-gradcam-blackbox-solution/)
4. [‘AI가 작가에게 2조 원을 낸다고?’ 앤트로픽이 쏘아 올린 저작권 전쟁의 반전 (클로드 4의 비밀)](https://doyouknow.kr/anthropic-copyright-settlement-15billion-claude4-2025/)

### 답글 남기기 [응답 취소](/ai-bias-fairness-ethics-aif360-fairlearn-eu-ai-act/?t=1787788016#respond)
