>  기사  >  기술 주변기기  >  설명 가능한 AI를 위한 10가지 Python 라이브러리

설명 가능한 AI를 위한 10가지 Python 라이브러리

WBOY
WBOY앞으로
2023-04-13 16:46:061314검색

XAI의 목표는 모델의 동작과 결정에 대해 의미 있는 설명을 제공하는 것입니다. 이 기사에서는 지금까지 볼 수 있는 설명 가능한 AI용 Python 라이브러리 10개를 정리했습니다.

XAI란 무엇인가요?

XAI, 설명 가능한 AI는 인공지능(AI) 의사결정 과정과 예측에 대해 명확하고 이해하기 쉬운 설명을 제공할 수 있는 시스템이나 전략을 말합니다. XAI의 목표는 그들의 행동과 결정에 대한 의미 있는 설명을 제공하여 신뢰를 높이고 모델 결정에 대한 책임성과 투명성을 제공하는 것입니다. XAI는 설명을 넘어 사용자가 추론을 더 쉽게 추출하고 해석할 수 있는 방식으로 ML 실험을 수행합니다.

실제로 XAI는 기능 중요도 측정, 시각화 기술을 사용하거나 의사 결정 트리 또는 선형 회귀 모델과 같이 본질적으로 해석 가능한 모델을 구축하는 등 다양한 방법으로 구현할 수 있습니다. 방법의 선택은 해결하려는 문제의 유형과 필요한 해석 수준에 따라 달라집니다.

AI 시스템은 AI가 사람들의 삶에 미치는 잠재적 영향이 크고 결정이 내려진 이유를 이해하는 것이 중요한 의료, 금융, 형사 사법 등 점점 더 많은 응용 분야에서 사용됩니다. 이러한 분야에서는 잘못된 결정으로 인한 비용이 높기 때문에(위험이 높음) XAI가 점점 더 중요해지고 있습니다. AI가 내린 결정이라도 타당성과 설명 가능성을 주의 깊게 확인해야 하기 때문입니다.

설명 가능한 AI를 위한 10가지 Python 라이브러리

설명 가능성 실습 단계

데이터 준비: 이 단계에는 데이터 수집 및 처리가 포함됩니다. 데이터는 고품질이어야 하고, 균형이 잡혀 있어야 하며, 해결 중인 실제 문제를 대표해야 합니다. 균형 있고 대표성이 있으며 깨끗한 데이터를 보유하면 AI를 설명 가능하게 유지하려는 향후 노력이 줄어듭니다.

모델 훈련: 모델은 전통적인 기계 학습 모델이나 딥 러닝 신경망 중 하나를 사용하여 준비된 데이터를 사용하여 훈련됩니다. 모델 선택은 해결해야 할 문제와 필요한 해석 수준에 따라 달라집니다. 모델이 단순할수록 결과를 해석하기는 쉽지만 단순 모델의 성능은 그리 높지 않습니다.

모델 평가: 모델 해석성을 유지하려면 적절한 평가 방법과 성능 지표를 선택하는 것이 필요합니다. 또한 이 단계에서 모델의 해석 가능성을 평가하여 예측에 대한 의미 있는 설명을 제공할 수 있는지 확인하는 것도 중요합니다.

설명 생성: 이는 기능 중요도 측정, 시각화 기술과 같은 다양한 기술을 사용하거나 본질적으로 설명 가능한 모델을 구축하여 수행할 수 있습니다.

설명 검증: 모델이 생성한 설명의 정확성과 완전성을 검증합니다. 이는 설명의 신뢰성을 보장하는 데 도움이 됩니다.

배포 및 모니터링: XAI의 작업은 모델 생성 및 검증으로 끝나지 않습니다. 배포 후 지속적인 설명 작업이 필요합니다. 실제 환경에서 모니터링할 때는 시스템의 성능과 해석 가능성을 정기적으로 평가하는 것이 중요합니다.

1. SHAP(SHapley Additive exPlanations)

SHAP은 모든 기계 학습 모델의 출력을 설명하는 데 사용할 수 있는 게임 이론 방법입니다. 이는 게임 이론 및 관련 확장의 고전적인 Shapley 값을 사용하여 최적의 학점 할당을 지역적 해석과 연관시킵니다.

설명 가능한 AI를 위한 10가지 Python 라이브러리

2. LIME(Local Interpretable Model-agnostic Descriptions)

LIME은 특정 예측을 중심으로 모델의 동작을 지역적으로 근사하는 모델 불가지론적 접근 방식입니다. LIME은 기계 학습 모델이 수행하는 작업을 설명하려고 시도합니다. LIME은 텍스트 분류자, 표 형식 데이터 분류자 또는 이미지의 개별 예측 해석을 지원합니다.

설명 가능한 AI를 위한 10가지 Python 라이브러리

3. Eli5

ELI5는 기계 학습 분류기를 디버깅하고 예측을 해석하는 데 도움이 되는 Python 패키지입니다. 다음 기계 학습 프레임워크 및 패키지에 대한 지원을 제공합니다.

  • scikit-learn: ELI5는 scikit-learn 선형 분류기 및 회귀기의 가중치와 예측을 해석할 수 있으며 의사 결정 트리를 텍스트 또는 SVG로 인쇄하여 기능의 중요성을 보여줄 수 있습니다. 속성을 설명하고 의사결정 트리와 트리 앙상블 기반 예측을 설명합니다. ELI5는 또한 scikit-learn의 텍스트 처리기를 이해하고 그에 따라 텍스트 데이터를 강조 표시합니다.
  • Keras - Grad-CAM을 통한 이미지 분류 예측의 시각적 해석.
  • XGBoost - XGBClassifier, XGBRegressor 및 XGBoost .boost의 예측을 설명하면서 기능 중요성을 보여줍니다.
  • LightGBM - LGBMClassifier 및 LGBMRegressor의 예측을 설명하는 기능 중요도를 표시합니다.
  • CatBoost: CatBoostClassifier 및 CatBoostRegressor의 기능 중요성을 보여줍니다.
  • lightning - 번개 분류기 및 회귀기의 가중치와 예측을 설명합니다.
  • sklearn-crfsuite. ELI5를 사용하면 sklearn_crfsuite.CRF 모델의 가중치를 확인할 수 있습니다.

기본 사용법:

Show_weights()는 모델의 모든 가중치를 표시하고, Show_prediction()은 모델의 개별 예측을 확인하는 데 사용할 수 있습니다

설명 가능한 AI를 위한 10가지 Python 라이브러리

ELI5는 블랙박스 모델을 확인하기 위한 일부 알고리즘도 구현합니다.

TextExplainer는 LIME 알고리즘을 사용하여 텍스트 분류기의 예측을 설명합니다. 순열 중요도 방법은 블랙박스 추정기의 특징 중요도를 계산하는 데 사용될 수 있습니다.

설명 가능한 AI를 위한 10가지 Python 라이브러리

4. Shapash

Shapash는 모델을 더 쉽게 이해할 수 있도록 다양한 유형의 시각화를 제공합니다. 요약을 사용하여 모델이 제안한 결정을 이해하세요. 이 프로젝트는 MAIF 데이터 과학자가 개발했습니다. Shapash는 주로 뛰어난 시각화 세트를 통해 모델을 설명합니다.

Shapash는 웹 애플리케이션 메커니즘을 통해 작동하며 Jupyter/ipython과 완벽하게 통합될 수 있습니다.

from shapash import SmartExplainer
 
 xpl = SmartExplainer(
 model=regressor,
 preprocessing=encoder, # Optional: compile step can use inverse_transform method
 features_dict=house_dict# Optional parameter, dict specifies label for features name
 )
 
 xpl.compile(x=Xtest,
y_pred=y_pred,
y_target=ytest, # Optional: allows to display True Values vs Predicted Values
)
 
 xpl.plot.contribution_plot("OverallQual")

설명 가능한 AI를 위한 10가지 Python 라이브러리

5. 앵커

앵커는 로컬 "충분한" 예측 조건을 나타내는 앵커 포인트라는 고정밀 규칙을 사용하여 복잡한 모델의 동작을 설명합니다. 이 알고리즘은 높은 확률 보장으로 모든 블랙박스 모델의 설명을 효율적으로 계산할 수 있습니다.

Anchors는 LIME의 일부 제한 사항(예: 보이지 않는 데이터 인스턴스에 대한 모델을 맞출 수 없음)이 수정된 LIME v2로 생각할 수 있습니다. 앵커는 개별 시점이 아닌 지역적 영역을 활용합니다. SHAP보다 계산이 가벼우므로 고차원 또는 대규모 데이터 세트에 사용할 수 있습니다. 그러나 몇 가지 제한 사항은 레이블이 정수만 될 수 있다는 것입니다.

설명 가능한 AI를 위한 10가지 Python 라이브러리

6. BreakDown

BreakDown은 선형 모델 예측을 설명하는 데 사용할 수 있는 도구입니다. 이는 모델의 출력을 각 입력 기능의 기여로 분해하여 작동합니다. 이 패키지에는 두 가지 주요 방법이 있습니다. explainer() 및 explain()

model = tree.DecisionTreeRegressor()
 model = model.fit(train_data,y=train_labels)
 
 #necessary imports
 from pyBreakDown.explainer import Explainer
 from pyBreakDown.explanation import Explanation
 
 #make explainer object
 exp = Explainer(clf=model, data=train_data, colnames=feature_names)
 
 #What do you want to be explained from the data (select an observation)
 explanation = exp.explain(observation=data[302,:],direction="up")

설명 가능한 AI를 위한 10가지 Python 라이브러리

7, Interpret-Text

Interpret-Text는 NLP 모델을 위해 커뮤니티에서 개발한 해석 기술과 결과를 보기 위한 시각화 패널을 결합합니다. 여러 최첨단 통역사를 사용하여 실험을 실행하고 비교 분석할 수 있습니다. 이 툴킷은 각 태그에서 전역적으로 또는 각 문서에서 로컬로 기계 학습 모델을 해석할 수 있습니다.

이 패키지에서 사용할 수 있는 통역사 목록은 다음과 같습니다.

  • Classical Text explainer - (기본값: bag ofwords for logistic regression)
  • Unified Information explainer
  • Introspective Rationale explainer

설명 가능한 AI를 위한 10가지 Python 라이브러리

It's The 장점은 CUDA, RNN 및 BERT와 같은 모델을 지원한다는 것입니다. 그리고 문서의 기능의 중요성에 대한 패널을 생성할 수 있습니다

from interpret_text.widget import ExplanationDashboard
 from interpret_text.explanation.explanation import _create_local_explanation
 
 # create local explanation
 local_explanantion = _create_local_explanation(
 classification=True,
 text_explanation=True,
 local_importance_values=feature_importance_values,
 method=name_of_model,
 model_task="classification",
 features=parsed_sentence_list,
 classes=list_of_classes,
 )
 # Dash it
 ExplanationDashboard(local_explanantion)

설명 가능한 AI를 위한 10가지 Python 라이브러리

8, aix360(AI explainability 360)

AI explainability 360 툴킷은 오픈 소스 라이브러리입니다. 이 패키지는 IBM에서 개발한 것입니다. 플랫폼에서 널리 사용됩니다. AI 설명 가능성 360에는 상담사의 설명 가능성 측정항목뿐만 아니라 다양한 설명 차원을 포괄하는 포괄적인 알고리즘 세트가 포함되어 있습니다.

설명 가능한 AI를 위한 10가지 Python 라이브러리

Toolkit은 다음 논문의 알고리즘과 표시기를 결합합니다.

  • Towards Robust Interpretability with Self-Explaining Neural Networks, 2018. ref
  • Boolean Decision Rules via Column Generation, 2018. ref
  • Explanations Based on the Missing: Towards Contrastive Explanations with Pertinent Negatives, 2018. ref
  • Improving Simple Models with Confidence Profiles, , 2018. ref
  • Efficient Data Representation by Selecting Prototypes with Importance Weights, 2019. ref
  • TED: Teaching AI to Explain Its Decisions, 2019. ref
  • Variational Inference of Disentangled Latent Concepts from Unlabeled Data, 2018. ref
  • Generating Contrastive Explanations with Monotonic Attribute Functions, 2019. ref
  • Generalized Linear Rule Models, 2019. ref

9、OmniXAI

OmniXAI (Omni explable AI的缩写),解决了在实践中解释机器学习模型产生的判断的几个问题。

它是一个用于可解释AI (XAI)的Python机器学习库,提供全方位的可解释AI和可解释机器学习功能,并能够解决实践中解释机器学习模型所做决策的许多痛点。OmniXAI旨在成为一站式综合库,为数据科学家、ML研究人员和从业者提供可解释的AI。

from omnixai.visualization.dashboard import Dashboard
 # Launch a dashboard for visualization
 dashboard = Dashboard(
instances=test_instances,# The instances to explain
local_explanations=local_explanations, # Set the local explanations
global_explanations=global_explanations, # Set the global explanations
prediction_explanations=prediction_explanations, # Set the prediction metrics
class_names=class_names, # Set class names
explainer=explainer# The created TabularExplainer for what if analysis
 )
 dashboard.show()

설명 가능한 AI를 위한 10가지 Python 라이브러리

10、XAI (eXplainable AI)

XAI 库由 The Institute for Ethical AI & ML 维护,它是根据 Responsible Machine Learning 的 8 条原则开发的。它仍处于 alpha 阶段因此请不要将其用于生产工作流程。

위 내용은 설명 가능한 AI를 위한 10가지 Python 라이브러리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제