설명가능한 AI (Explainable AI)
딥러닝의 문제 : 구조가 복잡하여 설명하기 어려움
XAI : 모델을 쉽게 이해하고 사용하기 위한 방안
지도학습, 딥러닝 기반 framework들이
딥러닝 적용 : 음성인식, 기계번역에서 큰 효과, ImageNet 데이터셋의 오류도 매년 절반씩 감소시킴
한계: 대용량 학습데이터로부터 학습하는 모델 구조 => 점점 복잡해지고 어려워짐
인공신경망의 발전
단순 신경망 -> ResNet, DenseNet -> Transformer (Attention 매커니즘 사용)
Input을 넣으면 Output 결과가 나타남
이런 ouptut이 사람에게 직접 영향을 미치는 경우 문제 발생
ex) 특정 인종, 성별에 편향된 결과
구글 포토에서 흑인 -> 고릴라로 예측
아시아인 -> 눈 감고 있음
이러한 문제를 고치기 위해 설명 가능 인공지능이 반드시 필요함
어떤 상황에서 XAI가 쓰일 수 있을까?
pascal VOC 데이터셋으로 훈련시킨 분류기에 XAI 모델을 사용해봄
=> 말 이미지에 대한 분류
=> 왜 해당 결과를 예측했는지 이미지에 표기해줌
=> 이미지 하단의 텍스트 워터마크를 보고 말 class를 분류했던 것이었다. 학습한 딥러닝 모델은 실제 말 사진이 아닌 텍스트 워터마크에 기반해서 말 사진을 분류하고 있었음
=> 실제 상황에서 사용할 수 없는 말 분류기
ex) 자율주행 사고 => 인식 알고리즘이 왜 이러한 오류가 발생했는지 설명할 수 있어야 함
ex) COVID classification => 왜 알고리즘이 그런 예측 결과를 냈는지 설명하여 해당 결과를 신뢰할 수 있는지에 대해 알 수 있어야 함
XAI 모델의 설명 방법
1) Local VS Global
Local: 주어진 특정 데이터에 대한 예측 결과를 개별적으로 설명
Global: 전체 데이터셋에서 모델의 전반적인 행동을 설명하고자 하는 방법
2)
White Box: 모델의 내부 구조를 이용해 설명
Black Box: ouput 결과를 가지고 설명을 진행
3)
Intrinsic:
Post hoc:
4)
Model specific
Model agnostic
Linear model
Simple Decision Tree
=> 두 모델은 global, white box, intrinsic, model specific 한 방법으로 설명 가능한 모델이다 (다시 보기)
Grad-CAM
=> local, white box, post hoc, model agnostic한 설명 방법
개별 이미지마다 그 예측 결과를 설명할 수 있음
모델의 구조를 정확히 알아야 구할 수 있음
모델 학습 후 적용해서 설명함
딥러닝 모델의 구조와 상관 없이 적용 가능
입력에 대한 모델의 gradient로 설명을 제공하는 방법이 가장 쉽게 설명을 제공하는 방법이다
Gradient:각 픽셀의 값이 조금 바뀌었을 때 함수의 출력 값이 얼마나 크게 바뀌는지 보는 방법
=> back propagation을 구현하여 쉽게 계산 가능
Simple Gradient method의 장단점
장점: 쉽게 구현 및 계산 가능
단점: 노이즈가 많음
Gradient method를 보완하기 위해 만들어진 방법
: SmoothGrad
=> Gradient들을 여러 개 구하여 평균을 활용하는 방법
=> 50회 정도의 noise 섞기 및 gradient 구하기 과정이 진행됨
상어 이미지처럼 배경이 균일한 경우 더 주요 픽셀들을 잡아내는 모습이 보임 => SmoothGrad 방식의 좋은 성능
장점:Clearer interpretation via simple averaging
단점: 계산 복잡도가 매우 높음