派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

【イベントレポート】人工知能システムの開発を企画~運用するために気を付けることとは?

株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するイベントを定期的に開催しています。

2018年10月26日のイベントでは「これからますます需要の高まる『人工知能システムのプロジェクトマネージャ』を学ぶ」を開催。

機械学習をはじめとする人工知能の技術が流行する中、ソフトウェアやアルゴリズムの解説本やセミナーが増えています。一方で、アルゴリズムを理解していても、システム開発プロジェクトにおけるプロセスや作業について理解していないと、仕事の進め方に迷うことになります。そこで今回は、書籍『人工知能システムのプロジェクトがわかる本』の著者である本橋洋介さんが、人工知能を使ったシステムの開発プロセスや、各フェーズでの心構えについて解説してくれました。

■今回のイベントのポイント

・人工知能システムの開発プロセスと従来型システムの違い
・企画フェーズで気を付けること
・POCフェーズで気を付けること
・開発フェーズで気を付けること
・運用フェーズで気を付けること

【講師プロフィール】
本橋 洋介さん
東京大学工学系研究科産業機械工学専攻修士課程修了。NEC入社後、人工知能・知識科学・機械学習・データマイニング技術と分析ソリューションの研究開発に従事。機械学習の実問題適用を専門としており、これまでに機械学習技術を用いた分析サービス・システムの導入について30社以上に対して実績あり。2016年、NECが新規に創設したシニアデータアナリストの初代認定者になる。AI技術やサービスの広報役としてビジネスカンファレンスなどでの講演を多数行うと共に、企業トップ層へのAI活用に関するロードマップ策定のコンサルティングを実施。「人工知能システムのプロジェクトがわかる本 ―企画・開発から運用・保守まで―」(翔泳社)

人工知能システムの開発プロセスと従来型システムの違い

人工知能システムの開発プロセスは従来型のシステムと違い、企画→トライアル(POC)→開発→運用・保守という流れになるそうです。

f:id:itstaffing:20181212141331j:plain
▲トライアル(POC)というフェーズやデータ分析が入るのがポイント。運用フェーズでもモデル更新や再学習などが発生する。

また、機械学習システムは、完成後、ずっと動き続けているものはなく、本橋さんが知る限りで、長いものでも6年ぐらい。一般のシステムに比べると稼働期間が短いかもしれませんが、その理由は、時間経過と共に、ルールを覚え直させる必要があるためとか。従来型システムと、けっこう違うところがあるものなのですね。

企画フェーズで気を付けること

人工知能システム導入の目的は、概ね以下の4つのいずれかが多いそうです。

・売上向上
・コストダウン
・品質向上
・リスク低減

人工知能に過度に期待するお客さんも多く、実際の予測結果を知ると「この程度か」と落胆することも多いそうです。そんなとき、本橋さんは「コンビニの仕入れを担当する一番スゴイ人の予測は上回れないが、その下に8割ぐらいいるはずの、次にスゴイ人の予測を上回ることはできると思います」と説明するそうです。安定した予測と、全体の底上げにつながるのは大きいですよね。

AIシステムのシステム構成は次のようになっています。学習部と予測部は独立しているというところがポイントです。

f:id:itstaffing:20181212141334j:plain
▲学習部で導き出したルールを、予測部に受け渡して予測を行う

人工知能システムの導入に際しては、まず業務フローを明確にします。

f:id:itstaffing:20181212141338j:plain
▲このほか、通常の意思決定は人工知能が行い、例外処理のみを人間が行うパターンや、人工知能が導き出したルールを人間が確認し、それを情報システムに組み込んでいくというパターンもある。

本橋さんによれば「AIはデータと目的を選んだらほぼ終わり」だそうで「だからデータは重要」とのことです。データ選びは5W2Hだそうです。

f:id:itstaffing:20181212141311j:plain
▲「H」がHow manyとHow muchの2つあるのがポイント

さらに「無いデータは作る」ことも大切な作業だそうです。たとえばコンビニの仕入れ予測をするには各店舗の特徴を知る必要があります。店舗の近くに学校、病院、高速道路があるかどうかなど、Googleマップを見ながら個別に入力する作業が発生することもあるといいます。

また、一度分析をしてから追加データを選ぶのが効果的だそうで、たとえば「仙台の7月の予測が当たらない」という場合、「仙台七夕祭りの影響なのではないか」という考察のもと、追加データを用意します。

POCフェーズで気を付けること

トライアルのプロセスで注意が必要なのは、運用中に使えるデータを確認しておくこと。これは、運用で使えないデータでトライアルを行ったために、システム化できなくなるという問題を防ぐために大切だそうです。

どういうことかというと、たとえば月々のデータを入力する作業によるタイムラグで、インターバルが生じてしまうことがあります。

f:id:itstaffing:20181212141315j:plain
▲入力作業のタイムラグで、データを使いたいタイミングに間に合わないということもある。

また、データ数が少ないと、レアケースを過大に評価してしまう危険性があります。たとえば各都道府県別のデータを持ち寄っても、データの母集団が少ないエリアもあるかもしれません。その場合、中国地方や四国地方といったように、いくつかのエリアをまとめることで、レアケースの過大評価を防げます。

機械学習には「教師あり学習」と「教師なし学習」という2つのモデルがありますが、現在、AIシステムの8割~9割は「教師あり」で動いているそうです。

f:id:itstaffing:20181212141318j:plain
▲教師なし学習はマーケティングレポートなどに使われているそうです

システムの精度を高めるためには、データのフォーマットを合わせ、精度を上げて、予測結果が不安定になるのを防ぐという目的のために、データの加工(前処理)も必要です。

たとえば画像データならば、同じデータからも、たくさんのパターンを作り出します。

f:id:itstaffing:20181212141322j:plain
▲画像データの例。ちょっとした光の具合で見え方が変わるので、同じデータからも、いろいろなパターンを作っておく。

さらに学習結果の評価も必要になります。評価の方法も、ここでは紹介しきれないほど、たくさん教えてくださいました。

開発フェーズで気を付けること

本橋さんは「人工知能システムの開発は、普通のシステムの10倍ミスしやすい」と注意を促します。そこで要件定義の段階でデータを分析することを推奨しているそうです。

データの精度の確認、データ量の決定、学習期間のほか、モデル更新の頻度も実験しておくべきで、モデルを放置したらどうなるか、どれぐらいデータを貯めたら当たるようになるかも実験して決めておくのだそうです。

f:id:itstaffing:20181212141326j:plain
▲放置したらどうなるかを確認しておくことで、モデル更新頻度を決定する。

また、データ量が少ないときにどうするかという問題もあります。情報システム側では、(当たらないので)結果を表示しないのが情報システムの在り方なのですが、それでは困るという場合は、代替データを使うという方法を検討しておきます。

運用・保守フェーズで気を付けること

AIシステムは、開発した後も、常に賢くあるように運用フェーズの間も「育てていく」必要があるという点も、他のシステムとの大きな違いです。

たとえば、過去にはなかった要因が新たに加わった場合。近くに競合店舗が出店したりすると、データの傾向ががらりと変わり、システムの精度が劣化するので、再学習させる必要があります。また、お得意様の大型注文が年に数回発生するといったパターンは、定常的なデータではなく、異常データとして扱う必要があります。

f:id:itstaffing:20181212141329j:plain
▲AIシステムを育てるには再学習が欠かせない。

再学習では「過去のデータを忘れさせる」必要があるのですが、そういうときのためにデータを捨てるというようにシステムを組んでおかなければなりません。

以上、1時間半の短い時間の中で、かなり濃密なお話を聞かせていただいたのですが、短いレポートの字数ではすべてをお伝えできず、ごく一部しかご紹介できませんでした。
本橋さんがイベントの最後に語ってくださった「AIシステムは、お客さんの業務に詳しくならなければ賢くさせることはできない」という言葉が印象的でした。また、人工知能のシステム開発は、従来型と大きく異なる部分があることもよくわかりました。2つを照らし合わせながら、人工知能について学んでみるのもよさそうです。