AI活用で最近思うこと

2017.04.24

いつもご愛読頂き、誠にありがとうございます。

今回はAI活用で私が最近思っている事をお話させて頂きます。 ニューラルネットワークと言うと、私が最初の会社に入った時、研究室で動かしていた初期のニューラルネットワークを使った文字認識をVAXに移植して実行した事を思い出します。あまりにCPUを消費する為、先輩に「誰がこんなにCPUを使っているんだ!」と叫んで、あわててプログラムを停止した事がありました。

stockfoto_33952135_XS.jpg

それから時は流れるのですが、個人的には人工知能の仕事はなく、普通のシステム開発を行っていましたが、その後の人工知能(ニューラルネットワーク以外も含めて)の流れは、期待が大きいだけに落胆も大きく、ブームが過ぎると一気に萎んでいったような気がします。 

近年、Google社のディープラーニング、IBM社のワトソンという形で再度登場し、現在AI活用が花開いています。当時から30年近く経過し、コンピュータ環境は比べられないぐらいの処理能力とネットワーク環境、ストレージ容量を手に入れて、大量データの分散処理が可能になったことが、再ブームになった要因だと思っています。

そこで、今回の本題なのですが、個人としてはとても気になっている事があります。 例えば、AI機能を実装する場合にシステムの要件定義とメンテナンスはどう考えたらよいのでしょうか? その中でも「再学習」と「間違いの許容」はどのような扱いになるのかという事です。

ニューラルネットワークは、学習をすることで高い確率で答えを引き出すという特性があります。 初期の学習では高い確率でうまく動作してたものも新しい事象が時間の経過と共にいろいろと出てくると、初期の学習で判断していた内容では対応できない状況が発生するかもしれません。この場合、対応できない率が徐々に向上してきた場合、途中で耐えられなくなって再学習をするというプロセスを辿ると思われるのですが、これをビジネス用途で活用した場合、どのようにタイミングを見計らって対応していくのかという事について対応を考えないといけません。
stockfoto_62156410_XS.jpg

メンテナンスサイクルに再学習スケジュールを行い、再学習したパラメータをセットさせて対応していくという事になるとは思いますが、この仕事を誰が行うかという問題があります。

もう一つは間違いの許容ですが、今までは手続き型で行ってきたものでは、バグでもない限りは仕様通りの動きをします。 しかしながら、ディープラーニングの世界では、アルゴリズムが根本的に違う事から、何を正解にするのかという定義が非常に難しいという事があげられます。 よって、この曖昧さは最大の利点ですが、システムの要求定義においては非常に難しい問題が発生します。例えば、顔認識についても、セキュリティゲートの様なものについては少ない確率でも本人が入れないという事は許されませんし、他人が入れてしまっても問題があります。認証系には非常に精度の高いレベルが要求されます。 しかし、大量な写真の中から、可能性が高いものに関してPickupしたいという事であれば、100%でなくても役に立つ可能性は広がります。

stockfoto_64070688_XS.jpg

手続き型で作られたものでなく、再学習が可能なシステムを前提にした場合、要求定義方法と検証方法、さらにメンテナンス方法については今までと違う考え方を取り入れないとならないだろうと強く感じています。

このように、業務エリアに活用していく場合には、現実的な課題を解決していかなければなりませんが、これをどう乗り越えていくのかという事も求められている訳でもあり、これについては今後の動向を注意深く見ていきたいと思っています。