古典機械学習モデル史(時系列)

このページは、classical-ml-model/ 配下にある各モデルの歴史的背景を、できるだけやさしい言葉で整理するためのノートです。../history.md と同じく、細かな年表の厳密さより、研究の流れと考え方の移り変わりをつかむことを優先しています。

学習とは、過去データから規則性を見つけて、未知データにも使える予測器を作ることです。汎化とは、学習に使っていないデータでも性能が落ちにくい性質です。

全体の流れ(ざっくり)

古典機械学習領域の流れは、次のように重なります。① 人手ルールから統計的推定へ重心が移る② 線形モデルやロジスティック回帰で基準線を作る③ SVM のような強い分類器が実用化される④ 決定木とアンサンブルで精度と頑健性を上げる⑤ 特徴量設計が方法論として洗練される⑥ 検証手法が方法論として洗練される、という流れです。

1〜6 と各章の対応

  • 人手ルールから統計的推定へ重心が移る → 「戦後〜1980 年代頃:人手ルールから統計的推定へ」
  • 線形モデルやロジスティック回帰で基準線を作る → 「1980〜2000 年代頃:線形回帰とロジスティック回帰の展開」
  • SVM のような強い分類器が実用化される → 「1990〜2000 年代前半:支持ベクトル機械(SVM)の展開」
  • 決定木とアンサンブルで精度と頑健性を上げる → 「1990〜2010 年代頃:決定木とアンサンブルの展開」
  • 特徴量設計が方法論として洗練される → 「1980 年代〜:特徴量設計(Feature Engineering)の展開」
  • 検証手法が方法論として洗練される → 「1980 年代〜:評価と汎化の展開」

元の ①〜⑤ のまとめを、見出しの粒度に合わせて ①〜⑥ に分けています。②〜⑥ の各章見出しは、対応する classical-ml-model/ 配下の索引(index.md)へリンクしています。 は本ページ内の節のみです(専用サブフォルダはありません)。

戦後〜1980 年代頃:人手ルールから統計的推定へ

ざっくりいうと:判断知識の置き場所が、if-then の手書きルールから、データから学習したパラメータへ移る流れです。

何が変わったか(一言):判断の本体が、人が書いた文章のルールから、**過去の例に合わせて計算で決めた数値(パラメータ)**へ移りました。

「どの特徴がどれだけ効くかを推定」とは:次の三つをまとめた言い方です。

  1. 特徴量…予測の材料になる数値やカテゴリ(例:家賃なら「駅からの距離」「築年数」「平米数」)。
  2. どれだけ効くか…その材料が、答えを当てやすくする方向にどれくらい強く関わっているか(線形モデルなら、各特徴に掛ける重み・係数の大きさや符号として現れることが多い)。
  3. モデルが推定する…人が「距離は重要、築年数はそこそこ」と決め打ちするのではなく、ラベル付きの過去データ(例:実際の成約家賃とその条件)を使って、その重みを学習アルゴリズムが自動で求めること。

対比の例(家賃):人手ルールなら「駅徒歩10分より遠い物件は一律で家賃を10%下げる」のように、人が区切りと割合を決めます。統計的推定なら、成約データを何万件も見て、距離・築年数・平米などの組み合わせでいちばん当たりやすい式(や分類器)のパラメータをデータから決めます。

具体例(迷惑メール):手書きルールでは「特定語を含むならスパム」と書きます。統計的推定では、単語頻度、送信元、タイトル傾向などの特徴量からスパム確率を計算し、しきい値で判定します。

記号構造の重心がどこに移るか(短く):ルールベースでは、判断が if-then の規則列として明示され、推論エンジンが照合・発火します。古典機械学習の典型(表形式データ)では、判断の核が **数値化された特徴の束(特徴ベクトル)**と、そこから推定される パラメータへ移りやすく、実装では N×d の行列w^T x + b のような線形代数の記法がよく使われます。
ただし古典機械学習全体を「線形結合だけ」に還元できるわけではなく、SVM や決定木など、線形代数以外の発想も併立します。

N×d と「高次元」:データ行列はだいたい2次元(Nd 列)のままですが、特徴数 d が大きいと「高次元」と言われることがあります(混同しやすいので短く整理したノートは 特徴量設計(概要))。

注意点:自動だから常に正しい、ではありません。データの偏りや欠損があると、変な重みになります。また古典機械学習では、そもそも何を特徴量にするかは人が決めることが多いです。これは「ルールが不要になった」という意味ではありません。実務では、学習モデルの外側に業務ルールや安全ルールを置く設計が現在も一般的です。

なぜ移行が進んだか:現実のデータは例外が多く、手書きルールだけでは保守が難しくなります。統計的推定は、個別ルールを増やす代わりに、全体傾向を一つのモデルに集約できるため、更新と改善を繰り返しやすい利点がありました。

1980〜2000 年代頃:線形回帰とロジスティック回帰の展開

ざっくりいうと:入力と出力の関係を比較的単純な式で表し、解釈しやすく安定した予測を行う型です。

目安の年代:古典機械学習全体の中核として 1980 年代以降に実務利用が拡大。統計学の系譜自体はそれ以前から続いており、機械学習実装で再活用された形です。

何をしたかったか:まず強い基準線を置き、過学習を避けながら予測性能と説明可能性を両立したい、という狙いがありました。重みの符号や大きさから、変数の影響方向を読み取りやすい利点もあります。

どこでつまずいたか:非線形な関係が強い問題では、単純な線形境界だけでは表現力が不足します。特徴量変換や別モデルとの併用が必要になりやすいです。

1990〜2000 年代前半:支持ベクトル機械(SVM)の展開

ざっくりいうと:クラス境界の余裕(マージン)を最大化し、少数の重要点(サポートベクトル)で分類器を決める型です。

目安の年代:1990 年代から 2000 年代前半にかけて広く利用。Vladimir Vapnik らの統計学習理論とともに、古典機械学習の代表手法になりました。

何をしたかったか:高次元でも汎化しやすい分類器を作り、特徴量空間での分離性能を高めたい、という動機がありました。カーネル法により、線形でない境界も扱える点が強みです。

どこでつまずいたか:データ量が非常に大きい場合は学習コストが課題になります。カーネルやハイパーパラメータ選択の難しさも実務上の負担になりました。

1990〜2010 年代頃:決定木とアンサンブルの展開

ざっくりいうと:条件分岐の木を作って判断し、複数モデルを組み合わせて性能を上げる型です。

目安の年代:1990 年代後半から 2000 年代に普及。Leo Breiman のバギングとランダムフォレストは、頑健な実務手法として定着しました。

何をしたかったか:単体モデルのぶれを抑え、ノイズに強く、扱いやすい高精度モデルを作ることです。非線形関係や特徴量間の相互作用も比較的扱いやすい利点があります。

どこでつまずいたか:モデルが複雑になるほど解釈しにくくなります。推論速度、メモリ、特徴量重要度の読み方など、運用時の設計課題が残ります。

1980 年代〜:特徴量設計(Feature Engineering)の展開

ざっくりいうと:データから何を入力として切り出すかを人が設計し、モデル性能を引き上げる型です。

目安の年代:1980 年代以降ずっと実務の中心。古典機械学習では、モデル選択と同じくらい特徴量設計が重要でした。

何をしたかったか:業務知識を入力設計に反映し、少ないデータでも高い精度を出したい、という狙いです。前処理、欠損補完、正規化、カテゴリ変換などの工程が体系化されました。

補足として、スケール揃えは 標準化と正規化(スケーリング)、特徴が多すぎる局面の入口として 次元削減(PCA の入口) に分けて整理しています。

どこでつまずいたか:画像、音声、自然言語のような高次元データでは、人手特徴量の設計コストが急増します。このボトルネックが深層学習への移行理由の一つになりました。

1980 年代〜:評価と汎化(Evaluation and Generalization)の展開

ざっくりいうと:学習データだけでなく未知データで性能を測り、過学習を避けるための方法論です。

目安の年代:古典機械学習の普及とともに継続的に整理。交差検証、ホールドアウト検証、正則化、指標選定の実務が標準化しました。

何をしたかったか:手元データで高精度でも本番で崩れる問題を防ぎ、再現可能な評価でモデルを比較可能にすることです。

どこでつまずいたか:データ漏えい、時系列分割の不備、評価指標と業務目的のずれが起きると、見かけ性能だけ高いモデルが選ばれます。評価設計そのものが品質を左右します。

いまの見方(深層学習以降との関係)

古典機械学習は、深層学習の前段としてだけでなく、いまでも次の点で重要です。データ量が小さい問題で強い学習と推論コストが軽い説明しやすい、という実務上の利点があるからです。

現在の実務では、古典機械学習と深層学習を対立させるより、課題ごとに使い分ける設計が主流です。特徴量設計、評価設計、汎化の考え方は、現代のモデル運用にもそのまま引き継がれています。

関連