머신러닝 디자인패턴

디자인패턴 29 : 설명 가능한 예측

판교데싸 2022. 6. 1. 12:29

7.2-디자인패턴 29-설명 가능한 예측

정의 : 모델이 특정 예측을 수행하는 방법과 이유에 대한 이해를 제공하여 ML 시스템에 대한 신뢰를 높이는 기법

-> ex) ML 시스템 : decision tree와 같은 모델- 설계상 해석가능 , but 딥러닝 아키텍처는 본질적으로 설명이 어려움


7.1.1 문제

머신러닝 모델을 평가할 때 보통 정확도 , 정밀도 , 재현율 ,평균 제곱오차와 같은 측정 항목은 한 부분만을 제공

이는 모델의 예측이 실제값에 비해 얼마나 정확한지에 대한 데이터를 제공하지만 모델이 이러한 예측에 도달한 인사이트는 제공해주지 않음

ex) - 망막 이미지에 당뇨망막병증(DR)의 중증도 예측하는 모델

예를 들어 해당 모델이 소프트맥스 출력을 반환하여 개별이미지가 DR의 심각도를 나타내는 5개범주 중 1개에 속할 확률을 나타낼 때

주어진 이미지에 대한 모델이 95%의 신뢰도로 이미지에 증식성DR이 포함되어 있는지 예측한다고 하면

이것은 높은신뢰도의 정확한 결과처럼 보일 수 있지만 의료 전문가는 사실 예측 보다는 모델이 해당 예측에 어떻게 도달했는지에

대한 설명이 중요합니다.

이와 같은상황에서 의사는 모델이 이미지의 어느영역에 기인했는지 확인할 방법이 없으므로 무작정 모델의 결과를 가지고 의사 결정을 하기가 힘들고

사실상 모델이 예측을 수행하는 이유에 대한 인사이트가 없으면 의사들은 모델을 사용하는 데 문제가 생길 수 있다고 판단합니다.

또한 모델만 생각했을 때도 모델이 무엇을 사용하고 있는지에 대한 자세한 정보가 없으면 어떻게 모델을 개선해야 할지 알기 어려움


6.1.2 솔루션

알려지지 않은 ML 고유의 영역을 처리하려면 모델이 내부적으로 어떻게 작동하는지를 이해할 방법이 필요한데

ML 모델의 예측 수행 방법과 그 이유를 알아내는 것이 바로 해석 가능성

예시로 decision tree와 같은 단순 모델은 종종 설계에 의해 해석이 가능하기 때문에 설명하기가 쉬운데

즉 모델에서의 가중치값이 예측을 수행하는 방법에 대한 직접적인 인사이트를 제공

또한 회귀모델의 예시도 있는데

예를들어 아래와 같은 자동차의 연비를 예측하는 선형 회귀 모델은 다음과 같은 선형 회귀 모델의 학습된 계수를 얻을 수 있다.

계수는 각 특징과 모델 결과와 예상 갤런당 마일 간의 관계를 보여준다

이 상황에서 계수를 통해 자동차의 실린더가 추가될 때마다 모델의 예측 MPG가 감소한다는 결론을 내릴 수 있다.

또한 신차가 출시 (출시년도) 됨에 따라 연비가 더 높은 경우가 꽤나 존재

이처럼 심층신경망에서 은닉층의 학습된 가중치를 통한 것보다 모델의 특징과 계수의 출력간의 관계로부터 훨씬 더많은 것들을 얻을 수 있다.

이것이 모델이 종종 디자인에에 의해 해석 가능하다고 언급되는 이유이다.

ex) 모델이 복잡한 case

모델이 더 복잡한 경우, 사후설명 방법을 사용하여 모델의 특징과 출력간의 관계를 추정이 가능한데

일반적으로 사후방법은 학습된 가중치같은 모델 내부에 의존하지 않고 분석을 수행하는 방법으로

(현재 진행중인 연구분야로 ML 워크플로에 추가하기 위한 도구와 함께 제안된 다양한 방법이 존재)

여기서 살펴볼 사후 설명방법은 특징기여도 (featrue importnace)

특징기여도 (feature importance)

해당 특징이 출력에 기여한 정도를 나타내는 값을 각 특징에 할당을 합니다.

이를 통해 이미지 , 분류 ,숫자값 등 입력 데이터 유형에 상관없이 사용할 수 있는데 이러한 특징기여도는 여러가지 유형이 있다.

  1. 인스턴스 수준 특징기여도
  • 개별 예측에 대한 모델의 출력을 설명하는 특징 기여도 ex) 신용한도 승인여부를 예측하는 모델에서 인스턴스 수준 특징기여도로 특정 사람의 신용한도 관련 신청이 거부된 이유에 대한 인사이트를 제공
  1. 전역 특징 기여도
  • 모델이 전체적으로 어떻게 동작하는지에 대한 결론을 도출 , 일반적으로는 인스턴스 수준 특징기여도를 평균내어 산출하는 기법 ex) 비행 지연 여부를 예측하는 모델에서는 전역 특징 기야도는 지연을 예측 할 때 전반적으로 극심한 날씨가 가장 중요한 특징이라 할 수 있다.
  1. 샘플링 샤플리 기법
  • shapely value 의 개념을 기반으로 만들어졌고 피쳐들의 여러 조합 즉 피쳐의 추가 제거가 예측에 미치는 영향을 계산하여 모델을 설명하는 기법
  1. 통합 그레이디언트 기법
  • 미리 정의한 베이스라인 모델을 사용하여 ,특정 입력값과 베이스라인 모델까지의 경로를 미분하여 계산한 뒤 그 값들로 모델을 설명하는 기법

SHAP Value

SHAP value는 앞서 소개된 샤플리값 개념을 기반으로 하는데 각 특징을 추가하거나 제거하는 것이 모델의 예측에 기여하는 정도를 계산해주는데 이때 특징값과 모델 출력의 다양한 조합을 고려하여 분석을 수행하는 기법입니다.

SHAP은 프레임워크에 구애받지 않고 이미지 ,텍스트 ,테이블 형식 데이터에 대해 학습된 모델과 함께 작동

실제로 작동 방법에 대해 알아보기 위해 위에 잠깐 설명했던 연비 데이터셋을 참조 하여 설명 (케라스 Sequential API를 사용하여 딥러닝 모델을 구축 하는 코드)

model=.tf.keras.Sequential([
 tf.keras.layers.Dense(16,input_shape=(len(x_train.iloc[0])),
 tf.keras.layers.Dense(16,activation='relu'),
 tf.keras.layers.Dense(1
])

Shap을 사용하는 부분으로 먼저 모델과 학습 데이터셋의 하위 예제 집합을 전달하여 DeepExplainer 객체를 만들고 테스트셋에서 처음 10개의 예시에 대한 기여도 값을 얻습니다.

import shap
explainer=shap.DeepExplainer(model,x_train[:100])
attribution_value=explainer.shap_values(x_test.values[:10])

이후 shap.summary_plot 을 통해 서머리 플롯 생성 (아래 그림)

shap.summary_plot(
   shap_values,
   feature_names=data.columns.tolist(),
   class_names=['MPG']

7-4

이예에서 연비의 가장 중요한 지표는 무게,자동차 연식,마력 순으로 높은 것을 볼 수 있습니다.

이 값을 사용하여 모델이 어떻게 동작하는지 조직 내/외부의 다른 이해관계자들에게 설명

배포된 모델 설명

SHAP은 일반적으로 스크립트나 노트북 환경에서 사용되는 파이썬에서 기여도를 구하기 위한 직관적인 API를 제공

그러나 단지 모델 예측값 외에도 배포된 모델에 대한 설명을 얻고자 하는 시나리오가 있을 수 있는데 이 경우에는 클라우드 기반 설명도구가 최상의

선택지가 될 수 있는데 여기에서는 구글 클라우드의 설명가능한 AI 를 사용하여 배포된 모델에서의 특징 기여도를 얻는 방법을 책에서 예시로 설명

(+추가적인 부분은 책에 자세한 설명이 있음)

7.2.3 트레이드 오프와 대안

설명은 모델이 결정을 내리는 방식에 대한 중요한 인사이트를 제공하지만 이는 모델의 학습 데이터 ,품질, 선택한 기준에 국한된다

이 절에서는 특징 기여도에 대한 몇가지 대안과 함께 설명 가능성의 몇 가지 제안사항을 설명해주고 있음

데이터 선택 편향

머신러닝의 오랜 격언으로 garbage in, garbage out이 있는데 즉 모델은 학습에 사용된 데이터 만큼 우수하다는 의미이다.

예를들어 이미지 모델을 학습하여 10개의 서로 다른 고양이 품종을 식별하면 10개의 고양이 품종만 알 수있음. 모델에 '개'이미지를 보여주면 할 수있는 일은

학습이 된 10개의 고양이 카테고리 중 하나로 분류하는 것 뿐이고 심지어 해당 예측은 높은 신뢰도 점수를 기록할 수도 있다.

즉 모델은 학습데이터를 직접 표현 한 것뿐이라는 의미이다.

모델을 학습하기 전에 데이터 불균형을 파악하지 못하는 경우, 특징 기여도와 같은 설명 가능성 방법을 사용하면 데이터 선택 편향을 파악 할 수 있다.

예를들어 배의 유형을 예측하는 모델을 만든다고 가정할 때 테스트셋의 이미지에 '카약'이라는 라벨을 올바르게 지정하고 특징 기여도를 사용하면

모델이 카약을 예측하기 위해 '배의모양'이 아니라 '노' 의 이미지에의존하고 있음을 발견할 수 있다.

이 경우는 데이터셋의 각 클래스에 대한 학습 이미지의 변형이 충분하지 않다는 신호이고 노의 유무에 관계없이 다른 각도에서 찍은 카약 이미지를

더 추가해야 한다는 의미로 해석 할 수 있다.

설명의 한계점

설명 가능성은 모델을 이해하고 해석하는데 있어서 상당한 도움이 되지만 모델에 대한 완벽한 통찰력을 제공한다고 가정할 떄에는 주의 해야한다

모든 형태의 설명은 학습데이터, 모델에 의해 생성되므로 결국은 데이터나 베이스라인에 문제가 있어 제대로 동작하지 않는 경우 설명 퀄리티 역시 낮아지고

또한 설명이 식별할수 있는 관계는 유일하게 주어진 데이터와 모델만을 대표하는 것이지 외부환경을 포괄하지는 못한다.

예를들면 신용카드 이상거래 모델을 학습하고 특징기여도로 거래금액 사기를 나타내는 피쳐를 발견했다고 가정 했을때

'금액'이 '항상' 신용 카드 사기의 가장 큰 지표라고 결론을 내리는 것은 올바르지 않다.

결국 설명은 ML 모델을 평가하는데 사용되는 정확도 ,오류 ,기타 지표에 대한 중요한 별도의 추가정보라고 생각해야하고 고품질 모델의 유일한 결정 요인이 되어서는 안되며

모델과 더불어 평가 기준의 한 부분으로 사용 하는 편이 좋다.

반응형
반응형