前半のパラメトリック分布は計算すればよいので省略.ノンパラメトリックな密度推定についてメモりたい.

ベイズ学習の性質

同時確率 $p(\theta, \mathcal{D})$ で記述されたデータ集合 $\mathcal{D}$ を観測したときに,パラメータ $\theta$ をベイズ推論する問題について以下の結果が得られる.

$$\begin{align*} \mathbb{E}_{\theta} [\theta] = \mathbb{E}_{\mathcal{D}}[ \mathbb{E}_{\theta} [\theta \mid \mathcal{D}]] \end{align*}$$

ここで

$$\begin{align*} \mathbb{E}_{\theta} [\theta] &= \int p(\theta) \theta d \theta \\ \mathbb{E}_{\theta} [ \theta \mid \mathcal{D}] &= \int \theta p(\theta \mid \mathcal{D}) d \theta \end{align*}$$

である.$\mathbb{E}_{\theta} [ \theta \mid \mathcal{D}]$ はその時すでに得られているデータ $\mathcal{D}$ を用いて得られる $\theta$ の期待値(最尤推定値など)である.そして$\mathbb{E}_{\mathcal{D}}\mathbb{E}_{\theta} [ \theta \mid \mathcal{D}]$ は,そこからさらに推定に用いたデータ $\mathcal{D}$ について期待値をとって得られた値である.

つまり学習データを無限に増やすことにより推定値は真の値に近づくということをこの数式は示している.

2.6.4 ガウス分布に対するベイズ推論

ガウス分布 $\mathcal{N}(\mu, \sigma^2)$ からのデータ $\boldsymbol{x} = [x_1, x_2, \cdots x_N]$ を用いてパラメータを推定したい.ベイズの定理より

$$\begin{align*} p(\mu \mid \boldsymbol{x}) \propto p(\mu) p(\boldsymbol{x} \mid \mu) \end{align*}$$

であるが,ここで $x_i$ , $x_j$ は独立であることより

$$\begin{align*} p(x_1, \boldsymbol{x}^{N-1} \mid \mu) = p(\boldsymbol{x}^{N-1} \mid x_1, \mu) p(x_1 \mid \mu) \end{align*}$$

が成立することを用いると

$$\begin{align*} p(\mu \mid \boldsymbol{x}) \propto \left[ p(\mu) \prod_{n=1}^{N-1}p(x_n \mid \mu) \right] p(x_N \mid \mu) \end{align*}$$

が得られる.

まず初めに分散 $\sigma^2$ を固定して平均 $\mu$ をベイズ推論してみる.すると尤度関数は

$$\begin{align*} p(\boldsymbol{x} \mid \mu) = (2\pi \sigma^2)^{-N/2} \exp \left[ -\dfrac{1}{2\sigma^2}\sum_{n=1}^{N} (x_i - \mu)^2 \right] \end{align*}$$

となり,$\mu$ の二次形式の指数関数になっている.よって $\mu$ の事前分布もガウス分布 $\mathcal{N}(\mu \mid \mu_0, \sigma^2)$ にすれば良い.両者の積ををとることで

$$\begin{align*} \mu_N &= \dfrac{\sigma^2}{N\sigma_{0}^2 + \sigma^2}\mu_0 + \dfrac{N \sigma_{0}^2}{N\sigma_{0}^2 + \sigma^2}\mu_{\mathrm{ML}} \\ \dfrac{1}{\sigma^2} &= \dfrac{1}{\sigma_{0}^2} + \dfrac{N}{\sigma^2} \end{align*}$$

が得られる.

今度は平均を固定して分散について尤度関数を整理してみる.ここでは精度 $\lambda = 1/ \sigma^2$ を用いると

$$\begin{align*} p(\boldsymbol{x} \mid \mu) \propto \lambda^{N/2} \exp \left[ -\dfrac{\lambda}{2} \sum_{n=1}^{N} (x_n - \mu)^2 \right] \end{align*}$$

となるから $\lambda$ の事前分布としてはガンマ分布

$$\begin{align*} \mathrm{Gam}(\lambda \mid a, b) = (b^a / \Gamma(a)) \lambda^{a-1} \exp(-b\lambda) \end{align*}$$

を用いる.すると尤度関数との積をとることで

$$\begin{align*} p(\lambda \boldsymbol{x}) \propto \lambda^{N/2 + a - 1} \exp \left[ -\dfrac{\lambda}{2}\sum_{n=1}{N}(x_n - \mu)^2 - b \lambda \right] \end{align*}$$

が得られるから事後分布もガンマ分布となり,そのハイパーパラメータは

$$\begin{align*} a_N &=\dfrac{N}{2} + a = \dfrac{N}{2} + \dfrac{2a}{2} \\ b_N &= b + \dfrac{N}{2} \sigma^2_{\mathrm{ML}} = \dfrac{2a}{2}\dfrac{b}{a} + \dfrac{N}{2} \sigma^2_{\mathrm{ML}} \end{align*}$$

となる.

あえて数式を変形していることから分かるように,事前分布 $\mathrm{Gam}(\lambda \mid a, b)$ は仮想的な有効点を $2a$ 個持っていると解釈することができる.またそれらの有効点は $b/a$ だけの分散を持っていることが分かる.

2.3.7 スチューデントのt分布

平均が $\mu$ であるガウス分布 $\mathcal{N}(x \mid \mu, \tau^{-1})$ をガンマ分布(精度に関するガウス分布の共役事前分布)と積分により重ね合わせることで得られる.

$$\begin{align*} p(x \mid \mu, a, b) = \int_{0}^{\infty}\mathcal{N}(x \mid \mu, \tau^{-1}) \mathrm{Gam}(\tau \mid a, b) d \tau \end{align*}$$

自由度 $\nu$ が1であるときはコーシー分布,無限大であるときはガウス分布となる.

ノンパラメトリック推定

$D$ 次元のユークリッド空間における未知の確率密度関数 $p(x)$ から得られたサイズが $N$ の離散集合があり,そこから密度関数を推定したいとする.ある点 $\boldsymbol{x}$ を含むある領域 $\mathcal{R}$ を考える.この領域に割り当てられた確率は

$$\begin{align*} P = \int_{\mathcal{R}} p(\boldsymbol{x}) d\boldsymbol{x} \end{align*}$$

である.N個のサンプルのうち $\mathcal{R}$ に存在するサンプルの個数Kは以下の二項分布に従う.

$$\begin{align*} K \sim \mathrm{Bin}(K \mid N, P) \end{align*}$$

そのためKの平均は $NP$ ,分散は $P(1 - P)/N$ である.Nが大きいのであれば分散は十分小さくなるためKの分布は平均の周りで鋭く尖るため,$K \approx NP$ となる.

仮定1 Kの分布は平均の周りで鋭く尖る

ここでもし $\mathcal{R}$ が十分小さいため $p(\boldsymbol{x})$ が一定であるとみなせるとしよう(仮定2).すると $\mathcal{R}$ の体積をVとして

$$\begin{align*} P \approx p(\boldsymbol{x}) V \end{align*}$$

が成り立つ.この仮定1と仮定2は矛盾していることに注意を払うこと(仮定1のように尖っていたら仮定2のように一定にはならない).

すると $\mathcal{R}$ において以下のように密度を推定できる.

$$\begin{align*} p(\boldsymbol{x}) = \dfrac{K}{NV} \end{align*}$$

ここでVを固定してKを推定するのがカーネル推定法,Kを固定してVを推定するのがK最近傍法である.

カーネル密度推定法

以下のように関数 $k(\boldsymbol{u})$ を定義する.

$$\begin{align*} k(\boldsymbol{u}) = \begin{cases} 1 & |\boldsymbol{u}| \leq 1/2 \\ 0 & \text{otherwise} \end{cases} \end{align*}$$

領域 $\mathcal{R}$ を,$\boldsymbol{x}$ を中心とする微小な立方体とする.すると $\mathcal{R}$ 内部のサンプル数Kは

$$\begin{align*} K = \sum_{n=1}^{N} k \left( \dfrac{\boldsymbol{x} - \boldsymbol{x}_n}{h} \right) \end{align*}$$

である.$V = h^D$ であるから,

$$\begin{align*} p(\boldsymbol{x}) = \dfrac{1}{N} \sum_{n=1}^{N} \dfrac{1}{h^D} k \left( \dfrac{\boldsymbol{x} - \boldsymbol{x}_n}{h} \right) \end{align*}$$

が得られる.これは非連続な境界を含むので,カーネル関数としてガウスカーネルを用いると

$$\begin{align*} p(\boldsymbol{x}) = \dfrac{1}{N} \sum_{n=1}^{N} \dfrac{1}{(2\pi h^2)^{D/2}} \exp \left( -\dfrac{|\boldsymbol{x} - \boldsymbol{x}_n |}{2h} \right) \end{align*}$$

より連続的になる.これは各サンプル点においてピークを持つガウス分布を重ね合わせたものと解釈することもできる.

k最近傍法

カーネル密度推定法の欠点は,用いるパラメータh(カーネル幅)が各点において一定であることである.サンプル点が多数集まっている領域ではhは小さくてもよいが,サンプル点が少ない領域ではhは大きい値にすべきである.そこでKを固定してVを推定するのがk最近傍法である.

密度を推定したい点 $\boldsymbol{x}$ を中心とする超球において徐々に半径を大きくし,ちょうどその内部にK個のサンプル点を含むようにする.