手帳と試行

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

線形回帰と特徴量

線形回帰モデルを非線形関数の線形結合とみなすために「特徴量」と呼ばれる概念を導入する。

特徴量の導入

これまで、線形回帰モデルは次のようなものを考えてきた。

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

このような線形回帰モデルは yyx\bm x の各要素 x1,x2,,xnx_1, x_2, \dots, x_n の線形結合により表されることを仮定している。なので、このままでは非線形な関数が表現できない。

が、ちょっと工夫を施すだけでこの問題は回避できる。

たとえば次式で表される2次多項式モデルを考えてみよう。

y=w0+i=1nwixi+i,j:i<jwijxixj\begin{aligned} y &= w_0 + \sum_{i=1}^n w_i x_i + \sum_{i,j: i \lt j} w_{ij} x_i x_j \end{aligned}

このモデルは x\bm x に関しては2次である。

しかし、次のような関数 ϕ=ϕ(x)\bm \phi = \bm \phi(\bm x) と係数 w\bm w を持ち出すと、事情が変わって見える。

ϕ=[1x1x2xnx1x2x1x3xn1xn]Rp,v=[w0w1w2wnw12w13w(n1)n]Rp,p=1+n+(n2)\begin{gathered} \bm \phi = \left[\begin{darray}{} 1 \\ \hline x_1 \\ x_2 \\ \vdots \\ x_n \\ \hline x_1x_2 \\ x_1x_3 \\ \vdots \\ x_{n-1} x_n \end{darray}\right] \in \mathbb R^p, \quad \bm v = \left[\begin{darray}{} w_0 \\ \hline w_1 \\ w_2 \\ \vdots \\ w_n \\ \hline w_{12} \\ w_{13} \\ \vdots \\ w_{(n-1)n} \end{darray}\right] \in \mathbb R^p, \\ \\ p = 1 + n + \binom{n}{2} \\ \end{gathered}

ただし (n2)\dbinom{n}{2} は二項係数である。

これらを用いると、上記の2次多項式モデルは

y=w0+i=1nwixi+i,j:i<jwijxixj=i=1pϕiwi=ϕTv\begin{aligned} y &= w_0 + \sum_{i=1}^n w_i x_i + \sum_{i,j: i \lt j} w_{ij} x_i x_j \\ &= \sum_{i=1}^p \phi_i w_i \\ &= \bm \phi^\mathsf{T} \bm v \end{aligned}

という内積の形に書き落とすことができる。

このようにすることで、たとえ入出力関係が単純に y=xTwy = \bm x^\mathsf{T} \bm w とは表せないような場合にも、適切な非線形関数を追加しておくことで回帰が可能になるのである。

以上のような考え方により中間に挟み込まれた ϕ(x)\bm \phi(\bm x) という量を特徴量 (a feature) という。

特徴量の履歴

データセット Dd\mathcal D_d に含まれる x1,x2,,xd\bm x_1, \bm x_2, \dots, \bm x_d

X[x1Tx2TxdT]=[x11x12x1nx21x22x2nxd1xd2xdn]Rd×n\begin{aligned} \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}

とまとめるのと同様に、それらに対応する ϕi=ϕ(xi)\bm \phi_i = \bm \phi(\bm x_i) を次のようにまとめることを考えよう。

Φ[ϕ1Tϕ2TϕdT]=[ϕ11ϕ12ϕ1pϕ21ϕ22ϕ2pϕd1ϕd2ϕdp]Rd×p\begin{aligned} \bm \Phi \coloneqq \begin{bmatrix} \bm \phi_1^\mathsf{T} \\ \bm \phi_2^\mathsf{T} \\ \vdots \\ \bm \phi_d^\mathsf{T} \end{bmatrix} = \begin{bmatrix} \phi_{11} & \phi_{12} & \cdots & \phi_{1p} \\ \phi_{21} & \phi_{22} & \cdots & \phi_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ \phi_{d1} & \phi_{d2} & \cdots & \phi_{dp} \\ \end{bmatrix} \in \mathbb R^{d \times p} \end{aligned}

以上を用いると、尤度関数は次のように表現できる。

p(yX,v)=Nd(yΦv,σ2Id)p(\bm y | \bm X, \bm v) = \mathcal N_d (\bm y | \bm \Phi \bm v, \sigma^2 \bm I_d)

これは特徴量へのマッピングを介さずに直接線形回帰を行う場合の尤度関数

p(yX,w)=Nd(yXw,σ2Id)p(\bm y | \bm X, \bm w) = \mathcal N_d (\bm y | \bm X \bm w, \sigma^2 \bm I_d)

における XRd×n\bm X \in \mathbb R^{d \times n}ΦRd×p\bm \Phi \in \mathbb R^{d \times p} に、wRd\bm w \in \mathbb R^dvRp\bm v \in \mathbb R^p に置き換えた形をしている。

線形回帰モデルと特徴量

線形回帰モデルの本質は、Φv\bm \Phi \bm vXw\bm X \bm w など、出力を並べたベクトルがパラメータの線形変換により得られるという部分にある。

つまり出力がパラメータの線形変換ならばすべて線形回帰モデルとして取り扱えるのである。