늦깎이 공대생의 인공지능 연구실
[해석할 수 있는 기계학습(6-1)]반사실적 설명(Counterfactual Explanations) 본문
[해석할 수 있는 기계학습(6-1)]반사실적 설명(Counterfactual Explanations)
Justin T. 2021. 1. 30. 16:05
반사실적 설명은 인과적 상황을 "X가 벌어지지 않았다면 Y는 발생하지 않았을 것이다"라는 방식으로 설명합니다. "만약 내가 뜨거운 커피를 한 모금도 마시지 않았다면, 나는 내 혀에 화상을 입지 않았을 것이다."와 같은 예가 있을 것입니다. 사건 Y는 내가 혀를 데인 것입니다. 왜냐하면 X는 뜨거운 커피를 마셨기 때문입니다. 반사실적 생각을 하려면 관찰된 사실(예를 들어 뜨거운 커피를 마시지 않은 상황)과 모순되는 가상의 현실을 상상해야 하므로 반사실적(counterfactual)이라는 단어가 사용됩니다. 다른 동물들에 비해 반사실적으로 생각하는 능력은 사람의 영리함을 더욱 두드러지게 합니다.
해석할 수 있는 기계학습에서, 반사실적 설명을 사용하여 개별 인스턴스의 예측을 설명할 수 있습니다. "사건"은 인스턴스의 예측 결과이며, "원인"은 모델에 입력되고 특정 예측을 "유발"한 인스턴스의 특정한 특성값입니다. 그래프로 표시되는 입력과 예측 간의 관계는 매우 간단합니다. 특성값이 예측을 유발합니다.
실제로 예측될 입력과 결과 사이의 관계가 인과 관계가 아니게 되더라도, 예측의 원인으로서 모델의 입력을 볼 수 있습니다.
위와 같은 간단한 그래프를 사용하면 기계학습 모델의 예측을 위해 어떻게 반사실적 설명에 대한 시뮬레이션을 할 수 있는지 쉽게 알 수 있습니다. 예측을 수행하기 전에 인스턴스의 특성값을 변경하고 예측이 어떻게 변하는지 분석합니다. 예측 클래스의 플립(예: 신용 앱이 승인 또는 거부됨)과 같이 예측이 관련 방식으로 변경되거나 예측이 특정 임계값(예: 암에 대한 확률이 10%에 도달함)에 도달하는 시나리오에 관심이 갖게 됩니다. 예측에 대한 반사실적 설명은 예측을 미리 정의된 출력으로 바꾸는 특성값의 가장 작은 변화를 설명합니다.
모델 불특정법(Model-agnostic)과 모델 특정법(Model-specific)의 반사실적 설명 방법이 모두 있지만, 여기서는 모델 입력과 출력으로만 작동하는 모델 불특정법에 중점을 두겠습니다(특정 모델의 내부 구조는 제외). 해석은 특성값의 차이에 대한 요약("예측을 변경하기 위해 특성 A와 B를 변경한다")으로 표현될 수 있기 때문에 이러한 방법들은 모델 불특정법에서도 익숙함을 느낄 수 있을겁니다. 그러나 반사실적 설명은 그 자체가 새로운 인스턴스이기 때문에 해당 페이지에서는 생생하게 다루어집니다. (반사실적 예를 얻기 위해 X부터 A와 B를 변경) 프로토타입과 달리, 반사실적 설명은 교육 데이터에서 실제 인스턴스일 필요는 없지만 특성값의 새로운 조합이 될 수 있습니다.
반사실적 설명의 생성 방법에 대해 이야기 하기 전에, 반사실적 설명의 적용 사례와 좋은 반사실적 설명이 나타나는지에 대해 논의하고자 합니다.
첫 번째 예로, 피터는 대출을 신청하고 (기계 학습 기반) 은행 소프트웨어에 의해 대출을 거절당합니다. 피터는 왜 그의 신청이 거절당했는지, 그리고 어떻게 그가 대출을 받을 수 있는 기회를 향상시킬 수 있는지 알고싶어 합니다. "왜"라는 질문은 반사실적 설명으로 표현될 수 있습니다. 예측이 거부에서 승인으로 변경되는 특징(소득, 신용카드 수, 연령 등)에 대한 가장 작은 변화는 무엇일까요? 한 가지 가능한 답으로 만약 피터가 매년 10,000유로를 더 벌게 된다면, 그는 대출을 받게 될 수 있을듯 합니다. 아니면, 만약 피터가 신용카드를 덜 가지고 있고 5년 전 대출을 연체하지 않았다면, 그는 대출을 받을 수 있었을 것입니다. 은행은 투명성에 관심이 없기 때문에 피터는 거절의 이유를 결코 알지 못할 것이지만, 이것은 또 다른 이야기입니다.
두 번째 예제에서는 반사실적 설명을 통해 연속적인 결과를 예측하는 모델을 설명하려고 합니다. 안나는 자신의 아파트를 부동산에 내놓고 싶어하지만 얼마가 필요할지 잘 몰라 집값을 예측하기 위해 기계학습 모델을 훈련시키기로 결심합니다. 물론, 안나는 데이터 과학자이기 때문에 이러한 방법으로 문제를 해결하려 하는 것입니다. 방의 크기, 위치, 애완동물 허용 여부 등에 대한 모든 세부 사항을 입력한 후, 모델은 그녀에게 900유로가 적정할 수 있다고 말합니다. 그녀는 1000유로 이상을 기대했지만, 자신의 모델을 믿고 아파트의 가치를 어떻게 높일 수 있는지 알아보기 위해 아파트의 특성값를 가지고 분석하기로 결심합니다. 안나는 그녀의 아파트가 15\(m^2\) 더 크면 1000유로 이상 임대할 수 있다는 것을 알아냅니다. 흥미롭지만 현실적으로 집의 크기를 늘릴 수 는 없는 법이죠. 마지막으로, 자신이 관리하는 특성값(기본 제공 주방 여부, 애완동물 허용 여부, 바닥 소재 등)만 수정하여 애완동물을 허용하고 단열 효과가 더 좋은 창문을 설치하면 1000유로를 충전할 수 있다는 것을 알게 됩니다다. 안나는 결과를 바꾸기 위해 직관적으로 반사실적 요소들을 활용하였습니다.
반사실적 설명은 현재 인스턴스와 대조적이고 선택적이기 때문에 인간 친화적인 설명이며, 이는 일반적으로 적은 수의 특성 변화에 초점을 맞춘다는 것을 의미합니다. 그러나 반사실적 설명은 '라쇼몽 효과'로 악화됩니다. 라쇼몽은 사무라이의 살인에 대해 다른 사람들의 증언으로 전달되는 내용의 일본 영화입니다. 각각의 이야기는 결과를 똑같이 잘 설명하지만, 그 이야기들은 서로 모순되고 있습니다. 일반적으로 여러 가지 다른 반사실적 설명이 있기 때문에 반사실적 설명에서도 동일한 현상이 발생할 수 있습니다. 각각의 반사실적 설명은 어떻게 어떤 결과가 나왔는지에 대한 다른 "이야기"를 언급합니다. 한 반사실적 설명은 특성 A를 변경한다고 말할 수 있고, 다른 반사실적 설명은 A를 동일하게 하지만 특성 B를 변경하라고 말할 수 있는데, 이 증언은 서로 모순됩니다. 다중 진실에 대한 해당 문제는 모든 반사실적 설명을 보고하거나 반사실적 설명을 평가하고 가장 적합한 것을 선택하는 기준(Criteria)을 갖는 방법으로 해결할 수 있습니다.
기준에 대한 언급을 하게 되었는데, 좋은 반사실적 설명을 어떻게 정의할 수 있을까요? 첫째, 반사실적 설명의 사용자는 인스턴스(= 대체 현실)의 예측에 관련된 변화를 정의합니다. 분명한 첫 번째 정의는 반사실적 인스턴스가 미리 정의된 예측을 가능한 가깝게 생성한다는 것입니다. 미리 정의된 예측으로 항상 반사실적 설명을 찾을 수 있는 것은 아닙니다. 예를 들어, 희귀 클래스와 빈번한 클래스 두 개의 클래스가 있는 분류 설정에서 모델은 항상 인스턴스를 빈번한 클래스로 분류할 수 있습니다. 예측된 레이블이 빈번한 클래스에서 희귀 클래스로 전환되도록 특성값을 변경하는 것은 불가능할 수 있습니다. 따라서 우리는 반사실적 설명의 예측이 미리 정의된 결과와 정확히 일치해야 한다는 요구사항을 완화해야 합니다. 분류 예제에서는 희귀 클래스의 예측 확률이 현재 2%가 아닌 10%로 증가하는 반사실적 사실을 찾을 수 있습니다. 그러면 문제는 예측 확률이 2%에서 10%(또는 10%에 가깝도록) 변경되는 특성을 최소로 변경하려면 어떻게 해야 할까요? 또 다른 품질 기준은 특성값에 관한 인스턴스와 가능한 한 유사해야 한다는 것입니다. 예를 들어, 두 인스턴스 사이의 거리는 맨해튼 거리(Manhattan distance) 또는 이산 특성과 연속 특성을 모두 가진 경우 Gower distance로 측정할 수 있습니다. 반사실적 설명은 원래 인스턴스와 가까워야 할 뿐만 아니라 가능한 한 특성을 최대한 변경하지 말아야 합니다. 이러한 측정방법에서 반사실적 설명이 얼마나 좋은지를 측정하기 위해, 우리는 단순히 변경된 특성의 수를 세거나, 화려한 수학적 용어로 반사실적 인스턴스와 실제 인스턴스 사이의 \(L_0\)-Norm을 측정할 수 있습니다. 셋째, 의사결정 대상이 다른 결과를 생성하는 여러 실행 가능한 방법에 접근할 수 있도록 여러 가지 다양한 반사실적 설명을 생성하는 것이 바람직합니다. 예를 들어, 위의 대출 사례를 계속해 보면, 한 가지 반사실적 설명은 대출을 받기 위해 소득을 두 배로 늘리는 것을 제안하는 반면, 다른 반사실적 설명은 대출을 받기 위해 인근 도시로 이사가고 소득을 약간 늘리는 것을 제안할 수 있습니다. 첫 번째 반사실적 설명이 일부에게는 가능할 수 있지만, 일부에게는 후자가 더 실행가능할 수 있다는 점에 유의할 수 있습니다. 따라서, 원하는 결과를 얻기 위한 다양한 방법을 가진 의사결정 대상자를 제공하는 것 외에도, 다양성은 "다양한" 개인이 자신에게 편리한 특성을 변경할 수 있게 합니다. 마지막 조건은 반사실적 인스턴스에는 가능한 특성값이 있어야 한다는 것입니다.
아파트 평수가 마이너스이거나 방의 갯수가 200개로 설정된 임대료 사례에 대해 반사실적 설명을 생성하는 것은 조금만 생각해 보아도 말이 안됩니다. 데이터의 공동분포에 따라 반사실적 설명이 일어날 가능성이 높을 때는 더욱 좋아집니다. 예를 들어 방이 10개, 20㎡인 아파트는 반사실적 설명으로 간주해서는 안 됩니다. 이상적으로는 집의 넓이가 늘어난다면 방의 갯수 증가도 제안되어야 합니다.
반사실적 설명 생성
반사실적 설명을 생성하는 단순하고 순수한 접근 방식은 시행착오(Trial and error)를 통해 탐색하는 방법입니다. 이 접근법에는 관심있는 인스턴스의 특성값을 임의로 변경하고 원하는 출력이 예측될 때 중지하는 방법이 포함됩니다. 안나가 임대료를 더 받을 수 있는 아파트의 조건을 찾으려고 했던 예처럼 말이지요. 그러나 시행착오보다 더 나은 접근법이 있습니다. 먼저 위에서 언급한 기준에 따라 손실 함수(Loss function)를 정의합니다. 이 손실은 관심있는 인스턴스, 반사실적 설명, 그리고 원하는 (반사실적 설명의) 결과를 입력으로 합니다. 그런 다음 최적화 알고리즘을 사용하여 이러한 손실을 최소화하는 반사실적 설명을 찾을 수 있습니다. 많은 방법들이 이러한 방식으로 진행되지만 손실 함수와 최적화 방법에 대한 정의는 다릅니다.
위에서 언급한 것들 중에서 우리는 두 가지에 집중하고자 합니다. 첫번째는 반사실적 설명을 하나의 해석 수단으로서 소개한 Wachter et al.(2018)의 사례와, 위에서 언급하였던 모든 네 가지 기준을 고려한 Dandl et al.(2020)의 사례입니다.
Wachter et al.의 사례
Watchter et al.은 다음과 같은 손실을 최소화할 것을 제안합니다.
$$L(x,x^\prime,y^\prime,\lambda)=\lambda\cdot(\hat{f}(x^\prime)-y^\prime)^2+d(x,x^\prime)$$
첫 번째 항은 사용자가 미리 정의해야 하는 반사실적 설명 x'에 대한 모델 예측과 원하는 결과 y' 사이의 2차 거리(거리 제곱)입니다. 두 번째 항은 설명해야 할 인스턴스 x와 반사실적 설명 x' 사이의 거리입니다. 손실은 미리 정의된 결과에서 예측된 결과가 얼마나 멀리 떨어져 있는지, 관심 인스턴스에서 얼마나 멀리 떨어져 있는지를 측정합니다. 거리 함수는 각 특성의 역 중앙값 절대 편차(MAD)로 가중된 맨해튼 거리로 정의됩니다.
$$d(x,x^\prime)=\sum_{j=1}^p\frac{|x_j-x^\prime_j|}{MAD_j}$$
총 거리는 모든 p개의 특성별 거리, 즉 인스턴스 x와 반사실적 설명 x' 사이 특성값을 뺀 절대값의 합입니다. 특성별 거리는 다음과 같이 정의된 데이터셋에 대한 특성 j의 중앙값 절대 편차의 역수로 스케일링됩니다.
$$MAD_j=\text{median}_{i\in{}\{1,\ldots,n\}}(|x_{i,j}-\text{median}_{l\in{}\{1,\ldots,n\}}(x_{l,j})|)$$
벡터의 중앙값은 벡터값의 절반보다 크고 나머지 절반보다 작은 값입니다. MAD는 특성의 분산과 동일하지만 평균을 중앙값으로 사용하고 제곱 거리를 합하는 대신 중앙값과 절대 거리에 대한 합을 중앙값으로 사용합니다. 제안된 거리 함수는 유클리드 거리에 비해 이상치(Outlier)에 더 강하다는 장점이 있습니다. 모든 특성을 동일한 척도로 만들려면 MAD로 스케일링을 하는 것이 필요합니다. 평방 미터로 아파트 크기를 측정하든 평방 피트 단위로 측정하든 단위는 상관 없습니다.
파라미터 λ는 특성값의 거리(두 번째 항)와 예측에서의 거리(첫 번째 항)의 균형을 맞추어줍니다. 주어진 λ에 대해 손실을 해결하고, 반사실적 설명 x'를 반환합니다. λ값이 높으면 원하는 결과 y'에 가까운 예측을 가진 계수형태를 선호한다는 뜻이고, 값이 낮으면 특성값에서 x와 매우 유사한 계수형 x'를 선호한다는 뜻입니다. λ가 매우 크면 x에서 얼마나 떨어져 있는지에 관계없이 예측값이 y'에 가장 가까운 인스턴스가 선택됩니다. 궁극적으로 사용자는 반사실적 설명에 대한 예측이 원하는 결과와 반사실적 설명이 x와 유사하다는 요구사항의 균형을 맞추는 방법을 결정해야 합니다. 이 방법의 저자들은 λ에 대한 값을 선택하는 대신, 반사실적 인스턴스의 예측이 y로부터 얼마나 멀리까지 허용될 수 있는지에 대한 허용오차 파라미터 ϵ는 허용합니다. 이 제약 조건은 다음과 같은 식으로 세울 수 있습니다.
$$|\hat{f}(x^\prime)-y^\prime|\leq\epsilon$$
이 손실 함수를 최소화하기 위해 아메바 방법(넬더-미드)과 같은 적합한 최적화 알고리즘을 사용할 수 있습니다. 기계 학습 모델의 기울기에 액세스할 수 있는 경우 ADAM과 같은 기울기 기반 방법을 사용할 수 있습니다. 설명해야 할 인스턴스 x, 원하는 출력 y' 및 허용오차 파라미터 ϵ를 미리 설정해야 합니다. 손실 함수는 x' 및 (반복되는) 최적 반사실적 설명 x'에 대해 최소화되며, λ를 증가시키면서 충분히 근접한 솔루션이 발견될 때까지(허용오차 파라미터 내에서) 다음과 같은 방법을 수행합니다.
$$\arg\min_{x^\prime}\max_{\lambda}L(x,x^\prime,y^\prime,\lambda).$$
전반적으로, 반사실적 설명을 생산하는 방법은 간단합니다.
- 설명할 인스턴스 x, 원하는 결과 y', 허용오차 ϵ및 λ에 대한 (낮은) 초기값을 선택
- 랜덤 인스턴스를 초기 반사실적 설명으로 샘플화
- 초기에 샘플화한 반사실적 설명의 손실을 시작점으로 최적화
- While \(|\hat{f}(x^\prime)-y^\prime|>\epsilon\):
- .
- 현재의 반사실적 설명의 손실을 시작점으로서 최적화
- 손실을 최소화한 반사실적 설명으로 Return
- 단계 2~4를 반복하고 반사실적 설명의 리스트 혹은 손실을 최소화한 반사실적 설명을 리턴한다.
제안된 방법은 몇 가지 단점이 있습니다. 첫 번째와 두 번째 기준만 고려하며 마지막 두 가지 기준("특성값 변경 및 가능한 특성값 몇 개만 있는 반사실적 설명 생성") d는 10개의 특성을 1개 증가시키는 것과 동일한 거리를 x에 제공하기 때문에 희소 솔루션을 선호하지 않습니다. 비현실적인 특성 조합은 불이익을 받지 않습니다.
이 방법에서는 여러 단계의 카테고리형 특성을 잘 처리하지 못합니다. 이 방법의 저자는 카테고리형 특성의 특성값 조합에 대해 이 방법을 별도로 수행할 것을 제안했지만, 값이 많은 카테고리형 특성이 여러 개일 경우 조합 변수가 폭발적으로 많아질 수 있습니다. 예를 들어 고유 단계가 10개인 6개의 카테고리형 특성은 백만 번의 수행을 의미합니다.
이러한 이슈를 극복한 또다른 접근법에 대해 보도록 합시다.
Dandl et al.의 사례
Dandl et al.은 4가지 목표 손실을 동시에 최소화할 것을 제안합니다.
$$L(x,x',y',X^{obs})=\big(o_1(\hat{f}(x'),y'),o_2(x, x'),o_3(x,x'),o_4(x',X^{obs})\big)$$
각각 \(o_1\) 부터 \(o_4\) 까지의 네 가지 목표는 위에서 언급한 네 가지 기준 중 하나에 해당됩니다. 첫 번째 목표인 \(o_1\)은 '반사실 x'의 예측이 우리가 원하는 예측 y에 최대한 가까워야 한다는 것을 반영합니다. 따라서 맨해튼 거리(\(L_1\) norm)로 계산되는 \(\hat{f}(x')\)와 y' 사이의 거리를 최소화하고자 합니다.
$$o_1(\hat{f}(x'),y')=\begin{cases}0&\text{if $\hat{f}(x')\in{}y'$}\\\inf\limits_{y'\in y'}|\hat{f}(x')-y'|&\text{else}\end{cases}$$
두 번째 목표 \(o_2\)는 반사실적 설명이 인스턴스 x와 가능한 비슷해야 한다는 것을 반영합니다. x'와 x 사이의 거리를 가워 거리(Gower distance)로 정량화합니다.
$$o_2(x,x')=\frac{1}{p}\sum_{j=1}^{p}\delta_G(x_j, x'_j)$$
p는 특성값의 개수입니다. \(\delta_G\)의 값은 \(x_j\)의 특성 종류에 따라 달라집니다.
$$\delta_G(x_j,x'_j)=\begin{cases}\frac{1}{\widehat{R}_j}|x_j-x'_j|&\text{if $x_j$ numerical}\\\mathbb{I}_{x_j\neq{}x'_j}&\text{if $x_j$ categorical}\end{cases}$$
수치(Numerical) 특성값 \(j\)의 거리값을 관측값 범위인 \(\widehat{R}_j\)로 나눈 값으로, 0과 1 사이의 모든 특성에 대해 \(\delta_G\)로 스케일링합니다.
Gower 거리는 수치 특징값과 카테고리형 특성을 모두 처리할 수 있지만 얼마나 많은 특성들이 변경되었는지는 세지 못합니다. 따라서, \(L_0\) norm을 사용하여 세 번째 목표인 \(o_3\)의 특성의 갯수를 계산합니다.
$$o_3(x,x')=||x-x'||_0=\sum_{j=1}^{p}\mathbb{I}_{x'_j\neq x_j}$$
\(o_3\)를 최소화하여 세 번째 기준인 희박한 특성 변화를 목표로 합니다.
네 번째 목표인 \(o_4\)는 반사실성 설명이 특성값/조합을 가져야 한다는 것을 반영합니다. 데이터 포인트가 교육 데이터 또는 다른 데이터셋을 얼마나 "그럴듯"하게 사용하는지 추론할 수 있습니다. 이 데이터셋을 \(X^{obs}\)로 표현합니다. 우도(Likelihood)에 대한 근사치로 \(o_4\)는 x'와 가장 가까운 관측 데이터 포인트 \(x^{[1]}\in{}X^{obs}\) 사이의 평균 Gower 거리로 측정합니다.
$$o_4(x',\textbf{X}^{obs})=\frac{1}{p}\sum_{j=1}^{p}\delta_G(x'_j,x^{[1]}_j)$$
Wachter et al.에 비해 \(L(x,x',y',X^{obs})\)에는 와 같은 균형/가중 조건이 없습니다. 이것들을 종합하고 가중치를 매겨서 4개의 목표인 \(o_1, o_2, o_3, o_4\)를 단일 목표로 축소하고 싶지 않지만, 우리는 4개의 항 모두를 동시에 최적화하고자 합니다.
어쩌면 이럴 수 있을까요? Nondominated Sorting Genetic Algorithm 또는 short NSGA-II를 사용합니다. NSGA-II는 다윈의 "적자 생존" 법칙을 적용하는 자연에서 영감을 받은 알고리즘입니다. 우리는 목표 값\((o_1,o_2,o_3,o_4)\)의 벡터에 의해 비사실적 설명의 적합성을 나타냅니다. 반사실적 설명이 낮은 네 가지 목표일수록 "적합하다"고 할 수 있겠습니다.
알고리즘은 최대 반복/생성 횟수 등 정지 기준이 충족될 때까지 반복되는 4단계로 구성됩니다. 아래 그림은 한 세대의 4개의 단계를 시각화합니다.
첫 번째 세대에서는 설명할 인스턴스 x와 비교하여 일부 특성을 임의로 변경하여 반사실적 설명의 후보 그룹이 초기화됩니다. 위의 신용대출에 대한 예에 따르면, 한 가지 반사실적 설명 요인은 소득을 €30,000까지 증가시킬 것을 제안할 수 있고, 다른 한 요인은 지난 5년 동안 채무불이행이 없고 연령이 10세까지 감소할 것을 제안할 수 있습니다. 다른 모든 특성값은 x 값과 동일하며, 각 후보는 위의 네 가지 객관적 함수를 사용하여 평가됩니다. 그 중에서, 우리는 더 적합한 후보들이 선택될 가능성이 높은 몇몇 후보들을 무작위로 선정합니다. 후보자는 수치 특성값을 평균으로 하거나 카테고리 특성을 교차하여 자신과 유사한 자식을 생산하기 위해 쌍으로 재조합됩니다. 또한, 전체 특성 공간을 탐색하기 위해 하위의 특성값을 약간 변형합니다.
두 결과 그룹 중 하나는 부모 그룹이고 다른 하나는 자식 그룹이며, 우리는 두 개의 정렬 알고리즘을 사용하여 가장 좋은 절반만을 원합니다. 비지배적(Nondominated) 정렬 알고리즘은 목표 값에 따라 후보들을 정렬합니다. 후보가 동등하게 우수하면 밀집도 거리(Crowding distance) 정렬 알고리즘은 후보의 다양성에 따라 후보를 정렬합니다.
두 정렬 알고리즘의 순위를 고려할 때, 우리는 후보 중 가장 유망하거나 가장 다양한 절반을 선택합니다. 우리는 다음 세대를 위해 이 세트를 사용하고 선택, 재조합, 돌연변이(mutation) 과정부터 다시 시작합니다. 이러한 단계를 반복함으로써 우리는 낮은 객관적 가치를 지닌 다양한 유망한 후보들에게 접근하기를 원합니다. 이 집합에서 우리는 가장 만족스러운 것을 선택할 수 있고, 또는 어떤 특성과 얼마나 자주 변했는지를 강조함으로써 모든 반사실적 설명에 대한 요약을 제공할 수 있습니다.
예제
다음 예제는 Dandle et al.(2020)의 신용 데이터셋 예제를 기반으로 합니다. 독일 신용위험 데이터셋은 머신 러닝 과제 플랫폼 kaggle.com에서 찾을 수 있습니다.
저자들은 (방사형 기준 커널을 가진) 서포트 벡터 머신(SVM)을 훈련시켜 고객이 신용 위험이 높을 가능성을 예측했습니다. 해당 데이터셋에는 522개의 완전한 관측과 신용 및 고객 정보가 포함된 9개의 특성들이 있습니다.
목표는 다음과 같은 특성값을 가진 고객에 대한 반사실적 설명을 찾는 것입니다.
age |
sex |
job |
housing |
savings |
checking |
amount |
duration |
purpose |
58 |
f |
unskilled |
free |
little |
little |
6143 |
48 |
car |
SVM은 여성이 24.2%의 확률로 양호한 신용위험을 가지고 있다고 예측합니다. 50%보다 큰 예측 확률을 얻기 위해 입력 특성을 어떻게 변경해야 하는지 답해야 합니다.
아래 표에는 가장 좋은 10개의 반사실적 설명 나와 있습니다.
age |
sex |
job |
amount |
duration |
o2 |
o3 |
o3 |
\(\hat{f}(x')\) |
|
|
skilled |
|
-20 |
0.108 |
2 |
0.036 |
0.501 |
|
|
skilled |
|
-24 |
0.114 |
2 |
0.029 |
0.525 |
|
|
skilled |
|
-22 |
0.111 |
2 |
0.033 |
0.513 |
-6 |
|
skilled |
|
-24 |
0.126 |
3 |
0.018 |
0.505 |
-3 |
|
skilled |
|
-24 |
0.12 |
3 |
0.024 |
0.515 |
-1 |
|
skilled |
|
-24 |
0.116 |
3 |
0.027 |
0.522 |
-3 |
m |
|
|
-24 |
0.195 |
3 |
0.012 |
0.501 |
-6 |
m |
|
|
-25 |
0.202 |
3 |
0.011 |
0.501 |
-30 |
m |
skilled |
|
-24 |
0.285 |
4 |
0.005 |
0.59 |
-4 |
m |
|
-1254 |
-24 |
0.204 |
4 |
0.002 |
0.506 |
처음 5개 열에는 제안된 특성 변경(변경된 특성만 표시됨), 다음 3개 열에는 목표 값(모든 경우 \(o_1\)은 0)이 표시되고 마지막 열에는 예측 확률이 표시됩니다.
모든 반사실적 설명들은 50% 이상의 확률을 예측했고 서로를 지배하지 않습니다. 비지배(Nondominated)란 모든 목표에서 다른 반사실적 설명보다 작은 값을 갖는 반사실적 요소가 없음을 의미합니다. 우리는 반사실적 설명을 절충 해결책으로 생각할 수 있습니다.
위 요소들은 모두 48개월에서 최소 23개월로 기간을 단축할 것을 제안하고, 그것들 중 일부는 여성이 미숙련공(Unskilled)이 아닌 숙련공(Skilled)이 되어야 한다고 제안합니다. 일부 반사실적 설명들은 심지어 이 모델의 성별 편향을 보여주는 성별을 여성에서 남성으로 바꿀 것을 제안합니다. 이러한 변화는 항상 1세에서 30세 사이의 나이 감소를 동반합니다. 우리는 또한 일부 반사실적 요소들이 4가지 특성의 변경을 제안하지만, 이러한 반사실적 요소들이 훈련 데이터에 가장 가까운 것임을 알 수 있습니다.
장점
반사실적 설명에 대한 해석은 매우 명확합니다. 인스턴스(instance)의 특성값이 반사실적 요소에 따라 변경되면 예측이 미리 정의된 예측으로 변경됩니다. 추가 가정도 없고 기본 구성에 어떠한 마법도 없습니다. 이는 또한 해석을 위해 지역 모델을 어디까지 추론할 수 있는지가 불분명한 LIME과 같은 방법만큼 위험하지 않음을 의미합니다.
반사실적 방법은 새로운 인스턴스를 만들지만, 또한 어떤 특성값이 변경되었는지 보고함으로써 반사실적 요소를 요약할 수 있습니다. 이렇게 하면 결과를 보고할 수 있는 두 가지 옵션이 제공됩니다. 반사실적 인스턴스를 보고하거나 관심 있는 인스턴스와 반사실적 인스턴스 간에 변경된 특성을 강조 표시할 수 있습니다.
반사실적 방법은 데이터나 모델에 대한 접근 권한이 필요하지 않습니다. 예를 들어 웹 API를 통해 작동하는 모델의 예측 함수에 대한 액세스만 필요합니다. 이는 제3자의 감사를 받거나 모델이나 데이터를 공개하지 않고 이용자에 대한 설명을 제공하는 기업에게 매력적입니다. 한 기업은 영업비밀이나 데이터 보호 등의 이유로 모델과 데이터를 보호하는 데 관심이 있습니다. 반사실적 설명은 모델 예측을 설명하는 것과 모델 소유자의 이익을 보호하는 것 사이의 균형을 제공합니다.
이 방법은 기계 학습을 사용하지 않는 시스템에서도 작동합니다. 입력을 받고 출력을 반환하는 모든 시스템에 대한 반사실적 설명을 생성할 수 있습니다. 아파트 임대료를 예측하는 시스템도 수기로 구성될 수 있으며, 반사실적 설명은 여전히 유효합니다.
반사실적 설명 방법은 기본적으로 표준 최적화 라이브러리로 최적화할 수 있는 손실 함수(단일 또는 다수 목표 포함)이기 때문에 상대적으로 구현이 쉽습니다. 특성값을 의미 있는 범위(예: 오직 양수값의 아파트 크기만)로 제한하는 것과 같은 일부 추가 세부 사항을 고려해야 합니다.
단점
각 인스턴스에 대해 일반적으로 여러 가지 반사실적 설명(라쇼몽 효과)을 찾을 수 있습니다. 이것은 불편합니다 - 대부분의 사람들은 현실 세계의 복잡함보다 간단한 설명을 선호합니다. 그것은 또한 현실적인 도전입니다. 한 가지 사례에 대해 23개의 반사실적 설명을 생성했다고 가정합시다. 모든 설명에 대해 다 보고해야 할까요? 가장 좋은것만? 만약 이것들이 모두 상대적으로 "좋지만" 매우 다르다면? 이 질문들은 각 프로젝트에 대해 새롭게 답해야 합니다. 또한 인간은 이전의 지식에 해당하는 것을 선택할 수 있기 때문에 여러 가지 반사실적인 설명을 하는 것이 유리할 수 있습니다.
소프트웨어 및 대안
Dandl et al.에 의한 다중 목적 반사실적 설명 방법은 Github 저장소에 구현되어 있습니다.
파이썬 패키지에서 Alibi 저자는 알고리즘 결과값의 해석력과 수렴을 개선하기 위해 클래스 프로토타입을 사용하는 확장 방법뿐만 아니라 간단한 반사실적 방법을 구현했습니다.
Karimi et al. (2019)는 또한 Github 저장소에 알고리즘 MACE의 파이썬 구현을 제공하였습니다. 그들은 적절한 반사실적 요소에 대한 필요한 기준을 논리적인 공식으로 변환하고 만족 해결사를 사용하여 반사실적 요소를 만족시키는 반사실적 요소를 찾습니다.
Mothil et al. (2020)는 결정적 포인트 프로세스에 기초한 다양한 반사실적 설명을 생성하기 위해 DiCE(Diverse Counterfactual Explanation)를 개발하였습니다. 현재, DiCE는 최적화를 위해 경사 하강을 사용하기 때문에 차별화 가능한 모델에서만 작동합니다.
반사실적 요소를 검색하는 또 다른 방법은 Laughel et. al. (2017)에 의한 Growing Spheres 알고리즘입니다. 그들은 논문에서 반사실이라는 단어를 사용하지 않지만, 그 방법은 상당히 비슷합니다. 또한 가능한 한 특성값의 변화가 거의 없는 반사실적 요소에게 유리한 손실 함수를 정의합니다. 함수를 직접 최적화하는 대신 먼저 관심 지점 주위에 구를 그려 해당 구 내에 점을 표본 추출하고 표본 추출된 점 중 하나가 원하는 예측을 산출하는지 여부를 확인할 것을 제안합니다. 그리고 나서 그들은 (희박한) 반사실적 요소가 발견되어 마침내 반환될 때까지 그에 따라 구를 수축하거나 확장합니다.
Ribeiro et al.(2018)에 의한 앵커는 반사실적 요소와 반대로 작용합니다. 범위 규칙(Anchors) 포스팅을 참조해주세요.
참고자료: https://christophm.github.io/interpretable-ml-book/counterfactual.html
'해석할 수 있는 기계학습 > 6. 예제 기반 설명' 카테고리의 다른 글
[해석할 수 있는 기계학습(6-4)]영향력 있는 인스턴스(Influential Instances) (0) | 2021.04.05 |
---|---|
[해석할 수 있는 기계학습(6-3)]프로토타입과 크리티시즘(Prototypes and Criticisms) (0) | 2021.03.20 |
[해석할 수 있는 기계학습(6-2)]적대적 예제(Adversarial Examples) (1) | 2021.02.04 |
[해석할 수 있는 기계학습(6-0)] 예제 기반 설명(Example-Based Explanations) (0) | 2020.12.01 |