Shaplay 수학적 접근
🎲 Shapley 값의 수학적 배경 SHAP(SHapley Additive exPlanations)는 협동 게임 이론에서 유래한 Shapley 값을 기반으로 하여, 머신러닝 모델의 예측에서 각 피처가 얼마나 기여했는지를 계산하는 방법입니다.
- 협동 게임 이론이란? 🤝 Shapley 값은 원래 협동 게임 이론(cooperative game theory)에서 나온 개념입니다. 협동 게임은 여러 플레이어가 함께 협력하여 결과를 얻고, 그 결과를 공정하게 나누는 상황을 가정합니다.
🍕 예시: 피자 나누기 게임 세 명이 피자를 함께 먹을 때, 각 사람의 기여도에 따라 피자를 공정하게 나누고 싶다고 가정해봅시다. Shapley 값은 각 사람이 피자를 얻는 데 얼마나 기여했는지 계산해 그에 맞게 나눠주는 방법입니다.
- Shapley 값의 수학적 정의 📐 Shapley 값은 모든 가능한 순서에서의 기여를 계산한 평균입니다. 즉, 각 피처가 다른 피처들과 협력했을 때 모델 예측에 얼마나 기여했는지를 평가하고, 그 결과의 평균을 구합니다.
🔢 Shapley 값 공식: 피처 𝑖 i의 Shapley 값 𝜙 𝑖 ϕ i 는 다음과 같이 정의됩니다:
𝜙 𝑖 = ∑ 𝑆 ⊆ 𝑁 ∖ { 𝑖 } ∣ 𝑆 ∣ ! ( ∣ 𝑁 ∣ − ∣ 𝑆 ∣ − 1 ) ! ∣ 𝑁 ∣ ! ( 𝑣 ( 𝑆 ∪ { 𝑖 } ) − 𝑣 ( 𝑆 ) ) ϕ i = S⊆N∖{i} ∑
∣N∣! ∣S∣!(∣N∣−∣S∣−1)! (v(S∪{i})−v(S)) 여기서:
𝑁 N은 전체 피처들의 집합입니다. 𝑆 ⊆ 𝑁 ∖ { 𝑖 } S⊆N∖{i}는 피처 𝑖 i를 제외한 피처들의 모든 부분 집합입니다. ∣ 𝑆 ∣ ∣S∣는 집합 𝑆 S에 포함된 피처의 개수입니다. 𝑣 ( 𝑆 ) v(S)는 피처 집합 𝑆 S를 사용할 때의 모델 예측 값입니다. 𝑣 ( 𝑆 ∪ { 𝑖 } ) v(S∪{i})는 집합 𝑆 S에 피처 𝑖 i를 추가했을 때의 모델 예측 값입니다. 💡 간단히 말하면: Shapley 값은 피처 𝑖 i를 추가하기 전과 후의 기여도를 계산해, 모든 가능성을 고려한 평균 기여도를 구합니다.
- 왜 모든 순서를 고려할까? 🧩 Shapley 값은 모든 피처의 순서를 고려하여 기여도를 평가합니다. 이는 각 피처가 어떤 순서로 모델에 추가되었는지에 따라 기여도가 달라지기 때문입니다.
👥 예시: 팀 프로젝트 네 명이 팀 프로젝트를 한다고 가정해봅시다. 각자가 맡은 역할에 따라 기여도가 다를 수 있고, 어떤 순서로 기여했는지에 따라 전체 결과에 미치는 영향이 다를 수 있습니다. Shapley 값은 이러한 모든 순서의 기여를 계산하여 공정한 기여도를 나눠줍니다.
- Shapley 값 계산의 직관적 설명 🧮 Shapley 값을 계산하는 단계는 다음과 같습니다:
⚖️ 모델의 기준값을 먼저 계산합니다. (피처가 없는 상태에서 예측 값) 🔗 각 피처를 하나씩 추가하면서 예측 값이 어떻게 변하는지 봅니다. 📊 이 변화를 통해 각 피처의 기여도를 구하고, 모든 순서에 대해 반복해 평균을 계산합니다.
- Shapley 값의 장점 🌟 공정함: Shapley 값은 모든 피처에 대해 공정한 기여도를 계산합니다. 모델 독립성: Shapley 값은 어떤 모델이든 적용할 수 있습니다. (선형 모델, 트리 모델, 신경망 등) 해석 가능성: 복잡한 모델의 예측을 쉽게 설명할 수 있습니다.