# 機械学習プロジェクトの進め方
Navigation: [[index]] | [[concepts/_index]]
## 定義
機械学習プロジェクトの進め方とは、「ビジネス課題を機械学習の課題に定式化する」「類似の課題を論文中心にサーベイする」「機械学習をしないで良い方法を考える」「システム設計を考える」「特徴量・教師データ・ログの設計をする」「実データの収集と前処理をする」「探索的データ分析とアルゴリズムを選定する」「学習・パラメータをチューニングする」「システムに組み込む」「予測精度・ビジネス指標をモニタリングする」という10ステップの流れを指す。この10ステップは「解きたい課題を機械学習で解ける問題設定に落としこむ」(1〜3)、「解くための道具選びと前処理」(4〜6)、「モデルの作成」(7、8)、「サービスへの組込み」(9、10)という4段階に大別され、最初の課題設定と前処理の質が以降の全工程を左右するため特に重視される。通常のコンピューターシステム開発と異なり、機械学習プロジェクトは予測精度を求めて試行錯誤を繰り返す性質上、4〜7のステップを何度も往復することが常態であり、手戻りが発生しやすい。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2)
## 課題設定とMVPによる仮説検証
課題設定の段階では、「売上を改善する」のようなビジネス上の大きな目的を、「どこで不良が起こっているかを特定するために機械学習の力を使う」のようにアクション可能なレベルまでブレイクダウンし、KPI(Key Performance Indicator)を仮でも1つ決める。良くない問題設定の例は、「有料会員を増やしたい」のようなアクションが起こせない曖昧な設定や、「深層学習で凄いことをする」のような目的が不明な設定である。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2.1)
機械学習を用いるべき条件は「大量のデータに対して高速に安定して判断を求める必要がある」「予測結果に一定数の間違いが含まれることが許容できる」の2点であり、これを満たしトップダウンの要求があっても、機械学習を使わない方向に舵を切ることを恐れるべきではない。条件を満たした場合には、集計ベースやルールベースの簡単な実装であるMVP(Minimum Viable Product)を作り、立てた仮説の筋の良し悪しを最優先で検証してから本格的なシステム設計・実装に進む。狙い自体が間違っていた場合、システム構築と実験を終えた後に最初の問題設定まで手戻りすることもあるため、通常のプロダクト以上に事前検証が重要である。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2.3)
## サンクコストを避ける撤退ラインの事前設定
システム設計の段階に入ると「予測結果をどういう形で利用するのか」「予測誤りをどこで吸収するのか」の2点を検討する。機械学習の予測モデル開発は「あと少し性能が良くなったら」と改善の泥沼にハマりこみやすく、学習データの収集や正解データ作成が進むほどドメイン知識が付き、根拠のない自信で改善を続けられると思い込みやすい。そのため、サンクコストによるバイアスがかかる前に、具体的な目標性能と撤退ラインをあらかじめ決めておくことが重要になる。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2.4)
## 外部提供という契約と組織の文脈
『機械学習システムデザイン』付録Aは、機械学習システムを自社内で構築する場合ではなく、顧客企業に外部委託で構築する場合に固有の観点を扱う。技術的なサイクル自体([[@2023__OReillyJapan__機械学習システムデザイン - Chapter 2 機械学習システム設計の概要]] §2.3の6ステップ、図2-2)は社内・社外で変わらないが、社外提供では典型的にはこのサイクルの1周ごとに「契約」という関門が挟まる。日本国内では、明確な納品条件を定める請負契約よりも、期間内に最善を尽くす準委任契約が選ばれることが多く、契約の区切りごとに現場より上位の関係者が集う「ステアリングコミッティ」が続行・変更・終了を判断する。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Appendix A 機械学習システムを外部に提供する]] §A.3.2)
社内での取り組みと異なり、顧客企業の内部事情(業務システムのリプレース計画の有無、データウェアハウスの実態、システム管理業者やコンサルといった隠れた利害関係者の所在)は自然には耳に入らず、能動的に聞き出す必要がある。相談初期の「リプレース計画があるか」という何気ない質問が、外部システムを既存業務システムの外に置くか内部に組み込むかというアーキテクチャ選択の手がかりになる例が示されている。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Appendix A 機械学習システムを外部に提供する]] §A.2.1, §A.2.4)
社外提供に固有のリスクとして、PoC段階の過度に楽観的な説明が本稼働後の顧客の失望を招く「PoCゾンビ」、および取り組みの情報と役割がデータサイエンティスト個人に過度に集中する「データサイエンティストならなんとかしてくれる症候群」の2つが挙げられる。前者への対策はPoCの評価条件と実運用条件の差(データの取得タイミング・更新頻度)を事前に見極めることであり、後者への対策は役割を積極的に他者へ委譲する意識を持つことである。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Appendix A 機械学習システムを外部に提供する]] §A.3.8, §A.3.9)
## 横断的知見
- **付録Aは、2章の6ステップ円環自体は社内外で技術的に同一であるとしつつ、社外提供ではその円環の外側に「契約」という別レイヤーの反復構造を重ねる**: 既存の横断的知見(後掲)は、『機械学習システムデザイン』2章の6ステップ円環と『信頼性の高い機械学習』12章のML製品開発フェーズ6フェーズ円環が構造的に対応することを示していた。[[@2023__OReillyJapan__機械学習システムデザイン - Appendix A 機械学習システムを外部に提供する]] §A.3.2は、この技術的な円環そのものは社内・社外で変わらないとした上で、社外提供では円環の1周ごとに「契約」という法的な関門が追加されることを指摘する。すなわち技術サイクルの反復構造(2章・12章で既に確認済み)の「外側」に、契約サイクル(検証・PoC→実装→運用、図A-4)というもう一段の反復構造が社外提供では追加されることが分かる。技術的な反復と契約上の反復は独立した周期を持ちうる(例: 技術サイクルは数週間で1周しうるが契約は3か月〜1年単位)ため、両者の同期・非同期がプロジェクト管理上どう扱われるかは付録A単体からは分からない。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Appendix A 機械学習システムを外部に提供する]] §A.3.2, [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 2 機械学習システム設計の概要]] §2.3)
- **MVP/PoCによる仮説検証(仕事ではじめる機械学習ch.1、信頼性の高い機械学習ch.12)は「検証対象が正しいか」を問うのに対し、付録Aの「PoCゾンビ」は同じPoCという手段が組織間の契約・期待値管理の失敗モードに転化しうることを示す**: 既存の横断的知見は、両書のMVPが「仮説の筋の良し悪し」または「顧客ニーズの検証」という検証対象の違いはあれど、いずれも「本格投資の前に軽量な手段で検証する」という同じ手段に到達すると指摘していた。[[@2023__OReillyJapan__機械学習システムデザイン - Appendix A 機械学習システムを外部に提供する]] §A.3.8はこれと異なる角度からPoCを論じる。すなわちPoCという検証手段自体の妥当性ではなく、PoCの結果が受託企業から顧客企業の経営層へ伝達される過程で、評価条件(アーカイブ済みデータ)と実運用条件(バッチ連携データ)の差が捨象されて過度に楽観的な数値だけが伝わり、契約関係そのものを毀損する「PoCゾンビ」という失敗が生じうることを指摘する。これは単一組織内でのMVP検証(仕事ではじめる機械学習ch.1、信頼性の高い機械学習ch.12)には存在しない、複数組織間の情報伝達に起因する固有のリスクであり、「PoCの技術的妥当性」と「PoCの結果が組織間でどう伝達されるか」が独立した問題であることを示している。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Appendix A 機械学習システムを外部に提供する]] §A.3.8, [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2.3, [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 12 製品とMLの関わり方]] §12.3.3)
- **ch.1の10ステップは「1回のプロジェクト実行」を単位にした静的な流れとして描かれるが、ch.6はその最終ステップ(9. システムに組み込む/10. モニタリング)を反復的なサイクルへと組み替え直す**: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2は、課題設定からモニタリングまでの10ステップを4〜7(道具選び・前処理・モデル作成)の往復はあっても基本的には始点から終点へ向かう1回のプロジェクトの流れとして提示する。一方[[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 6 継続的トレーニングをするための機械学習基盤]] §6.1.3は、学習済みモデルが前提とする「入力データの分布・特徴量が学習時と予測時で一致し続ける」という仮定が長期運用では崩れることを示し、§6.3.4でモデルの継続的学習・デプロイのCI/CDという形でシステム組み込み以降の工程を繰り返し実行されるループとして再定義する。両ソースを並べると、ch.1の10ステップはプロジェクトの「初回実行」の見取り図であり、ch.6の機械学習基盤はその最終ステップ(システム組み込み・モニタリング)を「何度も再実行され続ける定常運用」へと引き延ばした続編であることが分かる。ただし、ch.1が言う4〜7の手戻り(モデル改善のための試行錯誤)と、ch.6の継続的トレーニング(データ変化に追従するための再学習)は、どちらも「モデルを作り直す」点で似るが引き金が異なる(前者は精度不足、後者はデータドリフト)ため、両者を同一のループとして扱ってよいかはch.6本文からは判断できない。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2, [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 6 継続的トレーニングをするための機械学習基盤]] §6.1.3, §6.3.4)
- **独立に書かれた2冊が、機械学習プロジェクトを「始点から終点への線形工程」ではなく「円環的な反復」として捉え直す点で収束している**: 『仕事ではじめる機械学習』ch.1の10ステップは基本的に始点(課題定式化)から終点(モニタリング)へ向かう1回の流れとして提示され、ch.6が最終ステップを継続的トレーニングのループへ引き延ばす(前掲の横断的知見)。一方 [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 12 製品とMLの関わり方]] §12.3 の[[ML製品開発フェーズ]](発見と定義→ビジネス目標設定→MVPの構築と検証→モデルおよび製品開発→開発→サポートおよびメンテナンス)は、この6フェーズ自体を最初から発見と定義に戻る円環(図12-1)として定義しており、「システムに組み込んで終わり」ではなく「サポートおよびメンテナンス」から「発見と定義」へ戻る反復を工程モデルの初期設計に明示的に組み込んでいる点が、ch.1+ch.6の組み合わせで事後的に導かれた構造と異なる。両者を並べると、「機械学習プロジェクトは一直線には進まない」という結論は複数の独立したソースで一致するが、その反復構造を「最初から円環として設計するか」「線形モデルの上に後付けで継続的ループを重ねるか」という表現の違いがある。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2, [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 6 継続的トレーニングをするための機械学習基盤]] §6.1.3, [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 12 製品とMLの関わり方]] §12.3, 図12-1)
- **MVPによる仮説検証は両書で独立に採用されているが、検証の対象が異なる**: 『仕事ではじめる機械学習』ch.1 §1.2.3のMVPは、集計ベース・ルールベースの簡単な実装で「立てた仮説の筋の良し悪し」を検証し、狙い自体が間違っている場合の手戻りコストを抑えることに重点を置く。『信頼性の高い機械学習』12章 §12.3.3のMVPも同様に、実際のMLモデルを使わないルールベースやヒューリスティックな方法で構築するとしているが、検証対象は「その機能が本当に顧客のニーズを解決するか」という少人数のユーザーによる実インタラクションの反応であり、モデル自体の精度よりも製品としての説得力の検証に重心がある。両書とも「本格的なML投資の前に非ML的な代替で仮説を検証する」という同じ手段に到達している点は一致する。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2.3, [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 12 製品とMLの関わり方]] §12.3.3)
- **3冊目(『機械学習システムデザイン』2章)は、独立した6ステップの円環モデルを提示し、ch.1+ch.6の「線形10ステップ+事後的な継続ループ」よりもML製品開発フェーズの6フェーズ円環に構造が近い**: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 2 機械学習システム設計の概要]] §2.3は、①プロジェクトスコープの決定→②データエンジニアリング→③機械学習モデルの開発→④デプロイ→⑤監視と継続学習→⑥ビジネス分析→①へ戻る、という6ステップを最初から円環として提示する(図2-2)。この6ステップは、[[ML製品開発フェーズ]](発見と定義→ビジネス目標設定→MVPの構築と検証→モデルおよび製品開発→開発→サポートおよびメンテナンス→発見と定義へ戻る、図12-1)とほぼ1対1で対応づけられる――⑥ビジネス分析が①プロジェクトスコープの決定に戻る構造は、サポートおよびメンテナンスが発見と定義に戻る構造と同型である。一方、『仕事ではじめる機械学習』ch.1の10ステップは前掲の横断的知見のとおり基本的に線形の見取り図であり、ch.6が最終ステップを事後的にループへ引き延ばして初めて円環になる。3冊を並べると、「機械学習プロジェクトは反復的である」という結論では一致しつつ、最初から円環としてモデル化する著者(2章、12章)と、線形工程の上に反復を後付けする著者(仕事ではじめる機械学習)という2つの記述スタイルに分かれる。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 2 機械学習システム設計の概要]] §2.3, 図2-2, [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 12 製品とMLの関わり方]] §12.3, 図12-1, [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2)
- **2章の13ステップの広告表示モデルの実例は、ch.1が抽象的に述べる「4〜7の手戻り」を具体的な引き金つきの物語として肉付けする**: 『仕事ではじめる機械学習』ch.1 §1.2は「4(道具選び)〜7(モデル作成)のステップを何度も往復する」とだけ述べ、往復を引き起こす具体的な原因は例示しない。一方 [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 2 機械学習システム設計の概要]] §2.3が示す広告表示モデルの①〜⑬のワークフローは、ラベル付けの誤り(⑤)・クラス不均衡(⑦)・モデルの陳腐化(⑨)・ビジネス指標の見直し(⑫、表示数からクリック率への変更)という4種類の異なる引き金それぞれについて、どのステップへ戻るかを具体的に描く。ch.1の「往復が常態である」という一般化された主張に対し、2章の実例は「何が往復のトリガーになるか」という下流の具体例を補い、両者を重ねると往復の引き金がラベル品質・データ分布・モデル鮮度・目的関数の妥当性という複数の独立した原因に分解できることが分かる。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 2 機械学習システム設計の概要]] §2.3, [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] §1.2)
## 未解決の問い
- ch.1の4〜7(道具選び・前処理・モデル作成)の手戻りと、ch.6の継続的トレーニング(データドリフトへの追従的な再学習)は、引き金(精度不足 対 データ変化)が異なる別種の反復である可能性が横断的知見から見えたが、実務上この2種類の反復は同じパイプライン・同じ再学習トリガーで扱われるのか、明確に別プロセスとして運用されるのか。
- MVPによる仮説検証の「筋の良し悪し」を判断する基準は、KPIの初期設定以外にどのような定量的な指標で補えるか。ch.1本文はMVPの成否判断を定性的にしか記述していない。
- 撤退ライン(具体的な目標性能)の決め方は分野・データ量・ビジネス影響度によって大きく変わりうるが、ch.1は「2ヶ月で90%の予測性能」という例示のみで一般的な決め方の方法論を示していない。他ソースでこの点を補える文献はあるか。
- 『信頼性の高い機械学習』12章の6フェーズ循環モデルと『仕事ではじめる機械学習』ch.1+ch.6の「線形10ステップ+事後的な継続ループ」は、実務上どちらがチームのメンタルモデルとして機能しやすいか。両書とも比較のための直接的な議論をしておらず、規模や組織成熟度による向き不向きは未検証。
- 『機械学習システムデザイン』2章の6ステップ円環とML製品開発フェーズの6フェーズ円環はほぼ1対1で対応づけられるように見えるが、両者の粒度が一致しない箇所(例: 2章の「②データエンジニアリング」に相当するステップがML製品開発フェーズのどのフェーズに厳密に対応するか)は未確認。書籍間で用語を揃えて対応表を作れるか。
- 2章の広告表示モデルの13ステップ実例が示す4種の往復トリガー(ラベル品質・データ分布・モデル鮮度・目的関数の妥当性)は、実務上それぞれ異なる検知手段(ラベル監査・データ分布監視・モデル性能監視・ビジネスレビュー)を要するはずだが、本ページの3ソースはいずれもこの検知手段の設計を体系的には論じていない。8章(データ分布のシフトと監視)・9章(継続学習とテスト)がこの点を補うか確認する必要がある。
- 技術サイクル(2章の6ステップ)と契約サイクル(付録Aの検証・PoC→実装→運用)が非同期に進行する場合、両者のずれをプロジェクト管理上どう吸収するのか。付録Aは両者を並置して示すのみで、統合的な管理手法までは踏み込んでいない。
- 「PoCゾンビ」を防ぐための評価条件と実運用条件の差の検証は、具体的にどのようなチェックリストや手順に落とし込めるか。付録Aは事例による注意喚起にとどまり、体系的な検証手順までは示していない。
## 関連
- 概念: [[技術的負債]] / [[継続的トレーニング]] / [[機械学習基盤]] / [[ML製品開発フェーズ]] / [[機械学習システムの4要件]] / [[機械学習の要否判断]]
- ソース: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] / [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 6 継続的トレーニングをするための機械学習基盤]] / [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 12 製品とMLの関わり方]] / [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 2 機械学習システム設計の概要]] / [[@2023__OReillyJapan__機械学習システムデザイン - Appendix A 機械学習システムを外部に提供する]]
- 実体: [[仕事ではじめる機械学習]] / [[宮川大輔]]
## 出典
- [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 1 機械学習プロジェクトのはじめ方]] — 有賀康顕, 『仕事ではじめる機械学習 第2版』第1章, オライリー・ジャパン, 2021, §1.2「機械学習プロジェクトの流れ」.
- [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 6 継続的トレーニングをするための機械学習基盤]] — 有賀康顕, 『仕事ではじめる機械学習 第2版』第6章, オライリー・ジャパン, 2021, §6.1.3, §6.3.4。ch.1のシステム組み込み以降のステップを継続的な運用サイクルへ引き延ばす。
- Cathy Chen ほか, 『信頼性の高い機械学習 ―SRE 原則を活用した MLOps』, オライリー・ジャパン, 2024, 12章 §12.3, §12.3.3, 図12-1。
- Chip Huyen 著, 江川崇・平山順一 訳, 『機械学習システムデザイン』, オライリー・ジャパン, 2023, 2章 §2.3, 図2-2。
- 宮川大輔, 「付録A 機械学習システムを外部に提供する」, 『機械学習システムデザイン』, オライリー・ジャパン, 2023, §A.2, §A.3.2, §A.3.8, §A.3.9。