PyCon Korea 2019
딥러닝 안에서 일어나는 과정을
설명하는 인공지능 기술
모델 불가지론적 방법 모델 (SHAP) 튜토리얼
: SHapley Additive exPlanations (SHAP)
허성만 @ 설명가능인공지능 연구센터
smheo.cie@gmail.com
smheo@unist.ac.kr
실습 환경 만들기
SHAP 모듈 설치
따라하기: SHAP 실습
DeepExplainer
KernelExplainer
TreeExplainer
적용하기: SHAP 활용
Red Wine Quality
Index
실습 환경 만들기
SHAP 모듈 설치
실습 환경 만들기 Google Colab
실습 환경 만들기 Google Colab
실습 환경 만들기 Google Colab
SHAP 모듈 설치 방법
설치 방법 – PyPI로 설치 pip install
실습 환경 만들기 Google Colab
구글 Drive와 Colab 연동
실습 환경 만들기 Google Colab
구글 Drive와 Colab 연동
따라하기: SHAP 실습
DeepExplainer
KernelExplainer
TreeExplainer
따라하기: SHAP 실습
Data
따라하기: SHAP 실습
Model
Data
Prediction
따라하기: SHAP 실습
Model
Data
Prediction
SHAP
따라하기: SHAP 실습
Model
Data
Prediction
SHAP Explanation
Shapley
Value
따라하기: SHAP 실습
SHAP이란?
학습 데이터와 학습된 모델을 가지고 설명 모델을 생성하고 새로운
입력 데이터에 대해 shapley value계산을 통해 입력 데이터
features가 학습된 모델 출력 값에 대해 어떠한 공헌도를 가지는지
설명함으로써 기계학습 모델을 설명하는 방법
모델 불가지론적 방법 Model-Agnostic Methods
따라하기: SHAP 실습
DeepExplainer
KernelExplainer
TreeExplainer
따라하기: SHAP 실습 DeepExplainer
DeepExplainer
MNIST CNN
https://snowdeer.github.io/machine-learning/2018/01/09/recognize-mnist-data/
따라하기: SHAP 실습 DeepExplainer
keras 모듈에서 제공하는 데이터와 모델 사용
따라하기: SHAP 실습 DeepExplainer
학습용 데이터 60,000개
검증용 데이터 10,000개
따라하기: SHAP 실습 DeepExplainer
Shape: (60000, 28, 28) → (60000, 28, 28, 1)
Range: (0 ~ 255) → (0 ~ 1)
2차원 배열 이미지 데이터
따라하기: SHAP 실습 DeepExplainer
class:
0 1 2 3 4 5 6 7 8 9
따라하기: SHAP 실습 DeepExplainer
따라하기: SHAP 실습 DeepExplainer
따라하기: SHAP 실습 DeepExplainer
따라하기: SHAP 실습 DeepExplainer
background
Model
Data
Prediction
SHAP Explanation
따라하기: SHAP 실습 DeepExplainer
background
Model
Data
Prediction
DeepExplainer Explanation
따라하기: SHAP 실습 DeepExplainer
Model
Data
Prediction
DeepExplainer Explanation
Shapley value
따라하기: SHAP 실습 DeepExplainer
SHAP value
따라하기: SHAP 실습 DeepExplainer
10개의 출력:
0 1 2 3 4 5 6 7 8 9
SHAP value
테스트
입력 영상
따라하기: SHAP 실습 DeepExplainer
10개의 출력:
0 1 2 3 4 5 6 7 8 9
SHAP value
입력 영상
따라하기: SHAP 실습 DeepExplainer
SHAP value
10개의 출력:
0 1 2 3 4 5 6 7 8 9입력 영상
따라하기: SHAP 실습
DeepExplainer
KernelExplainer
TreeExplainer
따라하기: SHAP 실습 KernelExplainer
KernelExplainer
Iris Logistic Regression
0
1
𝑝 =
1
1 + 𝑒 ( )
http://www.dicook.org/files/jsm19/slides#11
따라하기: SHAP 실습 KernelExplainer
따라하기: SHAP 실습 KernelExplainer
꽃받침 꽃잎
따라하기: SHAP 실습 KernelExplainer
(150, )
Multiclass
0: setosa
1: versicolor
2: virginica
따라하기: SHAP 실습 KernelExplainer
따라하기: SHAP 실습 KernelExplainer
2: virginica
따라하기: SHAP 실습 KernelExplainer
background
따라하기: SHAP 실습 KernelExplainer
따라하기: SHAP 실습 KernelExplainer
classNumber = 0
classNumber = 1
classNumber = 2
따라하기: SHAP 실습 KernelExplainer
classNumber = 0
classNumber = 1
classNumber = 2
shapley value 크기
따라하기: SHAP 실습
DeepExplainer
KernelExplainer
TreeExplainer
따라하기: SHAP 실습 TreeExplainer
따라하기: SHAP 실습 TreeExplainer
따라하기: SHAP 실습 TreeExplainer
따라하기: SHAP 실습 TreeExplainer
범죄율 인구 중 하위 계층 비율 주택당 방 수 일산화질소
농도
직업센터와의
거리
따라하기: SHAP 실습 TreeExplainer
적용하기: SHAP 활용
Red Wine Quality
적용하기: SHAP 활용 Red Wine Quality
https://www.kaggle.com/uciml/red-wine-quality-cortez-et-al-2009
적용하기: SHAP 활용 Red Wine Quality
Reference
• https://github.com/OpenXAIProject/PyConKorea2019-Tutorials
• https://github.com/slundberg/shap
PyCon Korea 2019
감사합니다.

파이콘 한국 2019 튜토리얼 - SHAP (Part 3)