Explainable artificial intelligence（XAI）とは

# 概要
[@IT](https://www.atmarkit.co.jp/ait/articles/1908/19/news022.html)に説明があった。

>説明可能なAI（人工知能）（Explainable AI：XAI）とは、言葉通り、予測結果や推定結果に至るプロセスが人間によって説明可能になっている機械学習のモデル（つまりAIの本体）のこと、あるいはそれに関する技術や研究分野のことを指す。ちなみに「XAI」は、米国のDARPA（Defense Advanced Research Projects Agency：国防高等研究計画局）が主導する研究プロジェクトが発端で、社会的に広く使われるようになった用語である。


## 歴史
米国のDARPA（Defense Advanced Research Projects Agency：国防高等研究計画局）が主導する研究プロジェクトが発端のようで、[DARPA](https://www.darpa.mil/program/explainable-artificial-intelligence)にExplainable Artificial Intelligence (XAI)の解説が記載されている。

科学技術振興機構の[解説資料](https://www.jst.go.jp/crds/sympo/201906_JSAI/pdf/02.pdf)が詳しい。


## 注目の理由／背景
[「AIの説明」の現状とこれから](https://www.soumu.go.jp/main_content/000587311.pdf)から抜粋。

>「人間の意思決定補助にAIを使うには説明が必要」
　・判断根拠がわからないと、原因の検討ができない。
　・根拠不明と無視するなら、そもそもAI導入のメリットがない。
　・理由を説明できないサービス事業者は信頼されない。
　・金融サービス提供者は「顧客への説明の義務」がある。

後半２つから分かるように、**本当に欲しいのは「説明」ではなく、「納得」や「安心」**だと思われる。

また、[AIネットワーク社会推進会議　報告書2019](https://www.soumu.go.jp/menu_news/s-news/01iicp01_02000081.html)のAI利活用原則案に「透明性の原則」の記載がある。

>AI サービスプロバイダ及びビジネス利用者は、AI システム又は AIサービスの入出力等の検証可能性及び判断結果の説明可能性に留意する。
>（主な論点）
>ア AI の入出力等のログの記録・保存
>イ 説明可能性の確保
>ウ 行政機関が利用する際の透明性の確保


## XAIの種類

以下は[こちら](https://www.slideshare.net/SatoshiHara3/ss-126157179)からの抜粋。

## 局所的な説明
- Why Should I Trust You?: Explaining the Predictions of Any Classifier, KDD'16 [Python LIME; R LIME]
- A Unified Approach to Interpreting Model Predictions, NIPS'17 [Python SHAP]
- Anchors: High-Precision Model-Agnostic Explanations, AAAI'18 [Python Anchor]
- Understanding Black-box Predictions via Influence Functions, ICML’17 [Python influence-release] 16

### 予測の根拠となった特長量
- LIME
- SHAP
- Anchor

### 予測の根拠となった訓練データ
- influence 21

### 改善アクション
- [Interpretable Predictions of Tree-based Ensembles via Actionable Feature Tweaking](https://www.kdd.org/kdd2017/papers/view/interpretable-predictions-of-tree-based-ensembles-via-actionable-feature-tw)

## 大域的説明
- Born Again Trees
- Making Tree Ensembles Interpretable: A Bayesian Model Selection Approach, AISTATS'18 [Python defragTrees]

## 深層学習

### 勾配ベースの手法
[勾配によるハイライト](https://arxiv.org/abs/1312.6034)の始まり。

- [Guided Backprop](https://arxiv.org/abs/1412.6806)
- [Integrated grad](https://arxiv.org/abs/1703.01365)
- [DeepLIFT](http://proceedings.mlr.press/v70/shrikumar17a.html); [DeepLIFTの解説](https://qrunch.net/@opqrstuvcut/entries/gkqldBt71MFmnw2D)
- Python+Tensorflow saliency; DeepExplain
- Striving for Simplicity: The All Convolutional Net (GuidedBackprop)
- On Pixel-Wise Explanations for Non-Linear Classifier Decisions by Layer-Wise Relevance Propagation (Epsilon-LRP)
- Axiomatic Attribution for Deep Networks (IntegratedGrad)
- SmoothGrad: Removing Noise by Adding Noise (SmoothGrad)
- Learning Important Features Through Propagating Activation Differences (DeepLIFT) 18

### 問題点

[近似的な判断根拠は、本当に正しいのか？](https://papers.nips.cc/paper/8160-sanity-checks-for-saliency-maps)

## 実装

### Google, "Explainable AI"

>GoogleのExplainable AIでは、Feature Attributionという値によってモデルの予測結果を評価します。Feature Attributionの計算方法には「Integrated Gradients」と「Sampled Shapley」があります。Feature AttributionはSharpley値という値を上記の手法を用いて計算したものになります。Shapley値とは、ある特徴量がどれだけモデルの予測に貢献したかを示す値になります。[引用元](https://ledge.ai/explainable-ai/)

「AutoML Tables」と「Cloud AI Platform」で利用可能。

- Integrated Gradients → 不連続関数なDLモデルに対してF(x)-F(x')的な量を定義。
- Sampled Shapley → Shapleyをランダムサンプリングで近似したもの。