머신러닝 모델 해석력 시리즈 3탄! 오늘은 머신러닝 모델의 작동 원리에 대한 인사이트를 도출할 수 있는 변수를 표시하는 두 가지 방법에 대해 자세히 살펴보고자 합니다. 머신러닝 모델 해석력 시리즈 1탄과 2탄을 놓치셨다면, 클릭해주세요!
데이터 과학자가 모델이 어떻게 작동하는지에 대해 자세히 알고 싶어할 때, 단순히 모델의 정확성을 평가하는 것만으로는 충분하지 않습니다. 데이터 과학자들은 종종 모델 입력 변수가 어떻게 작동하는지 또 입력 변수의 값에 따라 모델의 예측이 어떻게 변화하는지 알아야 하는데요. 이 정보를 사용해 모델의 결함을 찾고, 최상의 모델을 선택하며, 신용카드 신청자와 의료 환자 등 여러 이해관계자에게 머신러닝 모델을 설명할 수 있습니다.
중요한 변수를 찾는 것은 주요 동인을 발견하는 데에는 도움이 되지만, 입력 변수와 예측 간의 관계를 설명해주지는 못하는데요. 이때 부분 의존성(PD; Partial Dependence)과 개별 조건부 기대치(ICE; Individual Conditional Expectation) 플롯을 이용해 하나 이상의 입력 변수와 블랙박스(black-box) 모델의 예측 사이의 관계를 도출할 수 있습니다.
PD 플롯과 ICE 플롯은 모두 시각적이며 모델에 구애 받지 않는 기술입니다. 예를 들어, PD 플롯은 자동차의 예측 가격이 마력에 따라 선형적으로 증가하는지 또는 이 관계가 계단 함수나 곡선 등 다른 유형을 띄는지 보여줍니다. ICE 플롯은 개별적인 차이를 탐색하고, 하위 그룹과 모델 입력 간의 상호작용을 식별하기 위해 더 깊이 들여다볼 수 있습니다.
부분 의존성(PD; Partial Dependence) 플롯
부분 의존성(PD) 플롯은 소수의 입력 변수와 예측 사이의 함수 관계를 나타냅니다. 이를 통해 예측이 관심 입력 변수의 값에 부분적으로 영향을 받는다는 것을 보여주는데요. 예를 들어, PD 플롯은 독감에 걸릴 확률이 열의 온도에 따라 선형적으로 증가하는지를 나타낼 수 있습니다. 또 몸의 에너지 수준에 따라 독감에 걸릴 확률이 줄어드는지도 보여줄 수 있죠. PD는 계단 함수, 곡선, 선형 등과 같은 관계 유형을 보여줍니다.
가장 간단한 PD 플롯은 모델의 예측이 단일 입력에 어떻게 의존하는지를 보여주는 일원(1-way) 플롯입니다. 아래 플롯은 가격(대상)과 욕실 수 사이의 관계를 보여줍니다. 여기서 우리는 욕실 수가 4개 이하로 늘어날 때 집 값이 올라간다는 것을 알 수 있습니다. 5개 이상부터는 집 값이 변하지 않습니다.
PD 플롯은 특정 범위 안에서 관심 변수를 탐색합니다. 변수의 개별 값에서 모델은 다른 모델 입력의 모든 관측치에 대해 평가되며, 평균화된 값을 출력합니다. 따라서 PD 플롯이 보여주는 관계는 관심 변수가 다른 모델 입력과 강하게 상호작용하지 않는 경우에만 유효합니다.
실제 상황에서는 변수 사이의 상호작용이 일반적이기 때문에 특정 모델 변수 간의 상호작용을 확인하려면 이원(Two-way)과 같은 다원(Multi-way)의 PD 플롯을 사용할 수 있습니다.
개별 조건부 기대치(ICE; Individual Conditional Expectation) 플롯
PD 플롯은 모델의 작동 원리에 대한 대략적인 뷰를 제공합니다. 반면 ICE 플롯을 사용하면 개별 관측의 수준까지 상세하게 탐색할 수 있습니다. 또한 개별적인 차이를 탐색하고, 하위 그룹과 모델 입력 사이의 상호작용을 식별하는 데 도움이 됩니다. 즉 각각의 ICE 곡선은 특정 관측치의 한 특성을 변경했을 때 모델 예측에 어떤 현상이 발생하는지를 보여주는 일종의 시뮬레이션으로 생각할 수 있습니다. 시각화 과부하를 방지하기 위해 ICE 플롯은 한 번에 하나의 모델 변수만 표시합니다.
아래 그림의 PD 함수는 기본적으로 평평하기 때문에 X1과 모델 예측 결과 사이에 아무 관계가 없는 것처럼 보입니다.
반면 아래 ICE 플롯은 매우 다른 그림을 보여줍니다. 한 관측치는 강력한 양의 관계를, 다른 관측치는 강력한 음의 관계를 나타내는데요. 즉 PD 플롯이 보여주는 것과는 반대로 ICE 플롯은 X1이 실제로 대상과 관련되어 있음을 보여줍니다. 다른 변수의 값에 따라 그 관계의 본질이 크게 달라질 수 있음을 알 수 있는데요. ICE 플롯은 결과적으로 평균 값을 나타내는 PD 함수를 분리해 상호작용과 개별 차이를 보여줍니다.
머신러닝 모델에 대한 PD 플롯과 ICE 플롯은 쉽게 계산할 수 있지만, 대용량의 데이터 세트를 처리해야 할 경우 효율성을 위한 조정 과정이 필요합니다. 예를 들어, 선택한 변수를 삭제하거나 데이터 세트를 샘플링하거나 클러스터링할 수 있는데요. 이러한 기법을 사용해 실제 플롯의 합리적인 근사치를 훨씬 더 빠르게 추정할 수 있습니다.
PD 플롯과 ICE 플롯에 대해 더 자세히 알고 싶다면 레이 라이트(Ray Wright) SAS 수석 머신러닝 개발자(Principal Machine Learning Developer at SAS)의 PD 플롯과 ICE 플롯을 사용해 머신러닝 모델을 비교하고 인사이트를 도출하는 방법에 대한 훌륭한 논문을 추천합니다. 랜덤 포레스트, 신경망, 그래디언트 부스팅과 같은 블랙박스 알고리즘과 다루며, PD 플롯의 한계를 설명하고 빅데이터를 위해 확장 가능한 플롯을 생성하는 방법들을 소개합니다. 이 보고서에는 PD와 ICE 플롯 모두를 위한 SAS 코드가 포함되어 있습니다. 또 깃허브(github)에서 입력의 측정 수준에 맞는 개별 요청 입력에 대한 PD 플롯을 만들기 위한 %partialDep 매크로를 확인할 수 있습니다.
의료, 금융 등 다양한 분야에서 인공지능(AI)과 머신러닝이 폭넓게 쓰일수록 기업은 더 정확하고 신뢰할만한 결과를 제공하기 위해 노력해야 합니다. 인공지능의 오류로 인한 책임은 궁극적으로 사람에게 있기 때문인데요. SAS와 같이 인공지능 기술의 최전방에 있는 데이터 분석 기업은 공정성(Fairness), 책임감(Accountability), 투명성(Transparency)이라는 세 가지 요소를 갖춘 ‘FAT 인공지능’의 실현을 위해 앞장서고 있습니다.
SAS의 무료 인공지능(AI) 백서를 통해 AI 활용 비즈니스 성공 전략을 확인해보세요!