|
반대사실 설명이란?
반대사실 설명(counterfactual explanations)은 현재 모델이 유지된다는 가정 하에 현재 결론과 다른 결과를 얻기 위해 변경할 수 있는 속성의 값을 제시해 주는 알고리즘이다. 다음의 설명은 이것이 어떤 문제인지 정확하게 설명하고 있다.
금융회사에 대출을 신청하지만, 그 신청은 그 회사로부터 대출을 받는 사람을 결정하는 데 사용되는 기계 학습 알고리즘에 의해 거절되는 사람을 생각해 보자. 알고리즘에 의한 결정을 이 사람에게 어떻게 설명할 수 있을까?
한 가지 옵션은 알고리즘의 결정에 기여한 기능 목록을 제공하는 것이다(예: 소득 및 신용 점수). 현재의 많은 설명 방법은 알고리즘의 속성을 분석하거나 더 단순하고 해석 가능한 모델로 근사하여 이 정보를 제공한다. 하지만, 이러한 설명은 이 사람이 미래에 대출을 받을 가능성을 높이기 위해 다음에 무엇을 해야 할지 결정하는데 도움이 되지 않는다. 특히 예측을 위해 가장 중요한 특징을 변경한다고 해서 실제로 결정이 바뀌지는 않을 수 있으며, 어떤 경우에는 연령과 같이 중요한 특징을 변경하는 것이 불가능할 수도 있다.
유사한 주장은 구직자 심사, 건강보험 결정 또는 정부 지원 중단과 같은 시나리오에서 의사결정자를 지원하기 위해 알고리즘을 사용하는 경우에도 적용된다. 따라서 알고리즘에서 유리한 결과를 얻을 수 있는 대체 속성 입력(alternative feature inputs)을 보여주는 것도 마찬가지로 중요하다. 이러한 대안적 예는 가상 입력에 대한 추론을 통해 알고리즘을 설명하기 때문에 반사실적 설명(counterfactual explanations)으로 알려져 있다. 사실상, 그들은 "만약에"라는 질문에 답하도록 돕는다. 만일 속성 중 일부가 달라졌다면 대체적인 반사실적 세계에서는 어떤 일이 일어났을까?
DiCE는 마이크로소프트의 연구원들이 제시한 반대사실 설명 방법으로, "다양한 반사실적 설명을 통한 기계 학습 분류기 설명(Explaining Machine Learning Classifiers through Diverse Counterfactual Explanations)" 이라는 제목의 연구 세부 논문은 스페인 바르셀로나에서 열리는 공정성, 책임성 및 투명성에 관한 ACM 컨퍼런스(ACM FAT* 2020)에서 발표되었다. 또한 이들은 이들은 우리는 또한 반사실적 설명을 생성하기 위한 프레임워크를 구현하는 다양한 반사실적 설명(DiCE)이라는 오픈 소스 라이브러리를 공개했다. 여기에서는 이것을 사용하는 방법에 대해 설명하고자 한다.
당면 과제: 사용자 및 시스템 구축자에게 유용한 여러 개의 반사실적 생성
반사실적 설명은 기계 학습 모델이 다른 결정을 제공하는 결과를 초래하는 원래의 특징 입력에 대한 동요를 의미한다. 그러한 설명은 확실히 결정에 직면한 사람에게 유용하지만, 알고리즘을 디버깅할 때 시스템 구축자와 평가자에게도 유용하다. 이런 점에서, 문제 예가 원래 입력에 대한 근접성뿐만 아니라 민감한 속성과 같이 결과에 영향을 미치지 않아야 하는 다양한 영역 의존적 제한에 기초한다는 점을 제외하고, 반사실적 예는 적대적 예(adversarial examples)와 유사하다. 아마도 그들의 가장 큰 이점은 모형이 동일하게 유지되는 한 반사실적 설명을 따르는 것이 원하는 결과를 이끌어 낼 수 있다는 것이다.
가능한 반사실적 공간이 크기 때문에 사용자가 어떤 예를 실행할 수 있는지 또는 어떤 예가 모델 작성자가 관심을 가질 수 있는 다양한 속성을 노출시킬지는 불분명하다. 예를 들어, 반사실적 설명은 주택 임대료를 변경할 것을 제안할 수 있지만, 동일한 효과를 낼 수 있는 다른 반사실적이나 다른 변경이 이루어질 수 있는 상대적 용이성이 있는지는 공개하지 않는다.
DICE 솔루션: 여러 가지 다른 반사효과를 동시에 생성하는 방법
DiCE는 반대 사실 설명을 위해 동시에 다양한 반작용제 세트(diverse set of counterfactuals all at once)를 생성하여 제안하는 방법을 사용했다. 즉, 웹 검색 엔진과 마찬가지로, 다양한 옵션을 제공하는 것은 가장 실행 가능한 옵션을 위해 정보에 입각한 선택을 할 수 있게 해준다. 또한 알고리즘 작성자가 결과를 변경하는 여러 가지 방법을 테스트할 수 있다. 이런 접근 방법은 모델이 반사실적 예제를 위해 원하는 결과를 제공하도록 보장하는 것 외에도 다양성과 원래 입력에 대한 근접성을 모두 최적화하는 공동 최적화 문제를 공식화함으로써 이를 수행한다.
DiCE는 모델이 반사실적 예제를 위해 원하는 결과를 제공하도록 보장하는 것 외에도 원래 입력에 대한 다양성과 근접성(diversity and proximity)을 모두 최적화하는 공동 최적화 문제(joint optimization problem)를 공식화함으로써 이를 수행한다. 또한 다양한 종류의 사용자별 요구사항(user-specific requirements)을 추가할 수 있다. 최적화 문제에 제약 조건을 추가하여 어떤 특징이 얼마나 변화하는지, 그리고 각 특징을 변화시키는 상대적 난이도에 따라 지정할 수 있다. 그림 1은 개인의 소득을 예측하는 기계 학습 모델을 설명하는 데 적용된 방법의 예이다.
DiCE는 다양한 반사실적 생성에 대한 현재의 방법보다 우수하다는 것을 발견하며, 반사실적들의 인상적인 특성을 발견한다. 단지 소수의 반사실적 설명만으로도 간단한 k-NN 모델을 사용하여 기계 학습 알고리즘에 국지적으로 근사할 수 있다. 즉, 반사실적 설명은 목적에 특별히 최적화된 LIME과 같은 방법과 유사한 정확도로 국소 의사결정 경계(local decision boundary)를 근사할 수 있다.
"what-if" 시나리오를 탐색하는 것은 기계 학습(ML) 모델을 검사하는 중요한 방법이다. DiCE 라이브러리를 사용하면 원하는 모델 출력으로 이어지는 "what-if" 데이터 포인트를 생성하여 ML 모델을 이해할 수 있다. 공식적으로 이러한 "what-if" 데이터 포인트는 다음과 같은 질문으로 설명되는 반사실적이라고 알려져 있다.
입력 x에 대한 모델의 출력이 y인 경우 입력 x가 x'로 변경되면 출력은 어떻게 됩니까?
위의 질문에 대한 답은 기계학습 모델에 x'를 입력하면 얻을 수 있다.
그러나 많은 경우에 우리는 모델 출력에 원하는 변화를 초래할 수 있는 x의 변경은 무엇인가라는 역방향 질문에 관심이 있다. 예를 들어 분류 모델을 검사할 때 원하는 예측 클래스로 이어지는 x의 변경 사항을 알고자 하는 경우가 많다. 회귀 모델의 경우 원하는 출력 범위로 이어지는 x의 변경에 관심이 있을 수 있다. 이상적으로 이러한 변경은 분류 모델의 국소 결정 논리(local decision logic of the classification model)를 도출하기 위해 근위부(proximal)여야 하고, 제한된 특징 집합을 강조하기 위해 희박해야 하며, 동일한 결과를 얻을 수 있는 다양한 방법을 보여주기 위해 다양해야 한다. DiCE는 모든 머신 러닝 모델에 대해 이러한 반사실적 예를 생성할 수 있는 쉬운 인터페이스를 제공한다.
근접성(최소 변화)과 다양성 외에도, 반사실적 예에 대한 또 다른 중요한 지표는 실현 가능성(feasibility)이다. 반사실적 사례의 변경이 가능하지 않은 경우(예: 특정 형상의 가능한 범위를 벗어나면), 예는 덜 유용하다. 연속 형상에 대해 가능한 범위(및 범주형 형상에 대해 가능한 값)를 지정하는 것은 실현가능성의 가장 간단한 형태 중 하나이다. DiCE를 사용하면 permitted_range 파라미터를 통해 형상에 허용되는 값을 사용자 정의할 수 있다. 일반적으로 실현가능성은 특정 값이 실현가능하다는 것뿐만 아니라, 반사실적적 변화가 개인에게 실현 가능한지 여부에 기초한 복잡한 개념이다(예: 20년은 연령 특성에 대해 실현 가능한 가치일 수 있지만, 개인의 연령을 22세에서 20세로 변경하는 것은 가능하지 않다).
DiCE에 의해 생성된 반사실적 예는 주어진 모델 출력을 유발하기 위한 필요성(necessity) 및 충분 조건(sufficiency)과 밀접하게 관련되어 있다. 필요성과 충분성은 모델의 출력을 설명하는 직관적인 방법을 제공한다. 입력 x와 모델 출력 y가 주어졌을 때, 다른 모든 피처는 일정하게 유지하면서 xi를 변경하면 모델 출력 y를 유발하려면 피처 값 x_i가 필요하다. 마찬가지로, 피처 값 x_i는 x_i를 일정하게 유지하면서 모델 출력을 변경할 수 없는 경우 모델 출력 y를 발생시키기에 충분하다.
DiCE는 features_to_vary 파라미터를 설정하여 필요성과 충분성을 검사할 수 있다. features_to_vary가 x_i로 설정된 경우 생성된 반사실적에서 피처의 필요성을 입증한다. feature_to_vary가 x_i를 제외한 모든 피처에 설정된 경우, 반사실적 부재는 피처의 충분성을 입증한다. 실제로 단일 피처는 충분하지 않을 수도 있고 필요하지 않을 수도 있다. 즉, 피처 정의와 feature_to_vary 파라미터는 쉽게 피처 셋으로 변환된다.
마지막으로, 입력 데이터 포인트에 대한 반사실적 사례는 각 피처에 대한 로컬 중요도 점수(local importance score)를 도출할 수 있다. 로컬 피처 중요도 점수(local feature importance score )는 생성된 반사실적 사례에서 변경 빈도에 따라 피처의 순위를 매긴다. 모든 피처 중에서 필요한 피처는 근위부 반사실적 사례를 생성하기 위해 더 자주 변경될 수 있고 따라서 더 높은 점수를 받는다.
features_to_vary 및 allowed_range 매개 변수를 사용하여 반사실적 사례에 대한 검색 공간과 결과적으로 로컬 중요도 점수를 정제할 수 있다. 입력 점수 집합이 주어지면 로컬 중요도 점수를 집계하여 글로벌 중요도 점수(global importance score)를 제공할 수 있다. LIME 또는 SHAP과 같은 설명 방법에 비해 DiCE에서 생성된 특징 중요도 점수는 더 많은 피처에 중요성을 부여하는 경향이 있다. 더 자세한 내용은 이 논문에서 확인할 수 있다.
이제 반대사실설명의 기본적인 개념과 DiCE 방법에 대한 개략적인 이해가 됐을 것으로 생각한다. 다음 장에서는 실제로 DiCE를 사용하는 방법에 대해 알아보자.
참고자료:
1. Amit Sharma, Open-source library provides explanation for machine learning through diverse counterfactuals, 2020
2. Diverse Counterfactual Explanations (DiCE) for ML
3. Git resource