[Azure Machine Learning] Microsoft Build 2020で印象的だったResponsible MLを少しまとめてコードも動かしてみた

2020.05.24

こんにちは、Mr.Moです。

Microsoft Build 2020では様々な発表がありましたが個人的に一番印象に残っているのが「Responsible ML」です。少しまとめながらコードも動かしてみたいと思います。

Responsible MLとは

image.png

現在多くの人が機械学習に触れるようになってきていて「Responsible AI(責任あるAI)」についての重要性もますます高まってきていると思われます。そんな中MicrosoftではAzure Machine Learningのサービスを介して責任ある機械学習プロジェクトを遂行できるようにと提供開始しているのがMicrosoft Build 2020でも話題になっていたResponsible MLですね。Responsible MLではデータサイエンティストおよび開発者が機械学習モデルに対する理解、学習データにおけるプライバシー保護、およびエンドツーエンドの機械学習プロセスを制御できる機能を下記3つのOSSなども用いて提供していくようです。

InterpretML

データサイエンティストおよび開発者が機械学習のモデルの動作を理解できるよう、解釈を支援する機能を提供。詳細はコチラもご参照。

FairLearn

AIシステムの公平性の評価、非公平性に対する軽減を提供するパッケージ。来月6月にAzure Machine Learningのサービスにも統合予定。

WhiteNoise

データに統計的なノイズを挿入、大幅な正確性を失うことなく機密性の高い情報が漏えいしないようにし必要に応じてさらにクエリを制限することで露出のリスクを管理する。個人のプライバシーを保護しながら、機密データを使用して機械学習モデルを構築が可能。

動かしてみる

image.png

Azure Machine LearningのNotebooks画面からSamplesの「train-explain-model-on-amlcompute-and-deploy.ipynb」を今回は使って実行していきます。

image.png

今回使用するデータはとある架空の従業員情報で離職に対する分析を行うといったものです。赤枠の列が離職したかの情報を持っているところですね。

image.png

コードを実行していくと出ましたねInterpretMLによる視覚化ツールが上記のように表示されています。赤枠の「Open in new tab」をクリックし別タブを開いて見ていきましょう。

image.png

別タブで開くとまずはデータ全体に対する可視化が表示されます。主に下記の4つの機能が提供されています。

  • データの探索:データセットの概要など。
  • グローバルの重要度:特徴量の重要度。
  • 説明の探索:予測値に対する特徴量の影響具合。
  • 概要の重要度:特徴量が予測値に与える影響分布。

右上の表からOverTime(残業)の重要度が高く出ていますね。また左下の表より例えば勤続年数が離職、もしくは会社に留まるかに対する影響の仕方が見てとれています。機械学習モデルの結果の解釈が非常にスムーズになりそうですね。

image.png

さらにデータをクリックするとデータ個別に見ることができ、下記の機能が提供されています。

  • ローカル特徴量の重要度:個別データの特徴量の重要度。
  • 補正の探索:What-if分析。データを変更して予測値の変更結果を確認できる。
  • ICE:特徴量の変更に伴う変化の具合を表示。

image.png

今回選択した方は販売員の方で離職と予測されています。この方も残業が強く影響していることが可視化によりわかっているので試しに残業を無しに変更してみたところです。すると変更後の予測は会社に留まるという結果に、こういった試行錯誤も簡単に可能なわけですね。

(今回は時間が来てしまったのでここまで...)

まとめ

今後ますます導入が進んでいくAIや機械学習に対し「Responsible AI(責任あるAI)」の概念をどうやって実践していくか、その中でMicrosoftの取り組みが重要な役割を果たしていきそうですね。また時間を見つけて実際に触っていきたいと思います。

参考