Projection Pursuit Regression — ニューラルネットワークの先祖
「斜め方向を見る」というシンプルな発想が、加法モデルの限界を超え、 ニューラルネットワークの原型を生み出した。 1981年のFriedmanとStuetzleによる革新的なアイデアを一緒に解き明かしましょう。
加法モデルの壁 — 交互作用が見えない
第9章で学んだ一般化加法モデル(GAM)を思い出してください。 GAMは各変数に対して個別の非線形関数を当てはめ、それを足し合わせる手法です:
これは非常に強力な手法ですが、根本的な限界があります。変数間の相互作用(インタラクション)を捉えられないのです。
例えば、「気温が高い AND 湿度が高い」ときに体感温度が急上昇するような現象—— これは2変数の掛け合わせ(交互作用)です。GAMは「気温の効果」と「湿度の効果」を 別々に評価するため、このような組み合わせ効果を見落とします。

では、どうすれば交互作用を捉えられるでしょうか?
ヒントは「方向」にあります。GAMでは「各変数軸の方向」しか見ていません。 もし「斜め方向」を見られたら——X₁とX₂の組み合わせ方向を探索できたら、 交互作用的な構造を捉えられるはずです。 これがProjection Pursuit Regression(PPR)の出発点です。
リッジ関数 — 一方向だけに変化する面
PPRの核心は「リッジ関数(ridge function)」という概念です。 リッジ関数 $g(\omega^T X)$ は、ω 方向にしか変化しない p 次元の関数です。
例えば p=2(X₁ と X₂ の2変数)で、ω = (1/√2, 1/√2) とすると:
この V は「X₁ + X₂ の大きさ」だけを表す1次元の量です。 g(V) は V にだけ依存するので、(X₁, X₂) 平面上では 「X₁ + X₂ = 一定」の方向に沿って同じ値をとります。

視覚的には、ω 方向に山や谷が連なった「尾根(ridge)」のような3D形状になります—— だから「リッジ関数」と呼ばれます。
ω の方向を変えると、尾根の向きが変わります。 ω = (1, 0) なら X₁ 方向の尾根、ω = (0, 1) なら X₂ 方向の尾根。 そして ω = (1/√2, 1/√2) なら45度の対角線方向の尾根です。
$V_m = \omega_m^T X$ は 「入力ベクトル X を単位ベクトル ω_m に射影したスカラー値」です。 この1次元スカラー V_m に対して、柔軟な非線形関数 g_m を当てはめます。
これで加法モデルの限界を超えられます。斜め方向の尾根は 「X₁ と X₂ の合計が同じなら同じ値」という交互作用的な構造を表現できるのです。
PPRモデル — リッジ関数の重ね合わせ
Projection Pursuit Regression(PPR)のモデルは、 M個のリッジ関数の和です:
ここで:
- ω_m は m 番目の「射影方向」(単位ベクトル)
- V_m = ω_m^T X は X をその方向に射影したスカラー
- g_m は V_m に当てはまる柔軟な非線形関数

GAMとの違いを見てください。 GAMは「各変数 X_j の方向」に固定されていましたが、 PPRでは ω_m は学習によって決まる任意の方向 です。
なぜ「Projection Pursuit」と呼ぶのか? 「良い方向 ω_m を追跡(pursuit)して射影(projection)する」からです。 モデルは「どの方向に射影すれば最もデータをよく説明できるか」を自動で探し出します。
M が十分に大きければ、PPR は任意の連続関数を近似できます—— これを普遍的近似能力(universal approximator)と呼びます。 しかし、この汎用性には代償があります: 各入力 X_j が複雑に絡み合ってモデルに入るため、解釈が難しくなります。
例外的に解釈しやすいのが M=1 の場合です。 これは計量経済学でいう「シングルインデックスモデル」で、 「X の線形結合 ω^T X が 1次元に要約される」という構造です。
フィッティング — 交互に最適化する
PPRモデルを学習するには、ω_m(方向)と g_m(非線形関数)の 両方を同時に推定する必要があります。これは一筋縄ではいきません。
ESLが提案するアプローチは「交互最適化(alternating optimization)」です:

ステップ1: g を固定して ω を更新
ω_old が現在の推定値とします。g を ω_old の周りで線形近似(テイラー展開)すると:
これを代入すると、ω の更新は「重み付き最小二乗回帰」に帰着します。 重み $g'(\omega_{\text{old}}^T x_i)^2$ を使って、 新しい ω_new を求めます。これがGauss-Newton法の考え方です。
ステップ2: ω を固定して g を推定
ω が決まれば、$V_i = \omega^T x_i$ という 1次元の値が計算できます。あとは「V_i → y_i」の1次元回帰問題です。 平滑化スプラインや局所回帰など、任意の平滑化手法で g を推定します。
この2ステップを収束するまで繰り返します。 M > 1 の場合は、前向き段階的(forward stagewise)に ω_m, g_m のペアを 1つずつ追加していきます。
PPRとニューラルネットワーク — 同じ構造、異なるg
ここで驚くべき事実を見ましょう。 ニューラルネットワーク(1隠れ層)のモデルは:
これをPPRの形式と比べてみてください:
ほぼ同じ構造です!違いはただ1つ: PPRでは g_m はデータから柔軟に推定される非線形関数ですが、 ニューラルネットワークでは g_m がシグモイド関数 σ(α₀ + α · V) という固定の形の関数です。

より詳しく書くと:
PPRでは g_m を自由な形にするため、少数の項(M=5や10)で済みます。 一方、ニューラルネットワークはシグモイドという単純な関数を使うため、 多数のユニット(M=20や100)が必要です。
つまりPPRはNNの知的先祖であり、 NNはPPRの g_m を計算しやすいパラメトリック関数で置き換えたものです。 PPRが1981年に提案されたとき、計算量の問題で広まりませんでした。 しかしその考え方は、ニューラルネットワークという形で見事に復活したのです。
まとめ — 射影が広げる可能性
Projection Pursuit Regressionのエッセンスを整理しましょう。

PPRの3つの柱:
- 射影(Projection): 高次元入力 X を1次元スカラー $V = \omega^T X$ に圧縮
- 追跡(Pursuit): データを最もよく説明する方向 ω を探索
- 加法(Additive): 複数のリッジ関数を重ね合わせて複雑な関数を表現
GAMとの関係:GAMは各変数軸方向の固定した射影のみ。 PPRは任意の斜め方向も探索可能。 GAMはPPRの特殊ケース(ω が各変数の基底ベクトルに固定された場合)です。
NNとの関係:PPRの非線形関数 g_m をシグモイドで固定したものがニューラルネットワーク。
PPRは1981年のアイデアですが、その本質は現代のディープラーニングにも生きています。 「入力の線形結合を非線形変換して組み合わせる」という構造は、 現代のあらゆるニューラルネットワークの基礎です。
次のChapter 11.3では、このニューラルネットワークをどう学習させるか—— バックプロパゲーションと正則化の詳細へと進みます。