AI를 만들때 우리는 왜 결과물이 좋은지 이해하지 못할 뿐더러, 무슨 패턴을 보고, 어디를 보고 이러한 output을 도출하는지 모르기때문에 AI의 성능이 잘 나오거나 잘 나오지 않을 때 원인을 찾지 못한다.
=> 이러한 현상을 Black Box라고 한다.
-> 이러한 블랙 박스를 설명할 수 있는 방법이 XAI 이다.
Linear Models는 정확도가 떨어지지만 해석이 직관적으로 가능하다 하지만 CNN과 같은 Blackbox Model은 정확도가 높지만 해석하기가 어려운 모델들이다
-> 이러한 모델들을 해석하기 위한 것이 XAI이다.
XAI : 설명 가능한 AI(XAI, Explainable AI)는 인공지능 모델의 예측 결과나 의사 결정 과정을 사람이 이해할 수 있도록 설명해주는 기술 또는 접근 방식
-> 기존의 AI 모델, 특히 딥러닝 모델은 "블랙박스"처럼 작동하여 그 내부 결정 과정이 복잡하고, 불투명하여 왜 그런 결정을 내렸는지 이해하기 어려운 경우가 다수 존재
-> XAI는 이러한 문제를 해결하려는 접근 방식
XAI가 최근 부각되고 있는 이유
- 인공 지능이 결과물을 제시하는 이유와 과정을 기반으로 가장 적합한 학습 모델을 채택하거나 시스템의 이슈가 발생할 경우 디버깅을 통한 원인 분석을 용이하게 할 수 있기 때문이다.
=> 의료, 법률, 군사 등 중요한 분야에서 AI의 결정에 대한 근거가 없다면 신뢰성을 잃어버리기 때문이다.
XAI의 주요 목표
- 투명성 : AI가 어떤 기준으로 결정을 내렸는지 설명할 수 있어야 함
- 신뢰성 : 사용자가 AI의 예측이나 결정을 신뢰할 수 있도록 함
- 공정성 : AI 모델의 결정을 공정하고 편향 없이 이해할 수 있게 만듬
- 책임성 : 모델이 잘못된 결정을 내릴 경우, 그 원인과 책임을 명확히 할 수 있어야 함
주요기법
- 모델에 독립적인 기법(Model-agnotic) : 모델의 종류에 상관 없이 설명이 가능한 기법
- LIME : 특정 예측 결과를 설명하기 위해 간단한 선형모델을 학습하는 방식 -> 국소적 설명
- 입력 데이터 주변에 있는 샘플을 생성(입력값을 살짝 변형)
- 해당 샘플에 대해 원래 모델의 예측 값을 구함
- 샘플과 예측 값을 기반으로 단순한 선형 모델을 학습
- 이 선형 모델의 가중치를 기반으로 특정 예측에 영향을 미친 특징을 설명
-> 단점 : 특정 데이터 포인트에 대한 설명만 가능(-> 전반적인 모델 동작 설명 어려움)
그리고 샘플을 무작위로 생성하기 때문에 일관성이 떨어질 수 있음
- SHAP : 각 특징(feature)이 예측 값에 기여하는 정도를 공정하게 분배하는 방식
-> 개별 예측 값뿐만 아니라 모델 전체의 동작 방식까지 설명 가능
- 각 feature(특징)를 하나씩 제거해가면서 모델 예측값 변화를 측정
- Shapley Value를 이용해 각 feature가 결과에 기여한 정도를 계산
- 모든 feature 조합을 고려하여 기여도를 균일하게 배분
-> 단점 : 모든 특징 조합을 고려해야해서 연산 비용이 매우 커져 속도가 느려질 수 있고, 데이터 샘플이 많을 경우 계산 최적화가 필요
- LIME : 특정 예측 결과를 설명하기 위해 간단한 선형모델을 학습하는 방식 -> 국소적 설명
- 모델 내부 기반 기법(Model-specific) : 특정 모델에 한해서만 설명이 가능한 기법
- Grad-CAM, CAM : CNN 모델의 이미지 분류 시, 주목한 영역 시각화
- Attention 시각화 : Transformer 모델이 어떤 토큰에 집중했는지 시각적으로 확인
XAI의 종류
CAM(Class Activation Mapping) : CNN 모델에서 마지막 Convolution Layer를 이용하여 클래스별로 활성화되는 영역을 시각화
-> CNN에 국한된 XAI 방법
-> 모델을 새로 만들어서 학습해야한다는 단점이 있다.
CAM의 단점
- 반드시 Global Average Pooling(GAP) + Fully Connected Layer(FC) 구조가 필요
-> 해당 FC layer의 weight를 구하기 위해서 모델을 새로 만들어서 학습해야한다는 단점이 있다. - CNN에 국한된 XAI 방법
- 학습된 모델 구조(GAP 필수)가 필요하며, 특정 feature map에서만 시각화 가 능
- 맨 마지막의 convolution layer를 통과해 나온 feature map에 대해서만 heat map 추출이 가능하다
이러한 단점을 극복하기 위해 나온 것이 Grad-CAM이다.
Grad-CAM :Backpropagation을 통해 얻은 Gradient와 Feature Map의 가중 평균을 활용하 여 시각화
- Global average pooling layer가 없어도 된다. -> Backpropagation을 활용
-> 기존 네트워크를 수정하지 않고, 적용할 수 있다.
-> gradient를 이용해서 class map을 구한다.
-> 특정 클래스에 대한 중요도를 반영하는 가중치를 직접 계산하는 방식
Salency Map(Vanilla Gradient) : 출력값을 입력 이미지에 대해 미분한 Gradient의 절댓값을 통해 입력 픽셀 중요도 시각화
- 모델 예측에 중요한 특징을 강조하여, 각 입력 특성이 얼마나 중요한지 보여줌 -> 각 좌표의 미분 값
- gradient의 magnitude만 쓰자 즉, "gradient의 크기만 가지고 단순하게 판단하면 되지 않을까?" 라는 생각을 하게 되어서 만들어진 것
- 즉, backpropagation의 gradient를 절댓값을 취해서 그대로 사용하는 것
- 하나의 이미지 샘플이 모델의 입력으로 들어가면 그 샘플에 대한 예측 결과에 대한 설명을 이미지에서 중요한 부분에 하이라이트(heatmap)해서 보여준다.
- 조금씩 변화가 있는 같은 예측 결과 값을 도출해내는 각 이미지들에 대한 설명은 다르게 나타날 수 있다.
- 입력에 민감한 위치(픽셀)를 강조하지만 노이즈가 많고 해석이 직관적이지 않을 수 있음
- 입력값의 변화가 출력에 미치는 영향을 통해, 네트워크가 어떤 특징에 주목하는지 알 수 있음
Integrated Gradients : 각 특성이 예측에 미친 영향을 기울기를 통해 통합하여 계산하는 방법
- gradinet의 알파 값을 계속 바꿔가면서 평균을 구해주는 방식
-> 입력 값을 기준 값에서 목표 값까지 선형적으로 변화 시키면서 Gradient를 적분하는 방식 - 입력과 기준(reference) 간의 경로를 따라 Gradient를 누적하여 기여도 측정
- 입력의 각 특성(feature)이 결과에 얼마나 기여했는지, 누적으로 반영하여 공정한 기여도 분해
DeepLift : Gradient가 아닌 기준값과의 차이를 비교하여 각 특성의 기여도를 계산하여 예측을 설명하는 방식
-> Gradinet가 0이 되는 문제를 해결하는데 유리
- 네트워크의 입력에 대한 기여도를 계산하는 기법
- Gradient 방법과는 다른 방식으로 모델의 중요도를 측정
- DeepLIFT는 신경망의 예측을 계산할 때 각 입력이 얼마나 영향을 미쳤는지를 추정
- 기울기 기반 방법보다 더 정확하고 직관적인 해석을 제공
- 기준(reference)과의 출력 차이를 기준으로 기여도 계산
- Gradient 기반 기법과는 달리, 기울기 0인 ReLU 구간에서도 영향력 추적 가능
LLM 기반의 XAI 기법
- 대규모 언어 모델(LLM, 예 : GPT, Claude, Gemini 등)을 활영하여 보다 직관적인 XAI
- 자연어 설명 생성 : LLM이 예측 결과에 대해 사람이 이해할 수 있는 설명문을 직접 생성
- Chain-of-Thought 유도 : 판단 과정을 명시적으로 드러내도록 유도하여 투명성 확보
- 질문-응답 기반 해석 : 사용자가 " 왜 이 결과인가요?"라고 질문하면, LLM이 근거를 생성
- Multimodel 해석 : 이미지 + 텍스트 복합 입력에 대한 해석까지 가능( ex. GPT-4V, Gemini 등)
XAI의 도전 과제
- 복잡한 모델 : 딥러닝처럼 복잡한 모델은 여전히 설명하기 어려운 경향이 있다.
모델이 예측을 내리는 방식을 간단히 설명하는 것은 여전히 쉽지 않음 - 설명 가능성과 성능의 trade-off : 해석 가능한 모델은 때때로 성능이 낮을 수 있기 때문에, 설명 가능성과 모델 성능 간의 균형을 맞추는 것이 풀어야할 숙제
'AI 정리' 카테고리의 다른 글
모바일 넷(MobileNet) (0) | 2025.04.09 |
---|---|
강화학습 -> Model-Free RL (0) | 2025.04.09 |
강화 학습-> Model-Based RL (0) | 2025.04.07 |
강화 학습(Reinforcement Learning, RL) 기초 (0) | 2025.04.06 |
AI에 들어가기 전 파이썬 개념 실습 (0) | 2025.04.02 |