パターン認識と機械学習(PRML)の表記に則る。
訓練集合を利用して、新たな入力変数の値$\hat{x}$に対して目標変数$\hat{t}$の値を予測すること。
訓練データ集合$\mathcal{D}$として、$N$個の${\bf x}$の観測値${\bf X}=({\bf x}_1,\cdots,{\bf x}_N)^T$、$t$の観測値${\bf t}=(t_1,\cdots,t_N)^T$が与えられたとする。
目標変数$t$が決定論的な関数$y({\bf x})$とガウスノイズ$\epsilon$の和で与えられると考える。 $$t=y({\bf x})+\epsilon$$ ただし、$\epsilon$は期待値$0$、精度(分散の逆数)が$\beta$の正規分布に従う確率変数である。確率変数$t$の確率密度関数は $$p(t|{\bf x},\beta)=\mathcal{N}(t|y({\bf x}),\beta^{-1})$$ と表すことができる。
損失関数$L(t,y({\bf x}))$を二乗誤差関数$L(t,y({\bf x}))=\{ y({\bf x})-t \}^2$とする。期待損失は \begin{eqnarray} \mathbb{E}[L(t,y({\bf x}))]&=&\int_{\mathbb{R}} \int_{\mathbb{R}^D} L(t,y({\bf x})) p({\bf x},t)d{\bf x}dt \\ &=&\int_{\mathbb{R}} \int_{\mathbb{R}^D} \{ y({\bf x})-t \}^2 p({\bf x},t)d{\bf x}dt \end{eqnarray} と書ける。目標は期待損失$\mathbb{E}[L(t,y({\bf x}))]$を最小にする$y({\bf x})$を選ぶことである。変分 \begin{eqnarray} \frac{\delta \mathbb{E}[L(t,y({\bf x}))]}{\delta y({\bf x})}&=&2\int_{\mathbb{R}}\{ y({\bf x})-t\}p({\bf x},t)dt \\ &=&2y({\bf x}) \int_{\mathbb{R}} p({\bf x},t)dt-2 \int_{\mathbb{R}}t p({\bf x},t)dt \\ &=&2y({\bf x}) p({\bf x})-2 \int_{\mathbb{R}}t p({\bf x},t)dt \\ &=&0 \end{eqnarray} を$y({\bf x})$について解く。ただし、2行目から3行目の式変形は確率の加法・乗法定理を用いている。 $$ y({\bf x})=\frac{\int_{\mathbb{R}}t p({\bf x},t)dt}{p({\bf x})}=\int_{\mathbb{R}}tp(t|{\bf x})dt=\mathbb{E}_t[t|{\bf x}] $$ これは${\bf x}$が与えられた下での$t$の条件付き期待値であり、回帰関数と呼ばれる。ただし、$\mathbb{E}_t[t|{\bf x}]$は確率変数$t$の分布に関する期待値を表し、${\bf x}$の関数になる。最適な予測である条件付き期待値を$h({\bf x})$と書くこととする。 $$h({\bf x})=\mathbb{E}_t[t|{\bf x}]=\int_{\mathbb{R}} t p(t|{\bf x})dt$$
$y({\bf x},{\bf w})$を線形モデルと考える。 $$y({\bf x},{\bf w}) = \phi ({\bf x})^T {\bf w} $$ 最尤推定では、上記の仮定では最小二乗法同様、二乗和誤差関数を最小化する${\bf w }$を求める。(回帰モデルのipynb参照) $$E_{D} ({\bf w })=\frac{1}{2}\sum_{n=1}^N \{ t_n - \phi ({\bf x_n})^T {\bf w } \}$$ このとき $${\bf w }_{ \mathcal{D}}=( \Phi^T \Phi )^{-1} \Phi^T {\bf t}$$ であり、 $$y({\bf x}; \mathcal{D}) = \phi ({\bf x})^T {\bf w}_{ \mathcal{D}}$$ となる。現実では有限個のデータ$\mathcal{D}$しか与えられないため、理想的な回帰関数$h({\bf x})$を厳密に求めることはできない。
分布$(t,{\bf x}$に従う標本数$N$で互いに独立な多数の訓練データ集合$\mathcal{D}$を考え、このデータ集合$\mathcal{D}$の取り方に関する期待値を考える。 $$\mathbb{E}_{\mathcal{D}} [y({\bf x};\mathcal{D})] = \sum_{\mathcal{D}} \phi ({\bf x})^T {\bf w}_{ \mathcal{D}} p( \mathcal{D})$$
$\mathbb{E}_{ \mathcal{D}}[ \{ y({\bf x};\mathcal{D}) -\mathbb{E}_{\mathcal{D}}[y({\bf x};\mathcal{D})] \}^2 ]$をバリアンスと呼び、$\mathbb{E}_{\mathcal{D}}[y({\bf x};\mathcal{D})] -h({\bf x})$をバイアスと呼ぶ。
In [2]:
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
%matplotlib inline
In [28]:
N = 10
x = np.linspace(0,1,N)
y = np.sin(2*np.pi*x)
sigma = 0.3
y
Out[28]:
In [17]:
#np.ones(10)
xx = x
#x_order = [x]
X = x
for _ in range(8):
xx = xx * x
#x_order += [xx]
X = np.c_[X,xx]
X
Out[17]:
In [29]:
D_list = []
for l in range(100):
t = y + np.random.normal(0,sigma*2,N)
D_list += [t]
In [12]:
from sklearn.linear_model import LinearRegression
In [30]:
D_list[0]
Out[30]:
In [31]:
model = LinearRegression(fit_intercept=True)
model.fit(X, D_list[0])
Out[31]:
In [33]:
model.predict(X)
Out[33]:
In [ ]:
plt.plot(x,y,color='green')
plt.scatter(x,t)
In [34]:
plt.plot(x,model.predict(X),color='green')
plt.scatter(x,t)
Out[34]:
統計的学習の基礎の表記に則る。
訓練集合を利用して、新たな入力変数の値$\hat{x}$に対して目標変数$\hat{t}$の値を予測すること。
訓練データ集合$\mathcal{T}$として、$N$個の${\bf x}$の観測値${\bf X}=(x_1,\cdots,x_N)^T$、$t$の観測値${\bf y}=(y_1,\cdots,y_N)^T$が与えられたとする。
目標変数$Y$が決定論的な関数$y({\bf x})$とガウスノイズ$\epsilon$の和で与えられると考える。 $$Y=f(X)+\epsilon$$ ただし、$\epsilon$は期待値$E(\epsilon)=0$、分散が$Var(\epsilon)=\sigma_{\epsilon}^2$の正規分布に従う確率変数である。確率変数$Y$の確率密度関数は $$p(t|{\bf x},\beta)=\mathcal{N}(t|y({\bf x}),\beta^{-1})$$ と表すことができる。
損失関数$L(Y,\hat{f}(X))$を2乗誤差関数$L(Y,\hat{f}(X))=\{ Y-\hat{f}(X) \}^2$とする。期待損失は \begin{eqnarray} E[L(Y,\hat{f}(X))]&=&\int_{\mathbb{R}} \int_{\mathbb{R}^D} L(t,y({\bf x})) p({\bf x},t)d{\bf x}dt \\ &=&\int_{\mathbb{R}} \int_{\mathbb{R}^D} \{ y({\bf x})-t \}^2 p({\bf x},t)d{\bf x}dt \end{eqnarray} と書ける。目標は期待損失$\mathbb{E}[L(t,y({\bf x}))]$を最小にする$y({\bf x})$を選ぶことである。変分 \begin{eqnarray} \frac{\delta \mathbb{E}[L(t,y({\bf x}))]}{\delta y({\bf x})}&=&2\int_{\mathbb{R}}\{ y({\bf x})-t\}p({\bf x},t)dt \\ &=&2y({\bf x}) \int_{\mathbb{R}} p({\bf x},t)dt-2 \int_{\mathbb{R}}t p({\bf x},t)dt \\ &=&2y({\bf x}) p({\bf x})-2 \int_{\mathbb{R}}t p({\bf x},t)dt \\ &=&0 \end{eqnarray} を$y({\bf x})$について解く。ただし、2行目から3行目の式変形は確率の加法・乗法定理を用いている。 $$ y({\bf x})=\frac{\int_{\mathbb{R}}t p({\bf x},t)dt}{p({\bf x})}=\int_{\mathbb{R}}tp(t|{\bf x})dt=\mathbb{E}_t[t|{\bf x}] $$ これは${\bf x}$が与えられた下での$t$の条件付き期待値であり、回帰関数と呼ばれる。ただし、$\mathbb{E}_t[t|{\bf x}]$は確率変数$t$の分布に関する期待値を表し、${\bf x}$の関数になる。最適な予測である条件付き期待値を$h({\bf x})$と書くこととする。 $$h({\bf x})=\mathbb{E}_t[t|{\bf x}]=\int_{\mathbb{R}} t p(t|{\bf x})dt$$
$f(X)$を線形モデルと考える。 $$f(X) = X^T {\bf \beta} $$ 最小2乗法では二乗和誤差関数を最小化する${\bf \beta}$を求める。(回帰モデルのipynb参照) $$RSS(\beta)=\sum_{i=1}^N \{ y_i - f(x_i) \}$$ このとき $${\bf w }_{ \mathcal{D}}=( \Phi^T \Phi )^{-1} \Phi^T {\bf t}$$ であり、 $$y({\bf x}; \mathcal{D}) = \phi ({\bf x})^T {\bf w}_{ \mathcal{D}}$$ となる。現実では有限個のデータ$\mathcal{D}$しか与えられないため、理想的な回帰関数$h({\bf x})$を厳密に求めることはできない。
分布$(t,{\bf x}$に従う標本数$N$で互いに独立な多数の訓練データ集合$\mathcal{D}$を考え、このデータ集合$\mathcal{D}$の取り方に関する期待値を考える。 $$\mathbb{E}_{\mathcal{D}} [y({\bf x};\mathcal{D})] = \sum_{\mathcal{D}} \phi ({\bf x})^T {\bf w}_{ \mathcal{D}} p( \mathcal{D})$$
$\mathbb{E}_{ \mathcal{D}}[ \{ y({\bf x};\mathcal{D}) -\mathbb{E}_{\mathcal{D}}[y({\bf x};\mathcal{D})] \}^2 ]$をバリアンスと呼び、$\mathbb{E}_{\mathcal{D}}[y({\bf x};\mathcal{D})] -h({\bf x})$をバイアスと呼ぶ。
訓練データ集合$T$とする.入力$x_0$ 平均2乗誤差(MSE:mean squared error) \begin{eqnarray} MSE(x_0) &=& E_T[(f(x_0)-\hat{y}_0)^2] \\ &=& E_T[(\hat{y}_0 - E_T[\hat{y}_0] + E_T[\hat{y}_0] - f(x_0))^2] \\ &=& E_T[(\hat{y}_0 - E_T[\hat{y}_0])^2 +2(\hat{y}_0 - E_T[\hat{y}_0])(E[\hat{y}_0] - f(x_0)) + (E_T[\hat{y}_0] - f(x_0))^2] \\ &=& E_T[(\hat{y}_0-E[\hat{y}_0])^2]+2E_T[(\hat{y}_0 - E_T[\hat{y}_0])(E[\hat{y}_0] - f(x_0))] + E_T[(E_T[\hat{y}_0] - f(x_0))^2] \\ &=& E_T[(\hat{y}_0-E[\hat{y}_0])^2]+(E_T[\hat{y}_0] - f(x_0))^2 \\ &=& Var_T[\hat{y}_0] + (Bias[\hat{y}_0])^2 \end{eqnarray} バリアンス(分散) $$ Var_T[\hat{y}_0]=E_T[(\hat{y}_0-E[\hat{y}_0])^2] $$ バイアス $$ Bias[\hat{y}_0]=E_T[\hat{y}_0] - f(x_0) $$
母集団分布 $$\tilde{t} = h({\bf x})+\tilde{\epsilon}$$ $x$のときの母集団の最良推定量 $$h({\bf x})=E[\tilde{t}|\tilde{\bf x}={\bf x}]=\int_{\mathbb{R}} tp(t|{\bf x})dt$$
標本から推定した$y$ $$y({\bf x};D)=E_D[\tilde{t}|{\bf x}]$$
\begin{eqnarray} L( \tilde{t},y({\bf x};D))&=&(y({\bf x};D)- \tilde{t})^2 \\ &=& (y({\bf x};D)-E[ \tilde{t}|{\bf x}] +E[\tilde{t}|{\bf x}] - \tilde{t})^2\\ &=& (y({\bf x};D)-E[ \tilde{t}|{\bf x}])^2 +2(y({\bf x};D)-E[ \tilde{t}|{\bf x}])(E[ \tilde{t}|{\bf x}] - \tilde{t})+(E[\tilde{t}|{\bf x}] - \tilde{t})^2 \end{eqnarray}\begin{eqnarray} E[L]&=& \int_{\mathbb{R}} \int_{\mathbb{R}^p} L(t,y({\bf x}))p({\bf x},t)d{\bf x}dt \\ &=& \int_{\mathbb{R}} \int_{\mathbb{R}^p} (y({\bf x};D)- t)^2 p({\bf x},t)d{\bf x}dt \\ &=& \int_{\mathbb{R}} \int_{\mathbb{R}^p} ((y({\bf x};D)-E[ \tilde{t}|{\bf x}])^2 +2(y({\bf x};D)-E[ \tilde{t}|{\bf x}])(E[ \tilde{t}|{\bf x}] - t)+(E[\tilde{t}|{\bf x}] - t)^2 )p({\bf x},t)d{\bf x}dt\\ &=&\int_{\mathbb{R}} \int_{\mathbb{R}^p} (y({\bf x};D)-E[ \tilde{t}|{\bf x}])^2p({\bf x},t)d{\bf x}dt+2\int_{\mathbb{R}} \int_{\mathbb{R}^p}(y({\bf x};D)-E[ \tilde{t}|{\bf x}])(E[ \tilde{t}|{\bf x}] - t)p({\bf x},t)d{\bf x}dt +\int_{\mathbb{R}} \int_{\mathbb{R}^p}(E[\tilde{t}|{\bf x}] - t)^2 p({\bf x},t)d{\bf x}dt \\ &=& \end{eqnarray}
In [ ]: