手帳と試行

学んだことをアウトプットしていきます。 日々、ノートあるのみ。

線形回帰モデル

回帰モデルの基本である線形回帰モデルを取り扱う。

線形回帰モデル

データセット

D={(x1,y1),(x2,y2),,(xd,yd)}\mathcal D = \{ (\bm x_1, y_1), (\bm x_2, y_2), \cdots, (\bm x_d, y_d) \}

に含まれる xX\bm x \in \mathcal XyRy \in \R の関係が、

fw(x)=i=1nwixi=xTw\begin{aligned} f_{\bm w}(\bm x) = \sum_{i=1}^n w_i x_i = \bm x^\mathsf{T} \bm w \end{aligned}

を用いて、

y=fw(x)+ε\begin{aligned} y = f_{\bm w}(\bm x) + \varepsilon \end{aligned}

によって与えられていると仮定する。このようなモデルを線形回帰モデル (linear regression model) という。

パラメータ

線形回帰モデルには具体的に値が定まっていない定数 w\bm w が含まれており、w\bm w に値が与えられることで入出力関係 fw:XRf_{\bm w}:\mathcal X \to \R が一意に定まるようになっている。このようなとき、定数 w\bm wパラメータ (parameter) あるいは母数などという。

線形回帰モデルを学習する (learn) または訓練する (train) という場合には、「パラメータ w\bm w をデータ D\mathcal D および何らかの知識に基づいて推定する」ことを指す。以降、w\bm w の推定量を w^\hat{\bm w} と表すことにする。

w^estimate(w)\begin{aligned} \hat{\bm w} \coloneqq \operatorname{estimate}(\bm w) \end{aligned}
残差

確率変数 ε\varepsilon は、モデル fwf_{\bm w} を用いて評価された fw(x)f_{\bm w}(\bm x) の値と、実際に観測された出力 yy の差を表す確率変数であり、ノイズ (noise) とか残差 (residual) とか呼ばれる。ノイズを付加する理由は次の2つである。

  • 入出力関係を完璧に表現することは不可能であり、予測結果には常に不正確さがつきまとうため
  • 入出力データが完全に正確であるという保証が与えられない場合も多く、データを完全に信頼することは不自然であるため

典型的には、正規分布に従う確率変数を仮定する場合が多い。

εN(ε0,σ2)\begin{aligned} \varepsilon \sim \mathcal N(\varepsilon | 0, \sigma^2) \end{aligned}

残差 ε\varepsilonyxTwy - \bm x^\mathsf{T}\bm w で表されるから、次のように変形することができる。

N(ε0,σ2)=N(yxTw0,σ2)exp(12σ2(yxTw)2)N(yxTw,σ2)\begin{aligned} \mathcal N(\varepsilon | 0, \sigma^2) ={}& \mathcal N(y - \bm x^\mathsf{T}\bm w | 0, \sigma^2) \\ \propto{}& \exp\left( -\frac{1}{2\sigma^2} (y - \bm x^\mathsf{T}\bm w)^2 \right) \\ \propto{}& \mathcal N(y | \bm x^\mathsf{T}\bm w, \sigma^2) \end{aligned}

このことは、入力 x\bm x および パラメータ w\bm w が定まったとき、出力 yy は正規分布に従うことを意味する。

p(yx,w)=N(yxTw,σ2)\begin{aligned} p(y | \bm x, \bm w) = \mathcal N(y | \bm x^\mathsf{T} \bm w, \sigma^2) \end{aligned}
尤度関数

データセット D\mathcal D の中身を次のように配列としてまとめる。

y[y1y2yd]RdX[x1Tx2TxdT]=[x11x12x1nx21x22x2nxd1xd2xdn]Rd×n\begin{aligned} \bm y &\coloneqq \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_d \end{bmatrix} && \in \mathbb R^d \\ \bm X &\coloneqq \begin{bmatrix} \bm x_1^\mathsf{T} \\ \bm x_2^\mathsf{T} \\ \vdots \\ \bm x_d^\mathsf{T} \end{bmatrix} = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{d1} & x_{d2} & \cdots & x_{dn} \\ \end{bmatrix} && \in \mathbb R^{d \times n} \end{aligned}

すると、D\mathcal D 内のすべての入出力の組をまとめて次のように書くことができる。

yp(yX,w)\begin{aligned} \bm y \sim p(\bm y | \bm X, \bm w) \end{aligned}

さらに各回の試行 yip(yixi,w)y_i \sim p(y_i | \bm x_i, \bm w) が独立であると仮定すると、次のように変形できる。

p(yX,w)=i=1dp(yixi,w)=i=1dN(yif(xw),σ2)i=1dexp(12σ2(yif(xw))2)=exp(12σ2i=1d(yixTw)2)=exp(12σ2yXw22)\begin{aligned} p(\bm y | \bm X, \bm w) ={}& \prod_{i=1}^d p(y_i | \bm x_i, \bm w) \\ ={}& \prod_{i=1}^d \mathcal N (y_i | f(\bm x | \bm w), \sigma^2) \\ \propto{}& \prod_{i=1}^d \exp \left( - \frac{1}{2\sigma^2} \left(y_i - f(\bm x | \bm w) \right)^2 \right) \\ ={}& \exp \left( - \frac{1}{2\sigma^2} \sum_{i=1}^d \left(y_i - \bm x^\mathsf{T} \bm w \right)^2 \right) \\ ={}& \exp \left( - \frac{1}{2\sigma^2} \left\| \bm y - \bm X \bm w \right\|_2^2 \right) \end{aligned}

この p(yX,w)p(\bm y | \bm X, \bm w)w\bm w についての関数と捉えた場合「X\bm Xy\bm y が得られたときのパラメータ w\bm w の尤もらしさ」を表す関数と解釈できる。そこで p(yX,w)p(\bm y | \bm X, \bm w)w\bm w尤度関数 (likelihood function) という。

多変量正規分布

多変量正規分布 (multivariate normal distribution) と呼ばれる同時確率分布を導入する。確率密度関数は次式で与えられる。

Nd(xm,V)=1(2π)ddetVexp(12(xm)TV1(xm))\begin{aligned} \mathcal N_d(\bm x | \bm m, \bm V) = \sqrt\frac{1}{(2\pi)^d \det \bm V} \exp \left( -\frac{1}{2} (\bm x - \bm m)^\mathsf{T} V^{-1} (\bm x - \bm m) \right) \end{aligned}

パラメータ m\bm m は平均ベクトルと呼ばれる dd 次元ベクトルで、V\bm V は共分散行列と呼ばれる d×dd \times d 半正定値行列である。V\bm V(i,j)(i,j) 要素は xix_ixjx_j の共分散を表す。

xRdmRdVRd×dxRd,xTVx0\begin{gathered} \begin{gathered} \bm x &\in& \mathbb R^{d} \\ \bm m &\in& \mathbb R^{d} \\ \bm V &\in& \mathbb R^{d \times d} \\ \end{gathered} \\ {}^\forall \bm x \in \mathbb R^d, \bm x^\mathsf{T} \bm V \bm x \ge 0 \end{gathered}

もしも共分散行列が V=σ2Id\bm V = \sigma^2 \bm I_d ならば、次のことが成り立つ。

Nd(xm,σ2I)=1(2π)ddet(σ2Id)exp(12(xm)T(σ2I)1(xm))=1(2πσ2)dexp(12σ2xm22)=i=1d12πσ2exp(12σ2(ximi)2)=i=1dN(ximi,σ2)\begin{aligned} \mathcal N_d(\bm x | \bm m, \sigma^2 \bm I) ={}& \sqrt \frac{1}{(2\pi)^d \det (\sigma^2 \bm I_d)} \exp \left( -\frac{1}{2} (\bm x - \bm m)^\mathsf{T} (\sigma^2 \bm I)^{-1} (\bm x - \bm m) \right) \\ ={}& \sqrt \frac{1}{(2\pi\sigma^2)^d} \exp \left( -\frac{1}{2 \sigma^2} \|\bm x - \bm m\|_2^2 \right) \\ ={}& \prod_{i=1}^{d} \sqrt \frac{1}{2\pi \sigma^2} \exp \left( -\frac{1}{2\sigma^2} (x_i - m_i)^2 \right) \\ ={}& \prod_{i=1}^{d} \mathcal N(x_i | m_i, \sigma^2) \end{aligned}

このことを用いれば、本記事の線形モデルの尤度関数は次のようにも表現できる。

p(yX,w)=i=1dN(yixiTw,σ2)=Nd(yXw,σ2Id)\begin{aligned} p(\bm y | \bm X, \bm w) ={}& \prod_{i=1}^{d} \mathcal N(y_i | \bm x_i^\mathsf{T} \bm w, \sigma^2) \\ ={}& \mathcal N_d(\bm y | \bm X \bm w, \sigma^2 \bm I_d) \end{aligned}

確率モデルとしての解釈

あるパラメータ θ\theta が存在して、それを元にデータ D\mathcal D が生成されるという状況を考えよう。これを次のように表す。

Dp(Dθ)\mathcal D \sim p(\mathcal D | \theta)

記号\simは、その右辺に従うように左辺の量が生成されることを意味する。

以上のようなモデルを生成モデルという。

線形回帰モデルの場合、生成されるデータは出力データ y\bm y、パラメータは入力データ X\bm X および母数 w\bm w である。

yp(yX,w)\bm y \sim p(\bm y | \bm X, \bm w)

このうち、入力データ X\bm X はあとから人間が与える量であるため、モデルは母数 w\bm w を推定しさえすればよいということになる。

実用上は入力 X\bm X と出力 y\bm y をまとめて「データセット」と呼び、D={X,y}\mathcal D = \{\bm X, \bm y\} などと表記することが多い。

そこで、X\bm X がバーの左側に存在する場合、とにかくそいつを右側に移動したものとして考えよう。より正確には、生成モデル p(Dθ)p(\mathcal D | \theta) に含まれる「D\mathcal D|」の部分を、形式的に「yX\bm y | \bm X」に置き換えたものとして考える。

たとえば

p(D2D1)p(y2X2,X1,y1)\begin{aligned} p(\mathcal D_2 | \mathcal D_1) &\to p(\bm y_2 | \bm X_2, \bm X_1, \bm y_1) \\ \end{aligned}

といった具合。以降、このような生成モデルを特に回帰モデルと呼ぶことにする。