GAMMA FACET : 다음의 보편적 인 설명을위한 새로운 접근 방식 머신 러닝 모델

(Konstantin Hemker)

저자 : Jan Ittner, Konstantin Hemker & Malo Grisard

인공 지능 (AI) 기술의 급속한 발전은 우리에게 가장 복잡한 실제 비즈니스 문제와 프로세스도 분석 할 수있는 진화하는 도구 세트. 최첨단 기계 학습 알고리즘을 통해 의사 결정자는 비용, 속도, 품질 또는 수율과 같은 비즈니스에 중요한 결과를 정확하게 예측할 수 있습니다. 하지만 AI의 진정한 비즈니스 가치는 단순히 결과를 예측 하는 것이 아니라 (어떤 고객이 계약을 취소 할 가능성이 있습니까?) 설명 최적화 합니다 (고 가치 고객을 유지하려면 어떻게해야합니까?).

또한 일상적인 의사 결정을 내리기 위해 머신 러닝 사용을 기꺼이 수용하려는 관리자의 의지 알고리즘에 대한 신뢰는 AI 모델이 예측과 결정을 내리는 방법에 대한 이해가 필요합니다. 기업이 윤리적 AI 에 대한 인식을 높이고 공정하고 안전하며 책임있는 의사 결정을 내릴 수있는 AI 모델을 설계하려고함에 따라 AI 모델을 설명 할 필요성이 더욱 중요해질 것입니다.

협동 게임 이론을 사용하여 기능 기여 설명

인간 설명 가능한 AI는 최근 몇 년 동안 특히 협동 게임 이론을 적용한 통합 이론 및 알고리즘 인 SHAP (Shapley Additive Descriptions)의 등장으로 엄청난 발전을 보였습니다. 머신 러닝 모델의 개별 예측을 설명합니다. SHAP를 매력적으로 만드는 것은 고급 수학적 기반에도 불구하고 결과가 일반 사용자에게도 직관적이라는 점입니다.

SHAP는 모델의 모든 변수가 주어진 예측 결과에 미치는 기여도를 정량화합니다. 예를 들어 체중, 나이, 운동 습관과 같은 변수를 기반으로 환자의 당뇨병 발병 위험을 예측하는 모델을 사용할 수 있습니다. 이 모델은 위험이 67 %라고 말할 수 있습니다. 예를 들어, SHAP는 더 나아가 환자의 나이가 당뇨병 위험을 5 % 증가시키고 체중은 2 % 감소한다고 말합니다.

모델 검사 및 가상 실험의 역할 설명

h2>

SHAP는 개별 예측을 설명하는 매우 유용한 수단을 제공합니다. 그러나 최근까지 모델을 전체적으로 설명하는 방법은 제한적이었습니다. 일반적으로 변수가 어떻게 작용하고 상호 작용하여 예측을 도출하는지 설명 할 수있었습니다. GAMMA FACET는 기계 학습 모델을 설명하는 새롭고 전체적인 접근 방식을 제공합니다. 두 가지 각도에서이를 수행합니다. 첫째, 새로 개발 된 모델 검사 알고리즘을 사용하여 예측 모델의 변수가 여러 개별 예측의 설명에서 패턴을 식별하여 결과를 예측하는 방법을 설명합니다. 예를 들어, GAMMA FACET는 당뇨병 위험을 평가하기 위해 체중과 체중을 함께 고려해야하는 반면, 체질량 지수와 키 / 허리 비율은 서로 바꿔서 사용할 수 있음을 알 수 있습니다. 둘째, 시뮬레이션 접근 방식을 적용하여 “가상 실험”에서 주요 요인에 대한 체계적인 변화가 예상 된 결과에 미치는 영향 (예 : 연령 증가가 환자 집단의 당뇨병 위험에 미치는 영향)을 결정합니다.

사례 연구 : 물 시추의 고장 방지

이러한 개념을 탐색하는 가장 좋은 방법은 실제 사례를 이용하는 것입니다. . 우물을 시추하는 것은 매우 위험하고 비용이 많이 듭니다. 이러한 시추 비용은 우물에서 물을 펌핑하기 위해 우물을 완성하는 데 걸리는 시간에 따라 결정됩니다. 이러한 비용을 줄이기 위해 드릴러는 일반적으로 침투율 (ROP)로 측정되는 더 빠른 속도로 드릴하도록 인센티브를받습니다. 토양의 특성에 따라 일일 요금은 $ 30,000에서 $ 250,000까지 다양합니다. 그러나 절충안이 있습니다. 더 빨리 드릴링하면 지층 붕괴 또는 가스 침투와 같은 사고 위험이 증가합니다. 따라서 다른 위험 요소의 맥락에서 드릴링 속도가 사고 위험에 미치는 영향을 이해하기 위해 머신 러닝 모델을 구축 할 것입니다.

명확성을 위해이 예에서는 단순화 된 데이터 세트를 사용합니다. . 데이터 세트에는 500 개의 관측치가 포함되어 있으며 각 행은 과거의 시추 작업을 나타내고 작업에서 잘 시추 사고가 발생했는지 여부에 대한 바이너리 표시기가 있습니다.

현재 및 과거의 작동 조건을 기반으로 예측 알고리즘을 사용하여 드릴링 작업자에게 높은 사고 위험. 그러면 작업자는 드릴링 매개 변수를 조정할 수 있습니다. 그러나 행동 할 언제 를 아는 것만으로는 충분하지 않은 경우가 많습니다.운영자는 또한 사고가 발생하는 이유 와 잠재적 사고 비용과 시추 비용의 균형을 맞추는 최적의 시추 조건을 이해해야합니다. GAMMA FACET는 이러한 실행 가능한 통찰력을 제공하는 데 도움이 될 수 있습니다.

scikit-learn 및 모델 파이프 라인

설명 가능한 기계 학습 모델의 백본을 형성하려면 먼저 모든 변환 및 학습 단계에서 모델의 모든 출력을 초기 데이터 입력까지 추적 할 수있는 모델 파이프 라인을 구축해야합니다.

GAMMA FACET는 Python의 기계 학습을위한 사실상의 산업 표준 인 scikit-learn을 중심으로 설계되었습니다. scikit-learn 은 광범위한 회귀 및 분류 알고리즘을 제공합니다. 또한 하나의 통합 워크 플로에서 데이터 사전 처리와 실제 모델 피팅을 결합하여 머신 러닝 파이프 라인을 구축하는 보편적 인 접근 방식을 제공합니다.

FACET는 세 가지 필수 방법으로 scikit-learn 을 향상시킵니다. :

  1. 엔드 투 엔드 기능 추적 성 : 네이티브 scikit-learn이 구축되는 동안 FACET는 모든 출력을 pandas 데이터 프레임으로 제공하는 150 개 이상의 scikit-learn 변환기, 회귀 자 및 분류기의 향상된 버전을 제공합니다. 또한 FACET에는 파생 피쳐의 이름을 원래 피쳐로 다시 매핑하기위한 속성이 포함되어 있습니다. 이 매핑은 기능이 머신 러닝 파이프 라인의 다운 스트림에서 이름으로 참조되는 경우 필수적입니다.
  2. 향상된 파이프 라이닝 : FACET는 하나의 전처리 단계 (그 자체가 파이프 라인 일 수 있음)와 학습자 단계를 포함하는 추가 2 단계 파이프 라인 클래스를 도입합니다. 경험에 따르면 이러한 사소한 추가로 인해 훨씬 ​​간결하고 읽기 쉬운 파이프 라이닝 코드가 생성됩니다.
  3. 향상된 유효성 검사 : FACET는 FACET의 시뮬레이션 기능과 관련하여 특히 관련된 통계 기법 인 부트 스트래핑의 여러 변형에 대한 교차 검증기를 도입합니다.

드릴링 예제를 다시 참조하면 다음과 같은 방법이 있습니다. FACET의 기능 추적 지원을 사용하여 파이프 라인을 구성 할 수 있습니다.

이 코드 스 니펫에서 볼 수 있듯이 위의 파이프 라인은 pure를 사용하여 구성된 파이프 라인과 거의 동일하게 보입니다. scikit-learn . 그러나 FACET의 sklearndf 패키지에서 모든 파이프 라인, 변환기 및 추정기를 가져오고 익숙한 scikit-learn 클래스의 이름은 모두 “DF”접미사. 또한 FACET의 강화 된 파이프 라인 중 하나 인 특수한 ClassifierPipelineDF는 분류 기준이 될 수있는 후속 학습자 단계와 함께 하나의 선택적 사전 처리 단계로 구성됩니다. 출력에서 볼 수 있듯이 전처리 결과는 모든 기능 이름을 보존하는 데이터 프레임입니다.

다음으로 FACET의 . LeanerRanker scikit-learn의 그리드 검색기와 유사하게 작동하지만 하이퍼 링크를 최적화하는 대신 여러 유형의 모델이 서로 경쟁하도록하는 것이 훨씬 쉽습니다. 단일 모델의 매개 변수 :

모델 설명 : 사고의 원인은 무엇입니까?

이제 시추 작업의 사고 위험을 예측하는 조정되고 훈련 된 모델이 있습니다. 하지만 우리는 단순히 모델을 배포하고 예측 된 위험에 임시로 대응하는 것보다 더 적극적으로 대처하기를 원합니다. 대신 사고가 발생하는 이유와시기에 대해 모델이 무엇을 배웠는지 알고 싶습니다. 우리는 모델이 사고 위험을 줄이기 위해 시추 기계 작동 방식을 체계적으로 변경할 수있는 방법을 이해하는 데 도움이되기를 바랍니다.

FACET는 두 가지 방법의 조합으로 모델 설명에 접근합니다.

  1. 전역 기능 상호 작용 설명 :이 방법은 기능이 개별적으로 그리고 집합 적으로 기여하는 방법에 대해 모델이 학습 한 내용을 알려줍니다. 결과에. FACET는 각 기능 쌍에 대해 시너지, 중복성 및 독립성을 정량화하는 새로운 알고리즘을 도입했습니다 (자세한 내용은 아래 참조). 이 알고리즘은 글로벌 모델 설명을 위해 개발 한 수학적 프레임 워크 인 SHAP 벡터 분해 를 기반으로하며 향후 발행물에서 자세히 설명합니다.
  2. 모델 기반 시뮬레이션 :이 방법을 사용하면 체계적인 기능 변경이 이 경우 드릴 고장의 위험을 최소화하기 위해 원하는 결과를 얻을 수 있습니다. 다양한 값에 대한 합성 샘플을 만든 다음 모델을 사용하여 예측 위험의 변화를 평가함으로써이 결과를 달성합니다. 아래에서 볼 수 있듯이 전역 기능 상호 작용 (예 : 방법 1)을 이해하는 것은 시뮬레이션이 실제 조건에서 유효한지 확인하는 데 필수적인 단계입니다.

드릴링 예제에서 사용되는 경우 , FACET의 LearnerInspector 클래스는 쌍별 시너지 중복성 을 계산하여 기능 상호 작용의 개요를 제공합니다.

중복성 및 시너지 효과 행렬

결과는 특성 쌍에 대해 시너지 및 이 두 기능 간의 중복 .

Synergy

Synergy는 모델이 대상을 예측하기 위해 한 기능의 정보를 다른 기능과 결합하는 정도입니다. 예를 들어 연령과 성별을 사용하여 심혈관 건강을 예측하고 적합 모델에 이들 간의 복잡한 상호 작용이 포함되어 있다고 가정 해 보겠습니다. 이는이 두 가지 기능이 심혈관 건강을 예측하는 데 시너지 효과가 있음을 의미합니다. 또한 두 기능 모두 모델에 중요하며 둘 중 하나를 제거하면 성능에 상당한 영향을 미칩니다. 연령이 성별보다 더 중요한 특징이므로 연령이 성별보다 통합 예측에 더 많이 기여한다고 가정 해 보겠습니다. 이 비대칭 기여는 (연령, 성별)의 시너지가 (성별, 연령)의 시너지보다 낮다는 것을 의미합니다. 다른 방식으로 생각하려면 예측이 도달하려는 좌표라고 상상해보십시오. 시작점에서 나이는 성별보다이 지점에 훨씬 더 가까워 지지만, 거기에 도달하려면 둘 다 필요합니다. 시너지는 예측에 도달하기 위해 성별이 성별 (나이 관점에서 더 낮은 시너지)보다 나이에서 더 많은 도움 (성별 관점에서 더 높은 시너지)을 얻는다는 사실을 반영합니다.

중요한 점 : 시너지는 글로벌 정보의 자연스러운 비대칭 속성입니다. 상호 작용하는 두 기능이 모델 예측에 기여합니다. 시너지는 0 % (완전 자율)에서 100 % (완전 시너지)까지의 백분율로 표시됩니다. 시너지 기능은 전혀 상관이 없을 수 있으며 정기적 인 탐색 분석을 통해 찾기 어려울 수 있습니다.

시너지 매트릭스를 해석하기 위해 쌍의 첫 번째 기능은 행입니다. ( “원근”), 두 번째 기능은 열입니다. 드릴링 예제에서 FACET는 회전 속도의 “관점에서”정보의 67 %가 비트의 무게와 결합되어 고장을 예측한다고보고합니다. 높은 비트 중량과 높은 회전을 모두 사용하는 드릴링은 장비 마모에 불균형 적으로 큰 영향을 미치고 사고 위험을 크게 증가시킬 수 있기 때문에 상황에 따라 합리적으로 보입니다. 비트의 무게 (61 %) 측면에서도 시너지 효과가 높다는 것은 이해할 만하다. 이는 사고 위험에 대한 기여도를 이해하기 위해 회전 속도와 가중치를 함께 살펴보아야 함을 의미합니다.

중복성

중복성은 모델에서 기능이 어느 정도까지 영향을 미치는지 이해합니다. 두 번째 특징의 정보를 복제하여 표적을 예측합니다. 예를 들어 주택 가격을 예측하기 위해 주택 크기와 침실 수가 있다고 가정 해 보겠습니다. 이러한 기능은 침실이 많을수록 집이 더 커지고 평균적으로 더 높은 가격으로 유사한 정보를 캡처합니다. (침실 수, 집 크기)에 대한 중복성은 (집 크기, 침실 수)에 대한 중복보다 큽니다. 이는 주택 크기가 그 반대의 경우보다 주택 가격을 예측하기 위해 침실 수를 더 많이 “알기”때문입니다. 따라서 침실 수 측면에서 중복성이 더 큽니다. 그것에 대해 생각하는 또 다른 방법은 집 크기를 제거하는 것이 침실 수를 제거하는 것보다 모델 성능에 더 해로울 수 있다는 것입니다. 집 크기가 침실 수의 부재를 더 잘 보상 할 수 있기 때문입니다. 이것은 또한 집 크기가 모델의 침실 수보다 더 중요한 특징이 될 수 있음을 의미합니다.

여기서 중요한 점은 시너지처럼 중복성은 글로벌 정보 기능의 자연스러운 비대칭 속성이라는 것입니다. 쌍은 결과를 예측하는 데 사용됩니다. 중복은 0 % (완전 고유성)에서 100 % (완전 중복)까지의 백분율로 표시됩니다. 두 기능이 중복되지만 선형 적으로 상관되지 않는 경우 탐색 분석에서 중복성을 반드시 발견 할 수는 없습니다.

시너지와 마찬가지로 행렬 행은 행-열 기능 쌍의 “원근”기능입니다.드릴 예제에서는 두 쌍의 고도로 중복 된 기능을 관찰합니다.

  • 첫 번째 중복 기능 쌍은 ROP와 IROP입니다. 중복성은 두 기능 (75 %)의 관점에서 유사합니다. 하나는 다른 기능의 반대이기 때문에 사고 위험을 모델에서 서로 대체 할 수 있기 때문입니다. 이것은 선형 상관 관계가없는 경우에도 피쳐 간의 중복을 선택하는 FACET의 기능을 보여주는 좋은 예입니다.
  • 두 번째 중복 피쳐 쌍은 작업 깊이와 구멍 지름입니다. 구멍 직경의 관점에서 볼 때 정보의 53 %가 작업 깊이와 중복되어 고장을 예측합니다. 드릴러가 더 얇은 드릴 비트를 사용하여 땅속으로 더 깊게 뚫기 때문에 작동 깊이와 구멍 직경이 밀접하게 연결되어있는 이유를 직관적으로 알 수 있습니다. (작업 깊이, 구멍 지름)에 대한 중복성이 (구멍 지름, 작업 깊이)보다 약간 낮은 이유는 작업 깊이가 모델에서 약간 더 중요한 기능이기 때문입니다.

FACET는 계층 적 클러스터링 덴드로 그램으로 시너지 또는 중복 관계를 평가하는 데 매우 유용한 두 번째 유형의 다이어그램을 생성 할 수 있습니다. 이 접근 방식은 단순화 된 관점뿐만 아니라 클러스터링을위한 기능 거리 (1-메트릭)를 제공하는 중복성 (또는 시너지)의 대칭 변형에 의존합니다. 이 예에서는 중복 덴드로 그램에 관심이 있습니다.

Facet의 기능 중복 덴드로 그램

중복 덴드로 그램은 중복 기능의 클러스터를 보여줍니다. 클러스터에있는 기능 간의 상호 중복 정도 (더 왼쪽에있는 기능이 덴드로 그램에서 병합 될수록 중복성이 강함) 및 색상 척도를 사용하여 개별 기능 및 기능 클러스터에 대한 기능 중요성을 보여줍니다.

두 쌍의 중복 기능은 결합 된 중요성을 포함하여 덴드로 그램에서 명확하게 인식됩니다. 침투율 (ROP)은 역 기능 (IROP) (> 80 % 중복)으로 매우 중복되며 두 기능의 결합 된 중요성은 36 %입니다. ROP를 시뮬레이션하려는 경우, 시뮬레이션하는 기능이 결과에 고유 한 기여자인지 확인하기 위해 IROP를 제거합니다 (다음 섹션에서 더 자세한 설명을 제공합니다).

IROP를 제거하고 모델을 재교육 한 후 새로운 중복 덴드로 그램을 생성 할 때 흥미로운 관찰 : ROP의 기능 중요성이 35 %까지 올라갔습니다. 이는 ROP가 ROP를 설명하는 데 이전 ROP / IROP 클러스터의 역할을 맡았 음을 나타냅니다. -사고 위험에 대한 관련 기여.

기능 제거 후 중복 연결 덴드로 그램

기능 상승 시뮬레이션

검사 받기 모델이 예측을 수행하는 방법과 예측 변수가 서로 상호 작용하는 방법에 대한 좋은 이해에 도달했습니다.

종종 이러한 통찰력은 “만약”질문으로 이어집니다. H 결과를 개선하기 위해 영향력있는 변수를 체계적으로 변경할 수 있습니까? 이 예에서는 침투율의 변화가 사고 위험에 미치는 영향을 이해하려고합니다. 경제적 관점에서 드릴 작업자는 안전을 유지하고 고장을 줄이면서 가능한 한 빨리 드릴을 시도 할 것입니다. 비용 절감, 수익 극대화, 고객 유지 또는 실제로 데이터를 기반으로 모든 비즈니스 결과 최적화를 목표로하는 다른 비즈니스 컨텍스트에도 유사한 질문이 적용됩니다.

FACET의 시뮬레이션 접근 방식은 하나의 기능을 선별 한 다음 실행합니다. 일련의 값 범위에 대한 일련의 “가상 실험”으로 시뮬레이션 된 기능이 항상 각 과거 관찰에 대해 주어진 값을 취했다고 가정합니다.

이 접근 방식에서는 시뮬레이션하는 기능이 다음과 같은 것이 중요합니다. 모델의 다른 기능과 중복되지 않습니다. 이렇게하면 중복 형제가 아닌 한 기능의 값을 조정하여 실행 불가능한 시나리오를 만들 위험이 있습니다. 이 예에서 값 범위에 대한 ROP를 시뮬레이션하고 모델에 IROP를 유지하면 실행 불가능한 시나리오를 생성 할 가능성이 큽니다.

시뮬레이션은 두 단계로 수행됩니다. 첫째, 시뮬레이션 할 기능을 결정하고 FACET의 partitioner 클래스 중 하나를 선택하여 해당 기능에 대해 이전에 관찰 된 값 범위를 파티션 으로 분할합니다. 둘째, 파티션 당 하나의 시뮬레이션을 실행하고, 시뮬레이션 된 기능의 값을 모든 관측에 걸쳐 파티션의 중심 값에서 수정할 때마다 실행합니다.

따라서이 예에서 시뮬레이션은 다음과 같은 질문을합니다. 평균 사고 위험은 항상 X m / s의 ROP로 드릴 되었습니까?”ROP는 실수로 측정되므로 ContinuousRangePartitioner를 사용하여 ROP에 대해 역사적으로 관찰 된 값 범위 내에서 동일한 크기의 일련의 파티션을 만듭니다. 모델이 해당 범위의 값에 대해 학습되었으며 일반적으로 유효한 범위를 벗어난 외삽을 얻을 수 없기 때문에 역사적으로 관찰 된 값 범위 내에서만 시뮬레이션하는 것이 중요합니다.

시뮬레이션 1 단계 — ROP 기능에 대해 관찰 된 값을 동일한 크기의 버킷으로 분할

사용 이전에 LearnerRanker에서 식별 한 최상의 모델 인 시뮬레이터는 이제 각 파티션에 대해 예상되는 평균 사고 위험을 결정합니다. FACET는 부트 스트래핑을 지원하므로 데이터의 서로 다른 하위 집합에서 학습 된 모델의 변형에 대해 각 시뮬레이션을 여러 번 반복하고 시뮬레이션 결과의 분포를 사용하여 시뮬레이션의 신뢰 수준을 정량화 할 수 있습니다.

시뮬레이션 2 단계 — ROP 기능의 다양한 값에 대한 결과 시뮬레이션

위의 시각화는 ROP가 사고 위험에 미치는 영향을 보여 주면서도 자신감을 제공합니다. 시뮬레이션에서. x 축은 시뮬레이션이 실행 된 여러 파티션을 보여줍니다. x 축 아래의 막대는 분할 내에있는 원래 샘플의 관측치 수를 보여 주며 각 시뮬레이션 값에 대한 지원을 나타냅니다. (이러한 분할에 대해 실제로 관찰 된 값이 더 적어짐에 따라 신뢰 구간이 여백쪽으로 확장되는 방식에 유의하십시오.) 중앙 오름차순 선은 각 분할에 대해 예측 된 사고 위험 중앙값을 나타내고 바깥 쪽 선은 모든 교차의 95 % 신뢰 구간을 나타냅니다. 검증은 예측에서 분리됩니다.

시뮬레이션을 통해 ROP가 증가함에 따라 사고 가능성이 크게 증가 함을 확인했습니다. 더 빠른 ROP에서 운영되는 위험 수준에 대한 통찰력을 제공합니다. 또한 ROP가 위험 할 정도로 높은 수준 (> 30ft / h)에서 작동하여 사고 가능성이 70 % 이상인 여러 경우가 있음을 확인할 수 있습니다.

다음 단계는 무엇입니까?

비즈니스 관점에서 이러한 “가정”질문에 대한 답변을 얻는 것은 위험 평가 프로세스에 매우 중요합니다. 현재 프로세스를 개선 할 수있는 방법을 찾습니다. 이 예에서 여정은 여기서 끝나지 않습니다. 시뮬레이션 결과를 바탕으로 다음 단계는 드릴링 비용과 드릴링 사고의 재정적 위험 사이에서 최상의 균형을 유지하기 위해 더 느리거나 더 빠른 ROP로 드릴링의 비용 편익 분석을 수행하는 것입니다.

GAMMA FACET를 쉽게 사용할 수 있습니다. conda install gamma-facet -c bcg_gamma -c conda-forge 추가 문서는 GitHub 저장소 를 확인하세요. 및 실제 사례.

감사

이 패키지는 머신 러닝과 모델 설명을위한 두 가지 뛰어난 Python 패키지가 없었다면 불가능했습니다.

1. scikit-learn 은 FACET의 기본 머신 러닝 파이프 라인을 구성하는 학습자와 변환기를 제공합니다. 또한 데이터 과학자가 FACET를 쉽게 시작할 수 있도록 기본 맞춤 / 변환 / 예측 패러다임 scikit-learns에 따라 FACET API를 설계했습니다.

2. Scott Lundberg SHAP 구현은 시너지로 분해되는 SHAP 벡터를 추정하는 데 사용됩니다. , 중복성 및 독립 벡터.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다