AI開発のプロジェクトを紹介します 【第2回】 ~AIの性能と目標達成に到達するまでの取り組み~

人工知能(AI)

2021.04.16

     

前回のおさらい

本コラム第1回では、AI案件の発生からプロトタイプを作成するまでの取り組みとして、開発方式やAIモデルが作られていく過程を紹介しました。
第2回では、AIの性能と目標性能に到達するまでの取り組みについて紹介します。

AIの性能はどのようにして決まる?

AIから出力された結果の正誤判定は非常に難しいものです。

モデル作成時の教師データの与え方や結果を利用する側の見方により正解とも不正解とも判断しがたいケースが多々出てきます。
そのため、教師データの偏りができないように学習用と検証用のデータを少しずつずらしてモデルを作成する交差検証を用いたり、判断に迷いが生じそうな結果は複数人で評価する、などして不公平なく評価して総合的に判断したりすることが求められます。

AIの性能は主に正解率、適合率、再現率といった数値指標で表しますが、数値ばかりに注目してしまうことが無いようにしなくてはいけません。
例えば、“豚の写真から病気を検知するAI”を2種類用意したとして、一つは正解率が90%、もう一つは正解率が85%だったとしましょう。
この場合は正解率が高いほうが良いAIと言えそうですが、仮に、

  • ・正解率90%のAIは何故このような判定になったか根拠を説明することができません。
  • ・正解率85%のAIは判定した根拠を説明することができます。

となった場合、皆さんはどう受け止めるでしょうか。AIを利用する側の用途にもよりますが、このような場合は多少精度が落ちても根拠を説明できたほうがより納得できますし安心感がありますよね。
さらに、その根拠を分析することで、AI適用現場での次のアクションを決定する手掛かりになったり教師データやハイパーパラメータ(学習時に与える設定値群)の改善策を講じたりすることができます。

判定の根拠を示すことができないAIとできるAI

判定の根拠を示すことができないAIとできるAI

正解率100%のAIができれば根拠の説明の重要性は低くなると言えそうですが、多様な要因から成る既知の事象から未知の事象も含めて高い精度で正解を導き出せるAIは簡単には作れません。
特に、生命や収益に直結するような結果を求められるAIでは結果と合わせてその根拠を上手く説明付けられることが求められます。これまでの技術ではこれら根拠の提示が不得意であることが多く、教師データやハイパーパラメータのチューニングはとても難しい作業となっています。
根拠を出力するためにはAI内部で保持している計算過程の数値情報を人間が理解できるかたちに変換する必要があるのですが、このような仕組みを取り入れたAIはXAI(Explainable AI:説明可能なAI)と呼ばれ、今後の発展が期待されています。

目標の達成~AIの完成

AIのプロトタイプが完成してモデルの学習ができるようになったら、実験とチューニングを繰り返し、評価結果を確認しながら最終目標を定めていきます。プロジェクト開始当初に目標数値が定められている場合はその値を目指します。

また、この分野は技術の進歩がとても速いため、新しい方式で構築されたモデルやチューニングされたモデルを使用することで、従来の手法では解けなかった問題も解けるようになることもあります。そのため、日々の情報収集も重要な作業です。

開発に詰まったときに気分転換がてら情報収集してみたりチームメンバーと技術情報を交換したりするのも良いと思います。

チューニングが順調に進むと、教師データやハイパーパラメータをどのように与えると結果にどう影響するのかがわかってきます。これらのノウハウは後に重要な情報になるので、手順やポイントをメモとして残しておくようにします。

ここまできたら、あとは何度かチューニングと実験を繰り返すだけです。その結果、きっと無事に精度目標を達成することができるはずです。

持ち越す課題を次につなげる

案件を進めていくうちに、「これをこうしたほうがもっと良くなるのに」という新たな課題がたくさん出てきます。
特に、新しいことにチャレンジする際は、目標を達成する過程でさまざまな「これもやりたい」がたくさん出てきます。

ですが、案件には期間や予算に限りがありますので、何を目標として何が最重要課題なのか?をお客様と相談しながら進めていきます。プロジェクト期間内で着手できなかった課題は、その内容と有効性を説明する資料を作成して“持ち越し課題”として整理しておきます。こうしておくことで次期の案件につながるチャンスにもなります。

AI開発で困った経験

ここでちょっと休憩もかねて、AI開発の過程で生じる問題の中からよくある困った経験を2つ紹介します。

ケース1

・AIの結果は曖昧なことが多いため正しく動いていなくても気づきにくい…

公開された新しいモデルを使用したところ、“良くも悪くもないそれっぽい結果”が得られていたため、とりあえず動いていると安心していたのですが、いろいろ突き詰めていくとモデルに不備があり期待する精度が得られてなかった、ということがありました。
AIの結果は曖昧であることが多く判定も難しいが故に、不備に気づくことが遅くなり評価を再実施することになりました。

ケース2

・あのエンジニアが考えていることは…?

アジャイル開発ではプロトタイプの処理を日々改修しながら進めていきますが、それはすなわち突貫工事であるとも言えます。
ソースコードには説明などをコメントとして記述しておくことができるのですが、改修時のエンジニアの意図がソースにコメントとして残されていないことも少なくなく、あのエンジニアはどう考えてこのような挙動にしたのだろう?と頭を悩ませることもあります。時には、“あのエンジニア”は自分であったりもします(笑)。
同様に、教師データの作成や結果の正誤判定でもあの時の自分と今の自分で考えが異なることもあります。
このような思考が難しい部分はチームメンバーと共有することで新たな気づきにもつながりますので、メモやコメントを残すようにしましょう。

さて、開発の話に戻しましょう。
精度目標を無事に達成すると、AI開発はひと段落ついたことになります。ですが、ここで終わりではありません。開発が終了した後もビジネスを拡大させるために必要な取り組みがあります。
次回は、AIを開発した後の取り組みについて紹介していきます。

AI開発のプロジェクトを紹介します 【第2回】 ~AIの性能と目標達成に到達するまでの取り組み~