2.1 설명 가능한 인공지능, XAI
설명 가능한 인공지능, XAI(eXplainable Artificial Intelligence)란 사용자가 인공지능 시스템의 동작 방식과 최종 결과를
올바르게 해석하여 결과물이 생성되는 과정을 설명 가능하도록 해주는 기술이다(2).
선형회귀, 의사결정트리 등과 같은 일부 머신러닝 기술의 경우는 내부 알고리즘을 통해 본질적으로 설명이 가능하지만 그 성능에는 한계를 나타내고 있다.
이에 따라 현실 세계의 복잡한 문제를 해결하기 위해 다양한 앙상블 기법들이 머신러닝에 적용되거나 인공신경망 기반의 심층신경망을 응용한 학습 방법들이
개발되었다. 이와 같은 모델들은 높은 성능을 보장해주는 반면, 복잡한 알고리즘 체계로 인해 입력-예측값에 대한 직관적인 해석이 어렵다. 모델의 예측
결과에 대한 이유를 사람이 이해할 수 있는 정도를 해석 가능성이라고 하며, 앞서 말한 바와 같이 일반적으로 머신러닝 모델의 해석 가능성은 예측 성능과
trade-off 관계를 보인다. 해석 가능한 모델부터 복잡한 모델까지 XAI 기술을 통해 예측 모델이 도출한 결과를 단순히 받아들이는 것에 끝나지
않고, 모델의 학습 및 예측 과정을 분석하여 결과를 해석할 수 있다.
2.1.1 XAI: 기대효과
XAI를 통한 머신러닝 모델의 해석은 다음과 같은 효과를 기대할 수 있다.
1) 성능 향상 : 머신러닝 모델 학습에 사용되는 입력 특징을 분석함으로써 인공지능 시스템의 성능 저하 요인을 파악하거나, 다양한 조건 및 상황에
따른 적합한 학습 모델을 도출하여 모델 성능 향상을 도모할 수 있다.
2) 안정성 부여 : 머신러닝 모델을 실제 문제 해결에 적용하는 과정에서 입력 특징이 변동하는 상황이 발생할 수 있으며, 모델 학습 과정 및 예측
과정에 영향을 미치게 되어 예측 결과 또한 크게 변할 수 있다. 다양한 환경 및 조건에 따른 유동적인 모델 설계를 위해 모델 해석이 중요하며, 이를
통해 전반적인 문제 해결 과정에 안정성을 부여할 수 있다.
3) 신뢰성 확보 : 질병 진단, 자율주행자동차 기술과 같이 사람의 안전과 관련된 분야 및 기타 중요한 결정 사안에 머신러닝 모델이 활용되는 경우
사람들의 높은 신뢰를 필요로 한다. 모델 해석 과정을 통해 인공지능 기술의 잘못된 결과로 문제 발생 시 원인파악 및 대처가 가능하며, 결과 도출 과정을
사람들에게 이해시킴으로써 신뢰성을 확보할 수 있다.
2.1.2 XAI: 방법론
인공지능 기술 해석은 사용하는 모델의 특성에 따라 다양한 방법이 적용될 수 있다. 모델 알고리즘이 간단하여 본질적으로 해석이 가능한 모델의 경우,
예측 함수의 파라미터들과 통계학 바탕의 모형 검정 이론을 통해 모델을 해석할 수 있다. 이와는 달리 실제 높은 수준의 성능을 보이나 모델 구조가 복잡하여
예측과정을 쉽게 설명할 수 없는 ‘블랙박스(black box)’ 모델의 경우, 모델의 알고리즘에 관계없이 적용 가능한 model- agnostic
해석 기법들을 통해 해석할 수 있다. 현재까지 머신러닝 모델의 정확도와 해석 가능성을 모두 확보하기 위한 다양한 해석 기법들이 제안되었지만(3-8), 인공지능 기술 해석 기법에 대한 완전한 체계는 아직 정립되지 않았다.
가장 기본적이면서도 주로 사용되는 방법은 입력 특징을 분석하여 모델 학습 및 예측 과정을 해석하는 것이다. 입력 특징을 이용한 해석은 해석 범위에
따라 전역적(global) 해석과 지역적(local) 해석으로 구분된다. 전역적 해석의 경우, 학습 데이터를 통해 모델이 학습된 과정 또는 테스트
데이터에 대해서 도출한 결과를 해석하는 것이다. 지역적 해석의 경우, 하나의 특정 입력 데이터에 대해서만 모델이 도출한 결과를 해석하는 것이다.
2.2 머신러닝 모델 해석 기법
입력 특징을 이용한 머신러닝 모델의 해석은 입력 특징 중요도(feature importance)와 PDP(Partial Dependence Plot)와
같은 입력 특징 요약(feature summary) 형태의 결과를 통해 수행할 수 있다(2).
입력 특징 중요도 해석에서는 여러 산정 기준에 따라 모델의 입력 데이터로 사용된 입력 특징의 중요도 순위와 정도(크기, 수치)를 그래프 및 그림으로
나타낼 수 있다. 일부 트리기반 머신러닝 모델 기법에 대해서는 구현 패키지에서 자체적으로 제공하는 함수를 사용할 수도 있고, 또는 다양한 외부 해석
패키지들을 통해 입력 특징 중요도를 나타낼 수 있다. 머신러닝의 입력은 입력 데이터의 여러 특징값들로 이루어지는데, 이 중 특정 입력 특징값의 중요도는
그 입력 특징값에 실제 입력 특징값이 아닌 임의의 값으로 대체했을 때 발생하는 오차의 크기를 가늠하는 척도로 사용될 수 있다. 즉, 중요도가 높은
입력 특징값일수록 다른 임의의 값으로 대체했을 때 큰 오차를 발생시키게 된다. 이와 같이 입력 특징 중요도를 분석함으로써 각각의 입력 특징들이 출력
결과에 미치는 영향을 가늠할 수 있으므로 입력 특징 중요도는 머신러닝 모델 해석에 필수적인 요소라 할 수 있다.
PDP 해석은 하나 또는 두 개(two-way)의 입력 특징이 출력 예측값에 미치는 영향을 분석하기 위한 방법으로서, 출력값에 대한 입력 특징의 한계효과(marginal
effect)를 시각적으로 확인할 수 있다. 특정 입력 특징에 대한 머신러닝 모델 출력값의 부분적 의존도(partial dependence)는 해석하고자
하는 입력 특징을 제외한 특징 입력의 분포에 대하여 예측값들의 평균값으로 계산된다(2). 이러한 PDP는 파이썬 해석 패키지인 Skater(9)나 SHAP(10)을 통해 나타낼 수 있으며, PDP를 통해 입력 특징과 출력값 사이의 상관관계(correlation)를 파악할 수 있다.
2.2.1 XGBoost에서의 입력 특징 중요도
본 연구에서 수요 예측 모델로 사용하는 XGBoost 알고리즘 패키지에서는 ‘weight’, ‘gain’, ‘coverage’를 각각 기준으로 산정한
입력 특징 중요도 그래프를 지원한다. XGBoost의 입력 특징 중요도를 통해 모델 학습 과정에서 중요하게 작용한 입력 특징들의 순위를 파악할 수
있다.
1) weight : 전체 트리구조에서 각 트리 노드(node)가 분기(split) 시 해당 입력 특징이 사용된 횟수의 비율.
2) gain : 전체 트리구조에서 해당 입력 특징에 의한 트리 노드 분기 시 엔트로피 감소에 따른 정보량 이득으로 나타나는 분리 평균 정보 이득(split
mean gain)의 평균.
3) coverage : 전체 트리구조에서 각 트리 노드가 분기 시 해당 입력 특징이 영향을 준 샘플 개수의 비율.
2.2.2 Skater
머신러닝 해석 패키지인 Skater(9)는 모델 분석을 위한 다양한 기능을 제공한다. 첫째, Skater를 통해 예측 변화량를 기준으로 입력 특징 중요도를 나타낼 수 있다. 이 경우, 데이터셋에
섭동(perturbation)을 주었을 때, 그에 따른 출력 예측값의 변화정도를 나타내는 예측값의 차이를 계산한다. 즉, 섭동에 따른 출력 예측값의
변화정도가 크다면 입력 특징의 중요도 또한 크다고 간주할 수 있다. 모델 스코어링을 기준으로도 중요도를 산정할 수 있으며, 본래의 경우와 섭동에 따른
예측 오류값의 차이를 통해 중요도를 계산한다. 둘째, Skater에서는 입력 특징과 출력값의 상관관계를 보여주는 PDP 기능을 지원한다. 이 경우,
관심 있는 특징이 갖는 범위 내의 값들에 대한 모델의 예측평균값을 그래프로 나타낸다. 특징값의 범위는 데이터셋을 기준으로 정해지며, 사용자가 범위
내의 분할 구간(grid)을 지정함으로써 입력으로 사용되는 특징값들이 정의된다. 전체 데이터셋에서 각 인스턴스(instance)에 대해 다른 입력
특징값들은 유지한 채, 해당 특징의 경우 지정된 특징값으로 동일하게 대체하여 수정된 각 인스턴스에 대한 모델 예측값의 평균을 구함으로써 특정 특징값에
대한 예측평균값을 구한다. 지정된 범위 내의 각 특징값마다 동일한 과정에 의하여 예측평균값이 계산되며, 이를 통해 특정 입력 특징에 대한 출력값의
추이를 파악할 수 있다. 이처럼 위 두 가지 기능을 통해 모델 결과에 대한 전역적 해석이 가능하다.
2.2.3 SHAP
SHAP(SHapley Additive exPlanations)은 각 입력 특징에 대한 SHAP values를 계산하여 입력 특징을 분석하는 다양한
방법을 제공한다(10). Skater와 같은 머신러닝 해석 패키지이며, SHAP 또한 입력 특징 중요도와 PDP를 통해 모델의 전역적 해석이 가능하다.
SHAP values는 샤플리 값(Shapley values)을 머신러닝 모델의 조건부 기댓값 함수를 이용하여 구하는 값으로서, 머신러닝 모델의 입력으로
사용되는 데이터셋에서 각 인스턴스의 입력 특징값에 대한 샤플리 값을 계산하기 위한 방법이다(11). 샤플리 값이란 협조적 게임이론에서 게임의 참여자간 협조로 얻어진 총 이득을 각 참여자의 marginal contribution에 따라 배분되는
값이다. SHAP values의 정확한 값을 구하기 위해서는 많은 계산량이 소요되므로, SHAP에서는 SHAP values의 근삿값을 구하는 여러
솔루션을 제공한다. 대표적으로 모든 머신러닝 모델에 적용 가능한 Kernel SHAP, 딥러닝 모델에 사용하는 Deep SHAP, 그리고 본 논문에서
사용한 XGBoost와 같은 트리 앙상블 모델에 적합한 Tree SHAP이 있다(12).
SHAP을 이용하여 데이터셋의 각 인스턴스마다 모든 입력 특징들의 SHAP values를 계산할 수 있으며, 이를 바탕으로 입력 특징 중요도와 PDP를
나타낼 수 있다. 먼저 입력 특징 중요도의 경우, SHAP values 또는 SHAP values의 절댓값 합의 평균을 통해 데이터셋 바탕의 입력
특징 중요도 그래프를 나타낼 수 있다. SHAP에서 제공하는 PDP의 경우, 각 인스턴스의 특정 특징값을 변화시키며 예측값의 평균을 구하는 것이 아니라
각 인스턴스가 갖는 입력 특징의 값과 그에 따른 SHAP value를 모든 인스턴스에 대해서 점으로 나타낸다. 즉, 데이터셋에서 특정 입력 특징이
갖는 모든 값들에 대한 SHAP value를 시각적으로 확인할 수 있다.