[Yongggg's] LIME(Locally Interpretable Model-agnostic Explainations)
안녕하세요. 오늘 설명드릴 내용은 LIME(Locally Interpretable Model-agnostic Explainations)입니다! 예측 성능이 높은 모델이 해석력까지 갖춘다면 정말 좋은 모델이 될 것입니다.
논문에서는 모형에 대한 신뢰성을 두가지로 나누었다.
1. 개별 예측에 대한 신뢰성 : 개별 Sample에 대해 진단을 내린 결정적인 Feature은 무엇인지, 즉 어떤 Feature가 예측을 하는 데에 결정적인 역할을 한 것인지를 알 수 있다면, 모델의 사용자가 그 결과를 신뢰할지 않을지 판단하는 것에 도움을 받을 수 있다.
2. 모형에 대한 신뢰성 : 모델을 구축하여 범용화하기 전, 실생활에서도 잘 작동하는지 평가해야 한다. 일반적으로 검증 데이터 셋과 특정 평가척도를 사용하여 이를 판단하지만, 일반적으로 실제 데이터에 적용한 것보다 과대 측정하는 경우가 많다.
1. 목적
Data Leakage : Target 값과 아무런 관련이 없는 Feature가 Training Set에 포함된 경우(Index Feature가 모델에 들어가 Target 값과 높은 상관관계가 나오는 경우)는 Target 값과 아무 상관이 없는 잘못된 데이터이지만, 이를 가지고 모델을 학습한다면, 의미 없는 정보를 학습하게 됨. (ex : 사망률 예측 모델에서 노년층의 사망률의 해석을 하고싶은데, 일반적인 Feature Importance는 모든 인스턴스를 고려함.)
Data Shift : 학습 데이터와 검증 데이터의 특성이 다른 경우.
위의 두 가지 모델의 신뢰성 문제를 해결하기 위해 각각 LIME, SP-LIME을 사용한다.
또, 요즘 Deep Learning Model이 많이 나오게 되면서 학습된 모델에 대한 전체적인 해석은 매우 어렵기 때문에 지역적(한 개의 인스턴스)에 대해 해석을 시도한다.
한 개체에 대해 Linear Regression Model을 사용하기 때문에, LIME을 올바르게 작동 시키기 위해서는 Linear Regression모델로도 쉽게 설명할 수 있도록 하는 Data 전처리 과정이 필요하다.(ex : 이미지 Pixel 대신 Super-Pixel)
2. 개념
LIME : 모델의 개별 예측값을 설명하기 위해 사용하는 알고리즘으로써 복잡한 모형을 해석이 가능한 단순 모형으로 '지역적 근사(Locally Approximation)'를 사용하여 설명한다. 이는 전체 모델에 대한 평가가 아니라 개별 예측 값의 근방에서 시도를 하고 어느 모델이나 적용 가능하다.
SP-LIME : 모델 자체의 신뢰문제를 검증하기 위해 대표적인 샘플을 사용하는 알고리즘이다. 위의 LIME에서 개별 예측값을 모두 확인하는 것은 대규모 데이터 셋에서는 불가능 하기 때문에 중복되는 정보를 가진 인스턴스 집합들은 제외하고 중요 정보를 담고 있는 소수의 인스턴스 집합을 추려내어 확인하는 알고리즘이다.
3. 원리
1. 해석하고자 하는 인스턴스(관측치 : $ x $)를 고르고 $x^{'}$(해석 가능하게 전처리한 인스턴스, ex : SuperPixel)을 구한다.
2. $ x^{'} $의 Feature를 Shuffle하여 $ z^{'} $를 $ n $개 생성한다. (이때, $ x^{'}$의 shuffle이라 함은 한 인스턴스의 특정 Feature의 값을 쓸지 안쓸지 (1, 0)으로 나타낸 것을 shuffle 하는 것이다.)
3. $h: z^{'} \rightarrow z $로 원래 Feature의 차원으로 mapping한 후, 사전 학습된 Black-Box Model 혹은 Machine Learning Model $f$에 $z$를 입력하여 Surrogate Model(= $ g$)의 Input이 될 ${z', f(z)} (i=1,2,3, \cdots , n)$을 구한다.
[그림 1]에서 플러스 기호와 원 기호들이 3번에서 구한 ${z', f(z)} (i=1,2,3, \cdots , n)$의 점들인 것이다.
4. [그림 1]에서 두껍게 표시된 빨간색 플러스 점에서 멀리있는 인스턴스들은 가중치를 작게, 가까이 있는 인스턴스들은 가중치를 크게주어 Local의 특성을 살린다.
5. '4'에서 주어진 가중치된 점으로 Surrogate Model($g$)을 특정 Criterion에 Fitting한다.
6. $ g=g(x^{'})= w_{1} \times x_{1}^{'} + \cdots + w_{p} \times x_{p}^{'} $, $ w_{i} $: $x^{'}$(전처리된 인스턴스)의 가중치, $x^{'}$ : 전처리된 Feature를 사용할 것인가(1) / 뺄 것인가(0) 에서 weight를 확인한다.
이렇게 $ g $모델이 학습(fitting)이 된 것이고 여기서 높은 가중치 $ w_{i} $를 갖는 $ x^{'} $ Feature가 높을 수록 중요하다고 해석할 수 있다. (정형 데이터에서 $x^{'}$은 PCA등이나 차원축소된 변수라고 생각하면 될 것이고, 이미지에서는 Super Pixel이라고 생각하면 될 것이다.)
'5'에서 $ g $함수는 다음의 Optimization Loss로 학습된다.
$$ \mathop {\operatorname {argmin}} \limits_{g \in G} L(f, \; g, \; \pi_{x}) + \Omega(g) \quad (수식 1)$$
$$, where L(f, \; g, \;, \pi_{x}) = \sum_{z,z^{'} \in Z} \pi_{x}(z)(f(z)-g(z^{'}))^{2} \quad (수식 1-1) $$
(수식 1)에서 $ \Omega $함수는 Surrogate Model의 복잡도 이다. linear model일 때에는 상관계수의 개수, Tree모델일 경우 Tree의 깊이가 된다.
(수식 1-1)에서는 Interpretable representation을 우리가 학습한 모델과 Surrogate Model에 넣었을 때, 가까워지도록 Loss가 설정됐다.
$pi = exp(-{Distance(x,z)^{2} \over \sigma^{2}})$으로 멀리있는 점은 가중치가 낮게, 가까이 있는 점은 가중치를 높게 해준다.
SP-LIME
위에서 잠깐 언급했듯, 중복되는 정보를 가진 인스턴스 집합들은 제외하고 중요 정보를 담고 있는 소수의 인스턴스 집합을 추려내어 확인하는 알고리즘이다.
몇개의 수식을 정의해보면,
$ W (n \times d^{'}) $ Explanation Matrix로 각 인스턴스의 Interpretable component의 Local Importance이다. (ex : linear model을 explanation으로 사용했다면, $ W_{ij} = | w_{g_{ij}} | $로 나타낼 수 있다.
$ I_{j} : W $의 $j$번 째 column의 global Importance로 많은 인스턴스들을 설명할 수록 global Importance가 높음. linear model의 경우에서는 $I_{j} = \sqrt{ \sum_{i=1}^{n} w_{ij}}$로 정의할 수 있다.
converage $c(V, W, I) $는 $W, I$가 주어졌을 때, 부분집합 $V$에 속한 인스턴스에 한 번이라도 나타난 feature의 total importance이다.
이 정의에서 중요 정보를 고르는 문제는 정해진 부분집합 $B$에서 가장 높은 coverage(선택된 부분 집합 Set이 가지는 importance의 총량)을 최대화 하는 Set을 찾는 문제로 정의할 수 있다.
이 문제는 greedy algorithm을 사용하여 푼다.
이렇게 이번 시간에는 LIME에 대해서 알아봤습니다. 모델에 대한 해석을 하고 싶으신 분들은 참고하셔서 해석에 도움이 되시길 빕니다. ^^
글에 오류나, 수정사항이 있을 시 댓글로 남겨주세요 감사합니다!