機械学習システム構築のためのベストプラクティス&デザインパターン
機械学習システム構築のためのベストプラクティス&デザインパターン
機械学習は人工知能の同義語となり多くの人に広く知れ渡っていますが、その可能性を十分に活かしている企業は世界でも一握りにすぎません。最新のオープンソースライブラリ、パッケージが提供され、コミュニティは充実していますが、実用的なビジネス上の課題解決に機械学習をどう適用させるかで、多くの企業が四苦八苦しています。
人材不足もその要因の一つではありますが、優秀な機械学習エンジニアやデータアナリストを確保したとしても、1つのモデルを導入するまでにそれなりの期間が必要になってしまうことも起きています。
機械学習モデルのバージョン管理、再現性、スケーリングなど、企業が機械学習の機能を開発する際に直面する主な課題は、サイエンス的な面よりもむしろエンジニアリング的なものですが、一般的なデータサイエンス系の教科書では、機械学習プロジェクトを実施する際のエンジニアリング的な面についてあまり触れていません。
本書はデータの収集、保存、前処理、特徴量エンジニアリング、モデルのテストとデバッグ、本番環境へのデプロイと撤退、ランタイムと本番環境へのデプロイ後のメンテナンスなどに光をあて、解説していきます。
機械学習の応用、ビジネス上の課題を機械学習を使用して解決したい場合に適切なアドバイスを得ることができます。
対象読者として、機械学習の基本を理解し自身でモデルを構築することができるレベルを想定しています。
・機械学習エンジニアリングの仕事に取り組むデータアナリスト
・仕事をもっと構造化したいと考えている機械学習エンジニア
・機械学習エンジニアが提供するモデルを扱うことになるソフトウェアアーキテクト
第1章 はじめに
第2章 プロジェクトを始める前に
第3章 データの収集と準備
第4章 特徴量エンジニアリング
第5章 教師ありモデルの訓練 (第1部)
第6章 教師ありモデルの訓練(第2部)
第7章 モデルの評価
第8章 モデルの導入
第9章 モデルの推論、監視、メンテナンス
第10章 まとめ
序文
はじめに
本書の対象者
本書の使用方法
この本を買うべきか?
謝辞
訳者まえがき
第1章 はじめに
1.1 表記法と定義
1.2 機械学習とは何か?
1.3 データと機械学習に関する用語
1.4 機械学習を使用する場合
1.5 機械学習を使ってはいけない場合
1.6 機械学習エンジニアリングとは?
1.7 機械学習プロジェクトのライフサイクル
1.8 まとめ
第2章 プロジェクトを始める前に
2.1 機械学習プロジェクトの優先順位付け
2.2 機械学習プロジェクトの複雑さの推定
2.3 機械学習プロジェクトの目標を定義する
2.4 機械学習チームの構成方法
2.5 機械学習プロジェクトが失敗する理由
2.6 まとめ
第3章 データの収集と準備
3.1 データに関する質問
3.2 データの一般的な問題
3.3 良いデータとは
3.4 インタラクションデータへの対応
3.5 データ漏洩の原因
3.6 データの分割
3.7 欠損属性への対応
3.8 データ拡張
3.9 不均衡なデータを扱う
3.10 データサンプリング方法
3.11 データの保存
3.12 データ操作のベストプラクティス
3.13 まとめ
第4章 特徴量エンジニアリング
4.1 なぜ特徴量をエンジニアリングするのか
4.2 特徴量をどのようにして抽出するか
4.3 特徴量を並べる
4.4 良い特徴量の特性
4.5 特徴量選択
4.6 特徴量の合成
4.7 データからの特徴量を学習する
4.8 次元の圧縮
4.9 特徴量のスケーリング
4.10 特徴量エンジニアリングにおけるデータ漏洩
4.11 特徴量の保存と文書化
4.12 特徴量エンジニアリングのベストプラクティス
4.13 まとめ
第5章 教師ありモデルの訓練 (第1部)
5.1 モデルに取り組み始める前に
5.2 機械学習用のラベルの表現
5.3 学習アルゴリズムを選択する
5.4 パイプラインの構築
5.5 モデルの性能評価
5.6 ハイパーパラメータのチューニング
5.7 浅いモデルの訓練
5.8 偏りと分散のトレードオフ
5.9 正則化
5.10 まとめ
第6章 教師ありモデルの訓練(第2部)
6.1 深層モデルの訓練方法
6.2 モデルのスタッキング
6.3 分布シフトへの対応
6.4 不均衡なデータセットの処理
6.5 モデルのキャリブレーション
6.6 トラブルシューティングと予測エラーの解析
6.7 ベストプラクティス
6.8 まとめ
第7章 モデルの評価
7.1 オフライン評価とオンライン評価
7.2 A/Bテスト
7.3 多腕バンディット
7.4 モデル性能の統計範囲
7.5 テストセットの妥当性の評価
7.6 モデルの特性の評価
7.7 まとめ
第8章 モデルの導入
8.1 静的なデプロイ
8.2 ユーザーデバイスへの動的なデプロイ
8.3 サーバーへの動的デプロイ
8.4 デプロイ方法
8.5 自動デプロイ、バージョン管理、メタデータの自動化
8.6 モデルリリースするベストプラクティス
8.7 まとめ
第9章 モデルの推論、監視、メンテナンス
9.1 モデルの特性
9.2 推論方法
9.3 実世界でのモデルの予測
9.4 モデルの監視
9.5 モデルのメンテナンス
9.6 まとめ
第10章 まとめ
10.1 覚えておくべき重要な点
10.2 次に読むべき本