下っ端データサイエンティストがAIプロジェクトの現実を紹介するコーナーの第一回目でございます(今回で最後かもしれないけど)。

数年、支援会社で企業のAI導入プロジェクトにかかわってきましたが、うまく行ったプロジェクトよりもうまくいかなかったプロジェクトの方が多いですね。

と、いうより当初の予定通りすんなり導入までうまくいった例なんて自分がかかわったプロジェクトにはないですね。

単に、自分が仕事がよくないだけかもしれませんが、新技術を取り入れたプロジェクトなんてそんなもんだと最近は思うようにしています。

ただ、身近になりすぎてAIもそろそろ新技術とは言えなくなってきましたね。となると、確実に成功するプロジェクトを増やしていきたいところですが、正直AIプロジェクトを含めデータ活用プロジェクトは、最初から失敗が決まっているプロジェクトが多いんですよね。

ということで、会社のテックブログやコラムじゃかけない、AIプロジェクトの実情を個人ブログでぶっちゃけていこうと思います。

 

 

Recall(再現率)100%を目指すプロジェクトは失敗する

以前、会社の部署サイトのコラムでこんなことを書きました。

AIの評価指標には、単純に全体のうち何%正解したのかを示すAccuracy(正解率)の他に、見逃し率を表すRecall(再現率)と、陽性と予測したものうち本当に陽性だった割合であるPrecision(適合率)があり、AIを活用したい応用先を踏まえてどの指標でAIの精度を評価するか考えるという記事です。

Accuracy、Recall、Precisionの細かい説明と使い分けは上の記事を読んでください。

会社のサイトなので、この記事には書けなかった続きがあって、それは高Precisionを要求するユースケースはなんとかなることもあるけど、高Recall要求するユースケースを実現しようとするプロジェクトが失敗するということです。

そんなネガティブなこと、実際に取引しているお客様も見ているサイトで書くのは憚れたので書きませんでしたが、Recallを限りなく高めようとするとメンバー全員が苦しんで最終的にプロジェクト自体が失敗する可能性が高いと思っています。

そもそも、AIプロジェクトで100%間違わないことを目指すことが基本に反するのですが、そうはいっても実際のビジネスでは間違いを許容できることってほとんどなくて、大体少なくとも上にあげたどれかの指標は高水準じゃないと、AI導入してもビジネスメリットを享受できないことがほとんどなわけです。

ということで、なぜ高Precisionはいいけど、高Recallはだめなのか書いていきたいと思います。

 

 

高Precisionを目指しても上手くいくかもしれない理由

絶対に間違えないということはあり得ないAIに、高Precisionが要求されてもプロジェクトが失敗しない可能性があるのは、PrecisionがAIが陽性だと検出したもの中で実際に陽性だった割合であり、運用プロセスによって改善できる余地があるからです。

先ほどあげた、自分の記事ではPrecisionが要求されるユースケースとして、収穫された大量のミカンの中から特に美味しいブランドミカンを検出するというものを紹介しました。

こちらは、完全に自分がでっち上げた架空の事例ですが、Precisionの説明をする際にいつも自分が使う例えになっています。

例えばその日収穫された1万個のミカンから全体から約5%しか選ばれない、特に美味しいブランドミカンをAIによって選別するとします。

大きさ、品種、色味、収穫時期、糖度、皮の艶、栽培個所の日当たりといった情報から、実際の味をAIが予測し、ブランドミカンを選別するわけですが、AIが1万個ミカンすべてを検査すると、必ず、本当はブランドミカンなのに選別されなかった見逃しと、ブランドミカンと予測されたのに実際は違った不純物が出てきます。

まず、見逃しですが、ぶっちゃけ、ブランドミカンが普通のミカンとして売られても消費者は気づかないか、思ったよりおいしいと喜ぶだけなのでそんなに問題ないです。

でも、ブランドミカンとして出荷したミカン中に平凡なミカンが混ざっているとクレーム物です(自分は気づかないと思いますが)。

ということで、このケースではRecallではなくPrecisionが重要になるわけです。

さて、Precisionを高める方法は主に二つあります。それはAIの選考基準である閾値を高めてより厳選されたミカンのみをブランドミカンとする方法です。例えば5%選出されてたものを3%にすれば、本当はブランドミカンであったミカンも落選しますが、AIが判断に悩んだような微妙なミカンたちは落選するので、残ったミカンは精鋭ぞろいになります(それではも100%とは言えませんが)。

この場合、ブランドミカンとして出荷できるミカンの総数も減ってしまいますが、最初は厳しめな基準を設定しておいて、AIの精度を改善しながら徐々に基準を下げていくのが定石になります。

もう一つの方法は、人がAIがブランドミカンと判定したミカンを既存の手法で検査して最終的なPrecisionをさらに高める方法です。毎日1万個のミカンからAIが大体500個(5%)のブランドミカンを選別します。そのあと、ミカン鑑定士のおじいちゃんが500個のミカンを検査して、Precisionを悪化させている平凡(不純物)のミカンを除外するのです。

1万個の検査するのはおじいちゃん一人では無理でも、500個ならおじいちゃんでもがんばれば検査可能です(しらんけど)。

しかも、大体こういうプロジェクトでは、もともとミカン鑑定士のおじいちゃんたちが1万個検査していて、もう体力的に無理だからAIにやらせようという話になっているので、とりあえずしばらくはおじいちゃん500個だけ検査してもらうことは可能です。

そうすれば、AIのPrecisionがたとえ80%程度でもおじいちゃんのPrecisionが95%ならば、既存のおじいちゃんの検査同等もしくはそれ以上の精度で検査することができます。

これが、高Precisionを目指しても何とかなる理由です。

 

 

高Recallだとこうもいかない

次に、同じように高Recallを目指せない理由を書いていきたいと思います。

同じ農業ネタである架空の病気(激マズ病)にかかった葉物野菜を見つけるAIを開発するプロジェクトを考えます。

激マズ病はどんなに気を付けても約5%の確率で発生してしまう病気で、発病した野菜を食べても健康上は問題ないけど、なんとも言えないえぐみが全身を駆け巡るとします。

ミカンと同様あらゆる情報から激マズ病の検出することになりますが、ここで重要なのはRecallです。なぜなら、実際に激マズ病にかかっているのに見逃されて出荷されてしまうとクレーム必死だからです。

と、いうことでミカンと同じ毎日1万の葉物野菜から激マズ病にかかった500の葉物野菜を見つけるわけですが、見逃しを防ぐために人間がチェックをするのが現実的に不可能になります。

なぜ人がチェックするのが現実的ではないかというと、Recallを確保するために人がチェックしないといけない葉物野菜は、5%の方ではなく、95%の方だからです。これでは最初から人がすべてをチェックする場合とほとんど労力が変わりませんし、AIを運用するための労力とコストを考えるとむしろ効率が悪化する場合がほとんどだからです。

閾値を調整する場合も見逃しを防ぐという手法もなしではないですが、そうするとどんどん正常な葉物野菜も激マズ病と予測されてしまいますし、どうやっても間違いは生じます。そして、たった数件の間違いでも、Precisionを重視するプロジェクトよりもRecallを重視するプロジェクトの方が間違いが重大な結果を起こすことが多いんですよね。

 

 

結局AIに精度100%を求めるのは間違い、人間でも間違うから

Recallを100%に近づけようとするのはヤバい気がしてきませんか?元も子もないことを言いますが、そもそもAIに100%を求めるのが間違っているんです。

いつも思いますが、人間が間違っていないと思っている人が多いです。自分の仕事も他人の仕事もプロは100%って思いたいのはわかりますが、人間って間違いだらけです。

人がやっている既存業務へのAI導入を検討するならまず、人間だけの業務プロセスではどのくらいの時間をかけてそのくらいの精度が出るのか見積っていくことをおすすめします。

もちろん、思っていたよりも精度が低かったことになるかもしれません(というか、ほとんどの場合で間違が見つかっていない、もしくは後で対応されているだけで、人の精度はかなり低いです)。

そして、人によって精度にばらつきがあります。

自分の業務に間違いがあるということを認知するのに、現場の方は強い抵抗感があることはわかります。僕もそうです(自分の仕事は間違いがないことの方が少ないですが・・・)。

でも、それを業務時間外に練習して何とかしようとか、根性でどうにかって思う必要はありません。そのためにITがあるAIがあるわけで、むしろ特殊な才能や技能が必要な業務は撲滅されるべきです。

そして、AIだって間違いますが、人間とAIが協力して今よりももっと高精度に効率的に業務を進められるようになればいいんです。そうやって考えれば100%の精度は必要ないかもしれません。

ということで、AI導入でRecall100%を目指すのはやめましょう。というか、AIに100%求めるのはやめましょう。だって人間も結構間違ってますもんという話でした。

それでは。