コンテンツにスキップ

線形回帰と最小二乗法:正規方程式を直交射影として読む

対象読者: 学部 1 年の線形代数(行列の積・転置・一次独立・ランク)と偏微分を学び、本テーマ第 1 章の経験リスク最小化の考え方を読んだ人。直交射影は本文で説明します。

前提となる記事:なぜ機械学習に数学が必要か:学習を「損失の最小化」に書き直す

生 Markdown

測定した点が何十個もあると、それらをすべて通る直線は引けません。そこで「各点とのずれを二乗して合計した値が一番小さい直線」を選ぶのが最小二乗法です。この記事では、その直線が連立一次方程式を解くだけで求まること、そして計算の意味が「平面に垂線を下ろす」という図で見えてくることを説明します。以下の要点は内容を数学の言葉で並べたものなので、分からない言葉があっても、後の節で順に説明します。

  • 線形回帰の学習とは、観測ベクトル y\boldsymbol{y} に対して y≈Xw\boldsymbol{y} \approx X\boldsymbol{w} をできるだけよく満たす w\boldsymbol{w} を探すことです。切片 bb は、計画行列 XX に全成分 11 の列を追加することで重みの一部として吸収できます。
  • 二乗和誤差 L(w)=∥y−Xw∥2L(\boldsymbol{w}) = \lVert \boldsymbol{y} - X\boldsymbol{w}\rVert^2 の最小化は、微分を経由しなくても、正規方程式 XTXw=XTyX^{\mathsf{T}}X\boldsymbol{w} = X^{\mathsf{T}}\boldsymbol{y} を解くことと完全に同値です(定理 3.3)。学習が連立一次方程式に化けるところが、このモデルの要点です。
  • 正規方程式の解 w^\hat{\boldsymbol{w}} が与える予測 Xw^X\hat{\boldsymbol{w}} は、y\boldsymbol{y} の列空間 Im⁡X\operatorname{Im} X(XX の列の一次結合全体)への直交射影(垂線を下ろして得られる点)にほかなりません(定理 4.2)。残差はすべての説明変数と直交します。
  • 正規方程式は XX や y\boldsymbol{y} が何であっても必ず解を持ちます。解が一意になるのは rank⁡X=p\operatorname{rank} X = p(列がすべて一次独立)のときで、そのとき w^=(XTX)−1XTy\hat{\boldsymbol{w}} = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y} です。ランクが落ちても予測 Xw^X\hat{\boldsymbol{w}} のほうは一意に決まります。
  • 実装では (XTX)−1(X^{\mathsf{T}}X)^{-1} を陽に計算しないでください。κ2(XTX)=κ2(X)2\kappa_2(X^{\mathsf{T}}X) = \kappa_2(X)^2 と条件数(計算の誤差の増えやすさの目安)が二乗されるため、QR 分解や特異値分解(どちらも行列を扱いやすい行列の積に分ける方法)を経由するほうが安全です。

中学校で習ったとおり、平面上の相異なる 2 点を通る直線はただ 1 本に決まります。では、測定誤差を含む 100 点が与えられたとき、それらを「通る」直線はどれでしょうか。答えは「1 本もない」です。未知数は傾きと切片の 2 個しかないのに、方程式は 100 本あります。こうした過剰決定系(方程式の数が未知数の数より多い連立一次方程式)は、普通の意味では解を持ちません。

この状況は、19 世紀初頭の天文学と測地学ではごく日常的なものでした。惑星や彗星の軌道要素は 6 個ですが、観測は何十回も行われます。当時の実務家は、観測をいくつか選んで方程式を立てたり、観測を組にして平均したりと、場当たり的な処理をしていました。「すべての観測を公平に使い、しかも一意な答えを返す手続き」が求められていたのです。

その手続きが最小二乗法です。1801 年 1 月 1 日にジュゼッペ・ピアッツィが小惑星ケレスを発見しましたが、41 日間の観測ののちに太陽の方向へ入って見失われました。当時 24 歳のガウスは、わずかな観測データから軌道を計算して再発見の位置を予告し、同じ年の暮れに天文学者たちがその予告どおりの場所でケレスを再発見します。この事件は最小二乗法の威力を広く知らしめました。方法自体は 1805 年にルジャンドルが著書『Nouvelles méthodes pour la détermination des orbites des comètes』の付録で “méthode des moindres carrés” として公表し、ガウスは 1809 年の『Theoria Motus』で「自分は 1795 年から使っていた」と主張して、有名な優先権論争になりました。

誤差の測り方は二乗和だけではありません。絶対値の和 ∑i∣yi−y^i∣\sum_i |y_i - \hat{y}_i| でも、最大誤差 max⁡i∣yi−y^i∣\max_i |y_i - \hat{y}_i| でもよいはずです。それでも二乗和が標準になったのには、はっきりした理由があります。

  1. 微分できます。 絶対値は原点で微分できませんが、二乗は至るところ滑らかで、しかも w\boldsymbol{w} の二次式です。二次式の停留点を求める条件は一次方程式になります。
  2. 幾何と直結します。 二乗和はユークリッドノルムの二乗、つまり内積から来る距離です。したがって「誤差を最小にする」は「部分空間へ垂線を下ろす」と同じ意味になり、ピタゴラスの定理がそのまま使えます(定理 4.2)。
  3. 確率的な意味があります。 観測ノイズが独立同分布の正規分布に従うと仮定すると、対数尤度の最大化が二乗和誤差の最小化とぴったり一致します。これはガウス自身の正当化であり、詳しくは 確率論とベイズ統計の役割 の ガウス雑音の下で最尤推定は最小二乗法(命題 3.3)[確率論とベイズ統計] で扱います。

一方で弱点もあります。二乗は大きな誤差をさらに強調するので、外れ値 1 点が解を大きく動かします。この弱点への対処(ロバスト回帰、正則化)は本記事の後半と演習で触れます。

なぜ機械学習に数学が必要か? で見たとおり、機械学習のアルゴリズムは数学の言葉で書かれると急に見通しがよくなります。線形回帰は、教師あり学習のなかで学習問題が閉じた式で解ける唯一といってよいモデルです。ロジスティック回帰やニューラルネットワークでは、損失関数が w\boldsymbol{w} の二次式でなくなるため閉じた解が消え、勾配降下法 のような反復解法に頼ることになります。だからこそ、閉じた解が存在するこの場合に「何が起きているのか」を完全に理解しておく価値があります。ここで現れる直交射影・ランク条件・条件数という三つ組は、主成分分析 にも ロジスティック回帰 の反復重み付き最小二乗にも、そのまま持ち越されます。

2. 準備:データを行列に並べる

Section titled “2. 準備:データを行列に並べる”

データは nn 組の観測 (xi,yi)(\boldsymbol{x}_i, y_i)(i=1,…,ni = 1, \dots, n)とします。xi∈Rd\boldsymbol{x}_i \in \mathbb{R}^d は説明変数(特徴量)のベクトル、yi∈Ry_i \in \mathbb{R} は目的変数です。予測したい関係は

y^=w1x1+w2x2+⋯+wdxd+b\hat{y} = w_1 x_1 + w_2 x_2 + \cdots + w_d x_d + b

という形をしています。bb は切片(バイアス項)です。この d+1d+1 個の未知数をまとめて扱うために、次の記法を用意します。

定義 2.1(計画行列と線形回帰モデル)↗

nn 個の観測 (xi,yi)(\boldsymbol{x}_i, y_i)、xi=(xi1,…,xid)T∈Rd\boldsymbol{x}_i = (x_{i1}, \dots, x_{id})^{\mathsf{T}} \in \mathbb{R}^d、yi∈Ry_i \in \mathbb{R} に対し、p=d+1p = d + 1 とおき

X=(1x11⋯x1d1x21⋯x2d⋮⋮⋮1xn1⋯xnd)∈Rn×p,y=(y1y2⋮yn)∈RnX = \begin{pmatrix} 1 & x_{11} & \cdots & x_{1d} \\ 1 & x_{21} & \cdots & x_{2d} \\ \vdots & \vdots & & \vdots \\ 1 & x_{n1} & \cdots & x_{nd} \end{pmatrix} \in \mathbb{R}^{n \times p}, \qquad \boldsymbol{y} = \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{pmatrix} \in \mathbb{R}^{n}

とする。XX を計画行列(design matrix)という。第 1 列は全成分が 11 のベクトル 1\boldsymbol{1} である。パラメータを w=(b,w1,…,wd)T∈Rp\boldsymbol{w} = (b, w_1, \dots, w_d)^{\mathsf{T}} \in \mathbb{R}^{p} とすると、nn 個の予測値はまとめて Xw∈RnX\boldsymbol{w} \in \mathbb{R}^n と書ける。これを線形回帰モデルという。

第 1 列に 1\boldsymbol{1} を置いたことで、切片は「定数 11 という特徴量に対する重み」になりました。以後、切片を特別扱いする必要はありません。XX の第 ii 行は ii 番目のデータ、第 jj 列は jj 番目の特徴量が全データにわたって並んだベクトルです。行はデータ、列は特徴量という対応を、以下ずっと使います。

ここで「線形」の意味を正確にしておきます。線形回帰の「線形」は、説明変数についてではなくパラメータ w\boldsymbol{w} について線形という意味です。この区別が、線形回帰の応用範囲を大きく広げます。

定義 2.2(特徴写像による拡張)↗

写像 φ ⁣:Rd→Rp\varphi \colon \mathbb{R}^d \to \mathbb{R}^{p} を任意に固定し、計画行列の第 ii 行を φ(xi)T\varphi(\boldsymbol{x}_i)^{\mathsf{T}} で置き換えたものを Φ∈Rn×p\Phi \in \mathbb{R}^{n \times p} とする。モデル y^=wTφ(x)\hat{y} = \boldsymbol{w}^{\mathsf{T}}\varphi(\boldsymbol{x}) を、特徴写像 φ\varphi による線形モデルという。φ\varphi がどれほど非線形でも、w\boldsymbol{w} に関しては線形である。

たとえば d=1d = 1 で φ(x)=(1,x,x2,x3)T\varphi(x) = (1, x, x^2, x^3)^{\mathsf{T}} とすれば 3 次多項式の当てはめになりますが、未知数 w\boldsymbol{w} については依然として線形です。したがって以下で作る道具立ては、そのまま多項式回帰・三角関数展開・動径基底関数モデルに適用できます。実際の数値例は 例 6.2 で見ます。

n>pn > p のとき、Xw=yX\boldsymbol{w} = \boldsymbol{y} をぴったり満たす w\boldsymbol{w} は一般に存在しません。そこで「ぴったり」をあきらめ、ずれの大きさを最小にする w\boldsymbol{w} を選びます。

定義 3.1(最小二乗問題)↗

X∈Rn×pX \in \mathbb{R}^{n \times p}、y∈Rn\boldsymbol{y} \in \mathbb{R}^n に対し、残差ベクトルを r(w)=y−Xw\boldsymbol{r}(\boldsymbol{w}) = \boldsymbol{y} - X\boldsymbol{w}、二乗和誤差(残差平方和)を

L(w)=∥y−Xw∥2=∑i=1n(yi−(Xw)i)2L(\boldsymbol{w}) = \lVert \boldsymbol{y} - X\boldsymbol{w}\rVert^2 = \sum_{i=1}^{n} \bigl(y_i - (X\boldsymbol{w})_i\bigr)^2

と定める。LL を Rp\mathbb{R}^p 全体で最小にする w\boldsymbol{w}、すなわち

w^∈arg min⁡w∈Rp∥y−Xw∥2\hat{\boldsymbol{w}} \in \operatorname*{arg\,min}_{\boldsymbol{w} \in \mathbb{R}^{p}} \lVert \boldsymbol{y} - X\boldsymbol{w}\rVert^2

を満たす w^\hat{\boldsymbol{w}} を最小二乗解という。

LL は w\boldsymbol{w} の各成分についての二次式であり、下に有界(つねに L≥0L \ge 0)です。以下で見るように、最小値は必ず達成されます。しかし最小点が 1 つとは限りません。この「存在するが一意とは限らない」という構造を正確に捉えることが、この節と次節の目標です。

まず、あとで使う微分公式を独立に証明しておきます。ここでの偏微分は多変数の意味ですから、必要なら 多変数関数の微分と偏微分 の 偏微分の定義(定義 3.1)[多変数関数の微分と偏微分] を復習してください。

補題 3.2(二次形式の勾配)✓

A∈Rp×pA \in \mathbb{R}^{p \times p} を対称行列(AT=AA^{\mathsf{T}} = A)、b∈Rp\boldsymbol{b} \in \mathbb{R}^p、c∈Rc \in \mathbb{R} とし、関数 f ⁣:Rp→Rf \colon \mathbb{R}^p \to \mathbb{R} を

f(w)=wTAw−2bTw+cf(\boldsymbol{w}) = \boldsymbol{w}^{\mathsf{T}} A \boldsymbol{w} - 2\boldsymbol{b}^{\mathsf{T}}\boldsymbol{w} + c

で定める。このとき ff は C∞C^{\infty} 級であり、勾配とヘッセ行列は

∇f(w)=2Aw−2b,∇2f(w)=2A\nabla f(\boldsymbol{w}) = 2A\boldsymbol{w} - 2\boldsymbol{b}, \qquad \nabla^2 f(\boldsymbol{w}) = 2A

で与えられる。

証明(補題 3.2)

成分で書くと f(w)=∑i=1p∑j=1paijwiwj−2∑i=1pbiwi+cf(\boldsymbol{w}) = \sum_{i=1}^{p}\sum_{j=1}^{p} a_{ij} w_i w_j - 2\sum_{i=1}^{p} b_i w_i + c であり、これは w1,…,wpw_1, \dots, w_p の多項式ですから C∞C^{\infty} 級です。第 kk 成分で偏微分します。積 wiwjw_i w_j が wkw_k を含むのは i=ki = k の場合と j=kj = k の場合で、i=j=ki = j = k の項 akkwk2a_{kk}w_k^2 は微分すると 2akkwk2a_{kk}w_k となり、両方の数え方の和と一致します。したがって

∂f∂wk(w)=∑j=1pakjwj+∑i=1paikwi−2bk=(Aw)k+(ATw)k−2bk\frac{\partial f}{\partial w_k}(\boldsymbol{w}) = \sum_{j=1}^{p} a_{kj} w_j + \sum_{i=1}^{p} a_{ik} w_i - 2 b_k = (A\boldsymbol{w})_k + (A^{\mathsf{T}}\boldsymbol{w})_k - 2b_k

です。仮定 AT=AA^{\mathsf{T}} = A より右辺は 2(Aw)k−2bk2(A\boldsymbol{w})_k - 2b_k となり、第一式が出ます。さらにこれを wlw_l で偏微分すると ∂2f/∂wl∂wk=2akl\partial^2 f / \partial w_l \partial w_k = 2a_{kl} であり、ヘッセ行列は 2A2A です。

いよいよ中心となる定理です。微分を一切使わずに証明できることに注意してください。証明が代数的な恒等式だけで済むので、最小値であること(停留点にすぎないのではないこと)が同時に示せます。

定理 3.3(正規方程式)✓

X∈Rn×pX \in \mathbb{R}^{n\times p}、y∈Rn\boldsymbol{y} \in \mathbb{R}^n とし、L(w)=∥y−Xw∥2L(\boldsymbol{w}) = \lVert \boldsymbol{y} - X\boldsymbol{w}\rVert^2 とする。w^∈Rp\hat{\boldsymbol{w}} \in \mathbb{R}^p について、次の 2 条件は同値である。

  1. w^\hat{\boldsymbol{w}} は LL を Rp\mathbb{R}^p 上で最小にする、すなわちすべての w∈Rp\boldsymbol{w} \in \mathbb{R}^p に対し L(w^)≤L(w)L(\hat{\boldsymbol{w}}) \le L(\boldsymbol{w})。
  2. w^\hat{\boldsymbol{w}} は正規方程式 XTXw^=XTyX^{\mathsf{T}}X\hat{\boldsymbol{w}} = X^{\mathsf{T}}\boldsymbol{y} を満たす。

さらにこのとき、任意の w∈Rp\boldsymbol{w} \in \mathbb{R}^p に対して恒等式

L(w)=L(w^)+∥X(w−w^)∥2L(\boldsymbol{w}) = L(\hat{\boldsymbol{w}}) + \lVert X(\boldsymbol{w} - \hat{\boldsymbol{w}})\rVert^2

が成り立ち、最小二乗解の全体は w^+Ker⁡X={w^+v:Xv=0}\hat{\boldsymbol{w}} + \operatorname{Ker} X = \{\hat{\boldsymbol{w}} + \boldsymbol{v} : X\boldsymbol{v} = \boldsymbol{0}\} と一致する。

証明の方針は次のとおりです。最小点の候補 w^\hat{\boldsymbol{w}} から v\boldsymbol{v} だけ動かしたときの誤差の変化を、v\boldsymbol{v} の一次の項と二次の項に分けて書き出します。一次の項の係数が 0\boldsymbol{0} なら二次の項(00 以上)だけが残るので最小点です。0\boldsymbol{0} でなければ、その係数の向きに十分小さく動くと一次の項が二次の項に勝って誤差が減る、というのが後半で tgt\boldsymbol{g} という動かし方を選ぶ理由です。

証明(定理 3.3)

任意の w^,v∈Rp\hat{\boldsymbol{w}}, \boldsymbol{v} \in \mathbb{R}^p に対し、r^=y−Xw^\hat{\boldsymbol{r}} = \boldsymbol{y} - X\hat{\boldsymbol{w}} とおいて L(w^+v)L(\hat{\boldsymbol{w}} + \boldsymbol{v}) を展開します。ノルムの二乗は内積なので

L(w^+v)=∥r^−Xv∥2=⟨r^−Xv, r^−Xv⟩=∥r^∥2−2⟨r^, Xv⟩+∥Xv∥2\begin{aligned} L(\hat{\boldsymbol{w}} + \boldsymbol{v}) &= \lVert \hat{\boldsymbol{r}} - X\boldsymbol{v}\rVert^2 \\ &= \langle \hat{\boldsymbol{r}} - X\boldsymbol{v},\ \hat{\boldsymbol{r}} - X\boldsymbol{v}\rangle \\ &= \lVert \hat{\boldsymbol{r}}\rVert^2 - 2\langle \hat{\boldsymbol{r}},\ X\boldsymbol{v}\rangle + \lVert X\boldsymbol{v}\rVert^2 \end{aligned}

となります。ここで中央の項は転置の性質 ⟨u,Av⟩=⟨ATu,v⟩\langle \boldsymbol{u}, A\boldsymbol{v}\rangle = \langle A^{\mathsf{T}}\boldsymbol{u}, \boldsymbol{v}\rangle により

⟨r^, Xv⟩=⟨XTr^, v⟩=vT(XTy−XTXw^)\langle \hat{\boldsymbol{r}},\ X\boldsymbol{v}\rangle = \langle X^{\mathsf{T}}\hat{\boldsymbol{r}},\ \boldsymbol{v}\rangle = \boldsymbol{v}^{\mathsf{T}}\bigl(X^{\mathsf{T}}\boldsymbol{y} - X^{\mathsf{T}}X\hat{\boldsymbol{w}}\bigr)

と書けます。そこで g=XTy−XTXw^=XTr^\boldsymbol{g} = X^{\mathsf{T}}\boldsymbol{y} - X^{\mathsf{T}}X\hat{\boldsymbol{w}} = X^{\mathsf{T}}\hat{\boldsymbol{r}} とおくと、すべての v\boldsymbol{v} について

L(w^+v)=L(w^)−2vTg+∥Xv∥2L(\hat{\boldsymbol{w}} + \boldsymbol{v}) = L(\hat{\boldsymbol{w}}) - 2\boldsymbol{v}^{\mathsf{T}}\boldsymbol{g} + \lVert X\boldsymbol{v}\rVert^2

が成り立ちます。この 1 本の恒等式から両方向が出ます。

(2) ⇒\Rightarrow (1)。 正規方程式が成り立てば g=0\boldsymbol{g} = \boldsymbol{0} ですから、上の恒等式は L(w^+v)=L(w^)+∥Xv∥2L(\hat{\boldsymbol{w}} + \boldsymbol{v}) = L(\hat{\boldsymbol{w}}) + \lVert X\boldsymbol{v}\rVert^2 になります。∥Xv∥2≥0\lVert X\boldsymbol{v}\rVert^2 \ge 0 なので、任意の v\boldsymbol{v} に対し L(w^+v)≥L(w^)L(\hat{\boldsymbol{w}} + \boldsymbol{v}) \ge L(\hat{\boldsymbol{w}})、すなわち w^\hat{\boldsymbol{w}} は最小点です。w=w^+v\boldsymbol{w} = \hat{\boldsymbol{w}} + \boldsymbol{v} と置き直せば主張の恒等式そのものになります。また等号成立は ∥Xv∥=0\lVert X\boldsymbol{v}\rVert = 0、つまり Xv=0X\boldsymbol{v} = \boldsymbol{0} と同値なので、最小点の全体は w^+Ker⁡X\hat{\boldsymbol{w}} + \operatorname{Ker} X です。

(1) ⇒\Rightarrow (2)。 対偶を示します。g≠0\boldsymbol{g} \ne \boldsymbol{0} と仮定し、v=tg\boldsymbol{v} = t\boldsymbol{g}(t>0t > 0)を代入すると

L(w^+tg)−L(w^)=−2t∥g∥2+t2∥Xg∥2=t(t∥Xg∥2−2∥g∥2)L(\hat{\boldsymbol{w}} + t\boldsymbol{g}) - L(\hat{\boldsymbol{w}}) = -2t\lVert \boldsymbol{g}\rVert^2 + t^2 \lVert X\boldsymbol{g}\rVert^2 = t\bigl(t\lVert X\boldsymbol{g}\rVert^2 - 2\lVert \boldsymbol{g}\rVert^2\bigr)

です。Xg=0X\boldsymbol{g} = \boldsymbol{0} ならば右辺は任意の t>0t > 0 に対し −2t∥g∥2<0-2t\lVert\boldsymbol{g}\rVert^2 < 0 です。Xg≠0X\boldsymbol{g} \ne \boldsymbol{0} ならば、たとえば t=∥g∥2/∥Xg∥2>0t = \lVert \boldsymbol{g}\rVert^2 / \lVert X\boldsymbol{g}\rVert^2 > 0 と取れば右辺は −∥g∥4/∥Xg∥2<0-\lVert\boldsymbol{g}\rVert^4/\lVert X\boldsymbol{g}\rVert^2 < 0 です。いずれの場合も L(w^+tg)<L(w^)L(\hat{\boldsymbol{w}} + t\boldsymbol{g}) < L(\hat{\boldsymbol{w}}) となり、w^\hat{\boldsymbol{w}} は最小点ではありません。したがって最小点なら g=0\boldsymbol{g} = \boldsymbol{0}、すなわち正規方程式が成り立ちます。

正規方程式 XTXw=XTyX^{\mathsf{T}}X\boldsymbol{w} = X^{\mathsf{T}}\boldsymbol{y} は pp 元の連立一次方程式です。nn がどれほど大きくても(データが何億件でも)、解くべき方程式の大きさは特徴量の個数 pp だけで決まります。「学習」という言葉のうしろで実際に起きているのは、p×pp \times p の連立一次方程式を解くことなのです。

注意 3.4(偏微分による導出)

微分を使う導き方も確認しておきます。展開すると

L(w)=∥y∥2−2yTXw+wTXTXwL(\boldsymbol{w}) = \lVert \boldsymbol{y}\rVert^2 - 2\boldsymbol{y}^{\mathsf{T}}X\boldsymbol{w} + \boldsymbol{w}^{\mathsf{T}}X^{\mathsf{T}}X\boldsymbol{w}

であり、A=XTXA = X^{\mathsf{T}}X((XTX)T=XTX(X^{\mathsf{T}}X)^{\mathsf{T}} = X^{\mathsf{T}}X だから対称)、b=XTy\boldsymbol{b} = X^{\mathsf{T}}\boldsymbol{y}、c=∥y∥2c = \lVert\boldsymbol{y}\rVert^2 として 補題 3.2 を適用すれば

∇L(w)=2XTXw−2XTy\nabla L(\boldsymbol{w}) = 2X^{\mathsf{T}}X\boldsymbol{w} - 2X^{\mathsf{T}}\boldsymbol{y}

を得ます。∇L(w^)=0\nabla L(\hat{\boldsymbol{w}}) = \boldsymbol{0} が正規方程式です。ただし停留点であることは一般には最小であることを意味しません。ここではヘッセ行列が 2XTX2X^{\mathsf{T}}X で、任意の v\boldsymbol{v} に対し vT(XTX)v=∥Xv∥2≥0\boldsymbol{v}^{\mathsf{T}}(X^{\mathsf{T}}X)\boldsymbol{v} = \lVert X\boldsymbol{v}\rVert^2 \ge 0、すなわち半正定値なので LL は凸関数であり、停留点が大域的最小点になります。定理 3.3 の証明は、この凸性の議論を恒等式 1 本に置き換えたものだと見ることができます。

4. 幾何:最小二乗解は直交射影である

Section titled “4. 幾何:最小二乗解は直交射影である”

4.1. 残差はすべての特徴量と直交する

Section titled “4.1. 残差はすべての特徴量と直交する”

正規方程式を XT(y−Xw^)=0X^{\mathsf{T}}(\boldsymbol{y} - X\hat{\boldsymbol{w}}) = \boldsymbol{0}、つまり XTr^=0X^{\mathsf{T}}\hat{\boldsymbol{r}} = \boldsymbol{0} と書き直してみます。XTr^X^{\mathsf{T}}\hat{\boldsymbol{r}} の第 jj 成分は XX の第 jj 列と r^\hat{\boldsymbol{r}} の内積ですから、この式は

残差ベクトルは、XX のすべての列(=すべての特徴量)と直交する

と読めます。統計的に言えば「残差の中には、手持ちの特徴量の一次結合で説明できる成分がもう残っていない」ということです。最小二乗法は、説明変数で説明しつくせる分をすべて使い切ったところで止まる手続きなのです。この読み方を定理の形にします。

まず 2 次元の例で図を見ておきます。原点を通る直線(1 本の列がつくる「空間」)と、その外にある点 y\boldsymbol{y} があるとき、y\boldsymbol{y} に一番近い直線上の点は、y\boldsymbol{y} から垂線を下ろした足です。このとき垂線(残差)は直線と直交します。列が 2 本なら直線が平面に変わるだけで、同じことが成り立ちます。

Oy(観測)ŷ(直線上で最も近い点)r(残差)列がつくる直線
2 次元での直交射影。直線上の点のうち y に最も近いのは垂線の足 ŷ で、残差 r = y − ŷ は直線と直交する。

次の補題は、「残差が列と直交する」ことを「XTX^{\mathsf{T}} をかけると 0\boldsymbol{0}」という式に言い換えるものです。証明では、「すべての v\boldsymbol{v} で内積が 00」という強い条件を使い、v\boldsymbol{v} に最も都合のよいベクトル XTuX^{\mathsf{T}}\boldsymbol{u} 自身を入れます。すると内積が長さの二乗になり、それが 00 なら零ベクトルだと分かります。

補題 4.1(列空間の直交補空間)✓

任意の X∈Rn×pX \in \mathbb{R}^{n\times p} に対し (Im⁡X)⊥=Ker⁡XT(\operatorname{Im} X)^{\perp} = \operatorname{Ker} X^{\mathsf{T}} が成り立つ。

証明(補題 4.1)

u∈(Im⁡X)⊥\boldsymbol{u} \in (\operatorname{Im}X)^{\perp} であることは、すべての v∈Rp\boldsymbol{v}\in\mathbb{R}^p に対して ⟨u,Xv⟩=0\langle \boldsymbol{u}, X\boldsymbol{v}\rangle = 0 であることです。転置の性質より ⟨u,Xv⟩=⟨XTu,v⟩\langle \boldsymbol{u}, X\boldsymbol{v}\rangle = \langle X^{\mathsf{T}}\boldsymbol{u}, \boldsymbol{v}\rangle ですから、これは「すべての v\boldsymbol{v} に対し ⟨XTu,v⟩=0\langle X^{\mathsf{T}}\boldsymbol{u}, \boldsymbol{v}\rangle = 0」と同値です。とくに v=XTu\boldsymbol{v} = X^{\mathsf{T}}\boldsymbol{u} と取れば ∥XTu∥2=0\lVert X^{\mathsf{T}}\boldsymbol{u}\rVert^2 = 0 すなわち XTu=0X^{\mathsf{T}}\boldsymbol{u} = \boldsymbol{0} を得ます。逆に XTu=0X^{\mathsf{T}}\boldsymbol{u} = \boldsymbol{0} ならすべての v\boldsymbol{v} で内積は 00 です。よって両者は同値で、集合として一致します。

定理 4.2(最小二乗解の存在と射影表示)✓

X∈Rn×pX \in \mathbb{R}^{n\times p}、y∈Rn\boldsymbol{y}\in\mathbb{R}^n を任意とする。このとき次が成り立つ。

  1. 正規方程式 XTXw=XTyX^{\mathsf{T}}X\boldsymbol{w} = X^{\mathsf{T}}\boldsymbol{y} は少なくとも 1 つの解を持つ。とくに最小二乗解は必ず存在する。
  2. w^\hat{\boldsymbol{w}} を任意の最小二乗解とするとき、Xw^X\hat{\boldsymbol{w}} は y\boldsymbol{y} の部分空間 Im⁡X\operatorname{Im}X への直交射影に一致する。とくに Xw^X\hat{\boldsymbol{w}} は最小二乗解の取り方によらず一意に定まる。
  3. y^=Xw^\hat{\boldsymbol{y}} = X\hat{\boldsymbol{w}} は、Im⁡X\operatorname{Im}X の元のうち y\boldsymbol{y} に最も近い唯一の点である。すなわち z∈Im⁡X\boldsymbol{z} \in \operatorname{Im}X、z≠y^\boldsymbol{z} \ne \hat{\boldsymbol{y}} ならば ∥y−z∥>∥y−y^∥\lVert \boldsymbol{y}-\boldsymbol{z}\rVert > \lVert \boldsymbol{y}-\hat{\boldsymbol{y}}\rVert。
証明(定理 4.2)

(1)。 W=Im⁡XW = \operatorname{Im}X は Rn\mathbb{R}^n の部分空間ですから、直交分解 Rn=W⊕W⊥\mathbb{R}^n = W \oplus W^{\perp} により y=y^+s\boldsymbol{y} = \hat{\boldsymbol{y}} + \boldsymbol{s}(y^∈W\hat{\boldsymbol{y}} \in W、s∈W⊥\boldsymbol{s}\in W^{\perp})と一意に分解できます。y^∈Im⁡X\hat{\boldsymbol{y}} \in \operatorname{Im}X なので y^=Xw^\hat{\boldsymbol{y}} = X\hat{\boldsymbol{w}} となる w^\hat{\boldsymbol{w}} が存在します。補題 4.1 より s∈W⊥=Ker⁡XT\boldsymbol{s} \in W^{\perp} = \operatorname{Ker}X^{\mathsf{T}}、すなわち XTs=0X^{\mathsf{T}}\boldsymbol{s} = \boldsymbol{0} です。したがって

XTXw^=XTy^=XT(y−s)=XTyX^{\mathsf{T}}X\hat{\boldsymbol{w}} = X^{\mathsf{T}}\hat{\boldsymbol{y}} = X^{\mathsf{T}}(\boldsymbol{y} - \boldsymbol{s}) = X^{\mathsf{T}}\boldsymbol{y}

となり、この w^\hat{\boldsymbol{w}} は正規方程式の解です。定理 3.3 よりこれは最小二乗解です。

(2)。 w^\hat{\boldsymbol{w}} を任意の最小二乗解とすると、定理 3.3 より XT(y−Xw^)=0X^{\mathsf{T}}(\boldsymbol{y} - X\hat{\boldsymbol{w}}) = \boldsymbol{0}、すなわち 補題 4.1 により y−Xw^∈W⊥\boldsymbol{y} - X\hat{\boldsymbol{w}} \in W^{\perp} です。一方 Xw^∈WX\hat{\boldsymbol{w}} \in W ですから、y=Xw^+(y−Xw^)\boldsymbol{y} = X\hat{\boldsymbol{w}} + (\boldsymbol{y}-X\hat{\boldsymbol{w}}) は W⊕W⊥W \oplus W^{\perp} に沿った分解になっています。この分解は一意なので、Xw^X\hat{\boldsymbol{w}} は (1) で作った y^\hat{\boldsymbol{y}}(= y\boldsymbol{y} の WW への直交射影)に等しく、最小二乗解の選び方に依存しません。

(3)。 z∈W\boldsymbol{z}\in W とすると y^−z∈W\hat{\boldsymbol{y}} - \boldsymbol{z} \in W であり、y−y^∈W⊥\boldsymbol{y}-\hat{\boldsymbol{y}} \in W^{\perp} なので両者は直交します。よって ピタゴラスの定理(注意 4.5)[内積空間とグラム・シュミット直交化] より

∥y−z∥2=∥(y−y^)+(y^−z)∥2=∥y−y^∥2+∥y^−z∥2\lVert \boldsymbol{y}-\boldsymbol{z}\rVert^2 = \lVert (\boldsymbol{y}-\hat{\boldsymbol{y}}) + (\hat{\boldsymbol{y}}-\boldsymbol{z})\rVert^2 = \lVert \boldsymbol{y}-\hat{\boldsymbol{y}}\rVert^2 + \lVert \hat{\boldsymbol{y}}-\boldsymbol{z}\rVert^2

です。z≠y^\boldsymbol{z}\ne\hat{\boldsymbol{y}} なら第 2 項は正なので、狭義の不等式が成り立ちます。

Oy(観測)ŷ = Xŵ(予測)r = y − Xŵ(残差)X の第 1 列X の第 2 列Im X(X の列空間)
最小二乗解の幾何。観測ベクトル y は一般に列空間 Im X の外にあり、予測ベクトルは y から Im X へ下ろした垂線の足(直交射影)である。残差 r は列空間全体と直交する。

rank⁡X=p\operatorname{rank}X = p の場合には、射影を行列の形で書き下せます。

命題 4.3(ハット行列)✓

X∈Rn×pX \in \mathbb{R}^{n\times p} が rank⁡X=p\operatorname{rank}X = p を満たすとする(このとき 系 5.2 により XTXX^{\mathsf{T}}X は正則)。

P=X(XTX)−1XT∈Rn×nP = X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}} \in \mathbb{R}^{n\times n}

とおくと、次が成り立つ。

  1. PT=PP^{\mathsf{T}} = P かつ P2=PP^2 = P(対称冪等)。
  2. 任意の y∈Rn\boldsymbol{y}\in\mathbb{R}^n に対し PyP\boldsymbol{y} は y\boldsymbol{y} の Im⁡X\operatorname{Im}X への直交射影であり、Py=Xw^P\boldsymbol{y} = X\hat{\boldsymbol{w}}。
  3. In−PI_n - P は (Im⁡X)⊥=Ker⁡XT(\operatorname{Im}X)^{\perp} = \operatorname{Ker}X^{\mathsf{T}} への直交射影であり、残差は r^=(In−P)y\hat{\boldsymbol{r}} = (I_n - P)\boldsymbol{y}。
  4. tr⁡P=p\operatorname{tr} P = p。

証明のねらいは、PP が「射影らしい」性質を持つことの確認です。P2=PP^2 = P は、一度射影した点は平面の上にあるので、もう一度射影しても動かない、という意味です。PyP\boldsymbol{y} が射影であること自体は 定理 4.2 で示してあるので、ここでは性質を 1 つずつ計算で確かめます。

証明(命題 4.3)

1. (XTX)−1(X^{\mathsf{T}}X)^{-1} は対称行列の逆行列なので対称です((A−1)T=(AT)−1(A^{-1})^{\mathsf{T}} = (A^{\mathsf{T}})^{-1} に AT=AA^{\mathsf{T}}=A を代入)。よって PT=X((XTX)−1)TXT=PP^{\mathsf{T}} = X\bigl((X^{\mathsf{T}}X)^{-1}\bigr)^{\mathsf{T}}X^{\mathsf{T}} = P です。また

P2=X(XTX)−1XTX(XTX)−1⏟=IpXT=X(XTX)−1XT=PP^2 = X(X^{\mathsf{T}}X)^{-1}\underbrace{X^{\mathsf{T}}X(X^{\mathsf{T}}X)^{-1}}_{= I_p}X^{\mathsf{T}} = X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}} = P

です。

2. w^=(XTX)−1XTy\hat{\boldsymbol{w}} = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y} は正規方程式の解ですから(両辺に XTXX^{\mathsf{T}}X を掛ければ確かめられます)、Py=Xw^P\boldsymbol{y} = X\hat{\boldsymbol{w}} であり、定理 4.2 の (2) よりこれは直交射影です。

3. r^=y−Py=(In−P)y\hat{\boldsymbol{r}} = \boldsymbol{y}-P\boldsymbol{y} = (I_n-P)\boldsymbol{y} で、定理 4.2 の証明から r^∈(Im⁡X)⊥\hat{\boldsymbol{r}} \in (\operatorname{Im}X)^{\perp} です。(In−P)T=In−P(I_n-P)^{\mathsf{T}} = I_n - P、(In−P)2=In−2P+P2=In−P(I_n-P)^2 = I_n - 2P + P^2 = I_n - P なのでこれも対称冪等であり、u∈(Im⁡X)⊥\boldsymbol{u}\in(\operatorname{Im}X)^{\perp} に対しては 補題 4.1 より XTu=0X^{\mathsf{T}}\boldsymbol{u} = \boldsymbol{0}、ゆえに Pu=0P\boldsymbol{u} = \boldsymbol{0}、(In−P)u=u(I_n-P)\boldsymbol{u} = \boldsymbol{u} となって、(In−P)(I_n-P) は (Im⁡X)⊥(\operatorname{Im}X)^{\perp} 上で恒等写像です。

4. トレースの巡回性 tr⁡(AB)=tr⁡(BA)\operatorname{tr}(AB) = \operatorname{tr}(BA) を A=XA = X、B=(XTX)−1XTB = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}} に使うと

tr⁡P=tr⁡((XTX)−1XTX)=tr⁡Ip=p\operatorname{tr}P = \operatorname{tr}\bigl((X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}X\bigr) = \operatorname{tr}I_p = p

です。

y^=Py\hat{\boldsymbol{y}} = P\boldsymbol{y} が「y\boldsymbol{y} に帽子をかぶせる」ので、PP はハット行列と呼ばれます。統計学では PP の対角成分 PiiP_{ii} が「第 ii 観測が自分自身の予測値をどれだけ引っ張るか」を表す量(てこ比、leverage)として使われ、tr⁡P=p\operatorname{tr}P = p は「nn 個の観測に pp 個分の自由度が費やされた」と読めます。

系 4.4(平方和の分解と決定係数)✓

XX の列に全成分 11 のベクトル 1\boldsymbol{1} が含まれているとする。y^=Xw^\hat{\boldsymbol{y}} = X\hat{\boldsymbol{w}}、r^=y−y^\hat{\boldsymbol{r}} = \boldsymbol{y}-\hat{\boldsymbol{y}}、yˉ=1n∑iyi\bar{y} = \frac{1}{n}\sum_i y_i とおくと、次が成り立つ。

  1. ∑i=1nr^i=0\sum_{i=1}^n \hat{r}_i = 0、したがって 1n∑iy^i=yˉ\frac{1}{n}\sum_i \hat{y}_i = \bar{y}。
  2. 平方和の分解
∑i=1n(yi−yˉ)2⏟全変動 Stot=∑i=1n(y^i−yˉ)2⏟回帰変動+∑i=1nr^i 2⏟残差変動 Sres\underbrace{\sum_{i=1}^n (y_i-\bar{y})^2}_{\text{全変動 } S_{\mathrm{tot}}} = \underbrace{\sum_{i=1}^n (\hat{y}_i-\bar{y})^2}_{\text{回帰変動}} + \underbrace{\sum_{i=1}^n \hat{r}_i^{\,2}}_{\text{残差変動 } S_{\mathrm{res}}}

が成り立つ。とくに Stot≠0S_{\mathrm{tot}} \ne 0 のとき、決定係数 R2=1−Sres/StotR^2 = 1 - S_{\mathrm{res}}/S_{\mathrm{tot}} は 0≤R2≤10 \le R^2 \le 1 を満たす。

証明(系 4.4)

1. 定理 3.3 より XTr^=0X^{\mathsf{T}}\hat{\boldsymbol{r}} = \boldsymbol{0} で、その 1\boldsymbol{1} に対応する成分が ⟨1,r^⟩=∑ir^i=0\langle \boldsymbol{1}, \hat{\boldsymbol{r}}\rangle = \sum_i \hat{r}_i = 0 です。両辺を nn で割って yˉ−1n∑iy^i=0\bar{y} - \frac{1}{n}\sum_i\hat{y}_i = 0 を得ます。

2. y−yˉ1=(y^−yˉ1)+r^\boldsymbol{y}-\bar{y}\boldsymbol{1} = (\hat{\boldsymbol{y}}-\bar{y}\boldsymbol{1}) + \hat{\boldsymbol{r}} と分解します。1∈Im⁡X\boldsymbol{1} \in \operatorname{Im}X かつ y^∈Im⁡X\hat{\boldsymbol{y}}\in\operatorname{Im}X なので y^−yˉ1∈Im⁡X\hat{\boldsymbol{y}}-\bar{y}\boldsymbol{1}\in\operatorname{Im}X であり、定理 4.2 より r^∈(Im⁡X)⊥\hat{\boldsymbol{r}} \in (\operatorname{Im}X)^{\perp} ですから、この 2 つは直交します。ピタゴラスの定理より主張の等式が出ます。R2=(回帰変動)/StotR^2 = (\text{回帰変動})/S_{\mathrm{tot}} であり、両変動とも非負で和が StotS_{\mathrm{tot}} なので 0≤R2≤10\le R^2\le 1 です。

例 4.5(3 点への直線当てはめを射影として見る)

n=3n = 3、d=1d = 1 で、データを (xi,yi)=(0,1),(1,1),(2,4)(x_i, y_i) = (0,1), (1,1), (2,4) とします。計画行列と観測ベクトルは

X=(101112),y=(114)X = \begin{pmatrix} 1 & 0 \\ 1 & 1 \\ 1 & 2\end{pmatrix},\qquad \boldsymbol{y} = \begin{pmatrix} 1 \\ 1 \\ 4\end{pmatrix}

です。Im⁡X\operatorname{Im}X は R3\mathbb{R}^3 の中の 2 次元平面で、y\boldsymbol{y} はその上にありません(3 点は一直線上にないため)。正規方程式の材料を計算すると

XTX=(3335),XTy=(1+1+40⋅1+1⋅1+2⋅4)=(69)X^{\mathsf{T}}X = \begin{pmatrix} 3 & 3 \\ 3 & 5\end{pmatrix},\qquad X^{\mathsf{T}}\boldsymbol{y} = \begin{pmatrix} 1+1+4 \\ 0\cdot 1 + 1\cdot 1 + 2\cdot 4\end{pmatrix} = \begin{pmatrix} 6 \\ 9\end{pmatrix}

です。det⁡(XTX)=15−9=6≠0\det(X^{\mathsf{T}}X) = 15-9 = 6 \ne 0 なので逆行列が存在し、

w^=16(5−3−33)(69)=16(30−27−18+27)=(0.51.5)\hat{\boldsymbol{w}} = \frac{1}{6}\begin{pmatrix} 5 & -3 \\ -3 & 3\end{pmatrix}\begin{pmatrix} 6 \\ 9\end{pmatrix} = \frac{1}{6}\begin{pmatrix} 30-27 \\ -18+27\end{pmatrix} = \begin{pmatrix} 0.5 \\ 1.5\end{pmatrix}

すなわち y^=0.5+1.5x\hat{y} = 0.5 + 1.5x を得ます。予測と残差は

y^=Xw^=(0.5, 2.0, 3.5)T,r^=y−y^=(0.5, −1.0, 0.5)T\hat{\boldsymbol{y}} = X\hat{\boldsymbol{w}} = (0.5,\ 2.0,\ 3.5)^{\mathsf{T}},\qquad \hat{\boldsymbol{r}} = \boldsymbol{y}-\hat{\boldsymbol{y}} = (0.5,\ -1.0,\ 0.5)^{\mathsf{T}}

です。直交性を確かめます。⟨1,r^⟩=0.5−1.0+0.5=0\langle \boldsymbol{1}, \hat{\boldsymbol{r}}\rangle = 0.5-1.0+0.5 = 0、⟨(0,1,2)T,r^⟩=0⋅0.5+1⋅(−1.0)+2⋅0.5=0\langle (0,1,2)^{\mathsf{T}}, \hat{\boldsymbol{r}}\rangle = 0\cdot 0.5 + 1\cdot(-1.0) + 2\cdot 0.5 = 0 となり、確かに残差は XX の両方の列と直交しています。ピタゴラスの定理も

∥y∥2=1+1+16=18,∥y^∥2=0.25+4+12.25=16.5,∥r^∥2=0.25+1+0.25=1.5\lVert\boldsymbol{y}\rVert^2 = 1+1+16 = 18,\quad \lVert\hat{\boldsymbol{y}}\rVert^2 = 0.25+4+12.25 = 16.5,\quad \lVert\hat{\boldsymbol{r}}\rVert^2 = 0.25+1+0.25 = 1.5

より 18=16.5+1.518 = 16.5 + 1.5 と成立しています。ハット行列も具体的に書けて

P=X(XTX)−1XT=16(52−1222−125)P = X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}} = \frac{1}{6}\begin{pmatrix} 5 & 2 & -1 \\ 2 & 2 & 2 \\ -1 & 2 & 5\end{pmatrix}

となります。実際 Py=16(5+2−4, 2+2+8, −1+2+20)T=(0.5,2.0,3.5)T=y^P\boldsymbol{y} = \frac{1}{6}(5+2-4,\ 2+2+8,\ -1+2+20)^{\mathsf{T}} = (0.5, 2.0, 3.5)^{\mathsf{T}} = \hat{\boldsymbol{y}} です。対称性は見てのとおりで、tr⁡P=(5+2+5)/6=2=p\operatorname{tr}P = (5+2+5)/6 = 2 = p も 命題 4.3 の 4 と合致します。

5. 解はいつ一意になるか:ランク条件

Section titled “5. 解はいつ一意になるか:ランク条件”

定理 4.2 により、予測 y^=Xw^\hat{\boldsymbol{y}} = X\hat{\boldsymbol{w}} はつねに一意でした。しかし係数 w^\hat{\boldsymbol{w}} そのものが一意かどうかは別問題です。定理 3.3 の最後の主張から、解集合は w^+Ker⁡X\hat{\boldsymbol{w}} + \operatorname{Ker}X ですから、一意性は Ker⁡X={0}\operatorname{Ker}X = \{\boldsymbol{0}\} と同値です。これを XTXX^{\mathsf{T}}X の言葉に翻訳します。

補題 5.1(グラム行列の核)✓

任意の X∈Rn×pX\in\mathbb{R}^{n\times p} に対し

Ker⁡(XTX)=Ker⁡X,rank⁡(XTX)=rank⁡X\operatorname{Ker}(X^{\mathsf{T}}X) = \operatorname{Ker}X, \qquad \operatorname{rank}(X^{\mathsf{T}}X) = \operatorname{rank}X

が成り立つ。

証明(補題 5.1)

Xv=0X\boldsymbol{v} = \boldsymbol{0} ならば両辺に左から XTX^{\mathsf{T}} を掛けて XTXv=0X^{\mathsf{T}}X\boldsymbol{v} = \boldsymbol{0} ですから Ker⁡X⊆Ker⁡(XTX)\operatorname{Ker}X \subseteq \operatorname{Ker}(X^{\mathsf{T}}X) です。逆に XTXv=0X^{\mathsf{T}}X\boldsymbol{v} = \boldsymbol{0} とすると、左から vT\boldsymbol{v}^{\mathsf{T}} を掛けて

0=vTXTXv=(Xv)T(Xv)=∥Xv∥20 = \boldsymbol{v}^{\mathsf{T}}X^{\mathsf{T}}X\boldsymbol{v} = (X\boldsymbol{v})^{\mathsf{T}}(X\boldsymbol{v}) = \lVert X\boldsymbol{v}\rVert^2

となります。ノルムが 00 になるのはゼロベクトルだけなので Xv=0X\boldsymbol{v} = \boldsymbol{0}、すなわち Ker⁡(XTX)⊆Ker⁡X\operatorname{Ker}(X^{\mathsf{T}}X)\subseteq\operatorname{Ker}X です。よって両者は一致します。階数については、XX も XTXX^{\mathsf{T}}X も列数が pp なので、次元定理

rank⁡A=p−dim⁡Ker⁡A\operatorname{rank}A = p - \dim\operatorname{Ker}A

を両者に適用すれば、核の次元が等しいことから階数も等しくなります。

系 5.2(最小二乗解の一意性)✓

X∈Rn×pX\in\mathbb{R}^{n\times p}、y∈Rn\boldsymbol{y}\in\mathbb{R}^n とする。次の 3 条件は同値である。

  1. XX の列 pp 本は一次独立、すなわち rank⁡X=p\operatorname{rank}X = p。
  2. XTXX^{\mathsf{T}}X は正則。
  3. 最小二乗解がただ 1 つ存在する。

このとき最小二乗解は

w^=(XTX)−1XTy\hat{\boldsymbol{w}} = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y}

で与えられる。さらに、これらが成り立つためには n≥pn \ge p が必要である。

証明(系 5.2)

1 ⇔\Leftrightarrow 2。 XTXX^{\mathsf{T}}X は pp 次正方行列なので、正則であることは rank⁡(XTX)=p\operatorname{rank}(X^{\mathsf{T}}X) = p と同値です。補題 5.1 よりこれは rank⁡X=p\operatorname{rank}X = p と同値で、これは列が一次独立であることにほかなりません。

1 ⇔\Leftrightarrow 3。 定理 4.2 より最小二乗解は必ず存在し、定理 3.3 より解集合は w^+Ker⁡X\hat{\boldsymbol{w}} + \operatorname{Ker}X です。したがって解が 1 つであることは Ker⁡X={0}\operatorname{Ker}X = \{\boldsymbol{0}\} と同値で、次元定理よりこれは rank⁡X=p\operatorname{rank}X = p と同値です。

解の公式。 2 のもとで w=(XTX)−1XTy\boldsymbol{w} = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y} とおくと XTXw=XTyX^{\mathsf{T}}X\boldsymbol{w} = X^{\mathsf{T}}\boldsymbol{y} が成り立つので、これは正規方程式の解であり、定理 3.3 より最小二乗解です。一意性はいま示したとおりです。

n≥pn\ge p の必要性。 rank⁡X≤min⁡(n,p)\operatorname{rank}X \le \min(n,p) ですから、rank⁡X=p\operatorname{rank}X = p なら p≤np \le n です。

データ数が特徴量数より少ない(n<pn < p)場合には、この意味で解は決して一意になりません。深層学習で日常的に起きる「パラメータのほうが多い」状況が、すでに線形回帰の段階で顔を出しているわけです。

例 5.3(特徴量が重複しているとき(多重共線性))

例 4.5 と同じデータ (xi,yi)=(0,1),(1,1),(2,4)(x_i, y_i) = (0,1), (1,1), (2,4) に対し、「xx の 2 倍」という無意味な特徴量 x′=2xx' = 2x を追加してみます。計画行列は

X=(100112124)X = \begin{pmatrix} 1 & 0 & 0 \\ 1 & 1 & 2 \\ 1 & 2 & 4\end{pmatrix}

となり、第 3 列は第 2 列のちょうど 2 倍なので rank⁡X=2<3=p\operatorname{rank}X = 2 < 3 = p です。核は

Ker⁡X={ t(0,2,−1)T:t∈R }\operatorname{Ker}X = \{\, t(0, 2, -1)^{\mathsf{T}} : t\in\mathbb{R}\,\}

です(実際 0⋅1+2x−1⋅(2x)=00\cdot\boldsymbol{1} + 2\boldsymbol{x} - 1\cdot(2\boldsymbol{x}) = \boldsymbol{0})。例 4.5 で求めた (0.5,1.5)(0.5, 1.5) に第 3 座標 00 を足した w^0=(0.5,1.5,0)T\hat{\boldsymbol{w}}_0 = (0.5, 1.5, 0)^{\mathsf{T}} は最小二乗解ですから、定理 3.3 より解集合は

{ (0.5, 1.5−2t, t)T:t∈R }\{\,(0.5,\ 1.5 - 2t,\ t)^{\mathsf{T}} : t\in\mathbb{R}\,\}

という直線全体になります。たとえば t=0.75t = 0.75 は (0.5,0,0.75)(0.5, 0, 0.75)、t=−1t = -1 は (0.5,3.5,−1)(0.5, 3.5, -1) で、係数の見た目はまったく違います。「xx の効果は 1.51.5」なのか「xx の効果は 00 で x′x' の効果が 0.750.75」なのかは、データからは決められません。それでも予測は

X(0.5, 1.5−2t, t)T=(0.5, 0.5+(1.5−2t)+2t, 0.5+2(1.5−2t)+4t)T=(0.5, 2, 3.5)TX(0.5,\ 1.5-2t,\ t)^{\mathsf{T}} = (0.5,\ 0.5 + (1.5-2t) + 2t,\ 0.5 + 2(1.5-2t)+4t)^{\mathsf{T}} = (0.5,\ 2,\ 3.5)^{\mathsf{T}}

と tt によらず一定で、定理 4.2 の (2) のとおりです。

d=1d = 1(説明変数 1 個)の場合を、一般式まで書き下します。p=2p = 2 で

XTX=(n∑ixi∑ixi∑ixi2),XTy=(∑iyi∑ixiyi)X^{\mathsf{T}}X = \begin{pmatrix} n & \sum_i x_i \\ \sum_i x_i & \sum_i x_i^2\end{pmatrix}, \qquad X^{\mathsf{T}}\boldsymbol{y} = \begin{pmatrix} \sum_i y_i \\ \sum_i x_i y_i\end{pmatrix}

です。xˉ=1n∑ixi\bar{x} = \frac1n\sum_i x_i、yˉ=1n∑iyi\bar{y} = \frac1n\sum_i y_i、Sxx=∑i(xi−xˉ)2S_{xx} = \sum_i (x_i-\bar{x})^2、Sxy=∑i(xi−xˉ)(yi−yˉ)S_{xy} = \sum_i (x_i-\bar{x})(y_i-\bar{y}) とおくと、展開して

det⁡(XTX)=n∑ixi2−(∑ixi)2=n(∑ixi2−nxˉ2)=nSxx\det(X^{\mathsf{T}}X) = n\sum_i x_i^2 - \Bigl(\sum_i x_i\Bigr)^2 = n\Bigl(\sum_i x_i^2 - n\bar{x}^2\Bigr) = nS_{xx}

なので、Sxx≠0S_{xx}\ne 0(xix_i が全部同じ値ではない)なら 系 5.2 が使えて

w^=1nSxx(∑ixi2−∑ixi−∑ixin)(nyˉ∑ixiyi)\hat{\boldsymbol{w}} = \frac{1}{nS_{xx}}\begin{pmatrix} \sum_i x_i^2 & -\sum_i x_i \\ -\sum_i x_i & n\end{pmatrix}\begin{pmatrix} n\bar{y} \\ \sum_i x_i y_i\end{pmatrix}

となります。第 2 成分は (n∑ixiyi−nyˉ∑ixi)/(nSxx)=(∑ixiyi−nxˉyˉ)/Sxx=Sxy/Sxx\bigl(n\sum_i x_iy_i - n\bar{y}\sum_i x_i\bigr)/(nS_{xx}) = (\sum_i x_iy_i - n\bar{x}\bar{y})/S_{xx} = S_{xy}/S_{xx} です。第 1 成分も同様に計算すると (yˉ∑ixi2−xˉ∑ixiyi)/Sxx(\bar{y}\sum_i x_i^2 - \bar{x}\sum_i x_iy_i)/S_{xx} となり、これは yˉSxx−xˉSxy=yˉ∑ixi2−nxˉ2yˉ−xˉ∑ixiyi+nxˉ2yˉ=yˉ∑ixi2−xˉ∑ixiyi\bar{y}S_{xx} - \bar{x}S_{xy} = \bar{y}\sum_i x_i^2 - n\bar{x}^2\bar{y} - \bar{x}\sum_i x_iy_i + n\bar{x}^2\bar{y} = \bar{y}\sum_i x_i^2 - \bar{x}\sum_i x_iy_i に一致します。まとめると、高校でも見る形

w^1=SxySxx,b^=yˉ−w^1xˉ\hat{w}_1 = \frac{S_{xy}}{S_{xx}}, \qquad \hat{b} = \bar{y} - \hat{w}_1\bar{x}

が得られます。第 2 式は「回帰直線は必ず重心 (xˉ,yˉ)(\bar{x},\bar{y}) を通る」と読めます。これは 系 4.4 の 1(残差の和が 00)の言い換えでもあります。

例 6.1(5 点の単回帰を最後まで計算する)

データを (xi,yi)=(1,2),(2,3),(3,5),(4,4),(5,6)(x_i,y_i) = (1,2), (2,3), (3,5), (4,4), (5,6) とします。n=5n = 5 で

∑ixi=15,∑iyi=20,∑ixi2=55,∑ixiyi=2+6+15+16+30=69\sum_i x_i = 15,\quad \sum_i y_i = 20,\quad \sum_i x_i^2 = 55,\quad \sum_i x_iy_i = 2+6+15+16+30 = 69

ですから xˉ=3\bar{x} = 3、yˉ=4\bar{y} = 4 です。正規方程式は

(5151555)(bw1)=(2069)\begin{pmatrix} 5 & 15 \\ 15 & 55\end{pmatrix}\begin{pmatrix} b \\ w_1\end{pmatrix} = \begin{pmatrix} 20 \\ 69\end{pmatrix}

です。det⁡=5⋅55−152=275−225=50≠0\det = 5\cdot 55 - 15^2 = 275-225 = 50 \ne 0 なので

(b^w^1)=150(55−15−155)(2069)=150(1100−1035−300+345)=150(6545)=(1.30.9)\begin{pmatrix} \hat{b} \\ \hat{w}_1\end{pmatrix} = \frac{1}{50}\begin{pmatrix} 55 & -15 \\ -15 & 5\end{pmatrix}\begin{pmatrix} 20 \\ 69\end{pmatrix} = \frac{1}{50}\begin{pmatrix} 1100 - 1035 \\ -300 + 345\end{pmatrix} = \frac{1}{50}\begin{pmatrix} 65 \\ 45\end{pmatrix} = \begin{pmatrix} 1.3 \\ 0.9\end{pmatrix}

すなわち y^=1.3+0.9x\hat{y} = 1.3 + 0.9x です。公式でも確かめます。Sxx=4+1+0+1+4=10S_{xx} = 4+1+0+1+4 = 10、Sxy=(−2)(−2)+(−1)(−1)+0⋅1+1⋅0+2⋅2=9S_{xy} = (-2)(-2)+(-1)(-1)+0\cdot 1+1\cdot 0+2\cdot 2 = 9 なので w^1=9/10=0.9\hat{w}_1 = 9/10 = 0.9、b^=4−0.9⋅3=1.3\hat{b} = 4 - 0.9\cdot 3 = 1.3 と一致しました。

予測値は y^=(2.2, 3.1, 4.0, 4.9, 5.8)T\hat{\boldsymbol{y}} = (2.2,\ 3.1,\ 4.0,\ 4.9,\ 5.8)^{\mathsf{T}}、残差は

r^=(−0.2, −0.1, 1.0, −0.9, 0.2)T\hat{\boldsymbol{r}} = (-0.2,\ -0.1,\ 1.0,\ -0.9,\ 0.2)^{\mathsf{T}}

です。直交条件を検算すると ∑ir^i=−0.2−0.1+1.0−0.9+0.2=0\sum_i \hat{r}_i = -0.2-0.1+1.0-0.9+0.2 = 0、∑ixir^i=−0.2−0.2+3.0−3.6+1.0=0\sum_i x_i\hat{r}_i = -0.2-0.2+3.0-3.6+1.0 = 0 でどちらも 00 になります。平方和は Sres=0.04+0.01+1.00+0.81+0.04=1.90S_{\mathrm{res}} = 0.04+0.01+1.00+0.81+0.04 = 1.90、Stot=4+1+1+0+4=10S_{\mathrm{tot}} = 4+1+1+0+4 = 10 なので、系 4.4 より回帰変動は 10−1.9=8.110-1.9 = 8.1 で、これは Sxy2/Sxx=81/10=8.1S_{xy}^2/S_{xx} = 81/10 = 8.1 と一致します。決定係数は R2=1−1.9/10=0.81R^2 = 1 - 1.9/10 = 0.81 です。

12345246xy重心 (3, 4)y = 1.3 + 0.9x
5 点の単回帰。直線 y = 1.3 + 0.9x は重心 (3, 4) を通り、点線の縦線が残差である。上に出る残差と下に出る残差が打ち消し合って、残差の和は 0 になる。

同じ計算を NumPy で書くと次のようになります。逆行列を作らずに連立一次方程式として解いている点に注目してください。

import numpy as np
x = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
y = np.array([2.0, 3.0, 5.0, 4.0, 6.0])
X = np.column_stack([np.ones_like(x), x]) # 計画行列 (5, 2)
# 正規方程式 X^T X w = X^T y を直接解く
w_ne = np.linalg.solve(X.T @ X, X.T @ y) # [1.3, 0.9]
# 数値的にはこちらが推奨(内部で特異値分解を使う)
w_ls, *_ = np.linalg.lstsq(X, y, rcond=None) # [1.3, 0.9]
r = y - X @ w_ls
print(X.T @ r) # [0. 0.] にごく近い値(丸め誤差の範囲)
print(1 - r @ r / ((y - y.mean()) ** 2).sum()) # 0.81

定義 2.2 のとおり、特徴写像を取り替えるだけで曲線の当てはめになります。道具立ては何も変わりません。

例 6.2(2 次多項式を当てはめる)

データを (xi,yi)=(−2,6),(−1,2),(0,2),(1,2),(2,5)(x_i, y_i) = (-2,6), (-1,2), (0,2), (1,2), (2,5) とし、φ(x)=(1,x,x2)T\varphi(x) = (1, x, x^2)^{\mathsf{T}}、すなわち y^=w0+w1x+w2x2\hat{y} = w_0 + w_1x + w_2x^2 を当てはめます。p=3p = 3 で、必要な和は

∑ixi=0,∑ixi2=10,∑ixi3=0,∑ixi4=34\sum_i x_i = 0,\quad \sum_i x_i^2 = 10,\quad \sum_i x_i^3 = 0,\quad \sum_i x_i^4 = 34

(xix_i が 00 について対称なので奇数乗の和が消えます)、および

∑iyi=17,∑ixiyi=−12−2+0+2+10=−2,∑ixi2yi=24+2+0+2+20=48\sum_i y_i = 17,\quad \sum_i x_iy_i = -12-2+0+2+10 = -2,\quad \sum_i x_i^2y_i = 24+2+0+2+20 = 48

です。したがって正規方程式は

(5010010010034)(w0w1w2)=(17−248)\begin{pmatrix} 5 & 0 & 10 \\ 0 & 10 & 0 \\ 10 & 0 & 34 \end{pmatrix} \begin{pmatrix} w_0 \\ w_1 \\ w_2\end{pmatrix} = \begin{pmatrix} 17 \\ -2 \\ 48\end{pmatrix}

となります。第 2 行はただちに w^1=−0.2\hat{w}_1 = -0.2 を与えます。第 1 行と第 3 行は w0,w2w_0, w_2 だけの連立方程式で、第 1 行を 2 倍して第 3 行から引くと

(34−20)w2=48−34,すなわち14w2=14(34 - 20)w_2 = 48 - 34, \qquad \text{すなわち}\quad 14w_2 = 14

なので w^2=1\hat{w}_2 = 1、そして第 1 行から w^0=(17−10)/5=1.4\hat{w}_0 = (17-10)/5 = 1.4 です。当てはめた曲線は

y^=1.4−0.2x+x2\hat{y} = 1.4 - 0.2x + x^2

です。予測値は y^=(5.8, 2.6, 1.4, 2.2, 5.0)T\hat{\boldsymbol{y}} = (5.8,\ 2.6,\ 1.4,\ 2.2,\ 5.0)^{\mathsf{T}}、残差は r^=(0.2, −0.6, 0.6, −0.2, 0)T\hat{\boldsymbol{r}} = (0.2,\ -0.6,\ 0.6,\ -0.2,\ 0)^{\mathsf{T}} です。ここでも直交条件を検算すると、3 本すべてが成り立ちます。

∑ir^i=0.2−0.6+0.6−0.2+0=0,∑ixir^i=−0.4+0.6+0−0.2+0=0,∑ixi2r^i=0.8−0.6+0−0.2+0=0.\begin{aligned} \sum_i \hat{r}_i &= 0.2-0.6+0.6-0.2+0 = 0,\\ \sum_i x_i\hat{r}_i &= -0.4+0.6+0-0.2+0 = 0,\\ \sum_i x_i^2\hat{r}_i &= 0.8-0.6+0-0.2+0 = 0. \end{aligned}

残差平方和は Sres=0.04+0.36+0.36+0.04+0=0.8S_{\mathrm{res}} = 0.04+0.36+0.36+0.04+0 = 0.8、全変動は yˉ=3.4\bar{y} = 3.4 より Stot=6.76+1.96+1.96+1.96+2.56=15.2S_{\mathrm{tot}} = 6.76+1.96+1.96+1.96+2.56 = 15.2 なので R2=1−0.8/15.2≈0.947R^2 = 1-0.8/15.2 \approx 0.947 です。曲線を当てはめたのに、解いたのは 3 元連立一次方程式にすぎません。これが「パラメータについて線形」であることの威力です。

ここまでの結果を 1 枚にまとめておきます。

最小二乗問題から解までの流れ。分岐はランク条件で、予測ベクトルはどちらの枝でも一意に定まる。

rank⁡X=p\operatorname{rank}X = p のとき XTXX^{\mathsf{T}}X は対称かつ正定値です。実際 補題 5.1 より v≠0\boldsymbol{v}\ne\boldsymbol{0} なら Xv≠0X\boldsymbol{v}\ne\boldsymbol{0} なので vTXTXv=∥Xv∥2>0\boldsymbol{v}^{\mathsf{T}}X^{\mathsf{T}}X\boldsymbol{v} = \lVert X\boldsymbol{v}\rVert^2 > 0 です。正定値対称行列にはコレスキー分解(行列を下三角行列とその転置の積に分ける方法)XTX=LLTX^{\mathsf{T}}X = LL^{\mathsf{T}}(LL は下三角)が存在するので、実装は「XTXX^{\mathsf{T}}X と XTyX^{\mathsf{T}}\boldsymbol{y} を作る、コレスキー分解する、三角方程式を 2 回解く」で終わります。

この節で言いたいのは、XX がもつ「ゆがみ具合」(最も大きく伸ばす向きと最も小さく伸ばす向きの比)が、XTXX^{\mathsf{T}}X をつくると二乗になってしまう、ということです。特異値は行列が各方向をどれだけ伸ばすかを表す数、特異値分解はそれを取り出す分解だと思ってください。

正規方程式には理論上きれいでも数値計算上は不利な点があります。行列 AA の条件数を κ2(A)=σmax⁡(A)/σmin⁡(A)\kappa_2(A) = \sigma_{\max}(A)/\sigma_{\min}(A)(特異値の比)で測ると、フルランクの XX に対して

κ2(XTX)=κ2(X)2\kappa_2(X^{\mathsf{T}}X) = \kappa_2(X)^2

が成り立ちます。理由は、XX の特異値分解 X=UΣVTX = U\Sigma V^{\mathsf{T}} を使うと XTX=VΣTΣVTX^{\mathsf{T}}X = V\Sigma^{\mathsf{T}}\Sigma V^{\mathsf{T}} となり、XTXX^{\mathsf{T}}X の固有値が XX の特異値の二乗になるからです(対称行列の対角化については スペクトル定理 の 実対称行列の直交対角化(系 4.3)[スペクトル定理] を参照してください)。条件数は「入力の相対誤差が解の相対誤差に何倍に増幅されるか」の目安ですから、XTXX^{\mathsf{T}}X を作った瞬間に増幅率が二乗されることになります。

例 7.1(中心化するだけで条件数が改善する)

例 6.1 のデータでは XTX=(5151555)X^{\mathsf{T}}X = \begin{pmatrix} 5 & 15 \\ 15 & 55\end{pmatrix} でした。対称 2×22\times 2 行列なので固有値は特性方程式 λ2−60λ+50=0\lambda^2 - 60\lambda + 50 = 0(トレース 6060、行列式 5050)から

λ=30±900−50=30±850\lambda = 30 \pm \sqrt{900-50} = 30 \pm \sqrt{850}

すなわち λmax⁡≈59.155\lambda_{\max} \approx 59.155、λmin⁡≈0.845\lambda_{\min} \approx 0.845 です。よって κ2(XTX)≈70.0\kappa_2(X^{\mathsf{T}}X) \approx 70.0、κ2(X)≈70≈8.4\kappa_2(X) \approx \sqrt{70} \approx 8.4 です。

ここで xx を中心化して第 2 列を xi−xˉ=−2,−1,0,1,2x_i - \bar{x} = -2,-1,0,1,2 に置き換えると、第 1 列との内積が ∑i(xi−xˉ)=0\sum_i (x_i-\bar{x}) = 0 になるので

XcTXc=(50010)X_{\mathrm{c}}^{\mathsf{T}}X_{\mathrm{c}} = \begin{pmatrix} 5 & 0 \\ 0 & 10\end{pmatrix}

と対角になり、κ2(XcTXc)=10/5=2\kappa_2(X_{\mathrm{c}}^{\mathsf{T}}X_{\mathrm{c}}) = 10/5 = 2 まで下がります。データの中身は同じで、座標の取り方を変えただけです。特徴量の中心化とスケーリングが前処理として推奨される理由の一つがこれです(中心化しても当てはめた直線そのものは変わりません。演習 8.2 を見てください)。

注意 7.2(QR 分解による解法)

rank⁡X=p\operatorname{rank}X = p のとき、XX は X=QRX = QR(Q∈Rn×pQ\in\mathbb{R}^{n\times p} は QTQ=IpQ^{\mathsf{T}}Q = I_p、R∈Rp×pR\in\mathbb{R}^{p\times p} は対角成分が正の上三角行列)と分解できます。これは グラム・シュミットの直交化(定理 6.1)[内積空間とグラム・シュミット直交化] そのものです。これを正規方程式に代入すると

XTX=RTQTQR=RTR,XTy=RTQTyX^{\mathsf{T}}X = R^{\mathsf{T}}Q^{\mathsf{T}}QR = R^{\mathsf{T}}R, \qquad X^{\mathsf{T}}\boldsymbol{y} = R^{\mathsf{T}}Q^{\mathsf{T}}\boldsymbol{y}

なので、正規方程式は RTRw=RTQTyR^{\mathsf{T}}R\boldsymbol{w} = R^{\mathsf{T}}Q^{\mathsf{T}}\boldsymbol{y} となります。RR は正則(対角成分が正)なので RTR^{\mathsf{T}} も正則で、両辺に (RT)−1(R^{\mathsf{T}})^{-1} を掛ければ

Rw^=QTyR\hat{\boldsymbol{w}} = Q^{\mathsf{T}}\boldsymbol{y}

という上三角の連立方程式に化けます。後退代入で解けて、しかも XTXX^{\mathsf{T}}X を作らないので条件数は κ2(X)\kappa_2(X) のままです。ハット行列も P=QQTP = QQ^{\mathsf{T}} と簡単になります。ランク落ちの可能性がある場合には、さらに頑健な特異値分解による解法(本記事末尾の Appendix)が使われます。

閉じた解が使えなくなる典型的な場面と、その先の道具を挙げておきます。

状況起きること対処
pp が数万以上p×pp\times p 行列の分解が O(p3)O(p^3) で重い勾配降下法・共役勾配法
rank⁡X<p\operatorname{rank}X < p、または列がほぼ従属解が不定、係数が暴れるリッジ回帰(演習 8.3)、擬似逆行列(Appendix)
目的変数が 00 か 11二乗誤差が不自然、確率にならないロジスティック回帰
特徴量そのものを作りたい何を φ\varphi に選ぶかが問題になる主成分分析、ニューラルネットワークと逆伝播
係数の不確かさを知りたい点推定だけでは足りない確率論とベイズ統計の役割

なお統計学の側からは、誤差 εi\varepsilon_i が平均 00・分散 σ2\sigma^2 で無相関という仮定のもとで、最小二乗推定量が「不偏な線形推定量のなかで分散最小」であること(ガウス・マルコフの定理)が示されます。本記事の枠組みでは確率を仮定していないので触れませんが、証明はここで作ったハット行列と直交性だけで書けます。

演習 8.1易

計画行列 XX の列に 1=(1,…,1)T\boldsymbol{1} = (1,\dots,1)^{\mathsf{T}} が含まれるならば、最小二乗解の残差は ∑ir^i=0\sum_i \hat{r}_i = 0 を満たすことを示してください。また、切片を持たないモデル y^=wx\hat{y} = w x(計画行列は x\boldsymbol{x} の 1 列のみ)ではこれが成り立たないことを、具体的なデータで確かめてください。

解答

前半。定理 3.3 より最小二乗解は XT(y−Xw^)=XTr^=0X^{\mathsf{T}}(\boldsymbol{y}-X\hat{\boldsymbol{w}}) = X^{\mathsf{T}}\hat{\boldsymbol{r}} = \boldsymbol{0} を満たします。XTr^X^{\mathsf{T}}\hat{\boldsymbol{r}} の第 jj 成分は XX の第 jj 列と r^\hat{\boldsymbol{r}} の内積です。第 jj 列が 1\boldsymbol{1} ならその成分は ⟨1,r^⟩=∑ir^i\langle\boldsymbol{1},\hat{\boldsymbol{r}}\rangle = \sum_i \hat{r}_i であり、これが 00 になります。

後半。データを (x1,y1)=(1,1)(x_1,y_1) = (1,1)、(x2,y2)=(2,0)(x_2,y_2) = (2,0) とします。計画行列は X=(1,2)TX = (1, 2)^{\mathsf{T}}(n=2n=2、p=1p=1)で、XTX=12+22=5X^{\mathsf{T}}X = 1^2+2^2 = 5、XTy=1⋅1+2⋅0=1X^{\mathsf{T}}\boldsymbol{y} = 1\cdot 1 + 2\cdot 0 = 1 なので w^=1/5=0.2\hat{w} = 1/5 = 0.2 です。予測は y^=(0.2,0.4)T\hat{\boldsymbol{y}} = (0.2, 0.4)^{\mathsf{T}}、残差は r^=(0.8,−0.4)T\hat{\boldsymbol{r}} = (0.8, -0.4)^{\mathsf{T}} で、∑ir^i=0.4≠0\sum_i \hat{r}_i = 0.4 \ne 0 です。もちろん ⟨x,r^⟩=1⋅0.8+2⋅(−0.4)=0\langle \boldsymbol{x}, \hat{\boldsymbol{r}}\rangle = 1\cdot 0.8 + 2\cdot(-0.4) = 0 は成り立っています。直交するのは「XX の列」であって、モデルに含めていない 1\boldsymbol{1} とは直交しません。

演習 8.2標準

X=(1  X~)X = (\boldsymbol{1} \ \ \tilde{X})、X~∈Rn×d\tilde{X}\in\mathbb{R}^{n\times d} と分割し、パラメータも w=(b,u)\boldsymbol{w} = (b, \boldsymbol{u})(u∈Rd\boldsymbol{u}\in\mathbb{R}^d)と分ける。列平均を xˉ=1nX~T1∈Rd\bar{\boldsymbol{x}} = \frac1n\tilde{X}^{\mathsf{T}}\boldsymbol{1}\in\mathbb{R}^d、中心化した行列とベクトルを Xc=X~−1xˉTX_{\mathrm{c}} = \tilde{X}-\boldsymbol{1}\bar{\boldsymbol{x}}^{\mathsf{T}}、yc=y−yˉ1\boldsymbol{y}_{\mathrm{c}} = \boldsymbol{y}-\bar{y}\boldsymbol{1} とおく。このとき正規方程式が

b^=yˉ−xˉTu^,XcTXc u^=XcTyc\hat{b} = \bar{y}-\bar{\boldsymbol{x}}^{\mathsf{T}}\hat{\boldsymbol{u}}, \qquad X_{\mathrm{c}}^{\mathsf{T}}X_{\mathrm{c}}\,\hat{\boldsymbol{u}} = X_{\mathrm{c}}^{\mathsf{T}}\boldsymbol{y}_{\mathrm{c}}

と同値であることを示してください。

解答

正規方程式 XTXw=XTyX^{\mathsf{T}}X\boldsymbol{w} = X^{\mathsf{T}}\boldsymbol{y} をブロックで書きます。1T1=n\boldsymbol{1}^{\mathsf{T}}\boldsymbol{1} = n、1TX~=nxˉT\boldsymbol{1}^{\mathsf{T}}\tilde{X} = n\bar{\boldsymbol{x}}^{\mathsf{T}}、1Ty=nyˉ\boldsymbol{1}^{\mathsf{T}}\boldsymbol{y} = n\bar{y} なので

(nnxˉTnxˉX~TX~)(bu)=(nyˉX~Ty)\begin{pmatrix} n & n\bar{\boldsymbol{x}}^{\mathsf{T}} \\ n\bar{\boldsymbol{x}} & \tilde{X}^{\mathsf{T}}\tilde{X}\end{pmatrix} \begin{pmatrix} b \\ \boldsymbol{u}\end{pmatrix} = \begin{pmatrix} n\bar{y} \\ \tilde{X}^{\mathsf{T}}\boldsymbol{y}\end{pmatrix}

です。第 1 ブロック行は nb+nxˉTu=nyˉnb + n\bar{\boldsymbol{x}}^{\mathsf{T}}\boldsymbol{u} = n\bar{y}、すなわち b=yˉ−xˉTub = \bar{y}-\bar{\boldsymbol{x}}^{\mathsf{T}}\boldsymbol{u} です。これを第 2 ブロック行 nxˉb+X~TX~u=X~Tyn\bar{\boldsymbol{x}}b + \tilde{X}^{\mathsf{T}}\tilde{X}\boldsymbol{u} = \tilde{X}^{\mathsf{T}}\boldsymbol{y} に代入すると

(X~TX~−nxˉxˉT)u=X~Ty−nxˉyˉ\bigl(\tilde{X}^{\mathsf{T}}\tilde{X} - n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathsf{T}}\bigr)\boldsymbol{u} = \tilde{X}^{\mathsf{T}}\boldsymbol{y} - n\bar{\boldsymbol{x}}\bar{y}

を得ます。あとは左辺と右辺の係数が中心化された量であることを確かめます。1T1=n\boldsymbol{1}^{\mathsf{T}}\boldsymbol{1} = n と 1TX~=nxˉT\boldsymbol{1}^{\mathsf{T}}\tilde{X} = n\bar{\boldsymbol{x}}^{\mathsf{T}} より

XcTXc=(X~−1xˉT)T(X~−1xˉT)=X~TX~−X~T1xˉT−xˉ1TX~+xˉ(1T1)xˉT=X~TX~−nxˉxˉT−nxˉxˉT+nxˉxˉT=X~TX~−nxˉxˉT\begin{aligned} X_{\mathrm{c}}^{\mathsf{T}}X_{\mathrm{c}} &= (\tilde{X}-\boldsymbol{1}\bar{\boldsymbol{x}}^{\mathsf{T}})^{\mathsf{T}}(\tilde{X}-\boldsymbol{1}\bar{\boldsymbol{x}}^{\mathsf{T}}) \\ &= \tilde{X}^{\mathsf{T}}\tilde{X} - \tilde{X}^{\mathsf{T}}\boldsymbol{1}\bar{\boldsymbol{x}}^{\mathsf{T}} - \bar{\boldsymbol{x}}\boldsymbol{1}^{\mathsf{T}}\tilde{X} + \bar{\boldsymbol{x}}(\boldsymbol{1}^{\mathsf{T}}\boldsymbol{1})\bar{\boldsymbol{x}}^{\mathsf{T}} \\ &= \tilde{X}^{\mathsf{T}}\tilde{X} - n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathsf{T}} - n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathsf{T}} + n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathsf{T}} = \tilde{X}^{\mathsf{T}}\tilde{X} - n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathsf{T}} \end{aligned}

であり、同様に

XcTyc=X~Ty−yˉX~T1−xˉ1Ty+yˉxˉ1T1=X~Ty−nyˉxˉX_{\mathrm{c}}^{\mathsf{T}}\boldsymbol{y}_{\mathrm{c}} = \tilde{X}^{\mathsf{T}}\boldsymbol{y} - \bar{y}\tilde{X}^{\mathsf{T}}\boldsymbol{1} - \bar{\boldsymbol{x}}\boldsymbol{1}^{\mathsf{T}}\boldsymbol{y} + \bar{y}\bar{\boldsymbol{x}}\boldsymbol{1}^{\mathsf{T}}\boldsymbol{1} = \tilde{X}^{\mathsf{T}}\boldsymbol{y} - n\bar{y}\bar{\boldsymbol{x}}

です。よって主張の 2 式が得られ、逆にこの 2 式から元のブロック方程式が復元できるので同値です。つまり、まずデータを中心化して dd 元の方程式を解き、最後に切片を b^=yˉ−xˉTu^\hat{b} = \bar{y}-\bar{\boldsymbol{x}}^{\mathsf{T}}\hat{\boldsymbol{u}} で求めればよいことになります。d=1d = 1 のときこれは 例 6.1 の公式にほかなりません。

演習 8.3標準

λ>0\lambda > 0 とし、リッジ回帰の目的関数

Lλ(w)=∥y−Xw∥2+λ∥w∥2L_{\lambda}(\boldsymbol{w}) = \lVert \boldsymbol{y}-X\boldsymbol{w}\rVert^2 + \lambda\lVert\boldsymbol{w}\rVert^2

を考える。(1) XX のランクによらず XTX+λIpX^{\mathsf{T}}X+\lambda I_p が正則であることを示してください。(2) LλL_{\lambda} の最小点がただ 1 つ存在し、w^λ=(XTX+λIp)−1XTy\hat{\boldsymbol{w}}_{\lambda} = (X^{\mathsf{T}}X+\lambda I_p)^{-1}X^{\mathsf{T}}\boldsymbol{y} で与えられることを示してください。

解答

(1)。 v≠0\boldsymbol{v}\ne\boldsymbol{0} に対し

vT(XTX+λIp)v=∥Xv∥2+λ∥v∥2≥λ∥v∥2>0\boldsymbol{v}^{\mathsf{T}}(X^{\mathsf{T}}X+\lambda I_p)\boldsymbol{v} = \lVert X\boldsymbol{v}\rVert^2 + \lambda\lVert\boldsymbol{v}\rVert^2 \ge \lambda\lVert\boldsymbol{v}\rVert^2 > 0

です。もし (XTX+λIp)v=0(X^{\mathsf{T}}X+\lambda I_p)\boldsymbol{v} = \boldsymbol{0} となる v≠0\boldsymbol{v}\ne\boldsymbol{0} があれば左辺が 00 になって矛盾するので、核は {0}\{\boldsymbol{0}\}、すなわち正則です。

(2)。 拡大した計画行列と観測ベクトル

Xλ=(Xλ Ip)∈R(n+p)×p,yλ=(y0)∈Rn+pX_{\lambda} = \begin{pmatrix} X \\ \sqrt{\lambda}\,I_p\end{pmatrix}\in\mathbb{R}^{(n+p)\times p}, \qquad \boldsymbol{y}_{\lambda} = \begin{pmatrix} \boldsymbol{y} \\ \boldsymbol{0}\end{pmatrix}\in\mathbb{R}^{n+p}

を考えます。ブロックごとにノルムを計算すると

∥yλ−Xλw∥2=∥y−Xw∥2+∥λw∥2=Lλ(w)\lVert \boldsymbol{y}_{\lambda}-X_{\lambda}\boldsymbol{w}\rVert^2 = \lVert\boldsymbol{y}-X\boldsymbol{w}\rVert^2 + \lVert\sqrt{\lambda}\boldsymbol{w}\rVert^2 = L_{\lambda}(\boldsymbol{w})

なので、リッジ回帰は拡大データに対する通常の最小二乗問題です。XλTXλ=XTX+λIpX_{\lambda}^{\mathsf{T}}X_{\lambda} = X^{\mathsf{T}}X+\lambda I_p、XλTyλ=XTyX_{\lambda}^{\mathsf{T}}\boldsymbol{y}_{\lambda} = X^{\mathsf{T}}\boldsymbol{y} ですから、定理 3.3 よりその正規方程式は (XTX+λIp)w=XTy(X^{\mathsf{T}}X+\lambda I_p)\boldsymbol{w} = X^{\mathsf{T}}\boldsymbol{y} です。(1) と 系 5.2 より解はただ 1 つで、主張の式になります。λ>0\lambda > 0 である限り、例 5.3 のようにランクが落ちたデータでも答えが一意に定まる点が、正則化の効用です。

演習 8.4難

P∈Rn×nP\in\mathbb{R}^{n\times n} が対称かつ冪等(PT=PP^{\mathsf{T}} = P、P2=PP^2 = P)であるとする。(1) PP の固有値は 00 と 11 に限ることを示してください。(2) tr⁡P=rank⁡P\operatorname{tr}P = \operatorname{rank}P を示してください。(3) 命題 4.3 のハット行列に対して、これが tr⁡P=p\operatorname{tr}P = p と整合することを確かめてください。

解答

(1)。 Pv=μvP\boldsymbol{v} = \mu\boldsymbol{v}、v≠0\boldsymbol{v}\ne\boldsymbol{0} とします。両辺に PP を掛けると P2v=μPv=μ2vP^2\boldsymbol{v} = \mu P\boldsymbol{v} = \mu^2\boldsymbol{v} ですが、P2=PP^2 = P より左辺は Pv=μvP\boldsymbol{v} = \mu\boldsymbol{v} です。よって (μ2−μ)v=0(\mu^2-\mu)\boldsymbol{v} = \boldsymbol{0}、v≠0\boldsymbol{v}\ne\boldsymbol{0} より μ2=μ\mu^2 = \mu、すなわち μ∈{0,1}\mu\in\{0,1\} です。

(2)。 PP は実対称なのでスペクトル定理により直交行列 UU で P=UΛUTP = U\Lambda U^{\mathsf{T}}、Λ=diag⁡(μ1,…,μn)\Lambda = \operatorname{diag}(\mu_1,\dots,\mu_n) と対角化できます。(1) より各 μi\mu_i は 00 か 11 です。tr⁡\operatorname{tr} の巡回性から tr⁡P=tr⁡(ΛUTU)=tr⁡Λ=#{i:μi=1}\operatorname{tr}P = \operatorname{tr}(\Lambda U^{\mathsf{T}}U) = \operatorname{tr}\Lambda = \#\{i : \mu_i = 1\} です。一方 UU は正則なので rank⁡P=rank⁡Λ\operatorname{rank}P = \operatorname{rank}\Lambda で、これも 11 の個数です。よって両者は等しくなります。

(3)。 命題 4.3 の P=X(XTX)−1XTP = X(X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}} は同命題の 1 より対称冪等で、その像は Im⁡X\operatorname{Im}X(同 2)ですから rank⁡P=dim⁡Im⁡X=rank⁡X=p\operatorname{rank}P = \dim\operatorname{Im}X = \operatorname{rank}X = p です。(2) と合わせて tr⁡P=p\operatorname{tr}P = p となり、同命題の 4 で巡回性から直接示した結果と一致します。例 4.5 では n=3n = 3、p=2p = 2 で、固有値は 1,1,01, 1, 0、トレースは 22 でした。

教科書(線形代数と幾何). G. Strang, Introduction to Linear Algebra, 5th ed., Wellesley–Cambridge Press, 2016 — 第 4 章(直交性・射影・最小二乗法)。射影行列と正規方程式を幾何から説明する定番です。金谷健一『これなら分かる最適化数学:基礎原理から計算手法まで』共立出版、2005 — 最小二乗法と特異値分解を扱う章。日本語で読める入門としてまとまっています。

数値計算. G. H. Golub and C. F. Van Loan, Matrix Computations, 4th ed., Johns Hopkins University Press, 2013 — 第 5 章(直交化と最小二乗問題)。QR 分解による解法と条件数の議論はここが標準的な出典です。Å. Björck, Numerical Methods for Least Squares Problems, SIAM, 1996 — 最小二乗問題の数値解法を網羅した専門書。

統計・機械学習への接続. T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning, 2nd ed., Springer, 2009 — 第 3 章(回帰の線形手法)。リッジ回帰・多重共線性・変数選択が本記事の枠組みの延長で説明されています。著者による PDF が公開されています。C. M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006 — 第 3 章(回帰の線形モデル)。最小二乗法を最尤推定として読み直す視点が丁寧です。

歴史. S. M. Stigler, The History of Statistics: The Measurement of Uncertainty before 1900, Harvard University Press, 1986 — 第 1 部。ルジャンドルとガウスの優先権論争と、最小二乗法が受け入れられていく過程が資料に基づいて丁寧に追跡されています。

Appendix: 擬似逆行列と最小ノルム解

Section titled “Appendix: 擬似逆行列と最小ノルム解”

ランクが落ちても答えを 1 つに決める. 例 5.3 で見たように、rank⁡X<p\operatorname{rank}X < p のとき最小二乗解は無数にあります。数値計算ライブラリはそのなかから 1 つを返さなければなりません。標準的な選び方は「ノルムが最小のもの」です。

命題 8.5(最小ノルム最小二乗解)✓

X∈Rn×pX\in\mathbb{R}^{n\times p}、y∈Rn\boldsymbol{y}\in\mathbb{R}^n とし、最小二乗解の集合を SS とする。このとき S∩Im⁡(XT)S \cap \operatorname{Im}(X^{\mathsf{T}}) はただ 1 点からなり、その元 w^+\hat{\boldsymbol{w}}^{+} は SS のなかでノルムを最小にする唯一の元である。

証明(命題 8.5)

定理 4.2 より S≠∅S\ne\varnothing で、定理 3.3 より S=w0+Ker⁡XS = \boldsymbol{w}_0+\operatorname{Ker}X(w0∈S\boldsymbol{w}_0\in S は任意の 1 つ)です。補題 4.1 を XTX^{\mathsf{T}} に適用すると (Im⁡XT)⊥=Ker⁡X(\operatorname{Im}X^{\mathsf{T}})^{\perp} = \operatorname{Ker}X となるので、直交分解

Rp=Im⁡(XT)⊕Ker⁡X\mathbb{R}^p = \operatorname{Im}(X^{\mathsf{T}}) \oplus \operatorname{Ker}X

が成り立ちます。これに従って w0=u+z\boldsymbol{w}_0 = \boldsymbol{u}+\boldsymbol{z}(u∈Im⁡XT\boldsymbol{u}\in\operatorname{Im}X^{\mathsf{T}}、z∈Ker⁡X\boldsymbol{z}\in\operatorname{Ker}X)と分解すると、u=w0−z∈S\boldsymbol{u} = \boldsymbol{w}_0-\boldsymbol{z} \in S かつ u∈Im⁡XT\boldsymbol{u}\in\operatorname{Im}X^{\mathsf{T}} です。したがって S∩Im⁡(XT)≠∅S\cap\operatorname{Im}(X^{\mathsf{T}})\ne\varnothing です。2 つの元 u,u′\boldsymbol{u},\boldsymbol{u}' がこの共通部分に属せば、u−u′∈Ker⁡X\boldsymbol{u}-\boldsymbol{u}'\in\operatorname{Ker}X(SS の形から)かつ u−u′∈Im⁡XT\boldsymbol{u}-\boldsymbol{u}'\in\operatorname{Im}X^{\mathsf{T}} ですが、直交分解の 2 つの成分の共通部分は {0}\{\boldsymbol{0}\} なので u=u′\boldsymbol{u} = \boldsymbol{u}'、すなわち 1 点です。これを w^+\hat{\boldsymbol{w}}^{+} と書きます。

最小性を示します。任意の w∈S\boldsymbol{w}\in S は w=w^++v\boldsymbol{w} = \hat{\boldsymbol{w}}^{+}+\boldsymbol{v}(v∈Ker⁡X\boldsymbol{v}\in\operatorname{Ker}X)と書け、w^+⊥v\hat{\boldsymbol{w}}^{+}\perp\boldsymbol{v} ですからピタゴラスの定理より

∥w∥2=∥w^+∥2+∥v∥2≥∥w^+∥2\lVert\boldsymbol{w}\rVert^2 = \lVert\hat{\boldsymbol{w}}^{+}\rVert^2 + \lVert\boldsymbol{v}\rVert^2 \ge \lVert\hat{\boldsymbol{w}}^{+}\rVert^2

であり、等号は v=0\boldsymbol{v} = \boldsymbol{0} すなわち w=w^+\boldsymbol{w} = \hat{\boldsymbol{w}}^{+} のときに限ります。

擬似逆行列. この w^+\hat{\boldsymbol{w}}^{+} は、XX の特異値分解 X=UΣVTX = U\Sigma V^{\mathsf{T}} から作られるムーア・ペンローズ擬似逆行列を使って書けます。

定義 8.6(ムーア・ペンローズ擬似逆行列)↗

X∈Rn×pX\in\mathbb{R}^{n\times p} の特異値分解を X=UΣVTX = U\Sigma V^{\mathsf{T}}(U,VU, V は直交行列、Σ\Sigma の対角成分が特異値 σ1≥⋯≥σr>0\sigma_1\ge\cdots\ge\sigma_r > 0、それ以外は 00)とする。Σ+\Sigma^{+} を、Σ\Sigma の 00 でない対角成分を逆数に置き換えて転置した行列とし、

X+=VΣ+UT∈Rp×nX^{+} = V\Sigma^{+}U^{\mathsf{T}} \in \mathbb{R}^{p\times n}

を XX の擬似逆行列という。rank⁡X=p\operatorname{rank}X = p のときは X+=(XTX)−1XTX^{+} = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}} と一致する。

w^+=X+y\hat{\boldsymbol{w}}^{+} = X^{+}\boldsymbol{y} が成り立ちます(X+yX^{+}\boldsymbol{y} が正規方程式を満たすことと X+y∈Im⁡XTX^{+}\boldsymbol{y}\in\operatorname{Im}X^{\mathsf{T}} であることを U,Σ,VU,\Sigma,V で書けば確認できます。詳しくは Golub–Van Loan の第 5 章を参照してください)。NumPy の np.linalg.lstsq や np.linalg.pinv が返すのはこの解です。例 5.3 の解集合 (0.5,1.5−2t,t)(0.5, 1.5-2t, t) でノルムの二乗

0.25+(1.5−2t)2+t2=5t2−6t+2.50.25 + (1.5-2t)^2 + t^2 = 5t^2 - 6t + 2.5

を最小にするのは t=3/5=0.6t = 3/5 = 0.6 で、w^+=(0.5, 0.3, 0.6)T\hat{\boldsymbol{w}}^{+} = (0.5,\ 0.3,\ 0.6)^{\mathsf{T}} です。実際この解は核の生成元 (0,2,−1)T(0,2,-1)^{\mathsf{T}} と直交します(2⋅0.3−0.6=02\cdot 0.3 - 0.6 = 0)。ノルムの二乗は 0.70.7 で、t=0t = 0 の解 (0.5,1.5,0)(0.5, 1.5, 0) の 2.52.5 より小さくなっています。

このテーマの 100 本ノック(50 問)

執筆: Claude Code(Sonnet 5.5)・監査 3 回(Claude Code)・最終 2026-10-12

この記事の誤りを報告する ・運営: 夢現技研合同会社 ・料金 ・利用条件 ・特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・コード例は MIT ライセンスです。