# 機械学習アルゴリズム選択の指針 ## 定義 機械学習アルゴリズム選択の指針とは、個々の手法の性能を暗記するのではなく、(1) 学習に使えるデータ数、(2) 予測対象がカテゴリ(離散)か数量(連続)か、(3) 正解ラベルの有無、(4) データが疎か密か、という少数の軸に還元してアルゴリズム候補を絞り込む方法論である。scikit-learnのチュートリアルにあるフローチャート(図2-1)がその代表例で、データ数が50サンプル未満なら「More Data!」、カテゴリ予測かつ正解ラベルがあれば分類、なければクラスタリング、数量予測ならサンプル数とデータの疎密で線形回帰系かカーネル法系(SVR)かに分岐する、という具体的な意思決定木として提示される(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 2 機械学習で何ができる?]] §2.1)。 ## 横断的知見 - **同じアルゴリズム(k-NN)を「文脈に応じた正当な選択肢の1つ」として扱うか「機械学習が不要になる反面教師」として扱うかは、想定する問題規模によって分かれる**: 本書はk-NNを分類アルゴリズムのカタログの1つとして淡々と紹介し、正規化さえ行えば手軽に試せる実用的な選択肢として位置づける(§2.2.5)。一方、[[最近傍法]]の横断的知見が既に指摘するように、[[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 2 [入門]機械学習]]は1最近傍法を「丸暗記(memorization)」と呼び、画像のような高次元データでは丸暗記が組合せ論的に不可能であるためこそ真の汎化能力を持つ機械学習(深層学習)が必要になる、という反面教師として同じアルゴリズムを扱う。この対比は、本書が特徴量エンジニアリング前提の中規模・低次元の実務データを想定するのに対し、ディープラーニング入門書が画像等の高次元生データを想定するという、選択指針が暗黙に置く問題規模の前提の違いを表す。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 2 機械学習で何ができる?]] §2.2.5, [[最近傍法]]) - **L1/L2正則化という同一の数学的概念が、深層学習の文脈では「Weight Decay」、古典的な線形回帰の文脈では「Ridge回帰・Lasso回帰・Elastic Net」という別々の名前で流通しており、選択指針はこの命名の違いを橋渡しする**: [[正則化]]は[[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 2 [入門]機械学習]]から、正則化項$R(\theta)$としてのL2ノルム・L1ノルムの一般形と、ニューラルネットワークにおけるWeight Decay(L2正則化の実装名)を既に扱っている。本書は同じL1/L2の区別を線形回帰に適用し、L2正則化を使った線形回帰をRidge回帰、L1正則化を使った線形回帰をLasso回帰、両方を混ぜたものをElastic Netと呼ぶという古典的統計的機械学習の命名規約を与える。さらに本書はL1正則化について「重みが多くの$i$で0となるため、特徴選択の効果がある」と明示しており、これは[[正則化]]が扱うベイズ的解釈(ラプラス事前分布)やWeight Decayの議論には無い、疎な特徴選択という具体的な実務上の帰結を付け加える。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 2 機械学習で何ができる?]] §2.2.2.3, [[正則化]]) - **本書の選択指針は、ESL系conceptページ群が重視する理論的性質(バイアス-バリアンス、脱相関、正則化パス)に加えて、解釈性・学習/推論速度・大規模データへのスケーラビリティという実務運用の軸を明示的に加える**: [[決定木]]・[[サポートベクターマシン]]([[サポートベクターマシン]]の横断的知見参照)は、ESL/MMLに基づき決定木の分散削減メカニズムやSVMのカーネル選択の理論的正当化を精緻に論じるが、どちらもデータ規模に応じた計算コストの実務的な比較には深く立ち入らない。本書は同じSVMについて「線形カーネル以外は教師データの数が増えると計算時間がかかるので、大規模データに対してはあまり使われなくなっている」(§2.2.3)、決定木系について「XGBoost・LightGBMという高速なライブラリの登場で大規模データも処理しやすくなった」(§2.2.6.4)と、理論的性質そのものではなく採用可否を左右する運用上の制約を選択軸として明示する。理論的な性質の解明(ESL系)と、それを踏まえた運用上の採否判断(本書)は補完関係にある。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 2 機械学習で何ができる?]] §2.2.3, §2.2.6.4, [[決定木]], [[サポートベクターマシン]]) - **本ページが扱う「データ数・タスクの型・正解ラベルの有無」というアルゴリズム選択のフローチャート的な軸に対し、『機械学習システムデザイン』6章は「アルゴリズムをどう選ぶかという手続き」そのものを6つのメタレベルの指針として与える点で補完関係にある**: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 2 機械学習で何ができる?]]のフローチャート(図2-1)は「このデータ・このタスクにはどのアルゴリズムが候補になるか」という静的な絞り込みを与えるのに対し、[[@2023__OReillyJapan__機械学習システムデザイン - Chapter 6 モデル開発とオフライン評価]] §6.1.1.1は「最先端の罠を避ける」「最もシンプルなモデルから始める」「モデルの選択から人間のバイアスを取り除く」「現在と将来のパフォーマンスを評価する」「トレードオフを評価する」「モデルの前提を理解する」という、候補が絞り込まれた後に実際にどう比較・意思決定するかの手続き的な指針を与える。前者が「候補集合をどう作るか」、後者が「候補集合からどう選ぶか」を扱っており、両者を組み合わせて初めてアルゴリズム選択の全体プロセスをカバーできる。(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 2 機械学習で何ができる?]] §2.1, [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 6 モデル開発とオフライン評価]] §6.1.1.1) - **「モデルの選択から人間のバイアスを取り除く」という6章の指摘は、本ページが既に蓄積してきた「解釈性・速度・スケーラビリティという実務軸」の運用面での落とし穴を補う**: 本ページの既存の横断的知見は、本書がSVM・決定木系アルゴリズムについて「大規模データでの計算コスト」という運用上の制約を選択軸に加えることを指摘してきたが、これは「正しい軸で比較すれば正しい結論が出る」という前提に立つ。6章§6.1.1.1はこれとは独立に、同じ実験条件(データ・ハイパーパラメーター探索の回数)で比較しなければ、どんなに適切な軸を選んでも人によるバイアス(得意なアーキテクチャに実験時間を偏らせる)で結論が歪みうると指摘する。すなわち6章は、本ページが蓄積してきた「何を比較軸にするか」という論点に対し、「同じ軸で比較していても実験プロセス自体が公平でなければ結論は信用できない」という、比較の実施方法に関わる別次元の注意点を追加する。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 6 モデル開発とオフライン評価]] §6.1.1.1) - **6章が列挙するモデルの前提(予測の前提・IID・平滑さ・多項式時間で計算可能・境界・条件付き独立性・正規分布)は、本ページと[[決定境界]]・[[サポートベクターマシン]]が個別に扱ってきた前提を、モデル横断的な分類軸として統合し直す**: 本ページは決定木・SVMの運用上の制約を、[[決定境界]]は線形分類器が決定境界の線形性を前提とすることを、それぞれ個別のconceptとして蓄積してきた。6章§6.1.1.1はこれらを「境界の前提(線形分類器)」「条件付き独立性の前提(ナイーブベイズ)」のように統一的な前提の一覧として再整理し、モデル選択時に「自分のデータがどの前提を満たすか」を確認するという横断的なチェックリストを提供する。個別モデルの前提を蓄積してきた既存conceptページ群に対し、6章はそれらを串刺しにする上位の分類法を追加する。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 6 モデル開発とオフライン評価]] §6.1.1.1, [[決定境界]]) ## 未解決の問い - 本書のフローチャート(図2-1)はscikit-learnの実装ラインナップに強く紐づいており、深層学習(表現学習)やスタッキングのような発展的なアンサンブル手法をカバーしていない。これらを含めた選択指針にはどのような追加の軸が必要か。 - 「データが疎か密か」という軸は本書ではSVMのカーネル選択にのみ明示的に使われている(§2.2.3.3)が、ロジスティック回帰のL1/L2正則化選択や決定木の特徴選択にも同じ軸が適用できるかは本章では検証されていない。 - 本書が加える解釈性・速度・スケーラビリティという実務軸と、ESL系conceptページが蓄積してきたバイアス-バリアンス・正則化パスという理論軸を、単一の意思決定フレームワークにどう統合できるかは未整理。 - 6章が挙げる「モデルの前提」の一覧(予測の前提・IID・平滑さ・多項式時間で計算可能・境界・条件付き独立性・正規分布)は「網羅的な一覧ではなくただの一例」と本書自身が断っている。決定木・アンサンブル学習など本ページが既に扱うモデル群のそれぞれがどの前提に該当するかの対応表は、どちらのソースにも整理されていない。 - 「モデルの選択から人間のバイアスを取り除く」ために「同数の実験を実施する」という6章の指針は、実務上どの程度の実験回数があれば十分公平とみなせるかという定量的な基準を与えていない。統計的検定(有意差検定)との接続は本ソースでは扱われていない。 ## 関連 - ソース: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 2 機械学習で何ができる?]] / [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 6 モデル開発とオフライン評価]](モデル選択の6つの指針、モデルの前提の一覧) - 概念: [[決定境界]] / [[正則化]] / [[最近傍法]] / [[サポートベクターマシン]] / [[決定木]] / [[勾配ブースティング]] / [[アンサンブル学習]] / [[教師あり学習]] / [[教師なし学習]] / [[モデル評価のベースライン]] ## 出典 - 有賀康顕・中山心太・西林孝, 『仕事ではじめる機械学習 第2版』, オライリー・ジャパン, 2021, 第2章, §2.1. - Chip Huyen 著, 江川崇・平山順一 訳, 『機械学習システムデザイン』, オライリー・ジャパン, 2023, 6章, §6.1.1.1.