今回は、N2i でも積極的に取り入れ始めた「AI活用の考え方」をご紹介します。
AI活用の考え方
AIを利用する場合には、
- 課題を設定し、
- その課題を解決するためのデータを集めて、
- どんなモデルを作成していくかを検討
していくわけですが、
つい最近まで、社内では 1. の課題設定をした後、2. 以降をそのまま機械学習エンジニアに振り出し、簡単なアプリケーションとあわせてAIモデルを作成していました。
しかし、AIモデルを再利用するなどして開発効率を向上しようとした時、この振り出し方に問題があることに気付きました。
お客様の課題を解決するためにAIを用いる場合、AIモデルを単体で使うことはなく、必ずシステムと共に利用します。
例えば、どんなにすぐれた顔認証APIを開発しても、それを利用するシステムがなければユーザにとっての価値はゼロです。
(参照元:NECは如何にしてAI人材を育成しているのか?)
これまでの考え方を見直すきっかけになったのが上図です。
この図では、いわゆる機械学習エンジニアが対応するのは分析エキスパートの箇所になります。
顧客の課題を解決するためのPoC(概念実証)を行う場合、その価値は何をもって測ればいいのでしょうか。
> 精度が80%以上
> 人によるチェックで100個中、70個がよいと判断できるもの
これらももちろん正解です。
しかし研究開発用途のPoCではなく、システムに乗せることを前提にしている場合、これだけでは十分でない場合があります。
例えば、特定のユーザに対してのみ使用する顔認証で、
> 母数が1000人に対しての精度は60%だが、
> 母数を100人まで減らして再学習した場合に精度が98%になる。
これら2つのモデルはどちらがよいのでしょうか。
答えは、「ユーザによる」です。
この判断をする人、何を優先するかを定義する人が、上図では分析コンサルタントです。
システム設計において上流工程の大切さが謳われて久しいですが、AI案件も同様だと考えます。
上記顔認証に対する顧客の課題が、
「出社時に混雑する自動入場ゲートに連結する」
ことにあれば、通り過ぎるだけで半数程度の人が入場できるのであれば、大きな改善につながるかもしれません。
あるいは、
「セキュリティレベルの高い部屋への認証に連結する」
場合は、高い精度が求められるといったように、そのものの是非を決めるのはあくまでユーザです。
ただでさえ複雑な検証をしている機械学習エンジニアにそれを判断させ、改善を促していくことまで任せるのは望ましくありません。
AIを小さく使用する
この考え方を活かしたのが「AIを小さく使用する」という考え方です。
実際にこんな相談がありました。
「顔認証で判断した相手に合わせて、適切な行動をAIにとらせたい」
これをAIで作成するには、次のようなモデルが必要になります。
- 顔認証で誰かを判断するモデル
- 判断した相手に対して適切な行動を作成するモデル
「適切な行動を作成するAI」…なんだか難しそうです。
この場合、ユーザの希望は何でしょうか。多種多様な人に対し、それぞれ違った行動をさせたいのでしょうか?
疑問に思い、よくよく話を伺うと、「行動をさせたいパターン」は10個程度にまとめられるとのことでした。
つまり必要になるのは、
- 顔認証で10個のパターンに人を判断するモデル
- パターン分けした10個に適切な行動を設定する機能
さっきまで実現が難しそうだった「適切な行動を作成するAI」が、ただの管理機能でも実現できそうなことが分かりました。
さらに言えば、AIで適切な行動を作成する場合、AIは、多数のパラメータを元に行動を決めるため、細かいケースに対する例外処理が苦手です。
これを管理画面で設定できるようにしておけば、システムを運用しながら行動する内容を変更できたり、細かなところに手が届くシステムになります。
元の要求からそのままAIで作成する場合と、小さくAIを作ることの違いをご理解いただけたでしょうか。
AIプロジェクトやPoCの多くが失敗に終わりやすいのは、この切り分けができていないことが大きく影響していると思います。
この10パターンへの分類モデルを作成しておけば、別の拠点で数パターンの人の振り分けをしたくなった場合に、1から新たに作らなくても流用をすることも可能です。
これが疎結合のメリットです。
機械学習エンジニアにすべてを押し付けず、AIを何に置き換えればユーザにベストな解を導きだせるのか。
そのようなところを適切に考える力が今後はより一層求められると感じています。