機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

条件付き1変量正規分布

はじめに

こんなツイートがありました。

ツイート主は、「こんな式覚えるのか?」と困惑しているようでしたので、
私なりの回答を作成してみることにしました。

統計学的な記法とやや異なる箇所がありますが、それについてはご了承ください。
問題を書き直すと、以下のようになります。

問題

p(x)={\mathcal N}(x|\mu_x,\sigma_x^2)p(y)={\mathcal N}(y|\mu_y,\sigma_y^2) で、相関係数\rho の時の p(y|x) を求めよ。

回答 - その1

普通に計算して求めてみます。

xy相関係数\rhoであることから、以下の式が導けます。

\begin{eqnarray}
\rho=\frac{{\rm cov}[x,y]}{\sigma_x\sigma_y}\tag{1}
\end{eqnarray}

{\bf x}, {\boldsymbol\mu}, {\bf\Sigma} を以下のように定義します。

\begin{eqnarray}
&&{\bf x}=(x, y)^\top\tag{2}\\
&&{\boldsymbol\mu}=(\mu_x,\mu_y)^\top\tag{3}\\
&&{\bf\Sigma}=\begin{pmatrix}\sigma_x^2 & {\rm cov}[x,y]\\ {\rm cov}[x,y] & \sigma_y^2  \end{pmatrix}=\begin{pmatrix}\sigma_x^2 & \rho\sigma_x\sigma_y\\ \rho\sigma_x\sigma_y & \sigma_y^2  \end{pmatrix}\tag{4}
\end{eqnarray}

 | {\bf \Sigma}| は以下のようになります。

\begin{eqnarray}
 |{\bf \Sigma}|&=&\sigma_x^2\sigma_y^2-\rho^2\sigma_x^2\sigma_y^2\\
&=&\sigma_x^2\sigma_y^2(1-\rho^2)\tag{5}
\end{eqnarray}

{\bf \Sigma}^{-1} は以下のようになります。

\begin{eqnarray}
{\bf \Sigma}^{-1}&=&\frac{1}{|{\bf\Sigma}|}\begin{pmatrix}\sigma_y^2 & -\rho\sigma_x\sigma_y\\ -\rho\sigma_x\sigma_y & \sigma_x^2  \end{pmatrix}\\
&=&\frac{1}{\sigma_x^2\sigma_y^2(1-\rho^2)}\begin{pmatrix}\sigma_y^2 & -\rho\sigma_x\sigma_y\\ -\rho\sigma_x\sigma_y & \sigma_x^2  \end{pmatrix}\tag{6}
\end{eqnarray}

p(y|x) を、確率の乗法定理を用いて変形します。

\begin{eqnarray}
p(y|x)&=&\frac{p(x,y)}{p(x)}\\
&\propto&p(x,y)\tag{7}
\end{eqnarray}

p(x,y)y^2,y についてまとめます。

\begin{eqnarray}
p(x,y)&=&p({\bf x})\\
&=&{\mathcal N}({\bf x}|{\boldsymbol\mu},{\bf\Sigma})\\
&\propto&\exp\left(-\frac{1}{2}({\bf x}-{\boldsymbol\mu})^\top{\bf\Sigma}^{-1}({\bf x}-{\boldsymbol\mu})\right)\\
&=&\exp\left(-\frac{1}{2}\cdot\frac{1}{\sigma_x^2\sigma_y^2(1-\rho^2)}\begin{pmatrix}x-\mu_x, & y-\mu_y\end{pmatrix}\begin{pmatrix}\sigma_y^2 & -\rho\sigma_x\sigma_y\\ -\rho\sigma_x\sigma_y & \sigma_x^2  \end{pmatrix}\begin{pmatrix}x-\mu_x\\ y-\mu_y\end{pmatrix}\right)\\
&\propto&\exp\left(-\frac{1}{2\sigma_y^2(1-\rho^2)}\left(y^2-2\left(\mu_y+\frac{\sigma_y}{\sigma_x}\rho(x-\mu_x)\right)y\right)\right)\tag{8}
\end{eqnarray}

p(y|x) の平均を\mu_{y|x}、分散を \sigma_{x|y} とおいて、y^2,y についてまとめます。

\begin{eqnarray}
p(y|x)&=&{\mathcal N}(y|\mu_{y|x},\sigma_{y|x}^2)\tag{9}\\
&\propto&\exp\left(-\frac{1}{2\sigma_{y|x}^2}(y-\mu_{y|x})^2\right)\\
&\propto&\exp\left(-\frac{1}{2\sigma_{y|x}^2}(y^2-2\mu_{y|x}y)\right)\tag{10}
\end{eqnarray}

(8),(10)y^2,y の係数を比較すると、以下のようになります。

\begin{eqnarray}
&&\mu_{y|x}=\mu_y+\frac{\sigma_y}{\sigma_x}\rho(x-\mu_x)\tag{11}\\
&&\sigma_{y|x}^2=\sigma_y^2(1-\rho^2)\tag{12}
\end{eqnarray}

(11),(12) を式 (9) に代入します。

\begin{eqnarray}
p(y|x)&=&{\mathcal N}\left(y\ \Bigg|\ \mu_y+\frac{\sigma_y}{\sigma_x}\rho(x-\mu_x),\ \sigma_y^2(1-\rho^2)\right)\tag{13}
\end{eqnarray}

(13) より、p(y|x) が求まりました。

ツイート主は「パッとできる簡単な導出」を望んでいるので、この解法はそれを満たしているかは微妙です。
(8) の計算をどれだけ早く計算できるかがポイントとなります。

回答 - その2

条件付きガウス分布の公式を使って求めます。

------↓ここから公式------

同時ガウス分布\mathcal{N}({\bf x}|{\boldsymbol\mu},{\bf\Sigma})があり、{\bf x},{\boldsymbol\mu},{\bf\Sigma}は以下のようにブロック化されているとします。

\begin{eqnarray}
&&{\bf x}=\begin{pmatrix}{\bf x}_a\\{\bf x}_b\end{pmatrix},\ {\boldsymbol\mu}=\begin{pmatrix}{\boldsymbol\mu}_a\\{\boldsymbol\mu}_b\end{pmatrix},\ 
&&{\bf\Sigma}=\begin{pmatrix}{\bf\Sigma}_{aa}&{\bf\Sigma}_{ab}\\{\bf\Sigma}_{ba}&{\bf\Sigma}_{bb}\end{pmatrix}
\end{eqnarray}

この時、以下の条件付き分布の式が成り立ちます。

\begin{eqnarray}
&&p({\bf x}_a|{\bf x}_b)=\mathcal{N}({\bf x}_a|{\boldsymbol\mu}_{a|b},{\bf\Sigma}_{a|b})\tag{13}\\
&&{\boldsymbol\mu}_{a|b}={\boldsymbol\mu}_a+{\bf\Sigma}_{ab}{\bf\Sigma}_{bb}^{-1}({\bf x}_b-{\boldsymbol\mu}_b)\tag{14}\\
&&{\bf\Sigma}_{a|b}={\bf\Sigma}_{aa}-{\bf\Sigma}_{ab}{\bf\Sigma}_{bb}^{-1}{\bf\Sigma}_{ba}\tag{15}\\
\end{eqnarray}

------↑ここまで公式------

変数の「公式」と「問題」の対応表を下に記します。

公式問題
{\bf x}_ay
{\bf x}_bx
{\boldsymbol\mu}_a\mu_y
{\boldsymbol\mu}_b\mu_x
{\boldsymbol\mu}_{a|b}\mu_{y|x}
{\bf\Sigma}_{aa}\sigma_y^2
{\bf\Sigma}_{bb}\sigma_x^2
{\bf\Sigma}_{ab},{\bf\Sigma}_{ba}\rho\sigma_x\sigma_y
{\bf\Sigma}_{a|b}\sigma_{y|x}^2

まず、p(y|x) に公式を適用します。

\begin{eqnarray}
p(y|x)&=&{\mathcal N}(y|\mu_{y|x},\sigma_{y|x}^2)\tag{16}
\end{eqnarray}

次に、\mu_{y|x} に公式を適用します。

\begin{eqnarray}
\mu_{y|x}&=&\mu_y+(\rho\sigma_x\sigma_y)\frac{1}{\sigma_x^2}(x-\mu_x)\\
&=&\mu_y+\frac{\sigma_y}{\sigma_x}\rho(x-\mu_x)\tag{17}
\end{eqnarray}

最後に、

\begin{eqnarray}
\sigma_{y|x}^2&=&\sigma_y^2-(\rho\sigma_x\sigma_y)\frac{1}{\sigma_x^2}(\rho\sigma_x\sigma_y)\\
&=&\sigma_y^2-\rho^2\sigma_y^2\\
&=&\sigma_y^2(1-\rho^2)\tag{18}
\end{eqnarray}

(17),(18) を式 (16) へ代入します。

\begin{eqnarray}
p(y|x)&=&{\mathcal N}\left(y\ \Bigg|\ \mu_y+\frac{\sigma_y}{\sigma_x}\rho(x-\mu_x),\ \sigma_y^2(1-\rho^2)\right)\tag{19}
\end{eqnarray}

(19) より、p(y|x) が求まりました。

この公式が頭に入っていれば、「パッとできる簡単な導出」を満たしていると思いますが、
こんなの普通覚えてないですよね。

回答 - その3

3つ目の回答は、「パッとできる簡単な導出」です。(簡単かどうかは微妙です。)
回帰について理解していれば、p(y|x) は自然と導けます。

ーーーーーー↓ここから回帰の一般論ーーーーーー

回帰の一般論を説明します。(計算過程はかなり飛ばします。)
データ (x_1,y_1),(x_2,y_2),\ldots,(x_n,y_n) が与えられているとします。(一般論なので、x_i,y_i は一旦問題の x, y とは無関係とします。)
y=bx+a で回帰します。
二乗和

\begin{eqnarray}
L=\displaystyle\sum_{i=1}^n\left(y_i-(bx_i+a)\right)^2\tag{20}
\end{eqnarray}

を最小にする a,bLa,b偏微分して、=0 とすると、以下の正規方程式が成り立ちます。

\begin{eqnarray}
\left\{
    \begin{array}{l}
    na+\left(\displaystyle\sum_{i=1}^nx_i\right)b=\displaystyle\sum_{i=1}^ny_i\\
    \left(\displaystyle\sum_{i=1}^nx_i\right)a+\left(\displaystyle\sum_{i=1}^nx_i^2\right)b=\left(\displaystyle\sum_{i=1}^nx_i\right)x_iy_i
    \end{array}\tag{21}
  \right.
\end{eqnarray}

(21)a,b について解くと、

\begin{eqnarray}
&&b=\frac{\displaystyle\sum_{i=1}^nx_iy_i-n\mu_x\mu_y}{\displaystyle\sum_{i=1}^nx_i^2-n\mu_x^2}\tag{22}\\
&&a=\mu_y-b\mu_x\tag{23}
\end{eqnarray}

が得られます。
ただし、\mu_x=\dfrac{1}{n}\displaystyle\sum_{i=1}^nx_i,\ \mu_y=\dfrac{1}{n}\displaystyle\sum_{i=1}^ny_i とします。
xy相関係数 \rho は以下のようになります。

\begin{eqnarray}
\rho=\frac{\displaystyle\sum_{i=1}^n(x_i-\mu_x)(y_i-\mu_y)}{\sqrt{\displaystyle\sum_{i=1}^n(x_i-\mu_x)^2}\sqrt{\displaystyle\sum_{i=1}^n(y_i-\mu_y)^2}}\tag{24}
\end{eqnarray}

(22),(24) より、

\begin{eqnarray}
b=\rho\frac{\sigma_y}{\sigma_x}\tag{25}
\end{eqnarray}

という関係式が成り立ちます。
ただし、\sigma_x\{x_i\}\ (i=1,\ldots,n)標準偏差\sigma_y\{y_i\}\ (i=1,\ldots,n)標準偏差とします。

回帰直線による y のあてはめ値 \hat{y}_i=bx_i+a とおきます。
x_i\hat{y}_i には次の関係式が成り立ちます。

\begin{eqnarray}
\hat{y}_i=\mu_y + \rho\frac{\sigma_y}{\sigma_x}(x_i-\mu_x)\tag{26}
\end{eqnarray}

\hat{y}_iy_i の距離をd_i とします。
このとき、それの2乗について

\begin{eqnarray}
\sum_{i=1}^nd_i^2&=&\sum_{i=1}^n(y_i-\hat{y}_i)^2\\
&=&(1-\rho^2)\sum_{i=1}^n(y_i-\mu_y)^2\tag{27}
\end{eqnarray}

が成り立ちます。

ということで、ここまでが一般論です。
ーーーーーー↑ここまで回帰の一般論ーーーーーー

なぜ、回帰を考えるかというと、
x を固定したときの p(y|x) の平均 \mu_{y|x} は下図の緑色の線のように直線となり、
この直線は y の誤差を最小化するものであり、最小二乗法そのものだからです。
緑色の線は点 (\mu_x,\mu_y) を通り、傾きは\rho\dfrac{\sigma_y}{\sigma_x} です。

f:id:olj611:20211104010105p:plain:w300

後は、変数を置き換えるだけです。
(26)x_i, y_i を確率変数で、\hat{y}_i\mu_{y|x} で置き換えると、次のようになります。

\begin{eqnarray}
\mu_{y|x}=\mu_y + \rho\frac{\sigma_y}{\sigma_x}(x-\mu_x)\tag{28}\\
\end{eqnarray}

(27) の両辺に 1/n を掛けます。

\begin{eqnarray}
\frac{1}{n}\sum_{i=1}^n(y_i-\hat{y}_i)^2=(1-\rho^2)\frac{1}{n}\sum_{i=1}^n(y_i-\mu_y)^2\tag{29}
\end{eqnarray}

先程同様、式 (29)x_i, y_i を確率変数で、\hat{y}\mu_{y|x} で置き換えた後、
(29) の 左辺 \displaystyle\sum_{i=1}^n(y_i-\hat{y}_i)^2 は回帰後なので、\dfrac{1}{n}\Sigma の代わりに p(y|x) で重み付けして y積分し、
(29) の右辺 \displaystyle\sum_{i=1}^n(y_i-\mu_y)^2 は回帰前なので、\dfrac{1}{n}\Sigma の代わりに p(y) で重み付けして y積分すると、以下のようになります。

\begin{eqnarray}
&&\int(y-\mu_{y|x})^2p(y|x){\rm d}y=(1-\rho^2)\int(y-\mu_y)^2p(y){\rm d}y\\
&&\Leftrightarrow \sigma_{y|x}^2=\sigma_y^2(1-\rho^2)\tag{30}
\end{eqnarray}

p(y|x)ガウス分布であり、式 (28),(30) は、p(y|x) の平均と分散なので、p(y|x) が求まりました。

という感じで求まるのですが、回帰について十分な理解が必要かと思います。

回答 - その3の式変形の補足

回答 - その3にて、式変形をぶっ飛ばしすぎたので、ここで補足します。

(21),(22),(23) は単なる微分なので、大丈夫かと思います。
(24)相関係数の定義そのものです。
(25),(27) の変形については、統計学入門を参考にしてください。

(26) の式変形について説明します。

\begin{eqnarray}
\hat{y}&=&bx_i+a\\
&=&bx_i+\mu_y-b\mu_x\\
&=&\mu_y+b(x_i+\mu_x)\\
&=&\mu_y+\rho\frac{\sigma_y}{\sigma_x}(x_i-\mu_x)\tag{31}
\end{eqnarray}

最後に

回答 - その3は統計学入門を参考にし、自分でアレンジしたものなので、間違っている可能性があります。
予めご了承ください。
あと、2変量正規分布の式は多変量正規分布の式を知っていれば不要かと思います。

参考文献

統計学入門 p49-50, p58-62
パターン認識機械学習 上巻 p85-88

目次へ戻る