Kicarussays

Deep SHAP (DeepLIFT + Shapley value) 작동 방식 본문

Explainable AI

Deep SHAP (DeepLIFT + Shapley value) 작동 방식

Kicarus 2021. 10. 13. 09:58

SHAP 설명 포스팅: https://kicarussays.tistory.com/32

 

[논문리뷰/설명] SHAP: A Unified Approach to Interpreting Model Predictions

이전 포스팅에서 LIME에 대한 리뷰를 했었는데, 이번에 소개할 논문은 LIME에 뒤이어 "A unified approach to interpreting model predictions"라는 이름으로 "SHAP"이라는 획기적인 방법을 제시한 논문입니다. LI..

kicarussays.tistory.com

DeepLIFT 설명 포스팅: https://kicarussays.tistory.com/33

 

[논문리뷰/설명] DeepLIFT: Learning Important Features Through Propagating Activation Differences

이번 논문은 딥러닝 인공신경망 모델로부터 Feature Importance를 뽑아내는 합리적인 기법을 연구하여 DeepLIFT 라는 방법을 제시한 논문입니다. 이전 포스팅에서 SHAP을 다뤄봤는데요, SHAP을 DeepLIFT에

kicarussays.tistory.com

LIME 설명 포스팅: https://kicarussays.tistory.com/29

 

[논문리뷰/설명] LIME: "Why Should I Trust You?" Explaining the Predictions of Any Classifier

딥러닝을 비롯한 여러 방법론들은 우수한 성능을 보이며 각광받고 있지만, 그런 방법론들에는 늘 "Blackbox"라는 꼬리표가 달려 있습니다. 아무래도 모델의 복잡성이 증가할수록 성능은 향상되지

kicarussays.tistory.com

 

 

Deep SHAP은 SHAP과 DeepLIFT를 적절히 조합하여 모델의 Explainer를 산출하는 메소드입니다.

작동방식을 설명하기 위해 간단한 예시 하나를 봅시다.

 

아주 단순한 Neural network 입니다. input으로 $y = (y_1, y_2)$를 받고, $f_1, f_2$에 해당하는 은닉층을 지나 최종적으로 $f(y)$를 산출합니다. 이 단순한 모델로부터 output을 1로 고정하고, 1에 해당하는 output을 산출하기 위해 각 layer의 노드들이 어떤 contribution score를 갖는지 계산하는 것이 DeepLIFT 였습니다. 이 모델로부터 DeepLIFT 수행 과정을 수식으로 살펴보면 다음과 같습니다.

 

이 수식을 토대로 Deep SHAP의 작동방식을 살펴보도록 합시다.

 

(13), (14)번 식

output layer ($f_3$)로 진입하기 직전의 layer에 해당하는 $f_1, f_2$로부터 산출된 $x_1, x_2$의 $f(y)$에 대한 각각의 contribution score ($\phi_i (f_3, x)$)를 구합니다.

  • contribution score로 Shapley value를 채택합니다. 단순히 output layer와 그 직전 layer에 대해서 산출합니다.
  • 아무래도 직전 layer의 노드 수가 적어야 Shapley value를 구하는 계산량이 줄어들 것입니다. 이러한 부분을 고려해서 모델을 구성하는 것이 필요할 것으로 보입니다.
  • Shapley value 계산식

       

 

  • 이 식에서 $|F|$는 직전 layer의 노드 개수에 해당할 것입니다. Shapley value를 구하기 위해 수행해야 하는 계산이 총 $2^{|F|}$라는 것을 감안하면, 노드 수가 왜 적어야 하는지 이해가 될 것입니다.

 

(15), (16)번 식

직전 layer에서 Shapley value를 계산한 다음, DeepLIFT의 Chain rule을 활용하여 전체 모델에 대한 Contribution score를 모두 구합니다.

 


 

Kernel SHAP은 LIME의 Loss 함수와 kernel 함수를 직접 조정하였고, 해당 Loss, kernel 함수를 사용했을 때 산출된 Explainer의 coefficient들이 Shapley value와 일치한다는 것을 증명했습니다. 이와 달리, Deep SHAP은 별다른 수리적 메커니즘 적용 없이 단순히 모델의 끝 단에서만 Shapley value를 구하고, 나머지는 DeepLIFT의 방식을 그대로 따라갔습니다.

 

물론 DeepLIFT 자체가 수리적으로 합리적인 알고리즘이긴 하지만, Shapley value와 DeepLIFT 사이의 간극을 수리적으로 메꾸는 시도가 없었다는 점이 아쉬운 부분 중 하나인 것 같습니다. 

 

Comments