{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c5c1fcff",
   "metadata": {},
   "source": [
    "# Part 14: AI 윤리 및 거버넌스 실무\n",
    "\n",
    "**⬅️ 이전 시간: [Part 13: 생성형 AI 및 AI 에이전트 심화](../13_generative_ai/part_13_generative_ai.md)**\n",
    "**➡️ 다음 시간: [Part 15: 나만의 AI 서비스 만들기 (캡스톤 프로젝트 가이드)](../15_capstone_project/part_15_capstone_project.md)**\n",
    "\n",
    "---\n",
    "\n",
    "## 1. 학습 목표 (Learning Objectives)\n",
    "\n",
    "> 이 섹션에서는 책임감 있는 AI 개발을 위해 필수적인 AI 윤리의 중요성을 이해하고, 관련 기술 및 규제에 대해 학습합니다.\n",
    "\n",
    "- 설명가능 AI(XAI)의 필요성을 이해하고, LIME과 SHAP을 활용하여 모델의 결정을 해석할 수 있습니다.\n",
    "- AI 모델에 내재된 편향성을 탐지하고, Fairlearn을 사용하여 이를 완화하는 방법을 학습합니다.\n",
    "- EU AI Act와 같은 최신 AI 규제의 동향을 파악하고, 모델 카드 및 데이터 시트를 통해 AI 시스템의 투명성을 확보하는 방법을 이해합니다.\n",
    "\n",
    "## 2. 핵심 키워드 (Keywords)\n",
    "\n",
    "`AI 윤리`, `설명가능 AI(XAI)`, `LIME`, `SHAP`, `편향성(Bias)`, `Fairlearn`, `AI 규제`, `EU AI Act`, `모델 카드`, `데이터 시트`\n",
    "\n",
    "## 3. 도입\n",
    "\n",
    "AI 기술이 사회 깊숙이 자리 잡으면서, 우리는 그 성능만큼이나 '책임'과 '신뢰'에 대해 고민해야 하는 시대에 살고 있습니다. AI가 내린 결정이 사람과 사회에 미치는 영향이 막대하기 때문입니다. Part 14에서는 \"AI를 어떻게 더 똑똑하게 만들 것인가?\"라는 질문을 넘어, \"어떻게 더 올바르고 공정하게 만들 것인가?\"에 대한 답을 찾아갑니다. 모델의 속마음을 들여다보는 XAI 기술부터, 숨겨진 차별을 찾아내는 편향성 분석, 그리고 글로벌 표준이 될 AI 규제까지, 신뢰할 수 있는 AI 전문가로 성장하기 위한 마지막 필수 역량을 갖추게 될 것입니다.\n",
    "\n",
    "---\n",
    "\n",
    "## 4. 설명가능 AI (XAI)\n",
    "\n",
    "복잡한 딥러닝 모델이나 앙상블 모델은 종종 '블랙박스(Black Box)'로 취급됩니다. 뛰어난 예측 성능을 보이지만, 왜 그런 결정을 내렸는지 그 내부 과정을 이해하기 어렵기 때문입니다. 이러한 문제는 금융, 의료, 법률 등 결정에 대한 설명 책임이 중요한 분야에서 모델의 신뢰도를 떨어뜨리고, 공정성 문제를 야기하며, 디버깅을 어렵게 만듭니다.\n",
    "\n",
    "**설명가능 AI (eXplainable AI, XAI)**는 이러한 블랙박스 모델의 예측 결과를 사람이 이해할 수 있는 형태로 설명하고 해석하는 것을 목표로 하는 기술 및 방법론의 총칭입니다.\n",
    "\n",
    "**XAI의 중요성:**\n",
    "\n",
    "- **신뢰성 및 투명성 확보**: 모델의 결정 과정을 이해함으로써 사용자와 규제 기관의 신뢰를 얻을 수 있습니다.\n",
    "- **공정성 검증**: 모델이 특정 인구 집단에 대해 편향된 예측을 하는지 확인하고, 그 원인을 파악하는 데 도움을 줍니다.\n",
    "- **디버깅 및 모델 개선**: 예측이 잘못된 경우, 어떤 피처(feature)가 잘못된 판단에 영향을 미쳤는지 분석하여 모델을 개선할 수 있습니다.\n",
    "- **규제 준수**: GDPR의 '설명을 요구할 권리'나 다양한 AI 관련 규제에 대응하기 위해 필수적입니다.\n",
    "\n",
    "### 1. LIME (Local Interpretable Model-agnostic Explanations)\n",
    "\n",
    "LIME은 \"특정 예측 하나\"에 대한 설명을 제공하는 데 중점을 두는 대표적인 **로컬(Local)** XAI 기법입니다. 'Model-agnostic'이라는 이름처럼, 어떤 종류의 블랙박스 모델(딥러닝, 앙상블 등)에도 적용할 수 있는 범용적인 방법입니다.\n",
    "\n",
    "**핵심 아이디어**:\n",
    "복잡한 전체 모델의 결정 경계(decision boundary)를 이해하려는 대신, 설명하고자 하는 특정 데이터 포인트 주변의 '지역적인(local)' 공간에만 집중합니다. 그리고 그 좁은 지역에서는 간단한 선형 모델(Linear Model)과 같은 해석 가능한 모델로 복잡한 모델의 행동을 근사(approximate)할 수 있다고 가정합니다.\n",
    "\n",
    "**작동 방식**:\n",
    "1.  설명하고 싶은 데이터 포인트(예: 특정 고객의 대출 승인 예측)를 선택합니다.\n",
    "2.  해당 데이터 포인트 주변에 수많은 가상의 샘플 데이터들을 생성합니다. (예: 특정 피처 값을 약간씩 변경)\n",
    "3.  생성된 각 샘플에 대해 블랙박스 모델의 예측 값을 얻습니다.\n",
    "4.  원본 데이터에 가까운 샘플에 더 높은 가중치를 주어, 이 샘플들과 예측 값들을 가장 잘 설명하는 간단한 선형 모델을 학습시킵니다.\n",
    "5.  학습된 선형 모델의 회귀 계수(coefficients)를 통해, \"이 예측에 어떤 피처가 긍정적/부정적으로 얼마나 영향을 미쳤는지\"를 설명합니다.\n",
    "\n",
    "- **장점**: 이해하기 쉽고 직관적이며, 어떤 모델에도 적용할 수 있습니다.\n",
    "- **단점**: 샘플링 방식에 따라 설명 결과가 불안정할 수 있으며, '지역적'이라는 범위의 정의가 모호할 수 있습니다.\n",
    "\n",
    "### 2. SHAP (SHapley Additive exPlanations)\n",
    "\n",
    "SHAP은 협력 게임 이론(Cooperative Game Theory)의 '섀플리 값(Shapley Value)' 개념을 AI 모델 설명에 적용한 기법입니다. 각 피처를 게임에 참여하는 '플레이어'로 보고, 모델의 예측에 각 피처가 얼마나 '기여'했는지를 공정하게 배분하여 설명합니다.\n",
    "\n",
    "**핵심 아이디어**:\n",
    "어떤 피처의 기여도는 \"해당 피처가 있을 때의 예측 값\"과 \"해당 피처가 없을 때의 예측 값\"의 차이로 계산할 수 있습니다. SHAP은 가능한 모든 피처 조합에 대해 이 기여도를 계산하고 평균을 내어, 각 피처의 최종적인 기여도(SHAP Value)를 결정합니다.\n",
    "\n",
    "**SHAP Value의 의미**:\n",
    "- **양수(+) SHAP Value**: 해당 피처의 값이 예측을 증가시키는 방향으로 작용했습니다.\n",
    "- **음수(-) SHAP Value**: 해당 피처의 값이 예측을 감소시키는 방향으로 작용했습니다.\n",
    "- **절대값 크기**: 기여도의 크기를 의미합니다.\n",
    "\n",
    "**주요 특징 및 시각화**:\n",
    "\n",
    "- **로컬 및 글로벌 설명**: LIME처럼 개별 예측에 대한 설명(Local)이 가능할 뿐만 아니라, 전체 데이터셋에 대한 각 피처의 영향을 종합하여 모델 전체를 설명(Global)하는 것도 가능합니다.\n",
    "- **일관성 및 정확성**: 탄탄한 이론적 배경을 바탕으로, LIME보다 일관성 있고 신뢰도 높은 설명을 제공합니다.\n",
    "- **다양한 시각화 도구**:\n",
    "    - **Force Plot**: 특정 예측에 대한 각 피처의 긍정/부정적 영향을 시각적으로 보여줍니다.\n",
    "    - **Summary Plot**: 전체 데이터에 대해 각 피처가 예측에 미치는 영향의 분포와 중요도를 한눈에 보여줍니다.\n",
    "\n",
    "- **장점**: 이론적 기반이 탄탄하고, 로컬/글로벌 설명을 모두 제공하며, 시각화 도구가 강력합니다.\n",
    "- **단점**: 계산량이 많아, 특히 데이터가 크거나 피처가 많을 경우 계산 시간이 매우 오래 걸릴 수 있습니다.\n",
    "\n",
    "---\n",
    "\n",
    "## 5. 편향성 탐지 및 완화\n",
    "\n",
    "AI 모델은 학습 데이터에 내재된 사회적, 역사적 편견을 그대로 학습하여 특정 그룹에 불리한 예측을 내놓을 위험이 있습니다. 예를 들어, 과거 채용 데이터에 남성 지원자가 많았다면, AI 채용 모델은 성별을 중요한 판단 기준으로 학습하여 여성 지원자에게 불리한 결정을 내릴 수 있습니다. 이러한 모델의 **편향성(Bias)**은 기업의 신뢰도를 해치고, 법적 문제를 야기하며, 사회적 불평등을 심화시킬 수 있습니다.\n",
    "\n",
    "**공정한 AI(Fair AI)**는 이러한 편향성을 탐지하고, 측정하며, 완화하여 모델이 모든 사람에게 공평하게 작동하도록 보장하는 것을 목표로 합니다.\n",
    "\n",
    "### Microsoft Fairlearn: 공정성 측정을 위한 도구\n",
    "\n",
    "Fairlearn은 Microsoft에서 개발한 오픈소스 라이브러리로, 머신러닝 시스템의 공정성을 평가하고 개선하는 데 필요한 다양한 기능을 제공합니다.\n",
    "\n",
    "**주요 기능:**\n",
    "\n",
    "- **편향성 시각화**: 다양한 공정성 지표에 대한 모델의 성능을 그룹별(예: 성별, 인종별)로 비교하여 시각적으로 보여주는 대시보드를 제공합니다.\n",
    "- **공정성 지표 측정**: 수십 가지의 공정성 관련 지표를 계산하여 모델의 편향성 정도를 정량적으로 평가할 수 있습니다.\n",
    "- **편향성 완화 알고리즘**: 학습 데이터나 모델을 수정하여 편향성을 줄일 수 있는 다양한 완화 알고리즘을 제공합니다.\n",
    "\n",
    "### 공정성 지표의 종류\n",
    "\n",
    "Fairlearn에서는 크게 두 가지 유형의 공정성 문제를 다룹니다.\n",
    "\n",
    "1.  **Allocation Harms (자원 할당의 피해)**: AI의 결정이 기회나 자원(예: 채용, 대출 승인)의 분배에 영향을 미칠 때 발생합니다.\n",
    "    - **Demographic Parity (인구 통계학적 동등성)**: 모든 그룹에서 '긍정적인 예측 결과(예: 합격, 대출 승인)'의 비율이 동일해야 한다는 원칙입니다. 즉, `P(모델 예측=1 | 그룹=A) = P(모델 예측=1 | 그룹=B)` 입니다. 가장 직관적이지만, 그룹 간 실제 긍정 비율(base rate)이 다른 경우 오히려 역차별을 낳을 수 있습니다.\n",
    "    - **Equalized Odds (동등한 기회)**: 실제 결과가 참(True)인 경우와 거짓(False)인 경우 각각에 대해, 모든 그룹이 동일한 예측 확률(True Positive Rate, False Positive Rate)을 가져야 한다는 원칙입니다. 즉, 모든 그룹에서 민감도(Sensitivity)와 특이도(Specificity)가 같아야 합니다. Demographic Parity보다 더 엄격하고 정교한 기준으로 여겨집니다.\n",
    "\n",
    "2.  **Quality-of-Service Harms (서비스 품질의 피해)**: 모델의 성능(예: 정확도)이 특정 그룹에서 현저히 낮게 나타날 때 발생합니다.\n",
    "    - **Equal Accuracy (동일 정확도)**: 모든 그룹에서 모델의 정확도(Accuracy)가 동일해야 합니다.\n",
    "\n",
    "어떤 지표를 사용할지는 문제의 종류와 사회적 합의에 따라 달라지며, 모든 지표를 동시에 만족시키는 것은 일반적으로 불가능합니다.\n",
    "\n",
    "### 편향성 완화 기법\n",
    "\n",
    "Fairlearn은 편향성을 완화하기 위해 머신러닝 파이프라인의 각 단계에 적용할 수 있는 세 가지 유형의 알고리즘을 제공합니다.\n",
    "\n",
    "1.  **전처리 (Preprocessing)**: 모델을 학습시키기 전에, 원본 데이터를 변환하여 데이터 자체의 편향성을 줄이는 방법입니다.\n",
    "    - 예: `Reweighing` - 소수 그룹의 데이터 샘플에 더 높은 가중치를 부여하여 학습 과정에서 더 큰 영향을 미치도록 합니다.\n",
    "\n",
    "2.  **인프로세싱 (In-processing) / 학습 중 처리**: 모델 학습 과정 자체에 공정성 제약 조건을 추가하여, 정확도와 공정성을 동시에 최적화하는 모델을 학습시키는 방법입니다.\n",
    "    - 예: `GridSearch` - 정확도와 공정성 지표 사이의 트레이드오프를 고려하여 여러 모델을 학습시키고 최적의 모델을 선택합니다.\n",
    "\n",
    "3.  **후처리 (Post-processing)**: 이미 학습된 블랙박스 모델의 예측 결과를 조정하여 편향성을 완화하는 방법입니다. 모델 자체를 수정할 수 없을 때 유용합니다.\n",
    "    - 예: `ThresholdOptimizer` - 각 그룹별로 최적의 예측 임계값(threshold)을 다르게 설정하여 공정성 지표를 만족시키도록 조정합니다.\n",
    "\n",
    "이러한 기법들을 사용하여 개발자는 모델의 성능과 공정성 사이의 균형을 맞추고, 더 책임감 있는 AI 시스템을 구축할 수 있습니다.\n",
    "\n",
    "---\n",
    "\n",
    "## 6. AI 규제와 컴플라이언스\n",
    "\n",
    "AI 기술이 사회 전반에 확산되면서, 각국 정부와 국제기구는 AI의 잠재적 위험을 관리하고 신뢰를 확보하기 위한 규제 및 거버넌스 체계를 마련하고 있습니다. 개발자와 기업은 이러한 규제를 준수하고 사회적 책임을 다하기 위해 노력해야 합니다.\n",
    "\n",
    "### EU AI Act: 세계 최초의 포괄적 AI 법안\n",
    "\n",
    "유럽연합(EU)의 AI Act는 AI 시스템을 위험 수준에 따라 4단계(불용, 고위험, 제한된 위험, 최소 위험)로 분류하고, 각 등급별로 차등적인 의무를 부과하는 세계 최초의 포괄적인 AI 법률입니다.\n",
    "\n",
    "**핵심 내용**:\n",
    "\n",
    "1.  **위험 기반 접근 방식 (Risk-Based Approach)**:\n",
    "    - **불용 위험 (Unacceptable Risk)**: 사회적 점수화, 잠재의식적 조작 등 인간의 안전과 권리에 명백한 위협이 되는 AI 시스템은 **전면 금지**됩니다.\n",
    "    - **고위험 (High-Risk)**: 채용, 신용 평가, 의료, 핵심 인프라 등 개인과 사회에 중대한 영향을 미칠 수 있는 AI 시스템입니다. 고위험 AI는 시장에 출시되기 전과 운영 중에 엄격한 요구사항(데이터 품질, 문서화, 투명성, 인간 감독 등)을 준수해야 합니다.\n",
    "    - **제한된 위험 (Limited Risk)**: 챗봇, 딥페이크 등 사용자가 AI와 상호작용하고 있다는 사실을 인지해야 하는 시스템입니다. **투명성 의무**가 부과됩니다.\n",
    "    - **최소 위험 (Minimal Risk)**: AI 기반 비디오 게임, 스팸 필터 등 대부분의 AI 시스템이 여기에 해당하며, 별도의 의무는 없지만 자발적인 행동 강령 준수가 권장됩니다.\n",
    "\n",
    "2.  **범용 AI (General-Purpose AI) 모델에 대한 규제**:\n",
    "    - GPT, Claude와 같은 대규모 AI 모델도 규제 대상에 포함됩니다. 모델 개발자는 기술 문서를 작성하고, EU 저작권법을 존중하며, 학습 데이터에 대한 상세한 요약을 제공해야 할 의무가 있습니다.\n",
    "\n",
    "EU AI Act는 유럽 시장에 AI 제품이나 서비스를 제공하는 모든 기업(EU 외 기업 포함)에 적용되므로, 글로벌 스탠더드로 자리 잡을 가능성이 높습니다.\n",
    "\n",
    "### 모델 카드 (Model Cards)\n",
    "\n",
    "모델 카드는 구글에서 제안한 개념으로, 학습된 머신러닝 모델의 성능, 특성, 한계 등을 투명하게 공개하기 위한 **표준화된 문서**입니다. 마치 제품의 '영양성분표'처럼, 모델 사용자가 모델에 대해 충분히 이해하고 책임감 있게 사용할 수 있도록 돕는 것을 목표로 합니다.\n",
    "\n",
    "**주요 포함 내용**:\n",
    "\n",
    "- **모델 기본 정보**: 모델 이름, 버전, 개발자, 연락처 등\n",
    "- **용도**: 모델이 어떤 목적으로 개발되었고, 어떤 상황에서 사용되어야 하는지(Intended Use)와 사용되어서는 안 되는지(Out-of-Scope Use)를 명시합니다.\n",
    "- **성능 지표**: 전체 데이터셋 및 인구 통계학적 하위 그룹(성별, 인종 등)에 대한 정확도, 정밀도, 재현율, 공정성 지표 등을 상세히 기술합니다.\n",
    "- **학습 데이터**: 모델 학습에 사용된 데이터셋의 출처, 구성, 전처리 과정 등을 설명합니다.\n",
    "- **윤리적 고려사항**: 모델의 잠재적 편향성, 개인정보보호 문제, 사회적 영향 등에 대한 분석과 완화 노력을 포함합니다.\n",
    "\n",
    "### 데이터 시트 (Datasheets for Datasets)\n",
    "\n",
    "데이터 시트는 마이크로소프트에서 제안한 개념으로, 데이터셋 자체에 대한 상세한 정보를 제공하는 문서입니다. 머신러닝 모델의 성능과 편향성은 학습 데이터에 크게 의존하기 때문에, 데이터셋의 특성과 한계를 명확히 이해하는 것은 매우 중요합니다.\n",
    "\n",
    "**주요 포함 내용**:\n",
    "\n",
    "- **데이터셋 기본 정보**: 데이터셋 이름, 버전, 생성자, 라이선스 등\n",
    "- **수집 동기 및 과정**: 어떤 목적으로, 누가, 어떻게 데이터를 수집하고 정제했는지 상세히 기록합니다.\n",
    "- **데이터 구성**: 데이터의 형식(이미지, 텍스트 등), 통계적 특성, 민감 정보 포함 여부 등을 기술합니다.\n",
    "- **권장 사용법 및 한계**: 데이터셋이 어떤 종류의 작업에 적합하며, 잠재적으로 어떤 편향을 포함하고 있는지, 사용 시 주의할 점은 무엇인지 명시합니다.\n",
    "\n",
    "모델 카드와 데이터 시트는 AI 시스템의 투명성과 책임성을 높이는 핵심적인 도구입니다. 개발자는 이러한 문서를 충실히 작성하고 공개함으로써 사용자와의 신뢰를 구축하고, AI 기술의 건강한 생태계를 만드는 데 기여할 수 있습니다.\n",
    "\n",
    "---\n",
    "\n",
    "## 7. 캡스톤 프로젝트 연계 미니 프로젝트: \"대출 심사 모델을 위한 편향성 분석 및 완화 보고서\" 작성\n",
    "\n",
    "> Part 14에서 학습한 AI 윤리 개념을 실제 시나리오에 적용하여, 모델의 편향성을 탐지하고 완화하며 그 과정을 문서화하는 미니 프로젝트를 진행합니다.\n",
    "\n",
    "**프로젝트 목표:**\n",
    "가상의 '대출 심사 AI 모델'의 예측 결과를 분석하여, 특정 인구 통계 그룹(예: 성별, 연령대)에 대한 편향성이 존재하는지 Fairlearn을 사용해 탐지하고, 완화 기법을 적용해 본 후, 결과를 '모델 카드' 형식의 보고서로 작성하여 AI 시스템의 투명성을 확보하는 경험을 쌓습니다.\n",
    "\n",
    "**주요 구현 단계:**\n",
    "\n",
    "1.  **시나리오 설정 및 데이터 준비**\n",
    "    *   가상의 대출 신청자 데이터(나이, 소득, 부채, 신용 점수, 성별 등)와 모델의 예측 결과(대출 승인/거절)를 생성하거나 다운로드합니다. (예: `scikit-learn`의 `make_classification`으로 데이터 생성 후, 특정 그룹에 의도적인 편향 주입)\n",
    "    *   '성별' 또는 '연령대'를 민감 특성(sensitive feature)으로 지정합니다.\n",
    "\n",
    "2.  **편향성 탐지 및 측정 (Fairlearn `MetricFrame`)**\n",
    "    *   `fairlearn.metrics`의 `MetricFrame`을 사용하여 모델의 전반적인 성능(예: `accuracy_score`)과 민감 특성 그룹별 성능을 비교 분석합니다.\n",
    "    *   주요 공정성 지표(Demographic Parity, Equalized Odds 등)를 계산하고, 그룹 간 차이가 통계적으로 유의미한지 확인합니다.\n",
    "    *   Fairlearn의 시각화 기능을 사용하여 그룹 간 성능 불균형을 대시보드 형태로 시각화하고, 어떤 그룹이 불이익을 받는지 직관적으로 파악합니다.\n",
    "\n",
    "3.  **편향성 완화 알고리즘 적용**\n",
    "    *   Fairlearn에서 제공하는 후처리(Post-processing) 기법인 `ThresholdOptimizer`를 적용해 봅니다.\n",
    "    *   이 기법은 원본 모델을 수정하지 않고, 각 그룹에 대한 예측 임계값을 조정하여 공정성 지표를 개선합니다.\n",
    "    *   완화 기법 적용 전과 후의 정확도 및 공정성 지표를 비교하여, '정확도-공정성 트레이드오프'를 확인하고 분석합니다.\n",
    "\n",
    "4.  **모델 카드 초안 작성**\n",
    "    *   분석 및 완화 과정의 결과를 바탕으로 모델 카드의 일부를 작성합니다.\n",
    "    *   **[용도]**: 모델의 사용 목적과 범위를 명시합니다.\n",
    "    *   **[성능 지표]**: 전체 및 그룹별 정확도, 그리고 완화 전후의 공정성 지표 변화를 명확하게 기술합니다.\n",
    "    *   **[윤리적 고려사항]**: 발견된 편향의 종류, 잠재적 위험, 그리고 편향 완화를 위해 어떤 노력을 기울였는지 서술합니다. 이 과정을 통해 모델의 한계점을 투명하게 공유합니다.\n",
    "\n",
    "**캡스톤 프로젝트 연계 방안:**\n",
    "이 미니 프로젝트는 여러분의 캡스톤 프로젝트에서 모델의 '신뢰성'과 '책임성' 파트를 강화하는 데 직접적으로 활용될 수 있습니다. 최종 모델에 대해 편향성 분석을 수행하고, 그 결과를 모델 카드 형식으로 문서화하여 발표 자료에 포함시키세요. 이는 단순한 모델 성능 경쟁을 넘어, 실제 산업 현장에서 요구되는 '책임감 있는 AI 개발자'로서의 역량을 보여주는 강력한 차별화 포인트가 될 것입니다.\n",
    "\n",
    "---\n",
    "\n",
    "## 8. 트러블슈팅 (Troubleshooting)\n",
    "\n",
    "- **SHAP 계산이 너무 오래 걸리거나 메모리가 부족한가요?**\n",
    "  - SHAP은 정확한 계산을 위해 많은 연산을 필요로 합니다. 특히 `KernelExplainer`는 모든 피처 조합을 고려하므로 느릴 수 있습니다.\n",
    "  - **데이터 샘플링**: 설명할 데이터의 양이 많다면, 대표성을 가질 수 있는 일부 데이터(e.g., 100~1000개)를 샘플링하여 계산 시간을 줄일 수 있습니다.\n",
    "  - **Tree-based 모델**: 설명하려는 모델이 XGBoost, LightGBM, CatBoost와 같은 트리 기반 모델이라면, 이에 최적화된 `TreeExplainer`를 사용하세요. `KernelExplainer`보다 훨씬 빠르고 정확한 SHAP 값을 계산합니다.\n",
    "- **Fairlearn의 완화 알고리즘을 적용한 후 모델 정확도가 너무 많이 떨어졌나요?**\n",
    "  - 공정성과 정확도는 종종 **트레이드오프(trade-off)** 관계에 있습니다. 편향성을 강하게 보정할수록 모델의 전반적인 성능은 떨어질 수 있습니다. `GridSearch`와 같은 인프로세싱 알고리즘을 사용하여, 허용 가능한 수준의 정확도 감소 범위 내에서 최적의 공정성-정확도 균형점을 찾는 것이 중요합니다.\n",
    "- **모델 카드를 작성하려고 하니, 어떤 내용을 채워야 할지 막막한가요?**\n",
    "  - 처음부터 완벽한 문서를 만들려고 하기보다, 채울 수 있는 항목부터 시작하는 것이 좋습니다. Hugging Face Hub에 올라와 있는 다른 모델들의 `Model Card`를 참고하는 것이 가장 좋은 방법입니다. 특히 [Google의 모델 카드 템플릿](https://modelcards.withgoogle.com/model-card-toolkit)이나 [Hugging Face의 템플릿](https://huggingface.co/docs/hub/model-cards)을 살펴보면 어떤 내용을 어떤 수준으로 기술해야 하는지 감을 잡는 데 도움이 됩니다.\n",
    "- **LIME 설명 결과가 실행할 때마다 조금씩 바뀌나요?**\n",
    "  - LIME은 설명할 데이터 포인트 주변을 **무작위로 샘플링**하여 지역적인 모델을 학습시키기 때문에, 실행 시마다 결과가 조금씩 달라질 수 있습니다. 이는 LIME의 본질적인 특성입니다. 결과의 안정성을 높이려면 `num_samples` 파라미터를 늘려 더 많은 샘플을 사용하는 것을 고려해볼 수 있지만, 계산 시간도 함께 늘어납니다.\n",
    "\n",
    "더 자세한 문제 해결 가이드나 다른 동료들이 겪은 문제에 대한 해결책이 궁금하다면, 아래 문서를 참고해주세요.\n",
    "\n",
    "- **➡️ [Geumdo-Docs: TROUBLESHOOTING.md](../../../TROUBLESHOOTING.md)**\n",
    "\n",
    "---\n",
    "\n",
    "## 9. 개념 확인 퀴즈 (Concept Check Quiz)\n",
    "\n",
    "1. XAI 기법인 LIME과 SHAP의 가장 큰 차이점은 무엇인가요? (설명의 범위 관점에서)\n",
    "2. AI의 공정성 지표 중 'Demographic Parity'와 'Equalized Odds'는 각각 무엇을 의미하며, 어떤 상황에서 서로 다른 결론을 내릴 수 있을까요?\n",
    "3. '모델 카드'를 작성하는 가장 중요한 목적은 무엇이라고 생각하시나요?\n",
    "\n",
    "---\n",
    "\n",
    "## 10. 과제 (Assignment)\n",
    "\n",
    "1. **공정성 문제 해결 시나리오**: 여러분이 은행의 대출 심사 AI 모델 개발자라고 가정해 봅시다. 모델이 특정 그룹에게 불리한 결정을 내린다는 의심이 제기되었습니다. Fairlearn 라이브러리를 사용하여 이 문제를 (1)탐지하고, (2)측정하고, (3)완화하기 위한 단계를 구체적으로 설명해 보세요.\n",
    "2. **모델 카드 작성 연습**: 여러분이 이전에 만들었던 프로젝트(또는 가상의 이미지 분류 모델)에 대한 '모델 카드'의 주요 항목(용도, 성능 지표, 학습 데이터, 윤리적 고려사항)을 간략하게 채워보는 연습을 해보세요.\n",
    "\n",
    "---\n",
    "\n",
    "## 11. 되짚어보기 (Summary)\n",
    "\n",
    "이번 파트에서는 AI를 더 똑똑하게 만드는 것을 넘어, 더 올바르고 공정하게 만들기 위한 AI 윤리와 거버넌스 실무에 대해 학습했습니다.\n",
    "\n",
    "- **설명가능 AI (XAI)**: '블랙박스' 모델의 결정을 이해하기 위한 XAI의 필요성을 배우고, 대표적인 기법인 LIME과 SHAP의 원리와 활용법을 익혔습니다.\n",
    "- **편향성 탐지 및 완화**: AI 모델이 학습 데이터로부터 편견을 학습할 수 있음을 인지하고, Fairlearn을 사용하여 모델의 편향성을 측정하고 완화하는 다양한 기법들을 살펴보았습니다.\n",
    "- **AI 규제와 컴플라이언스**: EU AI Act와 같은 글로벌 AI 규제 동향을 파악하고, 모델 카드와 데이터 시트를 통해 AI 시스템의 투명성과 책임성을 확보하는 방법을 학습했습니다.\n",
    "\n",
    "---\n",
    "\n",
    "## 12. 더 깊이 알아보기 (Further Reading)\n",
    "- [LIME 원문 논문 (KDD 2016)](https://arxiv.org/abs/1602.04938)\n",
    "- [SHAP 원문 논문 (NeurIPS 2017)](https://arxiv.org/abs/1705.07874)\n",
    "- [Fairlearn 공식 문서](https://fairlearn.org/): 공정성 측정 및 완화 알고리즘 가이드\n",
    "- [Hugging Face Blog: Model Cards](https://huggingface.co/blog/model-cards): 모델 카드 작성에 대한 좋은 예시와 설명\n",
    "- [EU AI Act 최종안 (영문)](https://artificialintelligenceact.com/): AI 법안의 상세 조항 확인\n",
    "\n",
    "---\n",
    "\n",
    "### 참고 자료\n",
    "\n",
    "*   [Partnership on AI](https://partnershiponai.org/): AI의 미래에 대한 연구와 논의를 선도하는 비영리 단체\n",
    "*   [AI 윤리 정책 동향](https://www.nia.or.kr/nia/re/sub/re_15_1.do?boardId=10406): 한국지능정보사회진흥원(NIA)에서 제공하는 국내외 AI 윤리 정책 동향\n",
    "\n",
    "---\n",
    "\n",
    "### ⚠️ What Could Go Wrong? (토론 주제)\n",
    "\n",
    "AI 윤리 원칙을 선언하는 것은 쉽지만, 그것을 실제 제품과 조직 문화에 내재화하는 과정은 수많은 난관과 딜레마로 가득 차 있습니다.\n",
    "\n",
    "1.  **'윤리 워싱'의 함정 (The \"Ethics Washing\" Trap)**\n",
    "    *   기업이 실질적인 기술적/조직적 변화 없이, 마케팅이나 PR 목적으로만 'AI 윤리 위원회'를 만들거나 '책임감 있는 AI 원칙'을 발표하는 경우가 있습니다. 진정성 있는 AI 윤리 실천과 '보여주기식' 활동을 어떻게 구분할 수 있을까요?\n",
    "    *   개발자 입장에서, 우리 회사의 AI 윤리 활동이 '워싱'이 아니라고 자신 있게 말하려면 어떤 조건이 충족되어야 할까요?\n",
    "\n",
    "2.  **편향 탐지 및 완화의 한계 (Limitations of Bias Detection and Mitigation)**\n",
    "    *   AIF360, Fairlearn과 같은 도구를 사용하여 데이터나 모델의 통계적 편향을 측정하고 완화할 수 있지만, 이는 사회에 존재하는 복잡하고 미묘한 편견(예: 특정 직업에 대한 성 역할 고정관념)을 완벽하게 포착하지 못합니다.\n",
    "    *   편향을 완화하려는 기술적 시도가 오히려 또 다른 형태의 편향을 만들어내거나('편향-정확도 트레이드오프'), 문제를 지나치게 단순화할 위험은 없을까요? 기술적인 해결책만으로 사회적 편견 문제를 다룰 수 있을까요?\n",
    "\n",
    "3.  **설명가능성(XAI)의 역설 (The Paradox of Explainability)**\n",
    "    *   모델의 예측 결과를 해석하기 위해 LIME이나 SHAP 같은 XAI 기술을 사용했지만, 그 설명 자체가 너무 복잡하여 비전문가가 이해하기 어렵거나, 때로는 사용자를 오도(misleading)할 수 있습니다.\n",
    "    *   또한, 설명가능성을 높이기 위해 일부러 성능이 더 낮은 단순한 모델(예: 로지스틱 회귀)을 사용해야 하는 딜레마에 빠질 수 있습니다. '설명을 위한 설명'이 되는 것을 어떻게 경계하고, 진정으로 유용한 설명을 제공할 수 있을까요?\n",
    "\n",
    "4.  **책임 소재의 불분명성 (Ambiguity of Accountability)**\n",
    "    *   자율주행차가 사고를 냈을 때, 그 책임은 자동차 소유주, 자동차 제조사, AI 모델을 개발한 엔지니어, 학습 데이터를 제공한 회사 중 누구에게 있을까요? AI 시스템의 결정으로 인해 피해가 발생했을 때, 법적/윤리적 책임을 어떻게 분배해야 하는가에 대한 사회적 합의가 아직 부족합니다.\n",
    "    *   이러한 책임의 공백 상태가 AI 기술 발전과 도입에 어떤 영향을 미칠까요?\n",
    "\n",
    "5.  **'규제 준수'가 곧 '윤리'라는 착각 (The Misconception that \"Compliance\" Equals \"Ethics\")**\n",
    "    *   GDPR과 같은 데이터 보호 규정을 지키는 것을 AI 윤리를 전부 실천한 것이라고 착각하는 경우가 있습니다. 하지만 법은 사회가 용납하는 최소한의 기준일 뿐입니다.\n",
    "    *   법이 아직 정의하지 못하는 회색지대(예: 딥페이크 기술의 오용, AI를 이용한 감정 조작)에서, 개발자와 기업은 어떤 윤리적 책임을 져야 할까요? '법을 어기진 않았다'는 변명이 충분할까요?\n",
    "\n",
    "---\n",
    "\n",
    "**➡️ 다음 시간: [Part 15: 나만의 AI 서비스 만들기 (캡스톤 프로젝트 가이드)](../15_capstone_project/part_15_capstone_project.md)**\n"
   ]
  }
 ],
 "metadata": {},
 "nbformat": 4,
 "nbformat_minor": 5
}
