機械学習プロジェクトの進め方

DORIBUNデータサイエンティスト

はじめに

機械学習とは、データに含まれる法則性や変数間の関係性を自動的に見つけ、それをモデル化する仕組みのことである。データから法則性を学習したモデルに未知のデータをインプットとして与えることで、過去のデータに基づいた予測や分類を行うことができる。近年、機械学習の技術は、コンピュータの処理能力の向上と大量のデータ蓄積により、さまざまな分野に応用されるようになってきている。
ビジネスにおいては、需要予測や異常検知など、これまで人間の経験や感覚に頼っていたタスクの自動化、あるいは意思決定の補助的な役割として、多くの実用化例がある。機械学習をビジネスに導入する際には、何かしらのシステムとして業務に組み込むことになるが、不確実性が高いという機械学習の特性上、一般的なシステム開発とは異なる点で注意が必要である。
このブログでは、基本的な機械学習プロジェクトの進め方、プロジェクトを進めていくうえで注意すべき点について、何回かに分けて紹介していく。初回の記事では、プロジェクトの全体像をつかむため、プロジェクトを4つのフェーズに分け、各フェーズにおけるポイントを簡単に説明する。

機械学習プロジェクトの全体像

具体的な進め方はプロジェクトの性質によって様々ではあるが、大まかな流れとして、次の4つのフェーズから構成されることが一般的である。

  1. 企画
  2. PoC
  3. 開発
  4. 運用

機械学習システムが、一般的なコンピュータシステムと大きく異なる点として、本格的な開発に入るまえにプロジェクトの実現可能性を検討するためのPoCを実施する点が挙げられる。機械学習モデルには、実際にやってみなければどの程度の精度が出るかわからない、といった不確実性があり、精度改善などによる手戻りが多く発生しうる。このような機械学習の性質上、本番運用に向けた開発に入る前に、モデルの精度、データの利用可能性などさまざまな角度からプロジェクトの実現可能性を検討するPoC (Proof of Concept) を実施することが多い。これにより、システム開発したはいいが全く使えないものになってしまう、というようなことが起きる可能性を減らすことができる。

企画フェーズ

企画フェーズでは、取り組む課題の選定、評価指標の設計、スケジュールや体制の検討を行う。ここで重要になるのが、ビジネスの損益構造にあった評価指標を設定することである。この段階で適切な評価指標を設定しておくことで、機械学習システム導入によるビジネス効果を容易に検証することができるようになる。

PoC

PoCフェーズでは、データの一部を使うなどして実際にモデルを構築し、さまざまな角度からプロジェクトの実現可能性を検討する。データの利用可能性、モデルの精度検証だけでなく、実行環境や運用の観点でも検証を行うことで、本番開発時の手戻りを減らすことができる。

開発

PoCでプロジェクトが実現可能と判断された場合、本番稼働に向けてシステムを含めた開発に進む。既存のシステムに機械学習を組み込むのか、新規開発なのかによってモデルの仕様や進め方は変わってくる。機械学習システムには不確実性が多く、手戻りや仕様変更の発生する可能性が高いため、アジャイル型の開発手法が適している。モデルの学習・予測は精度改善などで繰り返し実行することになるので、細かい設定を変更して何度も実行できるように柔軟に設計しておくとよい。

運用

通常のシステム運用に加え、機械学習モデルのパフォーマンスを維持していくための運用も必要になる。機械学習特有の運用タスクとしては、データの経年変化に伴うモデルの精度劣化を防ぐための再学習、モデルが実用可能な精度水準を満たしているか確認するためのKPIモニタリングなどが挙げられる。

まとめ

この記事では、機械学習プロジェクトの大まかな流れを紹介した。機械学習システムでは、どの程度の精度が出るかわからないため事前に仕様を固めるのが難しい、精度改善のための改修を継続して実施していく、といった点で一般的なシステムと異なり、それを踏まえたうえでプロジェクトを進めていくとことが重要である。
次回以降の記事では、それぞれのフェーズにおけるポイントをより詳細に紹介していく。