機械学習プロジェクトの進め方:課題設定

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

はじめに

前回の記事では、機械学習プロジェクトの進め方として、企画、PoC、開発、運用の4つのフェーズにわけて各フェーズのポイントを概観した。今回の記事では、企画フェーズの中でも最初の工程である課題設定の考え方について簡単に紹介する。

機械学習における課題設定の考え方

機械学習プロジェクトを始めるにあたって、何でもいいからとりあえずデータを使ってなにかやってみよう、というような形でやみくもに機械学習を使ってもたいていはうまくいかないことが多い。プロジェクトを成功させるには適切な課題設定が重要である。一般的に機械学習プロジェクトで取り組むべき課題は以下の3つの条件を満たしている必要がある。

  1. 解決すべき課題であること
  2. 機械学習で解決できること
  3. ビジネス効果が見込めること

以下では、3つの条件についてもう少し具体的に説明していく。

1. 解決すべき課題であること

第一に、課題は解決すべきものでなければならない。ここでは一般的な課題設定の考え方で課題を検討していく。この辺りはビジネス本などにより詳しい説明があるので詳細は省くが、簡単にいうと、問題を構造化して具体的なレベルの課題に落とし込んでいくという工程をふむ。問題とは関係ない課題を解決しても意味はないし、そもそも解決することが現実的ではない課題もある。様々な視点から検討して解決すべき課題を抽出する。課題によっては機械学習を使わないほうが良いケースもある。機械学習は精度の不確実性が高く、システムも複雑になりやすいので、機械学習を使わずに解決できるのであれば、使わないほうが余計なリスクを負わずに済む。機械学習を使うという先入観を排除して課題解決の方法を考えることが重要である。

2. 機械学習で解決できること

次に機械学習を使うことで解決できる課題を抽出する。機械学習が使えるかどうかの条件をさらに細かくしていくには、以下のような視点が必要になる。

① 入出力を定式化できること

機械学習の基本的な仕組みは、大量のデータから、変数間の関係性を学習し、それに基づいて判断した結果を出力することである。したがって、機械学習モデルを構築するには、どのようなデータを入力して、そこからどのような出力を得るかを定式化できなければならない。写真に写っている対象ごとに画像を分類するという問題であれば、写真の画像データをインプット、アウトプットはその画像に何が写っているかを示すカテゴリ値になる。ある商品の売上を予測する問題であれば、商品属性やその商品の過去実績などをインプットに売上数量をアウトプットするモデルとなる。このような形でインプットとアウトプットを具体的にイメージ出来る課題には機械学習を応用しやすい。

② 必要な学習データが用意できること

機械学習モデルを構築するには、その課題と関連するデータが必要になる。手元にデータがあればそれを使えばよいが、それ以外にも無料で公開されているオープンデータを利用したり、データプロバイダなどが販売しているデータを購入したりすることもできる。データ量は基本的には多いほうがよいが、欠損が多かったり手入力したデータで不正確なデータが多かったりすると、モデルの精度が下がることがあるので注意する。教師あり学習の場合には正解ラベルを用意しておく必要がある。売上予測などのタスクでは実績データを正解データとして利用できるが、画像分類などの場合は人力でラベル付けしなければならないこともある。数万件程度であればできないこともないが、数百万件となると人力でのラベル付けは難しいかもしれない。
これらの条件を満たせない場合は機械学習による解決は難しいので、課題の再検討、データ基盤の構築など、上流段階から見直していく。

3. ビジネス効果が見込めること

最後に、ビジネスでの適用を考えるのであれば、その課題を解決することで利益を生むものでなければならない。コストの面では、開発にかかる人件費、計算機・サーバー利用料金、運用費用などがある。一般的にモデルが複雑になればなるほど、計算コストやメンテナンスにかかる工数は増加する傾向にある。一方で利益については、課題解決による売り上げの増加やコストの削減が挙げられる。これらはモデルの精度に大きく依存するので、どれだけ良いモデルが作れるかがカギになってくる。逆に言えば、利益を出すにはこれくらいの精度でなければならない、というモデルの精度目標にもなる。特に機械学習の精度は不確実性が高く、やってみないとわからないという性質が強いため、慎重に検討していく必要がある。

まとめ

この記事では、機械学習プロジェクトの課題設定について紹介した。機械学習モデルの開発には費用も工数もそれなりにかかるので、さまざまな視点からよく検討して適切な課題を設定していくことを心掛けたい。よい課題設定ができていれば、プロジェクトがうまくいく可能性が高くなり、たとえうまくいかなくても次の改善につながるはずである。