見出し画像

どうしてAI の結果を信頼できるのか? (数分で、交差検証の概観)

本記事では、交差検証を簡単に解説します。(タイトルから、Deep Learning の Model Interpretability の話じゃないのか、と思われた方は、最後の方に言及しておりますので、そちらを。)


よく、機械学習ベースのAI のアプリケーションの解説をしたり、講演をした際に、「AI がデータを学習するというのはわかるが、どうしてAI が出す値を正解だと信頼できるのか?」という質問を受けることがあります。

つまり、学習した AI の精度をどう確認していくか。という質問です。これは重要で、データから学習させたのだからと盲目的に信頼しても、「過学習(Overfitting)」という状態にあって、実は、実際の本番のデータや実際の環境の中ではうまく動かない等はあります。

AIが正解を言い当てているのではないかと信頼するためには、「交差検証 (Cross-Validation)」という手法を使うことがよくあります。

機械学習ベースのAIにおいては、本当の正解と、AI が言い当てたもの、との間に誤差が必ず存在しており、その誤差ができる限り小さくなるように学習する、ことを行います。

学習する際には、データとそれに対する正解のセットを用意します。このデータと正解が対応しているんだよ、ということをトレーニングしていき、モデルを構築していくわけですが、実はこの際、データと正解のセットを3つに分けます。トレーニング用データ、検証用データ、テスト用データ、です。

まずトレーニング用データを使ってAIは学習します。データ X に対して、正解 A が対応している、等と学習していきます。

そして、学習した AI は、データに対して正解と思われるものを返すようになるわけですが、このとき、検証用データを使って、このアプローチが正しいのかどうかを検証します。場合によっては、この時に、誤差が小さくなるように、AI のモデルを修正したり、初期値(ハイパーパラメーター)を調整したりします。

そして、最後に、テスト用データを使って、もう一度、AI が返してきているのは、正解にどれだけ近いかを確認します。これが交差検証です。

ここで、なぜ検証用データテスト用データが2種類別々にあるかというと、検証用データを使ってモデルを調整しているので、もし検証用データにバイアスが存在していたり、調整をやりすぎたり(過学習状態)していると問題です。それゆえ、最後に、モデルの修正に用いない、ただテストするだけの別途用意されたテスト用データを使って、AI の返してきた正解がどれだけあっているかを評価します。理想的には、トレーニング用データ・検証用データにもフィットし(=モデルの biasが少ない)、テスト用データにもフィットする(=モデルの varianceも少ない)、ですが、これはトレードオフの関係にあるのが悩ましいところです。

このテスト用データに対する正答率がどれだけ当たっているかで、AI に対する信頼性を獲得していくというのが今のアプローチになります。なぜなら、一般にも広く知られるようになりましたが、現在の多くの主流な AI 技術は、(集合学習強化学習、深層学習等等)学習結果がブラックボックスになっており、どうしてその答えを計算したのか、の内部処理の過程を完全に明確に確認することが難しいためです。とはいえ、最近は、AIの出した結果に、どのような学習データが寄与しているのか、を推定していき、AI の学習モデルを修正できるようにしていこうというアプローチもでてきています。例えば、以下は、最近注目されているアプローチである LIME を簡単に紹介したVideoです。

また、以下の記事は、やや専門的になりますが、LIMEを含め、「Deep Learningがどうしてそのような結果を返してきたのかに対して理解しよう」という様々な試みを紹介しています。

Model Interpretability を確保していこうというトレンドになりますが、今この領域はとてもホットな分野といえますので、AIの信頼度を高めていく試みはこれから色々出てくると思います。

以下は、Model Interpretability も含む、広くAIの説明可能性を実現していこうというXAI(Explainable AI)に関する記事です。ご興味がございましたら、こちらもご覧ください。

追記

ところで、以上のような、データをトレーニングデータ、検証用データ、テスト用データに分ける考え方や、AIの信頼度を高めていく試みは、プログラミングスキル以上に、将来の必須ICTスキルの一部かと思います。以下の記事もご参考までに。


* * *


この記事が気に入ったらサポートをしてみませんか?