MathJaxの環境を確認しつつ使用中。プリアンブルが無いけどページ内で一回 newcommand を行えばずっと使えるみたい。便利。

\begin{equation*} \newcommand\innerp[2]{\langle #1, #2 \rangle} \newcommand\ve[1]{\boldsymbol{#1}} \newcommand\parfrac[2]{\frac{\partial #1}{\partial #2}} \end{equation*}

逐次的更新の件について。IRLSでは以下の評価関数 \(J(\ve{\beta})\) の最小化を考える。

\begin{equation*} J(\ve{\beta}) = \sum^{M}_{i = 1} w_{i} (y_{i} - \innerp{\ve{\beta}}{\ve{x}_{i}})^{2} \end{equation*}

ここで \(M\) は観測数。これは二次式だから評価関数は凸関数になる。早速 \(\ve{\beta}\) で偏微分してみると、

\begin{align*} \parfrac{}{\ve{\beta}} J(\ve{\beta}) &= \sum^{M}_{i = 1} w_{i} 2 \left(- \frac{\partial}{\partial \ve{\beta}} \innerp{\ve{\beta}}{\ve{x}_{i}} \right) (y_{i} - \innerp{\ve{\beta}}{\ve{x}_{i}}) \\ &= -2 \sum^{M}_{i = 1} w_{i} (y_{i} - \innerp{\ve{\beta}}{\ve{x}_{i}}) \ve{x}_{i} \end{align*}

\(\parfrac{}{\ve{\beta}} J(\ve{\beta}) = 0\) とおくと、

\begin{align*} \sum_{i = 1}^{M} w_{i} \innerp{\ve{\beta}}{\ve{x}_{i}} \ve{x}_{i} &= \sum_{i = 1}^{M} w_{i} y_{i} \ve{x}_{i} \\ \iff \left[ \ve{x}_{1} ... \ve{x}_{M} \right] \left[ \begin{array}{c} w_{1} \innerp{\ve{\beta}}{\ve{x}_{1}} \\ \vdots \\ w_{M} \innerp{\ve{\beta}}{\ve{x}_{M}} \end{array} \right] &= \left[ \ve{x}_{1} ... \ve{x}_{M} \right] \left[ \begin{array}{c} w_{1}y_{1} \\ \vdots \\ w_{M}y_{M} \end{array} \right] \\ \iff \left[ \ve{x}_{1} ... \ve{x}_{M} \right] \left[ \begin{array}{ccc} w_{1} & \dots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \dots & w_{M} \end{array} \right] \left[ \begin{array}{c} \innerp{\ve{\beta}}{\ve{x}_{1}} \\ \vdots \\ \innerp{\ve{\beta}}{\ve{x}_{M}} \end{array} \right] &= \left[ \ve{x}_{1} ... \ve{x}_{M} \right] \left[ \begin{array}{ccc} w_{1} & \dots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \dots & w_{M} \end{array} \right] \left[ \begin{array}{c} y_{1} \\ \vdots \\ y_{M} \end{array} \right] \\ \iff \left[ \ve{x}_{1} ... \ve{x}_{M} \right] \left[ \begin{array}{ccc} w_{1} & \dots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \dots & w_{M} \end{array} \right] \left[ \begin{array}{c} \ve{x}_{1}^{\mathsf{T}} \\ \vdots \\ \ve{x}_{M}^{\mathsf{T}} \end{array} \right] \ve{\beta} &= \left[ \ve{x}_{1} ... \ve{x}_{M} \right] \left[ \begin{array}{ccc} w_{1} & \dots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \dots & w_{M} \end{array} \right] \ve{y} \\ \iff \ve{X} \ve{W} \ve{X}^{\mathsf{T}} \ve{\beta} &= \ve{X} \ve{W} \ve{y} \end{align*}

\(\ve{X}\ve{W}\ve{X}^{\mathsf{T}}\) が正則(TODO: \(\ve{X}\) が行フルランク、かつ \(\ve{W}\) が正則なら行けそうに見えるけど本当か?)の場合は閉形式で係数が求まる:

\begin{equation*} \ve{\beta} = (\ve{X} \ve{W} \ve{X}^{\mathsf{T}})^{-1} \ve{X} \ve{W} \ve{y} \end{equation*}

ここまでは一般論。さて、更新式に注目する。\(\beta_{j}\) だけで偏微分してみると、

\begin{align*} \parfrac{J(\ve{\beta})}{\beta_{j}} &= \sum_{i = 1}^{M} \parfrac{}{\beta_{j}} w_{i} (y_{i} - \innerp{\ve{\beta}}{\ve{x}_{i}})^{2} \\ &= -2 \sum_{i = 1}^{M} w_{i} (\ve{x}_{i})_{j} (y_{i} - \innerp{\ve{\beta}}{\ve{x}_{i}}) \end{align*}

残差のL1ノルム最小化を考えるときは \(w_{i} = \frac{1}{|y_{i} - \innerp{\ve{\beta}}{\ve{x}_{i}}|}\) とおくので代入すると、

\begin{equation*} \parfrac{J(\ve{\beta})}{\beta_{j}} = -2 \sum_{i = 1}^{M} (\ve{x}_{i})_{j} \mathrm{sign}(y_{i} - \innerp{\ve{\beta}}{\ve{x}_{i}}) \end{equation*}

瞬間値( \(M=1\) とする)を考えるとSigned-LMSの更新式そのものになっている。 和を取ると平均操作に近いから、LMSアルゴリズムと考えていることは同じ。

\(\parfrac{J(\ve{\beta})}{\beta_{j}}\) を更に \(\beta_{k}\) で偏微分してみると、

\begin{align*} \frac{\partial^{2} J(\ve{\beta})}{\partial \beta_{j} \partial \beta_{k}} &= -2 \sum_{i = 1}^{M} w_{i} (\ve{x}_{i})_{j} \parfrac{}{\beta_{k}} (y_{i} - \innerp{\ve{\beta}}{\ve{x}_{i}}) \\ &= 2 \sum_{i = 1}^{M} w_{i} (\ve{x}_{i})_{j} (\ve{x}_{i})_{k} \\ &= 2 \left[ (\ve{x}_{1})_{j} \dots (\ve{x}_{M})_{j} \right] \left[ \begin{array}{c} w_{1} (\ve{x}_{1})_{k} \\ \vdots \\ w_{M} (\ve{x}_{M})_{k} \end{array} \right] = 2 \left[ (\ve{x}_{1})_{j} \dots (\ve{x}_{M})_{j} \right] \ve{W} \left[ \begin{array}{c} (\ve{x}_{1})_{k} \\ \vdots \\ (\ve{x}_{M})_{k} \end{array} \right] \end{align*}

2次式が出てくるのがわかる(\(\ve{W}\) は計量だ)。そして \((\ve{H})_{jk} = \frac{\partial^{2} J(\ve{\beta})}{\partial \beta_{j} \partial \beta_{k}}\) なるヘッセ行列 \(\ve{H}\) は以下:

\begin{equation*} \ve{H} = 2 \ve{X} \ve{W} \ve{X}^{\mathsf{T}} \end{equation*}

ヘッセ行列の性質により関数の最小値・最大値の存在がわかる。対称行列なのは間違いない(\((\ve{X})_{ij} = (\ve{X})_{ji}\) は自明)。(固有値分解とは見れない。\(\ve{H}\)\(N \times N\) の行列であるのに対して、\(\ve{X}\)\(N \times M\) の行列。\(\ve{X} \ve{X}^{\mathsf{T}}\) は平均化、除算を抜いた分散共分散行列になり半正定値行列。)また、任意のベクトル \(\ve{v}\) に対して、

\begin{align*} \ve{v}^{\mathsf{T}} \ve{X} \ve{W} \ve{X}^{\mathsf{T}} \ve{v} &= \ve{v}^{\mathsf{T}} \ve{X} \ve{W}^{1/2} \ve{W}^{1/2} \ve{X}^{\mathsf{T}} \ve{v} \\ &= (\ve{W}^{1/2} \ve{X}^{\mathsf{T}} \ve{v})^{\mathsf{T}} \ve{W}^{1/2} \ve{X}^{\mathsf{T}} \ve{v} \\ &= || \ve{W}^{1/2} \ve{X}^{\mathsf{T}} \ve{v} ||_{2}^{2} \geq 0 \end{align*}

だから、\(\ve{W}\) が半正定値(\(\iff\) すべての重みが非負)ならばヘッセ行列は半正定値行列で、極小値が最小値になる。また、\(J(\ve{\beta})\) は凸関数(半正定値だから狭義の凸関数ではない)。 もう少しヘッセ行列を見る。ヘッセ行列を上手く使えたらニュートン法で解けそうな気がして。

\begin{equation*} (\ve{H})_{jk} = 2 \sum_{i = 1}^{M} w_{i} (\ve{x}_{i})_{j} (\ve{x}_{i})_{k} \end{equation*}

より、スペクトル分解的に見ると、

\begin{align*} \frac{1}{2} \ve{H} &= w_{1} \left[ \begin{array}{ccc} (\ve{x}_{1})_{1}^{2} & \dots & (\ve{x}_{1})_{1} (\ve{x}_{1})_{N} \\ \vdots & \ddots & \vdots \\ (\ve{x}_{1})_{N} (\ve{x}_{1})_{1} & \dots & (\ve{x}_{1})_{N}^{2} \\ \end{array} \right] + \dots + w_{M} \left[ \begin{array}{ccc} (\ve{x}_{M})_{1}^{2} & \dots & (\ve{x}_{M})_{1} (\ve{x}_{M})_{N} \\ \vdots & \ddots & \vdots \\ (\ve{x}_{M})_{N} (\ve{x}_{M})_{1} & \dots & (\ve{x}_{M})_{N}^{2} \\ \end{array} \right] \\ &= w_{1} \ve{x}_{1} \ve{x}_{1}^{\mathsf{T}} + \dots + w_{M} \ve{x}_{M} \ve{x}_{M}^{\mathsf{T}} \\ &= \sum_{i = 1}^{M} w_{i} \ve{x}_{i} \ve{x}_{i}^{\mathsf{T}} \end{align*}
  • 信号処理的には \(\ve{x}_{1}, \ve{x}_{2}, \dots \ve{x}_{M}\) は系列で現れる。
  • LMSフィルタでは \(i = 1\) の時だけを考えていたと考えられれる。 \(i = 2,\dots,M\) のときの影響は少ないのではないかと思う。
  • FIRフィルタを考えるのならば、各 \(\ve{x}_{1}\) は入ってきた1次元信号データを時系列順に並べたものだから、直前のベクトル \(\ve{x}_{2}\) を使えそうな構造に見える。
  • 上の仮定を使ってヘッセ行列の逆行列 \(\ve{H}^{-1}\) を逐次近似計算できない?
  • 分散共分散行列がほぼヘッセ行列になってるけどこれは何?
    • 金谷さんの解説 にそれとなく解説がある。フィッシャー情報行列との関連もある。。。クラメル・ラオの下限についてわかりやすい説明あり。
    • 最尤法 にもそれとなく解説あり。
    • 奥村さん もあり。観測からヘッセ行列を構成できる?

そして自然勾配のアイディアが出てくる。自然勾配を使ったLMSアルゴリズムは…あった…

TODO:

  • 前のMTGで言われたことの整理
  • 分散行列、ヘッセ行列、フィッシャー情報行列、自然勾配の整理
  • OMPが気になる。試してみたい。