강의 및 자료 : 서울대 DSBA 연구실 (https://youtu.be/LshTQYFV8KU?si=uQBQmVFRdU95jOKc)

📌 XAI : Usage (사용 방식) 

XAI(설명 가능한 AI)는 모델 자체가 해석력을 가지는지 또는 외부적으로 설명을 부여하는지에 따라 Intrinsic XAI(내재적 XAI)와 Post-Hoc XAI(사후적 XAI)로 나뉜다.


 

1️⃣ Intrinsic XAI (내재적 XAI)

  • 설명 가능성이 모델 자체에 내장됨
  • 모델의 구조와 동작 방식이 직관적이고 명확하여, 별도의 해석 과정이 필요 없음
  • 정의상, 모델에 종속적(model-specific)이므로 다른 모델 아키텍처에 쉽게 재사용할 수 없음

장점
✔ 직관적이고 빠르게 해석 가능

 

단점
🚨 복잡한 문제에 적용하기 어려움 (설명 가능성 vs 성능의 트레이드오프)

📌 Intrinsic XAI 예시

  • Decision Tree
  • Linear Regression, Logistic Regression
  • Rule-based Models (예: RuleFit)
  • Interpretable CNNs
  • Capsule Networks
  • Attention Mechanism

📌 추가 Intrinsic XAI 모델

✅ Bayesian Rule Lists

  • If-Then 규칙 기반의 의사결정 리스트를 사용하여 모델의 예측을 설명
  • 특정 조건을 만족하면 해당 데이터 포인트를 특정 클래스로 할당
  • 규칙을 반복적으로 추가 및 수정하여 posterior distribution을 따르도록 최적화

✅ Neural Additive Models

  • 각 입력 특징별로 개별적인 신경망을 학습하고,
    → 이를 선형 결합하여 최종 출력을 생성
  • 개별 특징의 기여도를 명확하게 분석할 수 있음

✅ Sparse LDA (Latent Dirichlet Allocation)

  • 일부 중요한 피처만 선택하여 모델을 구성
  • 모델 복잡성을 줄이고, 해석 가능성을 향상

2️⃣ Post-Hoc XAI (사후적 XAI)

  • 이미 학습된 모델에 대해 사후적으로 해석을 부여하는 방식
  • 모델 자체는 블랙박스 상태이지만, 결과를 분석하여 설명을 생성
  • 범용성이 높아 다양한 모델에 적용 가능

장점
✔ 복잡한 모델에도 적용 가능
✔ 모델 성능 저하 없이 해석 제공

 

단점
🚨 설명의 정확도가 모델에 따라 다를 수 있음

📌 Post-Hoc XAI 예시

  • LIME (KDD 2016)
  • SHAP (NeurIPS 2017)
  • Gradient-based Methods
    • Grad-CAM (ICCV 2017)
    • Integrated Gradients (ICML 2017)
  • Perturbation Methods
    • Occlusion
    • Adversarial Changes
  • Attention Map Visualization
    • Transformer 모델에서 Attention Mechanism을 시각화하여 해석

📌 추가 Post-Hoc XAI 연구

✅ Attention Meets Post-Hoc Interpretability: A Mathematical Perspective

  • Attention weight만으로 모델의 전체 예측 과정을 완전히 설명하기에는 한계가 있음
  • Attention Mechanism은 모델의 내재적 설명으로 보기 어려우며, Post-Hoc 설명에 더 가깝다고 볼 수 있음

📌 정리

구분 Intrinsic XAI (내재적 XAI)  Post-Hoc XAI (사후적 XAI)
설명 방식 모델 자체가 해석력을 가짐 학습된 모델을 사후적으로 분석하여 설명
특징 모델 구조가 직관적, 별도 해석 과정 불필요 복잡한 블랙박스 모델에도 적용 가능
모델 종속성 모델에 종속적 (Model-Specific) 모델과 독립적 (Model-Agnostic)
장점 직관적이고 빠른 해석 가능 범용적으로 다양한 모델에 적용 가능
단점 복잡한 문제 적용 어려움 (성능 vs 설명력 Trade-off) 모델에 따라 해석 정확도가 달라질 수 있음
예시 Decision Tree, Rule-based Models, Neural Additive Models LIME, SHAP, Grad-CAM, Integrated Gradients

 

 

 


강의 및 자료 : 서울대 DSBA 연구실 (https://youtu.be/LshTQYFV8KU?si=IJz26h5lN4lKtrZf)

📌 XAI : Introduction - Part 1

 


1️⃣ Scope (설명 범위)

XAI 기법이 개별 데이터 인스턴스(Local) 또는 모델 전체(Global)에 초점을 맞추는지를 기준으로 구분한다.


1. Local Explanation (국소적 설명)

  • 개별 데이터 인스턴스에 대한 설명을 제공하며, 특정 입력이 모델 예측에 미치는 영향을 분석.

📌 Local Interpretable Model-Agnostic Explanations (LIME)

 설명 방법:

  • 복잡한 모델의 의사결정 공간(decision space)에서 국소(local) 영역을 선형 모델로 근사하여 설명을 생성.
  • 이미지 데이터의 경우, Superpixel을 활용하여 perturbation을 적용한 후 선형 모델을 학습.

 장점:
✔ 모델 독립적(Model-Agnostic)
✔ 다양한 데이터 유형(텍스트, 이미지 등)에 적용 가능

 

 한계점:
🚨 설명의 일관성이 떨어질 수 있음
🚨 고차원 데이터에서 정확도 저하


📌 Shapley Additive Explanations (SHAP)

 설명 방법:

  • 게임 이론(Game Theory) 기반의 방법.
  • 각 특징(feature)이 모델 출력값에 미치는 기여도를 Shapley Value로 측정.
  • 이미지 데이터의 경우, 각 픽셀별로 Shapley Value를 계산하여 영향력 분석 가능.

 장점:
✔ 수학적으로 엄격한 보장(Shapley Value의 공리 기반)
✔ 글로벌/로컬 설명 가능

 

 한계점:
🚨 계산량이 많아 연산 비용이 큼


📌 Saliency Map

 설명 방법:

  • 특정 입력값에 대한 Gradient 크기를 활용하여 해당 값이 모델 예측에 기여한 정도(Attribution)를 정량화.
  • Gradient가 크면 예측에 긍정적 영향(Positive Attribution), 작으면 부정적 영향(Negative Attribution)을 준다고 해석.
  • 주로 이미지 분류 모델에서 사용됨.

 장점:
✔ 모델의 어떤 입력값이 중요한지 시각적으로 표현 가능

 

 한계점:
🚨 Gradient 자체가 잡음이 포함될 수 있어 해석이 어렵거나 일관성이 부족할 수 있음


📌 Layer-wise Relevance Propagation (LRP)

 설명 방법:

  • 모델의 예측값을 입력값으로 역전파(Backpropagation)하며, 각 Layer의 뉴런에 대한 기여도를 할당.
  • 신경망 내부에서 어떤 뉴런이 예측 결과에 영향을 미쳤는지 분석.

 장점:
✔ 딥러닝 모델 내부의 의사결정 과정을 구체적으로 분석 가능

 

 한계점:
🚨 특정 모델 구조(특히 신경망)에 종속적이며, 모델 독립적인 방법은 아님


2. Global Explanation (전역적 설명)

  • 모델 전체를 분석하여 일반적인 의사결정 패턴을 이해하는 기법.

📌 Activation Maximization

 설명 방법:

  • 특정 레이어의 뉴런이 활성화될 때 나타나는 **특징(Feature)**을 시각화.
  • CNN 기반 모델에서 특정 클래스에 대해 Gradient Ascent를 수행하여 해당 클래스에 대한 특징을 강조.

 장점:
✔ CNN 모델이 어떤 특징을 학습했는지 직관적으로 이해 가능

 

 한계점:
🚨 학습된 특징이 사람의 직관과 다를 수 있음


📌 Testing with Concept Activation Vectors (TCAV)

 설명 방법:

  • 사용자가 정의한 개념(Concept)이 모델 예측에 얼마나 영향을 미치는지 정량적으로 평가.
  • Concept Examples와 Random Images를 분류하는 선형 모델 학습 후, **Concept Activation Vector (CAV)**를 생성하여 영향력을 분석.

 장점:
✔ 사람이 직관적으로 해석할 수 있는 개념 단위로 설명 가능

 

 한계점:
🚨 사람이 정의한 개념 자체가 편향(Bias)을 가질 가능성 있음


📌 Automatic Concept-based Explanations (ACE)

 설명 방법:

  • 사람이 직접 개념을 선택하지 않고, 데이터에서 중요한 개념을 자동으로 학습.
  • 평가 방식:
    • Smallest Sufficient Concepts (SSC): 예측을 유지하는 데 필요한 최소 개념
    • Smallest Destroying Concepts (SDC): 예측을 변경하는 최소 개념

 장점:
✔ 개념을 자동으로 추출하여 설명에 대한 편향을 줄일 수 있음

 

 한계점:
🚨 개념의 의미를 사람이 직관적으로 이해하기 어려울 수 있음


2️⃣  Methodology (설명 방식)

XAI 기법을 설명을 생성하는 방법론적 접근 방식에 따라 분류.


1. Gradient-Based (Backpropagation 기반)

  • 모델의 Gradient를 활용하여 예측에 기여한 입력값을 분석.

📌 Saliency Map

  • Gradient 크기를 활용하여 중요도(Attribution)를 정량화하는 기법.

📌 Grad-CAM

  • Class Activation Map (CAM)에 Gradient를 반영하여 예측에 대한 기여도를 시각적으로 표현.
  • 이미지 분류 모델에서 널리 사용.

📌 Integrated Gradients

 설명 방법:

  • Sensitivity와 Implementation Invariance 공리를 만족하는 Attribution 방법을 제안.
  • Baseline과의 비교를 통해 기여도를 적분(Integration)하여 측정.
  • Completeness 조건을 추가하여 모델 해석력 향상.

 장점:
✔ 공리 기반이므로 수학적으로 신뢰성이 높음
 Gradient Noise의 영향을 줄일 수 있음

 

 한계점:
🚨 계산량이 많음


2. Perturbation-Based (입력 변형 기반)

  • 입력값을 조작하여 모델의 예측 변화 분석.

📌 DeConvNet

 설명 방법:

  • CNN 모델에서 Maxpooling Layer의 특징을 사용하여 입력값의 기여도를 복원하는 방식.
  • 어떤 입력이 최종 결과에 기여했는지 확인 가능.

 장점:
✔ 시각적 해석 가능 

 한계점:
🚨 Gradient 기반 방법보다 설명력이 떨어질 수 있음


📌 Randomized Input Sampling for Explanation (RISE)

 설명 방법:

  • 랜덤 마스크를 통해 입력을 변형하고 모델의 반응을 측정.
  • 마스크가 활성화된 영역이 모델의 예측에 중요한 역할을 했는지 분석.

 장점:
✔ 모델 독립적으로 적용 가능
✔ 특정 부분이 예측에 미치는 영향을 직관적으로 해석 가능

 

 한계점:
🚨 계산량이 많으며, 샘플링에 따라 결과가 달라질 수 있음


✏️ 최종 정리

  1. XAI의 Scope (국소 vs 전역)
    • LIME, SHAP, Saliency Map, LRP → Local
    • Activation Maximization, TCAV, ACE → Global
  2. XAI의 Methodology (방법론)
    • Saliency Map, Grad-CAM, Integrated Gradients → Gradient 기반
    • LIME, RISE, DeConvNet → Perturbation 기반

강의 및 자료 : 서울대 DSBA 연구실 (https://youtu.be/LshTQYFV8KU?si=IJz26h5lN4lKtrZf)

📌 XAI : Introduction - Part 1 


1️⃣ Definition (정의)

  • Interpretability (해석 가능성): 모델이 얼마나 쉽게 이해될 수 있는가?
  • Interpretation (해석): 모델이 이 결과를 어떻게 도출했는가?
  • Explanation (설명): 이 결과가 왜 나왔는가?
  • White-box (화이트박스): 사용자가 모델 내부 구조 및 파라미터에 접근 가능
  • Black-box (블랙박스): 사용자가 모델 내부 구조 및 파라미터에 접근 불가능

2️⃣ Importance of XAI Research (XAI 연구의 중요성)

🔎 왜 XAI 연구가 중요한가?

Transparency (투명성 향상)
: 모델이 어떻게 예측을 수행하는지 설명하여 신뢰성을 확보

Trust (신뢰성 향상)
: 사용자가 AI의 예측 결과를 신뢰하고, 결정에 대한 확신을 가질 수 있도록 지원

Bias Understanding & Fairness (편향 이해 및 공정성 향상)
: 모델이 특정 그룹에 편향되지 않도록 공정성을 평가하고 개선 가능


3️⃣ Taxonomy (XAI 방법론 분류)

XAI 기법은 세 가지 주요 기준을 바탕으로 분류할 수 있다.

1. Scope (범위)

💡 XAI가 개별 데이터 인스턴스를 설명하는지 (Local) 또는 모델 전체를 분석하는지 (Global)에 따라 구분됨.

Local Explanation (국소적 설명) 개별 데이터 인스턴스를 설명하는 방식
Global Explanation (전역적 설명) 모델 전체를 이해하려는 방식

📌 Local Explanation

  • 개별 데이터 인스턴스에 대한 설명 제공
  • 각 데이터 샘플 x  당 하나의 설명 맵 g 생성

📎 관련 기법:

  • LIME (KDD 2016)
  • SHAP (NeurIPS 2017)
  • Saliency Map (ICLR 2014)
  • Layer-wise Relevance Propagation (LRP) (Pattern Recognition 2017)

📌 Global Explanation

  • 모델 전체를 이해하려는 접근 방식
  • 여러 데이터 인스턴스를 활용하여 하나 이상의 설명 맵 생성

📎 관련 기법:

  • Activation Maximization (ICLR 2014)
  • TCAV (Testing with Concept Activation Vectors) (ICML 2018)
  • ACE (Automatic Concept-based Explanations) (NeurIPS 2019)

2. Methodology (방법론)

💡 설명을 생성하는 방식이 Gradient(Backpropagation) 기반인지, Perturbation(입력 변형) 기반인지에 따라 구분됨.

Backpropagation-based (Gradient 기반) 모델의 Gradient를 활용하여 설명을 생성
Perturbation-based (입력 변형 기반) 입력 데이터를 변형하여 모델 반응을 분석

📌 Backpropagation-based Methods (역전파 기반 기법)

  • 모델의 Gradient 정보를 활용하여 설명을 생성
  • 출력 예측 레이어에서 입력 레이어로 Gradient를 역전파하여 기여도를 측정

📎 관련 기법:

  • Saliency Map (ICLR 2014)
  • Grad-CAM (ICCV 2017)
  • Integrated Gradients (ICML 2017)

📌 Perturbation-based Methods (입력 변형 기반 기법)

  • 입력 데이터를 무작위로 변경하거나 특정 특징을 변형한 후 모델의 반응을 분석

📎 관련 기법:

  • DeConvNet (ECCV 2014)
  • RISE (Randomized Input Sampling for Explanation) (BMVC 2018)

3. Usage (사용 방식)

💡 XAI가 모델 자체에 내장(Intrinsic)되어 있는지, 학습된 모델에도 적용 가능한지(Post-Hoc)에 따라 구분됨.

Intrinsic (내재적 기법) 설명 가능성이 신경망 아키텍처 자체에 포함됨
Post-Hoc (사후적 기법) 모델 아키텍처와 독립적으로 작동하며, 이미 학습된 모델에도 적용 가능

📌 Intrinsic (내재적) XAI

  • Explainability가 신경망 아키텍처 자체에 포함
  • 특정 모델에 종속되며, 다른 모델에는 적용 불가능한 경우가 많음

📌 Post-Hoc (사후적) XAI

  • 모델 아키텍처와 독립적으로 설명을 제공
  • 이미 학습된 신경망에도 적용 가능하여 범용성이 높음

✏️ 최종 정리

  1. Scope (설명 범위)
    • Local: 개별 데이터 인스턴스를 설명 (예: LIME, SHAP, Saliency Map)
    • Global: 모델 전체를 분석 (예: Activation Maximization, TCAV, ACE)
  2. Methodology (방법론)
    • Gradient 기반(Backpropagation): 모델의 그래디언트를 활용하여 기여도 계산 (예: Saliency Map, Grad-CAM, Integrated Gradients)
    • Perturbation 기반: 입력 데이터를 변경하여 모델의 반응을 분석 (예: DeConvNet, RISE)
  3. Usage (사용 방식)
    • Intrinsic: 모델 자체에 Explainability가 포함 (특정 모델에 종속)
    • Post-Hoc: 모델과 독립적으로 학습된 모델에도 적용 가능
 

 

https://github.com/Byaidu/PDFMathTranslate

 

GitHub - Byaidu/PDFMathTranslate: PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF

PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker/Zotero - Byaidu/PDFMathTranslate

github.com

 

맥 Os 이슈로 로컬 터미널에서 해당 레포가 설치가 안됐다.

하지만 어디든 방법은 있지 

개발자분께서 레포지토리에 도커파일을 올려주셔서 5분 만에 실행할 수 있었다!
Thx to Byaidu.. 

 

여기서 저자가 제공한 데모 사이트가 아닌 터미널이나 도커를 사용하려고 했던 이유는

사이트는 5mb 이하 파일만 가능한 한계가 있기 때문이다. 

내가 보고싶은 논문들은 주로 실험 결과 이미지가 많이 포함되어 있어 용량이 크다.

 

물론 pdf를 분할해서 사용해도 되지만.. Eoneu sewore.. (어느 세월에 라는 뜻 ㅋㅋ) 

 

방법

 

1. 해당 레포를 터미널에 클론해온다. 

git clone https://github.com/Byaidu/PDFMathTranslate.git

2. Vscode를 통해 해당 폴더를 연다

3. Vscode extendsion을 통해 Docker를 설치한다

맥은 따로 도커를 다운 받아야한다

4. Pull and run
docker pull byaidu/pdf2zh
docker run -d -p 7860:7860 byaidu/pdf2zh 

5. 아래 브라우저를 열고 파일을 넣거나, 논문 arxiv 주소를 넣으면 된다

http://localhost:7860/

 

정말 쉽고 깔끔하게 가능! 

 Preparing metadata (setup.py) ... error

  error: subprocess-exited-with-error

  

  × python setup.py egg_info did not run successfully.

  exit code: 1

  ╰─> [1 lines of output]

      ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.

      [end of output]

  

  note: This error originates from a subprocess, and is likely not a problem with pip.

error: metadata-generation-failed

 

× Encountered error while generating package metadata.

╰─> See above for output.

 

 

문제 : setuptools 버전이 "너무" 최신이라 발생한 문제

해결 : pip install --upgrade setuptools==67.2 


다운그레이드로 해결!

https://github.com/Byaidu/PDFMathTranslate?tab=readme-ov-file 

 

GitHub - Byaidu/PDFMathTranslate: PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF

PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker/Zotero - Byaidu/PDFMathTranslate

github.com

 

해당 레포 다운 중 아래와 같은 에러가 발생했다. (무한 대기)

Building wheel for opencv-python (pyproject.toml) ... / | \ 

 

알고보니 pip 버전이 낮아서 발생한 문제였다.  

대부분의 install 문제는 버전으로 인해 발생되는 듯 하다. 

 

$ pip install --upgrade pip setuptools wheel

$ pip install opencv-python-headless

 

ctrl + c 를 눌러 실행을 중단하고 위 코드를 차례로 실행하면 해결 된다. 

https://school.programmers.co.kr/learn/courses/30/lessons/86051

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

def solution(numbers): 
    check = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    temp = set(check) - set(numbers)

    return sum(temp)

https://school.programmers.co.kr/learn/courses/30/lessons/136798

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

def get_len_divisor(n):
    divisorsList = []

    for i in range(1, int(n**(1/2)) + 1):
        if (n % i == 0):
            divisorsList.append(i) 
            if ((i**2) != n) : 
                divisorsList.append(n // i)
    return len(divisorsList)

def solution(number, limit, power):
    answer = 0
    counts = []
    
    for i in range(1, number + 1):
        counts.append(get_len_divisor(i))
    
    for i, c in enumerate(counts):
        if c > limit:
            counts[i] = power
        else:
            pass
     
    return sum(counts)

 

와우 드디어 비기너 탈출

+ Recent posts