1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

"回帰問題の目的関数は平均二乗誤差"という通説の数理的背景

Last updated at Posted at 2020-02-01

#4行要約
線形回帰問題における二乗誤差、及び、正規方程式の導出を行います。何気なく盲信している「回帰問題を解くときの目的関数は平均二乗誤差」という通説が、1)予測モデルの誤差は正規分布に従う、2)手持ちのデータセットのすべてのサンプルはある一つの分布から独立に生成されている、という2つの仮定の上に成立していることを説明します。

さっそく始めていきます。
#線形回帰と二乗誤差
手持ちデータセットに対して線形回帰を実施するとき、目的関数として最小二乗誤差を用いますが、それはモデルの予測誤差(データの観測誤差)が正規分布に従うと仮定して最尤推定を行っていることと等価であることを示します。

説明変数$\boldsymbol{x}\in \mathbb{R}^{D}$から目的変数$y$を重み係数$\boldsymbol{w}\in \mathbb{R}^{D}$を用いて表現するとき、回帰モデルを以下のように定義します。

\begin{eqnarray*}
y&=&\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+\varepsilon\\
&=&w_0 + w_1x_1 + w_2 x_2 + \cdots + w_D x_D + \varepsilon
\end{eqnarray*}

$\varepsilon$はモデルの表現力に起因する誤差、もしくは、データの観測誤差と考えると、誤差はモデルの出力を平均としてその付近に分散$\sigma^{2}$でガウス分布していると自然に仮定できます。

\begin{eqnarray*}
\varepsilon&\sim&\mathcal{N} \left(0, \sigma^{2} \right)\\
&=&\frac{1}{\sqrt{2 \pi \sigma^2}}\exp \left[ -\frac{\varepsilon^2}{2 \sigma^2}\right]
\end{eqnarray*}

以上より、$y$を生成する分布は次のように書けます。

\begin{eqnarray*}
y&\sim&\mathcal{N} \left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}, \sigma^{2} \right)\\
&=&\frac{1}{\sqrt{2 \pi \sigma^2}}\exp \left[ -\frac{\left( y - \boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}\right)^2}{2 \sigma^2}\right]
\end{eqnarray*}

手持ちデータセット$\mathcal{D}$内のデータが互いに独立に同一の分布から生成されている(independently and identically distributed)とすると、$y_1, \cdots, y_N$が生成する同時分布は、

\begin{eqnarray*}
\mathcal{D} = \left\{(\boldsymbol{x}_1, y_1), (\boldsymbol{x}_2, y_2), \cdots, (\boldsymbol{x}_N, y_N) \right\}
\end{eqnarray*}
\begin{eqnarray*}
p \left( y_1, y_2, \cdots, y_N | \boldsymbol{x}_1, \boldsymbol{x}_2, \cdots, \boldsymbol{x}_N, \boldsymbol{w}\right) &=& \prod^{N}_{i=1}p(y_i | \boldsymbol{x}_i, \boldsymbol{w})\\
&=&\prod^{N}_{i=1}\mathcal{N}(y_i | \boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i, \sigma^2)\\
&=&\prod^{N}_{i=1}\frac{1}{\sqrt{2 \pi \sigma^2}}\exp \left[ -\frac{(y_i - \boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i)^2}{2 \sigma^2}\right]
\end{eqnarray*}

と記述されます。
このタスクの目的は、$y_1, y_2, \cdots, y_N$が同時に生成される確率を最大化する最尤推定量$\boldsymbol{w}^{\ast}$を求めることなので、$y_1, y_2, \cdots, y_N$の生成確率を$\boldsymbol{w}$に対する尤度$L(\boldsymbol{w})$として記述し、その対数を取ると、以下のように計算されます。

\begin{eqnarray*}
\ln L(\boldsymbol{w}) &=& \ln p \left( y_1, y_2, \cdots, y_N | \boldsymbol{x}_1, \boldsymbol{x}_2, \cdots, \boldsymbol{x}_N, \boldsymbol{w}\right)\\
&=& -N \ln \sigma -\frac{N}{2} \ln \pi - \sum^{N}_{i=1}\frac{(y_i - \boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i)^2}{2 \sigma^2}
\end{eqnarray*}

最尤推定量$\boldsymbol{w}^{\ast}$は、

\newcommand{\argmax}{\mathop{\rm arg~max}\limits}
\begin{eqnarray*}
\boldsymbol{w}^{\ast} = \argmax_{\boldsymbol{w}}L(\boldsymbol{w})
\end{eqnarray*}

と表現される。
対数関数は単調増加な関数なので、$L(\boldsymbol{w})$を$\ln L(\boldsymbol{w})$としても最尤推定量である$\boldsymbol{w}^{\ast}$は変わらず、また、最小化・最大化には$\ln L(\boldsymbol{w})$の定数部分は影響しないので、結局$\boldsymbol{w}^{\ast}$は以下のように記述される。

\newcommand{\argmax}{\mathop{\rm arg~max}\limits}
\newcommand{\argmin}{\mathop{\rm arg~min}\limits}
\begin{eqnarray*}
\boldsymbol{w}^{\ast} &=& \argmin_{\boldsymbol{w}}- \ln L(\boldsymbol{w})\\
&=&\argmin_{\boldsymbol{w}}\sum^{N}_{i=1}(y_i - \boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i)^2
\end{eqnarray*}

上式はまさに「二乗誤差を最小化するような$\boldsymbol{w}$を求めること」に問題が帰結されており、予測誤差は正規分布に従うであろう、データの標本は独立に生成されているであろうという2つの仮定をおけば、二乗誤差の最小化によってモデルのパラメータを決定できるということが示されています。普段何気なく「回帰問題でしょ?平均二乗誤差MSEを目的関数にしとけばいいんでしょ」という脳死状態に対して数理的な正当性を与ることができました。

#正規方程式
特に回帰モデルが線形モデルの場合、最尤推定量$\boldsymbol{w}^\ast$は解析的に計算できることが知られています。

最尤推定量$\boldsymbol{w}^\ast$は上記の二乗誤差の極小値を与えるはずで、$\boldsymbol{w}$に対する微分を実行することにより以下の正規方程式を得ます。

\begin{align*}
&\nabla_{\boldsymbol{w}}\left( \boldsymbol{y} - \boldsymbol{X}\boldsymbol{w}\right)^{\mathrm{T}}\left(\boldsymbol{y} - \boldsymbol{X}\boldsymbol{w} \right) = 0\\
&\Leftrightarrow\nabla_{\boldsymbol{w}}(\boldsymbol{y}^{\mathrm{T}}\boldsymbol{y}-\boldsymbol{y}^{\mathrm{T}}\boldsymbol{X}\boldsymbol{w}-\boldsymbol{w}^{\mathrm{T}}\boldsymbol{X}^{\mathrm{T}}\boldsymbol{y}+\boldsymbol{w}^{\mathrm{T}}\boldsymbol{X}^{\mathrm{T}}\boldsymbol{X}\boldsymbol{w})=0\\
&\Leftrightarrow\nabla_\boldsymbol{w} (\boldsymbol{w}^{\mathrm{T}}\boldsymbol{X}^{\mathrm{T}}\boldsymbol{X}\boldsymbol{w}-2\boldsymbol{w}^{\mathrm{T}}\boldsymbol{X}^{\mathrm{T}}\boldsymbol{y})=0\\
&\Leftrightarrow2\boldsymbol{X}^{\mathrm{T}}\boldsymbol{X}\boldsymbol{w}-2\boldsymbol{X}^{\mathrm{T}}\boldsymbol{y}=0\\
&\Leftrightarrow\boldsymbol{w}^\ast = \left( \boldsymbol{X}^{\mathrm{T}}\boldsymbol{X}\right)^{-1}\boldsymbol{X}^{\mathrm{T}}\boldsymbol{y}

\end{align*}

ただし、1行目で以下の表記を用いてベクトル形式に書き直しました。

\begin{eqnarray*}
&\boldsymbol{y} = \left[y_1, y_2, \cdots, y_N \right]^{\mathrm{T}} \in \mathbb{R}^{N}\\
&\boldsymbol{X} = \left[\boldsymbol{x}_1, \boldsymbol{x}_2, \cdots, \boldsymbol{x}_N \right]^{\mathrm{T}} \in \mathbb{R}^{N \times D}
\end{eqnarray*}

これで正規方程式の導出ができました。
正規方程式を見ると、ある問題があることがわかります。計画行列$\boldsymbol{X}$からなる行列$\boldsymbol{X}^{\mathrm{T}}\boldsymbol{X}$の逆行列演算が含まれています。$\boldsymbol{X}^{\mathrm{T}}\boldsymbol{X}$がランク落ちするとき、すなわち、データセットの中に共線性があるとき(データ間に強い相関があり、あるデータの線形結合で別のデータが表現されてしまうとき)には、逆行列計算を実行することができません。実際には0割に近い状況が起こり逆行列計算が不安定になります。

#正則化の導入
上で紹介した問題の解決策としてL1正則化やL2正則化に代表される正則化を導入します。
逆行列が計算できる行列を「正則行列」と呼びますが、この「正則」と正則化の「正則」は実は同じものだったのです。次の記事でこれを説明します。
さらに、正則化には逆行列演算を安定化させるだけでなく、重み$\boldsymbol{w}$に対する事前分布を導入しているという側面もあります。事前分布とデータセット$\mathcal{D}$から重み$\boldsymbol{w}$の事後分布を推定することをベイズ推定、事後分布の確率が最大となる$\boldsymbol{w}$を点推定することをMAP推定と呼びます。これらについても次回の記事で解説します。ここまで理解すれば、よく言われる「L1正則化で重みが0となりやすい」ことも理解できます。

#参考文献
ベイズ深層学習
ガウス過程と機械学習
現代数理統計学の基礎

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?