【速報】その予測は本当に正しいの?データの偏りを検出するサービス「Amazon SageMaker Clarify」登場! #reinvent

2020.12.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

せーのでございます。

現在AWS re:InventではMachine Learningのキーノートが行われています。

キーノート内では機械学習に関する様々なAWSサービスが発表されました。
このブログではその中からバイアスの特定やモデルに対してのデータの寄与値を可視化するサービス「Amazon SageMaker Clarify」を速報でご紹介します。

機械学習はモデルの説明が大変

機械学習は大量のデータをサーバーが学習することで「モデル」が作成されます。そのモデルに対して新しいデータを与えると、学習結果からモデルが予測値を返す、というものです。

ここで問題になるのは「どうしてそのモデルがその予測結果をはじき出したのか」がわかりにくい、ということです。
モデルの動作を説明できない、ということはそのモデルが正しく動いているのか、も説明しにくいことになります。つまり、このモデルがうまく動いているのかどうか、は実際動かしてみないとわからない、ということです。これではシステムが完成しました、とお客様に言うのは大変です。

Amazon SageMaker Clarifyはそのような解釈可能性(Interpretabilityと言います)を可視化し、バイアスを特定する機能です。

バイアスとは

バイアスとは簡単に言うと「データの偏り(正確には測定値と予測値の差)」を指します。

例えば犬と猫を見分ける機械学習モデルを作成する時に、データの中の犬がチワワとブルドッグがほとんどだった場合、ヨークシャテリアの写真を見せてもモデルはそれを「犬」だと予測する精度が落ちる可能性があります。
最近話題になったものだと人を検出するモデルで、教師データとなる人物の画像が日本人ばかりだと、他の人種を検出できないパターンが出てくる可能性が高いです。
ただそのモデルを日本国内の店舗などで運用すると、必然的に日本人の割合が多いので、そのモデルの精度が低いことに気が付かないことも出てくるのです。

このような学習に使うデータの偏りの事を「バイアス」と言います。

Clarifyはバイアスを検出する

SageMaker Clarifyを使うとSageMaker Wranglerを使って用意したデータの中身を解析して、それらの属性に偏りがないかを可視化します。
例えば性別や年齢などを指定すると男女の偏り、年齢層の偏りがあった場合視覚的なレポートを通じてそれらを確認することができます。

また学習済みのモデルに対しても同じようにバイアスをチェックすることができます。これはSageMaker Experimentsと連携して、実験を通して各属性の様々なバイアスを検出します。

バイアス監視

バイアス監視はSageMaker Model Monitorと連携します。これは環境の変化によってデータに偏りが出てきた場合にCloudWatchを通じて一定のしきい値を超えたら通知する、という運用ができます。

モデルの寄与値をグラフ表示

SageMaker Clarifyは学習の終わったモデルはどの属性を重視して予測結果を出しているのか、という重要度をグラフ化してくれます。
これはSHAP(SHapley Additive exPlanations)という方式を使って表されます。
例えば家を売りに出す時に適切な売値を予測する、といったモデルを作る時、そのモデルが売値を決める最も重要な属性として家の大きさなのか、リビングの広さなのか、近くにコンビニがあるかどうかなのか、といった属性に対して重要度をグラフ化します。

料金は無料!すぐ使えます

SageMaker Clarifyの使用料はなんと無料!全リージョンですぐに使えます。

まとめ

というわけで新しいSageMakerの新ツール、SageMaker Clarifyを速報でお伝えしました。
企業コンプライアンスなどでモデルの精度を定量評価する際にもモデルの動きを理解できることは大変重要です。

サンプルも用意されているそうなので、触ってみたいと思います!