4章システムに機械学習を組み込む

機械学習をシステムに組み込むにはどうすれば良いでしょうか。本章では、機械学習を組み込むシステムの構成とそれに深く関わる教師データを獲得するためのログ収集方法について説明します。

4.1 システムに機械学習を含める流れ

1.2機械学習プロジェクトの流れ」でも書きましたが、システムに実際に機械学習を適用する際には、以下のような流れで進めていきます。

  1. ビジネス課題を機械学習の課題に定式化する

  2. 類似の課題を、論文を中心にサーベイする

  3. 機械学習をしないで良い方法を考える

  4. システム設計を考える

  5. 特徴量、教師データとログの設計をする

  6. 実データの収集と前処理をする

  7. 探索的データ分析とアルゴリズムを選定する

  8. 学習・パラメータチューニング

  9. システムに組み込む

  10. 予測精度、ビジネス指標をモニタリングする

本章では、この中でも「システム設計」「ログ設計」について説明をしていきます。

4.2 システム設計

機械学習にはいくつかの種類がありますが、ここではもっとも活用の機会が多い教師あり学習について、システムに組み込む場合の構成を説明します。

分類や回帰などの教師あり学習の場合、学習と予測の2つのフェーズがあります。更に学習のタイミングによって、バッチ処理での学習とリアルタイム処理での学習という二種類のタイミングがあります。

本節で、それぞれの場合のシステム構成とそのポイントについて学びますが、まずその前に重要でありながら混乱しがちな用語について整理しておきましょう。

4.2.1 混乱しやすい「バッチ処理」と「バッチ学習」

機械学習において、「バッチ」という言葉は特別な意味を持ちます。いわゆるバッチ処理と語源は同じですが、多くの場合、機械学習の文脈で「バッチ」というと「バッチ学習」のことを指します。ここでは「バッチ学習」と一般的な「バッチ処理」との違いについて説明します。 ...