SHapley Additive exPlanation
SHAP은 모델을 설명하는 방법 중 하나로 다음과 같은 컨셉을 가지고 있습니다.
" Y의 값은 Y의 평균과 X의 기여도의 합으로 분석할 수 있다"
여기서 기여도를 shapley value로 구하고, 이 합으로 Y값을 구성한다는 점에서 additive라는 이름이 붙었습니다.
이에 대해 하나씩 정리해보겠습니다.
LIME의 문제점 : 공평하지 못하다.
2023.07.30 - [DataScience/MachineLearning] - [eXplainable Method] LIME
[eXplainable Method] LIME
1. LIME의 기본 컨셉 Local Interpretable Model-agnostic Explanation. 모델과 상관없이 local Y를 해석가능한 모델을 말합니다. 복잡도가 높은 블랙박스 모델을 해석하기 위해서는 여러번 두드려보고 이를 통해
mkk4726.tistory.com
LIME에서는 궁금한 local Y에 대해서 데이터를 변형시키고 surrogate model(대리 모델, simple linear regression)에 학습시킨 후, 여기서 구해진 회귀 계수를 이용해 피처의 중요도를 추정했습니다.
여기에는 2가지 문제점이 있습니다.
2가지 문제점
- 데이터를 랜덤으로 변형시킴에 따라, 실행마다 값이 달라짐
(Consistency 불만족)
- surrogate model로 simple regression을 사용하기에 기여도가 없어도 회귀계수가 0으로 나오지 않는 경우가 생김
(Missingess 불만족)
이게 왜 문제이냐면 , 어떤 기여도를 계산할 때 공평하다는 것을 보장하기 위해서는 3가지 조건이 필요하기 때문입니다.
공평하기 위한 3가지 조건
- 기여도의 합은 전체 기여도와 같다. (Addivity)
- 실행마다 값이 같아야 함 (Consistency)
- 기여한게 없을 때는 기여도가 0이어야한다. (Missingess)
이 3가지 조건을 만족해야 기여도를 구하는 방법이 "공평"하다고 판단할 수 있고, 이때 이 방법을 온전히 신뢰할 수 있습니다.
LIME과 SHAP 모두 additive feture attribute methods로 1번은 만족합니다.
$g(z') = \varphi _0 + \sum_{i=1}^M \varphi _iz_i'$
( 총 기여도는 개별 피처의 기여도의 합 )
LIME에서 불만족한 2가지 조건을 shapley value를 통해 만족할 수 있습니다.
2. Shapley Value 란?
축구 국가대표 경기를 보다보면 "손흥민이 없어서 졌다" 나 "김민재가 없으니 확실히 티가난다" 와 같은 이야기를 합니다.
11명의 전체 선수 중 김민재와 같은 특정 선수가 사라져서 경기력이 많이 달라졌다면,
그 선수는 경기력에 많은 기여를 하고 있다고 생각할 수 있습니다.
이와 같은 컨셉으로 기여도를 구할 수 있습니다.
이는 permutation importance를 구하는 것과 같은 컨셉이지만 조금 다릅니다.
shapley value를 구할 때는 전체 집합을 여러 부분 집합으로 나누고, 부분 집합마다 기여도를 구해 이를 평균합니다.
앞서 언급한 부분 집합을 연합이라고 합니다.
피처로 가능한 모든 경우에 대해 연합을 생성하고, 연합마다 특정 피처 존재 여부를 비교하며 기여도를 계산합니다.
그리고 구한 기여도의 평균으로 특정 피처의 기여도를 계산할 수 있습니다.
그림2를 보면 집값을 예측하는데 사용하는 피처로 "반려동물 가능여부", "평수", "층수", "공원 여부"가 있고,
이에 따라 여러 연합이 생성됩니다.
기여도를 계산하려는 피처는 "반려동물 가능 여부" 로 모든 연합에 포함되어있음을 알 수 있습니다.
연합마다 "반려동물 가능 여부"를 포함했을 때와 포함하지 않았을 때를 비교하여 기여도를 계산합니다.
그리고 이를 가중 평균해 "반려동물 가능 여부"에 대한 기여도를 구합니다.
이를 식으로 표현하자면 다음과 같습니다.
기여도를 평균할 때 가중치가 붙는데, 이는 전체 피처 중 subset에 몇 개의 피처가 사용되었는지로 계산됩니다.
많은 피처를 사용한 집합 중 기여도를 높게 보인다면, 이는 더 중요하다고 판단하는 개념으로, 직관적으로 다가옵니다.
이를 통해 앞서 언급한 공평하기 위한 3가지 조건을 모두 만족시킬 수 있습니다.
따라서 SHAP이 LIME보다 이론적으로 탄탄하다고 말할 수 있습니다. 실제로 더 좋은 결과를 보인다고 합니다.
다만 치명적인 단점이 존재하는데, 계산량이 너무 많다는 것입니다.
특정 피처를 선택하거나 선택하지 않으므로, 전체 subset의 수는 $2^n$이 될 것입니다.
Shapley value를 계산하는 방법에 따라 Kernel SHAP, Tree SHAP, Deep SHAP으로 나뉘고,
이를 통해 계산량을 줄이거나 빠르게 처리할 수 있도록 했다고 합니다.
이에 대해서는 추가로 정리하겠습니다.
Reference
- 패스트캠퍼스, 초격차 패키지 : 50개 프로젝트로 완벽하게 끝내는 머신러닝
- https://datanetworkanalysis.github.io/2019/12/23/shap1
- https://moondol-ai.tistory.com/376
- https://christophm.github.io/interpretable-ml-book/shapley.html
- https://www.youtube.com/watch?v=NF6kk8QkiHE
출처
- 그림1: https://www.google.com/url?sa=i&url=https%3A%2F%2Fshap.readthedocs.io%2F&psig=AOvVaw3smeQSM3RDGyv7aFjCx7e8&ust=1690858440957000&source=images&cd=vfe&opi=89978449&ved=0CBEQjRxqFwoTCOCrs9X4t4ADFQAAAAAdAAAAABAE
- 그림2:
- 그림3:
- 그림4:
'DataScience > MachineLearning' 카테고리의 다른 글
[Clustering] DBSCAN vs HDBSCAN (0) | 2023.08.02 |
---|---|
[Clustering] Spectral Clustering의 직관적 의미 (0) | 2023.08.01 |
[eXplainable Method] LIME (0) | 2023.07.30 |
[eXplainable Method] 필요한 이유, Local vs Global Feature Importance Score (0) | 2023.07.30 |
[유사도지표] Gaussian kernel (0) | 2023.07.30 |
댓글