[머신러닝의 해석] 1편. 모델 해석의 중요성과 분류


저는 요즘 부쩍 Interpretable Machine Learning 분야에 관심이 많아졌는데요. 관심을 가지게 된 계기는 프로젝트나 공모전을 하다가 모델이 왜 이런 예측 결과를 냈는지 정말로 궁금했기 때문입니다. 그 때마다 모델의 예측 결과를 해석하기 위해, SHAP 라이브러리를 적용하거나, Logistic Regression 등의 간단한(simple) 모델로 다시 돌려보고 비교하곤 했습니다. 그러다가 문득 이 해석도 믿을 수 있는 것인가에 대해서 고민을 하게 되었고, 그렇다면 이 참에 모델을 해석하는 방법에 대해서 조금 더 깊이 알아보기로 했습니다! 일단 이번 포스트에서 작성할 내용의 원 출처는 바로 아래와 같습니다.

  • Molnar, Christoph. ‘Interpretable machine learning. A Guide for Making Black Box Models Explainable’, 2019. https://christophm.github.io/interpretable-ml-book/

이번 포스트에서는 모델을 해석해야 하는 이유와 머신러닝 모델을 해석하는 방법의 큰 개요에 대한 내용을 다루고자 합니다. 그럼 시작하겠습니다!


1. 모델을 왜 해석해야 하는가?


보통 성능이 좋은 핫한 머신러닝 모델들은 대부분 Black Box Model인데요. 새까만 상자는 안을 들여다볼 수가 없죠. 즉, Black Box Model이라는 것은, 이름 그대로 내부 작동 원리를 드러내지 않는 모델입니다. 즉, 모델이 왜 그런 예측 결과를 냈는지 알 수가 없습니다. 바로 이 Black Box Model을 어떻게 해석할 수 있을지에 대해서도 많은 연구가 진행중인데요. 그렇다면 먼저 대체 왜 연구를 하는지, 모델을 왜 해석해야 하는지에 대해서 알아봅시다.

“많은 분야에서 모델을 무조건 신뢰할 수 없다.”

‘성능만 좋으면 된거 아니냐?’라고 생각하시는 분들도 많을 것 같습니다! 물론, 해석이 그렇게까지 필요하지 않은 분야도 많을 것입니다. 특히, 위험성이 적은 분야는 모델의 결과를 온전히 신뢰해도 될 것입니다. 예를 들어, 사람들이 좋아할 만한 영화를 추천해주는 것은, 설령 관심 없는거 추천해줬다고 그리 큰 일이 일어나지는 않습니다. 하지만, 사람의 목숨이 달려 있는 의료 분야의 경우, 모델의 해석을 절대 배제해서는 안 될 것입니다. 모델을 무조건 신뢰할 수 없기 때문입니다. 자율자동차의 경우도 마찬가지일 것입니다. 앞에 어린 아이가 있거나, 자전거를 타고 가는 사람이 있을 때, 자동차는 ‘충분하게’가 아니라 이를 100% 확실하게 감지해야 할 것입니다. 만약 자전거를 타는 사람을 감지하는 데 가장 중요한 feature가 바퀴라는 것을 알아냈다면, 가방 등에 의해 바퀴가 가려진 경우 등 최대한 모든 경우를 고려해서 안전성을 더욱 높일 수 있을 것입니다. 주식 투자, 트레이딩 등 금융 분야에서도, 정말 큰 돈이 오고 가는 상황에서는 모델을 무조건적으로 신뢰하기는 어려울 것입니다. 이 때, 모델이 왜 이런 결정을 내렸는지 안다면, 모델의 신뢰성을 더욱 개선할 수 있을 것입니다.

“의사 결정에 직접적 영향을 주는 것은 해석이다.”

많은 분야에서 모델을 이용하는 이유 중 하나는 의사결정에 도움을 얻기 위해서입니다. ‘이번 제품의 마케팅 전략을 어떻게 짜고, 타겟을 누구로 해야할지’에 대한 결정을 내리기 전에, 모델링을 통해 인사이트를 얻는 것입니다. 이 때, 의사 결정권자를 설득하기 위해서는 ‘이유’가 필요할 것입니다. ‘모델의 높은 성능 자체가 이유가 되지 않는가?’ 물론 그럴 수도 있습니다! 그런데 ‘Accuracy score’가 엄청 높은 모델이라고 실생활에서 소비자들을 어떤 기준에 따라 정확히 분류한다고 할 수 있을까요? 물론 이것도 모델의 신뢰성 범주에 들어가는 내용인데요. 우리가 상기하고 있어야 할 것은 모델의 성능을 체크하는 지표(Metric)는 결국 모델이 어느정도 잘 맞추는 지를 매우 단순화한 수치라는 것입니다! 아무리 단일 지표에서 높은 성능이 나왔다고 하더라도, 우리 실제 생활에서 항상 완전한 지표인 것은 아닙니다. 때문에 의사 결정에 직접적인 영향을 주기 위해서는, 지표 뿐만 아니라 의사 결정권자가 결국 납득할 만 한 이유를 제시해야 할 것입니다. 특히나, 의사 결정권자가 모델링에 대한 전문 지식은 부족하지만 그 분야의 도메인 전문가라면, 소통을 위한 해석의 중요성은 더욱 커질 것입니다.

“우리가 몰랐던 지식을 얻을 기회, 편견을 깨트릴 기회가 된다.”

모델링의 예측 결과를 해석하다 보면, 우리가 몰랐던 지식을 알게 되거나, 가지고 있었던 고정관념을 바로잡을 수 있는 기회가 되기도 합니다. 물론 이렇게 놀라운 발견을 할 가능성이 항상 크다고 할 순 없지만, 발견하면 대박인 케이스가 될 것입니다. 월마트에서 기저귀와 맥주를 가깝게 진열하니 매출이 대폭 상승했다는 너무나도 유명한 그 사례도 데이터의 놀라운 발견이라고 할 수 있을 것입니다. 맥주와 기저귀같이 전혀 관계가 없어 보이는 두 제품을 함께 진열하면 매출이 오를 것이라고 머릿속으로 먼저 생각하기는 쉽지 않았을 것입니다. 또 한, 모델이 예측한 결과는 예상했던 결과이지만, 알고 보니 그 이유는 정반대인 경우도 있을 것입니다. 모델의 예측 결과를 받아들이는 것을 넘어서, 모델의 예측 결과를 해석하려는 노력을 한다면, 우리의 사고를 전환할 수 있는 사실을 알게 될지 모릅니다.

“차원의 저주를 해결할 실마리가 된다.”

모델을 해석하는 많은 이유 중 하나는 또한 변수 선택(Feature Selection)일 것입니다. 변수가 너무 많을 경우에는 아무런 역할을 하지 않는 변수들을 제거하는 것이 훨씬 더 효율적인데요. 이럴 때 변수 중요도(Feature Importance)를 참고해서 변수를 선택하곤 합니다. 또 한, 변수 중요도를 통해 어떤 변수가 가장 중요한 변수인지 안다면, 위에서 언급했던 것처럼 인사이트 도출에 큰 도움이 될 것입니다. 최대한 신뢰할 만한 변수 중요도를 얻기 위해서는 다양한 방법을 더욱 많이 알고, 적절하게 조합해서 사용해야 합니다.


2. 모델 해석 방법의 분류


이제 모델을 해석해야 하는 이유를 알았습니다. 본격적으로, 모델을 해석하는 여러가지 방법에 대해서 알아보기 전에, 모델 해석 방법을 크게 분류할 수 있는데요. 이 분류 기준을 알아보도록 하겠습니다!

Intrinsic vs Post-hoc

먼저 모델 자체로 해석이 가능한지의 여부로 해석 방법을 분류할 수 있습니다. 먼저 Linear Regression, Logistic Regression과 같이 비교적 그 구조가 간단한 모델들은 모델링 결과 parameter를 보고 예측 결과를 해석할 수 있습니다. 이렇게 모델 그 자체로 바로 해석할 수 있는 방법을 Intrinsic 방법으로 분류할 수 있습니다. 반면, 모델링 결과를 보고 바로 해석할 수 없는 경우, 모델링 이후에 해석을 위한 새로운 모델링 또는 알고리즘을 적용할 수 있을 것입니다. 이러한 방법을 이름 그대로 Post-hoc으로 분류하게 됩니다.

Model-specific vs Model-agnostic

어떤 특정 모델에만 적용되는 해석 방법은 Model-specific이라고 분류할 수 있습니다. 앞서 언급했던 비교적 단순한 모델들은 해석 방법이 모두 Model-specific에 해당합니다. 그 모델로 학습을 하고, 그에 대한 결과를 그 모델의 parameter 또는 그 모델의 구조로 해석하기 때문에, 해석 방법이 그 모델에 특화되어 있다고 할 수 있습니다. 반면, 다양한 모델에 적용할 수 있고, 모델을 학습한 후에 적용되는 해석 방법은 Model-agnostic으로 분류됩니다. 이 경우, 주로 그 모델만의 내재적, 구조적인 정보를 이용하는 것이 아니라, input 값과 output 값을 분석해서 해석하게 됩니다.

Global vs Local

모델을 어떤 범위에서 해석하는 지에 따라 해석 방법을 분류할 수 있습니다. 각 데이터 포인트, 각 인덱스마다 해석을 진행하는 방법을 Local로 분류합니다. 대부분의 경우, ‘Locally’ 해석하게 되면, 해당 데이터의 feature 간 복잡한 관계보다는 선형적 또는 단조로운 형태를 띄게 될 것입니다. 또한, Locally 해석하면 데이터를 더욱 문맥화하여 해석할 수 있기 때문에 전체적으로 한번에 해석하는 것보다 더욱 정확할 가능성이 높습니다. 한편, 전체 데이터를 아우르는 해석을 Global로 분류합니다. 예를 들면, 대체로 이 데이터에서 어떤 변수가 중요하고, 어떤 종류의 교호작용이 일어나는지에 대한 설명이 이에 해당합니다. 데이터를 전반적으로 이해하는 데 중요한 해석이 되지만, 실제로 확실하게 Global한 해석을 얻기는 더 어려울 수 있습니다.


3. 해석의 성질


이제 좋은 해석이라는 것은 무엇인지 정의하기 위해 해석의 주요 성질에 대해서 알아보겠습니다.

fidelity

모델의 예측 결과와 이에 대한 해석이 얼마나 근접한지에 대한 성질을 의미합니다. 물론 Intrinsic 해석 방법의 경우 fidelity는 매우 높을 것입니다. 하지만, Post-hoc 해석 방법의 경우, fidelity가 높은지에 대한 여부는 매우 중요한 정보가 될 것입니다. Fidelity가 너무 낮다면, 그 모델을 설명하는 의미가 없을 것이기 때문입니다.

consistency

같은 데이터셋으로 학습하고, 비슷한 예측을 한 두 모델에 대하여, 각각의 해석이 얼마나 다른지에 대한 성질입니다. 두 모델의 예측 결과가 높은데 해석도 비슷하다면, 이 해석 방법은 매우 ‘consistent’하다고 간주할 수 있습니다. 하지만, 두 모델이 서로 예측 결과는 비슷해도, 서로 다른 feature를 중심으로 학습했을 수도 있기 때문에, 이러한 경우에는 항상 높은 Consistency가 요구되는 것은 아닙니다.

stability

비슷한 사례 또는 인덱스에 대해, 해석이 얼마나 비슷한지에 대한 성질을 의미합니다. 매우 비슷한 인덱스 간 해석의 차이가 크다면, Stability가 부족한 것이고, 이 경우 해석의 분산이 매우 커지게 될 것입니다. 위에서 언급했던 Consistency 성질은 서로 다른 모델 간 해석이 얼마나 비슷한지에 대한 것이고, Stability의 경우는, 한 모델에 대하여 비슷한 인덱스 간 해석이 얼마나 비슷한지에 대한 것입니다.

comprehensibility

해석 방법이 얼마나 인간이 이해할 수 있을 것인지에 대한 것입니다. 즉, 사람들 간 소통이 가능하고, 충분히 이해할 만한 해석은 comprehensibility가 높다고 할 수 있을 것입니다.


여기까지 머신러닝 모델을 해석해야 하는 이유와, 해석 방법의 여러가지 분류 및 성질에 대해서 알아보았습니다! 다음 포스트에서는 다양한 해석 방법, 특히 다양한 모델에 적용할 수 있는 Model-agnostic 해석 방법에 대해 소개하고자 합니다. 감사합니다.