怪しいAIの見分け方

最近のニュースでは毎日のように人工知能(AI)が取り上げられている。AIがブームになっている一方で怪しいAIも少なくない。

ここでは「下表①の株価データから将来の値上がりを予測する」場合を例に、

  • 評価指標:AIの性能をどのような数字で測っているか?
  • 評価方法:AIの性能をどのような手順で測っているか?
  • 解いている問題:AIが解いた問題はどのようなものか?
  • 使用しているデータ:AIが使用したデータはどのようなものか?

それぞれで怪しさを感じる事例を紹介したい。

※表①のデータは一部を除き乱数で作成しており、本当は解けない問題になっている。

本文の長さからも分かるように怪しいAIを見分ける事は簡単ではない。怪しい事例を見つけた場合はAIの作成者または外部の専門家に相談してほしい。なお、筆者はこれから紹介する全ての問題事例を業務や学会で見たことがある。怪しいAIは意外と多い。

表①.株価データ
表⑤.株価データ

評価指標が怪しい

「過去1週間の株価データを用いて、次の日に株価が10%以上上がるか否かを予測するAI」が作れれば大儲けができる。このようなAIができれば本当にすごい。

さて、上記AIを作成したとき、その正解率が90%を超えていたら凄いと思うだろうか。直感的には凄そうに思うが、簡単に作成することができる。すべてに「上がらない」と答えれば表①の例では正解率97.5%である。なぜなら、株価が10%以上上がった事例は40例中1例(4/10から4/14)しかないからである。

レアなイベントを予測する場合には「正解率(Accuracy)」を評価指標として採用してはいけない。例えば10%以上株価が上がると予測したうち何%で実際に上がったか、その予測により平均と比べどの程度儲かったか、を評価指標として用いる必要がある。

評価指標が適切かには注意が必要である。

評価方法が怪しい

「4/3から4/7の株価データを用いて、4/10に株価が上がるか否かを予測するAI」を考える。データ例は下表のようになる。

表②.株価の上昇を予測する場合のデータ例
表②.株価の上昇を予測する場合のデータ例

表②の〇×を予測したいときは教師有りの機械学習を用いる。scikit-learnというオープンソースライブラリを利用すると、数行のプログラムでAIモデルが作成可能である。

よく見られる怪しい評価方法として、学習と評価に使用するデータが同じ、がある。このような評価方法を用いると、性能が過大に評価される。先ほど例示したプログラムで複雑なAIを作成すると、学習データ内で完璧な予測を行うこともできる。しかし、学習データに無い銘柄や4/10以外の日に対する予測能力が無く、役に立たない。

上記を避けるために、学習データと検証データを切り離す必要がある。例えば、A総研からD通信のデータで学習し、E電気からH倉庫のデータで性能を評価する方法である。この場合も、E電気からH倉庫のデータで学習し、A総研からD通信のデータで検証する、逆方向の検証が必要である。切り分けたデータを交差させないと、様々な工夫をする中で、たまたま評価データのみを良く予測するAIを作成してしまう危険がある。

評価を行う際に、データを学習用・評価用に分けているか、それらを交差して使用しているかに注意が必要である。

表③.データ分割と学習、検証
表③.データ分割と学習、検証

解いている問題が怪しい

今まではテクニカルな面で怪しい事例を紹介してきたが、解いている問題に怪しさが含まれていることも多い。

株価のように時系列でデータが存在する場合、日をずらしながら使用するデータを増やすことがある。例として「ある5日間の株価データを用いて、以降3日間で10円以上株価が上がる日があるか否かを予測するAI」を考える。表①のA総研とB商事に注目し、4/3から4/7、4/4から4/10、4/5から4/11の3つの期間のデータを抜き出すと下表となる。

表④.一定期間の株価上昇を予測する場合のデータ例
表④.一定期間の株価上昇を予測する場合のデータ例

このデータを学習させて得られるAIは交差検証でも相応の精度と計算され、解けないはずの問題が解けているように見える。しかしながら、AIの中身は銘柄の種類を見分けるものとなっている。株価の値上がりを予測するAIではなく、役に立たない。

この事例では問題設定に不備がある。不備の内容は、同じ事象(4/12の値上がり)を表④内の複数の行で共有しており、データ間の関係が強すぎる点にある。

AIに解かせる問題が適切かには注意が必要である。

データが怪しい

使用しているデータが怪しい事例も多い。

正解データと直接関連し、AIの性能を劇的に上げるように見えるが、現実では使用できない情報をリーク情報(leakage)と呼ぶ。実務上は未来視点の情報がデータに紛れ込み、問題を起こすことがある。

CRMシステムのデータを用いて、営業成否を予測するAIを作る場合を考える。CRMシステムの運用として、営業失敗時は何もせず、営業成功時のみデータを更新している場合がある。その状況ではデータの更新日付が存在すること自体がリーク情報となる。AIは案件データに更新日付があることを営業成否に強く関わる情報とみなすが、正しい判定ではない。

実務上は過去時点でのデータが得られないことが多く、リーク情報の存在は見落としやすい。リーク情報の判別には深い業務知識が必要である。

リーク情報とまではいかなくとも、実務で利用可能なデータには様々な要因による偏りが生じている。データの前提が解きたい問題にあっているかには注意が必要である。

怪しいAIを見分けるためには

これまで紹介してきた事例をまとめると、表⑤となる。

怪しいAIを見分けるためには、AIの作成者に、使用したデータと問題設定、評価方法の説明を求めることが重要である。Deep Learningのように複雑な手法で作られたAIであっても、これらの説明は可能である。説明に疑義がある場合や重要な用途で使用する場合は、外部の専門家にAIを評価してもらう必要があるかもしれない。

今後AIをビジネスで利用する場面は増えていくと考えられ、怪しいAIを見分けることは重要になる。特に、直感に反するほど凄いAIを見かけたら、怪しいAIかも、と疑ってみることも大事である。

表⑤.怪しいAIの事例一覧
表⑤.怪しいAIの事例一覧