ベクトル式変形(今更聞けない)


##0. お忙しいあなたへ

ベクトルの変形について,頭を使ったのでここに記します.

また,なぜこの問題を考えていたかの過程もお話として書いておきますが,
飛ばして[本題](#3-本題)を参照されても大丈夫です.

##1.  おはなし

###1.1. 最尤推定法って...

真の確率密度関数$q(x)$を確率密度のモデル$p(x|w)$で予測したいけど,
どんな$w$が良いのだろう??

これを考える上で最尤推定法が一般的によく考えられます.

この考え方は,データ{$X_i$}が$n$個,独立に得られた際の同時確率密度関数を最大にする$w$を考えます.すなわち,

```math
\hat{w}=\underset{w\in W}{\rm argmin}\prod^{n}_{i=1}p(X_i|w)
```
が最尤推定量です.

これを用いた情報量基準として,AIC($-\frac{1}{n}\sum^{n}_{i=1}\ln p(X_i|\hat{w}))+\frac{d}{n}$)があり($d$はパラメータ$w$の次元),フィッシャー情報行列が正則であるなどの,いくつかの条件(確率モデル群の中に真の分布を表せているモデルが存在するなど)を課した上で$p(x|\hat{w})$と$q(x)$のKL情報量の意味での汎化誤差と漸近挙動が一致します.

すなわち,特定の条件下ではAICを小さくするモデルが良いと考えられます
(AICを含めた,情報量基準について今後記事にする予定です).

また,AICを求めるための出発点は最尤推定量なのです.

###1.2. 最尤推定の求め方って...

一般的に$\exp$の項が付いていたり$\prod$を考えている関係でよく,対数尤度$\ln \prod p(X_i|w)=\sum\ln p(X_i|w)$を考えることが多いです.

それを,
一般的に微分して$0$になる点を求めてます(2階微分して凸を考える必要もありますが).

この$w$は一般的に多次元であるため,ベクトルの微分を考える必要があります.

ベクトルの微分は導出はできるがいちいち導出していると日が暮れるため,
私はこちらの公式集([「ベクトルで微分・行列で微分」公式まとめ](https://qiita.com/AnchorBlues/items/8fe2483a3a72676eb96d))を参考にしています.

これらを用いれば解ける場面も多いですが,意外と厄介な問題に出くわす時がまあまああります.


##2. 本題まで後もう一歩

$k\in\mathbb{N}_{>0},w\in\mathbb{R}^k,x_i,y_i\in\mathbb{R},f(\cdot):\mathbb{R}\rightarrow\mathbb{R}^k,s>0$において,
$p(y|x,w,s)=\mathcal{N}(y|w^{\rm T}f(x),s^2)$の最尤推定量を考えます
($f$の一つは1を含む状況を考えているので,説明変数の数は$k$ではなく
$k-1$であることに注意してください).

よくある,重回帰分析の問題です
(KL情報量ではなく,
 一般化最小二乗推定[^1]をして$w$を求めることもあるかと思いますが割愛します).

では,最尤推定量を求めていきましょう.

```math
\begin{align}
l(w,s)&:=\sum^{n}_{i=1}\ln p(y_i|x_i,w,s)=\sum^{n}_{i=1}\left\{-\frac{(y_i-w^{\rm T}f(x_i))^2}{2s^2}\right\}-n\ln(\sqrt{2\pi}s) \\
\frac{\partial}{\partial s}l(w,s)&=\sum^{n}_{i=1}-\frac{-2}{2}\frac{(y_i-w^{\rm T}f(x_i))^2}{s^3}-\frac{n}{s}\\
\frac{\partial^2}{\partial s^2}l(w,s)&=\sum^{n}_{i=1}-3\frac{(y_i-w^{\rm T}f(x_i))^2}{s^4}+\frac{n}{s^2}=\frac{1}{s^4}\left(ns^2-3\sum^{n}_{i=1}(y_i-w^{\rm T}f(x_i))^2\right)\\
\frac{\partial}{\partial w}l(w,s)&=\sum^{n}_{i=1}\frac{2(y_i-w^{\rm T}f(x_i))}{2s^2}f(x_i) \\
\frac{\partial^2}{\partial w^2}l(w,s)&=-FF^{\rm T}
\end{align}
```
(2階微分が半負定値になるかは,ブロック行列を考えればできる...?(時間があるとき,考えます)（sとwの両方での二階微分も考える必要があります）)

あとはこれを解けば良いですね.

ん？$\ \ F$... 『貴様は何者だ！？』

この$\ F\ $を考える際にベクトルの式変形が必要で,
これを求めないと,今回の問題の最尤推定量は求めることができません.


# 3. 本題

$k\in\mathbb{N}_{>0},w\in\mathbb{R}^k,x_i,y_i\in\mathbb{R},f(\cdot):\mathbb{R}\rightarrow\mathbb{R}^k,s>0$において,

```math 
\frac{\partial}{\partial w}l(w,s)=\sum^{n}_{i=1}\frac{2(y_i-w^{\rm T}f(x_i))}{2s^2}f(x_i)=\mathbf{0}

```
を解くことを考えます(考えてみてください)(解説は下にスクロールしてください).

.  
.  
.  
.  
.  
.  
.  
.  
.  


では,解説を始めます.


分母を払って式変形をすると

```math
\sum^{n}_{i=1}y_if(x_i)=\sum^{n}_{i=1}w^{\rm T}f(x_i)f(x_i)
```
とかけます.

ここで左辺と右辺は似ている形であることに気づきますでしょうか.

両者ともに$\sum_{i} {\rm スカラー}_i\times{\rm ベクトル}_i$の形です.

そのため,左辺の変形が分かれば右辺も同様に変形できます.

簡単な左辺を考えましょう.

シグマが鬱陶しいので,まず行列積で表すことを考えます.

左辺を変形することを考えると,

```math
\begin{pmatrix}
y_{1} & \cdots & y_{1} & \cdots & y_{1}\\
\vdots & \ddots &        &        & \vdots \\
y_{i} &        & y_{i} &        & y_{i} \\
\vdots &        &        & \ddots & \vdots \\
y_{n} & \cdots & y_{n} & \cdots & y_{n}
\end{pmatrix}
\underbrace{
\begin{pmatrix}
f(x_1) & \cdots & f(x_i) & \cdots & f(x_n) \\
\end{pmatrix}
}_{=:F}

```
と変形できます.
ただ,行列積で表せましたが,この形は汚いので,
この式をもう少し簡単にするために,
$y_i$に関係しているのは$f(x_i)$だけで,
$f(x_j)(j\neq i)$に関係はしていないと意識しながら
行列のパズルを考えると,これは次のように変形できます.

```math
\begin{pmatrix}
f(x_1) & \cdots & f(x_i) & \cdots & f(x_n) \\
\end{pmatrix}
\underbrace{
\begin{pmatrix}
y_{1}\\
\vdots\\
y_{i} \\
\vdots \\
y_{n} 
\end{pmatrix}
}_{=:\mathbf{y}}

```

よって,

```math
\mathbf{t}=
\begin{pmatrix}
w^{\rm T}f(x_1)\\
\vdots\\
w^{\rm T}f(x_i) \\
\vdots \\
w^{\rm T}f(x_n)
\end{pmatrix}
```
としてあげると,求めたい式は

```math
F\mathbf{y}=F\mathbf{t}
```
となります.

また$\mathbb{t}$の成分は内積であるため,

```math
\mathbf{t}=
\begin{pmatrix}
w^{\rm T}f(x_1)\\
\vdots\\
w^{\rm T}f(x_i) \\
\vdots \\
w^{\rm T}f(x_n)
\end{pmatrix}
=
\begin{pmatrix}
f(x_1)^{\rm T}w\\
\vdots\\
f(x_i)^{\rm T}w \\
\vdots \\
f(x_n)^{\rm T}w
\end{pmatrix}
=
\begin{pmatrix}
f(x_1)^{\rm T}\\
\vdots\\
f(x_i)^{\rm T} \\
\vdots \\
f(x_n)^{\rm T}
\end{pmatrix}
w
=
F^{\rm T}w
```
と変形できます.

ここで$FF^{\rm T}$を正則と仮定すると
($\forall a\neq \mathbf{0},a^{\rm T}FF^{\rm T}a=||a^{\rm T}F||^2>0$って自明じゃないですよね...?)

```math
w=(FF^{\rm T})^{-1}F\mathbf{y}=:\hat{w}
```
と求められました(こういう変形が自分は少し苦手です).

ちなみに,最尤推定法で求められる$w$は最小二乗法で求められる$w$に一致します
(ちなみに,ある条件下で最良線形不偏推定量です[^1]).

ちなみに,$\hat{s}$は

```math
\hat{s}=\sqrt{\frac{1}{n}\sum^{n}_{i=1}(y_i-\hat{w}^{\rm T}f(x_i))^2}
```
で求められます.

よって,お目当てのAICは

```math
\begin{align}
{\rm AIC}&=-\frac{1}{n}\left(-\sum^{n}_{i=1}\frac{\left(y_i-\hat{w}^{\rm T}f(x_i)\right)^2}{2\hat{s}^2}-n\ln\{\sqrt{2\pi\hat{s}^2}\}\right)+\frac{k+1}{n}\\
&=\frac{1}{2}\ln\left(2\pi\hat{s}^2\right)+\frac{1}{2}+\frac{(k-1)+2}{n}
\end{align}
```
で求められます($k+1$は$w$と$s$の次元和です,$k-1$は説明変数の個数です).　


[^1]: [竹村 彰通,岩崎　学『日本統計学会公式認定　統計検定１級対応「統計学」日本統計学会 編』東京図書,2013](http://www.tokyo-tosho.co.jp/books/ISBN978-4-489-02150-3.html)