[勉強ノート]「ベイズ推論による機械学習入門」5.6ロジスティック回帰

最近ベイズ推論の勉強をしていて機械学習スタートアップシリーズの「ベイズ推論による機械学習入門」を読んでいます。

この記事はこの本の「5.6 ロジスティック回帰」の部分で個人的にぱっと式変形がわからなかったところの詳細に関する記事になります。基本的には自分で本を読み返したときに詰まることながいように、今回わからなかったところに関しては細かく書いて説明していくことを目指します。

ロジスティック回帰のベイズ推論

モデル

まずモデルを定義していきます。データ数を \( N \) として、\( n \in N \) 番目のデータの入力値 \( \boldsymbol{x}_n \) を \(\boldsymbol{x}_n \in \mathbb{R}^M \) という\( M \) 次元のベクトルとし、モデルの出力である\( \boldsymbol{y}_n \) を \( \boldsymbol{y}_n \in \{0,1\}^D \) でかつ \( \sum_{d=1}^D y_{n,d} = 1 \) を満たす\( D \) 次元のベクトルとします。そして行列 \( \boldsymbol{W} \in \mathbb{R}^{M \times D} \) をモデルパラメータとします。これらの変数を使ってロジスティック回帰のモデルを定義すると以下のようになります。
$$ \begin{align*}
p ( \boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W} ) & = \prod_{n=1}^N p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{W} )\\
& = \prod_{n=1}^N \text{Cat}(\boldsymbol{y}_n | f(\boldsymbol{W}, \boldsymbol{x}_n) ) \tag{5.229}
\end{align*} $$

次に\( \boldsymbol{W} \) の事前分布です。\( \boldsymbol{W} \) の各要素を \( w_{m,d} \) として、今回は以下のようなガウス分布として定義します。

$$
p (\boldsymbol{W}) = \prod_{m=1}^M \prod_{d=1}^D \mathcal{N} (w_{m,d}|0, \lambda^{-1}) \tag{5.230}
$$

また、式(5.229) の非線形関数 \( f\) に対して本では以下のように \(D \) 次元のソフトマックス関数を使っています。

$$
f (\boldsymbol{W}, x_n) = \text{SM}(\boldsymbol{W}^\mathrm{T} x_n) \tag{5.231}
$$

ソフトマックス関数を用いているので、式(5.231)の各次元\(d\) に関しては以下のように定義されます。

$$ \begin{align*}
f_d({\boldsymbol{W}, x_n}) &= \text{SM}_d(\boldsymbol{W}^\mathrm{T} x_n) \\
&= \frac{\text{exp}(\boldsymbol{W}^\mathrm{T}_{:,d} x_n))}{\sum_{d^{\prime}=1}^D \text{exp}(\boldsymbol{W}^\mathrm{T}_{:,d^{\prime}} x_n)} \tag{5.232}
\end{align*} $$

以上でモデルの定義を示すことができました。

ロジスティック回帰の変分推論

このブログ記事では訓練データとして入力値と出力値 \( \{ \boldsymbol{X}, \boldsymbol{Y} \}\) が与えられた場合の \( \boldsymbol{W} \) の事後分布を推論できるようにするところまでを目指します。本にはその後に新規の入力データ \( \boldsymbol{x}_{*} \) が与えられた時の出力値 \( \boldsymbol{y}_{*} \) を予測するところまで書かれていますが、今回は省略します。

まず、事後分布 \( p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X}) \) はベイズの定理により以下のように変形できます。

$$
p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X}) = \frac{p(\boldsymbol{Y}|\boldsymbol{X},\boldsymbol{W})p(\boldsymbol{W})}{p(\boldsymbol{Y}|\boldsymbol{X})} \tag{5.233}
$$

本ではこの事後分布をガウス分布によって近似します。近似事後分布として以下のような \( M \times D \) の1次元ガウス分布を仮定します。

$$
q(\boldsymbol{W}; \boldsymbol{\eta}) = \prod_{m=1}^M \prod_{d=1}^D \mathcal{N}(w_{m,d}|\mu_{m,d},\sigma^2_{m,d}) \tag{5.234}
$$

変分推論では以下のような近似事後分布と真の事後分布のKLダイバージェンスを最小化するような変分パラメータ \( \boldsymbol{\eta} \) を見つけることを目指します。

$$
\boldsymbol{\eta}_{\text{opt}}=\underset{{\boldsymbol{\eta}}}{\text{argmin}} \ \text{KL} [q(\boldsymbol{W};\boldsymbol{\eta})||p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X})] \tag{5.235}
$$

この本では最小化するために勾配法を用います。勾配法では式(5.235) を変分パラメータ \( \boldsymbol{\eta} \) の各パラメータ \( \mu_{m,d} \) と \( \sigma_{m,d} \)で偏微分して変分パラメータの勾配を計算し、その勾配を用いて変分パラメータを更新していきます。

この勾配を求める前準備として式(5.235)を期待値の形で表現する形に式変形していきます。本では以下のように式変形されています。

$$ \begin{align*}
&\text{KL} [q(\boldsymbol{W};\boldsymbol{\eta})||p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X})] \\
& \ = \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})}
– \langle \ln p(\boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \qquad – \sum_{n=1}^N \langle \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})}
+ \text{const} \tag{5.236}
\end{align*} $$

式(5.236)の式も少し省略されていて、初見ではぱっと式変形がわからなかったので、この部分をまずは詳しく書いていきます。

式(5.236) KLダイバージェンスを期待値表現にする

KLダイバージェンスの定義が(2.13)に書かれています。これをもう少し丁寧に式変形すると以下の通りになります。

$$ \begin{align*}
\text{KL} [q(\boldsymbol{x})||p(\boldsymbol{x})]
&= – \int q(\boldsymbol{x}) \ln \frac{p(\boldsymbol{x})}{q(\boldsymbol{x})} dx \\
&= – \int q(\boldsymbol{x}) \ln p(\boldsymbol{x}) + \int q(\boldsymbol{x}) \ln q(\boldsymbol{x}) \tag{2.13.1}
\end{align*} $$

また、確率分布 \( p(\boldsymbol{x}) \) に対してある関数 \( f(\boldsymbol{x}) \) の期待値 \( \langle f(\boldsymbol{x}) \rangle _{p(\boldsymbol{x})} \) の定義は以下の通りです。

$$
\langle f(\boldsymbol{x}) \rangle _{p(\boldsymbol{x})} = \int f(\boldsymbol{x})p(\boldsymbol{x})dx \tag{2.1}
$$

この期待値の定義を利用して 式(2.13.1)の式を書き換えると以下の通りです。

$$ \begin{align*}
\text{KL} [q(\boldsymbol{x})||p(\boldsymbol{x})]
&= – \int q(\boldsymbol{x}) \ln p(\boldsymbol{x}) + \int q(\boldsymbol{x}) \ln q(\boldsymbol{x}) \\
&= – \langle \ln p(\boldsymbol{x}) \rangle _{q(\boldsymbol{x})} + \langle \ln q(\boldsymbol{x}) \rangle _{q(\boldsymbol{x})} \tag{2.13.2}
\end{align*} $$

このため \( \text{KL} [q(\boldsymbol{W};\boldsymbol{\eta})||p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X})] \) は期待値表現で書き下すと以下のようになります。(5.236に合わせて項の順番は変えています。)

$$ \begin{align*}
\text{KL} [q(\boldsymbol{W};\boldsymbol{\eta})||p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X})]
=& \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \\
&- \langle \ln p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \tag{5.236.1}
\end{align*} $$

次に5.236.1の2項目の \( \ln p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X}) \) の部分を式変形していきます。式(5.233)より

$$ \begin{align*}
\ln p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X}) =& \ln \frac{p(\boldsymbol{Y}|\boldsymbol{X},\boldsymbol{W})p(\boldsymbol{W})}{p(\boldsymbol{Y}|\boldsymbol{X})} \\
=& \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W}) \\
&+ \ln p (\boldsymbol{W}) – \ln p(\boldsymbol{Y}| \boldsymbol{X}) \tag{2.236.2}
\end{align*} $$

3項目の \( \ln p(\boldsymbol{Y}| \boldsymbol{X}) \) は 変分パラメータに依存しないため定数となります。この式(2.236.2)を使って式(2.236.1)を式変形してきます。

$$ \begin{align*}
& \text{KL} [q(\boldsymbol{W};\boldsymbol{\eta})||p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X})] \\
& \ = \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} – \langle \ln p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \ = \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \qquad – \langle \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W})
+ \ln p (\boldsymbol{W}) + \text{const}\rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \tag{2.236.3}
\end{align*} $$

ここで2項目の部分で、期待値は線形性が成り立つため、以下のように変形できます。

$$ \begin{align*}
& \langle \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W})
+ \ln p (\boldsymbol{W}) + \text{const} \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \ = \langle \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})}
+ \langle \ln p (\boldsymbol{W}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} + \text{const}\tag{2.236.4}
\end{align*} $$

このため、式(2.236.3)に式(2.236.4)を代入すると以下のようになります。
$$ \begin{align*}
& \text{KL} [q(\boldsymbol{W};\boldsymbol{\eta})||p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X})] \\
& \ = \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})}
– \langle \ln p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \ = \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \qquad – \langle \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W})
+ \ln p (\boldsymbol{W}) + \text{const}\rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \ = \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \qquad – \langle \ln p (\boldsymbol{W}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \qquad – \langle \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} + \text{const}
\tag{2.236.5}
\end{align*}$$

項の順番は式(2.236)に合わせて順番を変えています。
次に3項目の \( \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W}) \) ついて考えます。この式は式(5.229)から以下のようになります

$$ \begin{align*}
\ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W}) &= \ln (\prod_{n=1}^N p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{W} ) ) \\
&= \sum_{n=1}^N \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{W} ) \tag{2.236.6}
\end{align*} $$

期待値は線形性がなりたつため式(2.236.5)の3項目の \( \langle \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \)は以下のようになります

$$ \begin{align*}
\langle \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} &= \langle \sum_{n=1}^N \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{W} )\rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \\
&= \sum_{n=1}^N \langle \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \tag{2.236.7}
\end{align*} $$

最後に式(2.236.5)にこの式(2.236.7)を代入すると以下のようになります。
$$ \begin{align*}
& \text{KL} [q(\boldsymbol{W};\boldsymbol{\eta})||p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X})] \\
& \ = \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})}
– \langle \ln p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \ = \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \qquad – \langle \ln p (\boldsymbol{W}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \qquad – \langle \ln p (\boldsymbol{Y} | \boldsymbol{X}, \boldsymbol{W}) \rangle_{q(\boldsymbol{W};\boldsymbol{\eta})} + \text{const} \\
& \ = \langle \ln q(\boldsymbol{W};\boldsymbol{\eta}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})}
– \langle \ln p(\boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \\
& \qquad- \sum_{n=1}^N \langle \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})}
+ \text{const}
\tag{2.236.8}
\end{align*}$$

これで式 (2.236) が導出できました。

再パラメータ化トリックを使った近似された勾配を導出する

次に再パラメータ化トリック (re-parameterization trick) を使って式 (5.236) から勾配の近似を求めると本に書かれていますが、再パラメータ化トリックについてちゃんと書かれていなかったので、ここでは詳しく書きます。式 (2.236)の2項目 \( \langle \ln p(\boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \) がシンプルなものなので、これを使って説明していきます。本にも書かれていますが、まずは再パラメータ化トリックがなぜ必要なのか?を整理します。 \( \langle \ln p(\boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \) を計算するうえで必要なこととしては以下の通りです。

  1. 期待値を何等かの形で近似できる
  2. 期待値を近似した値が変分パラメータ \( \boldsymbol{\eta} \) の関数となっていて、勾配が計算できる

これらを満たす手法として再パラメータ化トリックがあります。

再パラメータ化トリックはサンプリング部分を決定的な関数に変換する手法です。具体的に式で説明していきます。本にならって \( \boldsymbol{W} \) の要素をインデックスを省略して \( w = w_{m,d}\) と表記し、\( w \) に対応する変分パラメータ \(\boldsymbol{\eta}\) の中身の\( \mu \)、\( \sigma \) もインデックスを省略して表記します。式 (5.230) で \( w \) はガウス事前分布を仮定していました。ガウス分布のサンプル値を再パラメータ化トリックを使って表現すると以下のようになります。

$$ \begin{align*}
\tilde{w} = \mu + \sigma \tilde{\epsilon} \tag{5.237} \\
\text{ただし} \tilde{\epsilon} \sim \mathcal{N} (\epsilon|0,1) \tag{5.238}
\end{align*} $$

これにより、パラメータのないガウス分布からサンプリングされた値 \( \tilde{\epsilon} \)と変分パラメータの\( \mu \)、\( \sigma \)を使って決定的な関数により \( \tilde{w} \) を計算できます。次にこの\( \tilde{w} \) を使って式 (2.236)の2項目 \( \langle \ln p(\boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \) をどう近似するか?を考えます。

これは以下の式(2.14) のサンプリングによる期待値の近似を使います。

$$ \begin{align*}
\langle f(\boldsymbol{x})\rangle_{p(\boldsymbol{x})} \approx \frac{1}{L} \sum_{l=1}^{L}f(\boldsymbol{x^{(l)}}) \tag{2.14} \\
\text{ただし} \boldsymbol{x^{(l)}} \sim p(\boldsymbol{x})
\end{align*} $$

この式 (2.14)を使うと\( \langle \ln p(\boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \) の式を近似していきます。まず、式 (2.14)の \( p(\boldsymbol{x}) \) から \( \boldsymbol{x^{(l)}} \) をサンプリングする部分に相当する \( q(\boldsymbol{W};\boldsymbol{\eta}) \)からのサンプリングですが再パラメータ化トリックにより以下のようになります。
$$ \begin{align*}
\tilde{w}^{(l)} = \mu + \sigma \tilde{\epsilon}^{(l)} \tag{5.239.1} \\
\text{ただし} \tilde{\epsilon}^{(l)} \sim \mathcal{N} (\epsilon|0,1)
\end{align*} $$

この式 (5.239.1) と式(2.14)を使って\( \langle \ln p(\boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \) を近似すると以下のようになります。

$$
\langle \ln p(\boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})} \approx \sum_{l=1}^L \ln p(\boldsymbol{\tilde{W}^{(l)}}) \tag{5.239.2}
$$

この式 (5.239.2) の \( L \) を大きくすると精度よく近似ができるのですが、この本では \( L=1\) としています。このため、式(5.239.2)は以下のように変形できます。
$$ \begin{align*}
\langle \ln p(\boldsymbol{W}) \rangle _{q(\boldsymbol{W};\boldsymbol{\eta})}
\approx & \sum_{l=1}^L \ln p(\boldsymbol{\tilde{W}^{(l)}}) \\
=& \ln p(\boldsymbol{\tilde{W}^{(1)}}) = \ln p(\boldsymbol{\tilde{W}})
\end{align*} $$
同様にして式(5.236) の他の期待値の項も式(5.239.1) と式(2.14) 、期待値の近似の際\( L=1\)をとして計算すると以下の式(5.239) が出てきます。

$$ \begin{align*}
& \text{KL} [q(\boldsymbol{W};\boldsymbol{\eta})||p(\boldsymbol{W}|\boldsymbol{Y},\boldsymbol{X})] \\
& \ \approx \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta})
– \ln p(\boldsymbol{\tilde{W}}) \\
& \qquad – \sum_{n=1}^N \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) + \text{const} \\
& \ = g(\boldsymbol{\tilde{W}}, \boldsymbol{\eta}) \tag{5.239}
\end{align*} $$

この式(5.239) の \( g(\boldsymbol{\tilde{W}}, \boldsymbol{\eta}) \) を変分パラメータ \( \mu \)、 \( \sigma \) で偏微分すれば各変分パラメータの更新の時に必要な近似勾配を得ることができます。\( \mu \)のほうはそのまま以下の通りです。

$$
\Delta_\mu = \frac{\partial g(\boldsymbol{\tilde{W}}, \boldsymbol{\eta})}{\partial \mu} \tag{5.240}
$$

一方、\( \sigma \)のほうはガウス分布の制約上\( \sigma \)が正になっている必要があります。このため\( \sigma \)を \( \rho \) という変数を導入して以下のように計算されるものとします。

$$
\sigma = \ln (1 + \exp(\rho)) \tag{5.241.1}
$$

これにより \( \sigma \) ではなく、制約のない\( \rho \) を新たな変分パラメータとして使えるようになり\( \rho \) のほうを更新していけばよいことになりました。このため、\( \rho \) の更新に必要な勾配の近似を\( g(\boldsymbol{\tilde{W}}, \boldsymbol{\eta}) \) を\(\rho\) の偏微分することで得ます。これは以下のようになります。

$$ \begin{align*}
\Delta_\rho &= \frac{\partial g(\boldsymbol{\tilde{W}}, \boldsymbol{\eta})}{\partial \rho}\\
&= \frac{\partial g(\boldsymbol{\tilde{W}}, \boldsymbol{\eta})}{\partial \sigma} \frac{\partial \sigma}{\partial \rho} \tag{5.241}
\end{align*} $$

1行目から2行目の変換では合成関数の偏微分を活用してます。これにより、それぞれの変分パラメータに必要な勾配の近似が計算できます。

ここから式(5.240)、(5.241)に出てくる偏微分を具体的に計算していきます。この変形も自分はぱっと導出できなかったので詳しく書きます。まず、本では以下のように書かれています。

$$ \begin{align*}
\frac{\partial g(\boldsymbol{\tilde{W}}, \boldsymbol{\eta})}{\partial \mu} = & \frac{\partial}{\partial \mu} \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta})
– \frac{\partial}{\partial \mu} \ln p(\boldsymbol{\tilde{W}}) \\
& – \sum_{n=1}^N \frac{\partial}{\partial \mu} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \tag{5.244}
\end{align*} $$

$$ \begin{align*}
\frac{\partial g(\boldsymbol{\tilde{W}}, \boldsymbol{\eta})}{\partial \sigma} = & \frac{\partial}{\partial \sigma} \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta})
– \frac{\partial}{\partial \sigma} \ln p(\boldsymbol{\tilde{W}}) \\
& – \sum_{n=1}^N \frac{\partial}{\partial \sigma} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \boldsymbol{\tilde{\epsilon}} \tag{5.245}
\end{align*} $$

$$
\frac{\partial \sigma}{\partial \rho} = \frac{1}{1 + \text{exp}(-\rho)} \tag{5.246}
$$

ここで登場する\( \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta}) \) と \( \ln p(\boldsymbol{\tilde{W}}) \) に対する各偏微分は以下のようになると本にはあります。

$$ \begin{align*}
\frac{\partial}{\partial \mu} \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta}) & = 0 \tag{5.247} \\
\frac{\partial}{\partial \mu} \ln p(\boldsymbol{\tilde{W}}) &= – \lambda \tilde{w} \tag{5.248} \\
\frac{\partial}{\partial \sigma} \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta}) & = – \frac{1}{\sigma} \tag{5.249} \\
\frac{\partial}{\partial \sigma} \ln p(\boldsymbol{\tilde{W}}) &= – \lambda \tilde{w} \tilde{\epsilon} \tag{5.250}
\end{align*} $$

これが本の説明でした。ここからは本で省略されているこの式の導出までの流れを詳しく書いていきます。まず、式(5.244)、式(5.245) の3項目の導出がわかりにくかったので、詳しく書きます。3項目の \( \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \) は \( \boldsymbol{\tilde{W}} \) の関数です。\( \boldsymbol{\tilde{W}} \) は再パラメータ化トリックによっての\( \mu \) から計算される値になっています。このため\( \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \) を\( \mu \)で偏微分する際には合成関数の偏微分を利用します。これは以下のようになります。
$$
\frac{\partial}{\partial \mu} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) = \frac{\partial}{\partial \tilde{w}} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \frac{\partial \tilde{w}}{\partial \mu} \tag{5.244.1}
$$
ここで\( \frac{\partial \tilde{w}}{\partial \mu} \) の部分は式(5.237) の再パラメータ化トリックの時の式より、以下のようになります。
$$\begin{align*}
\frac{\partial \tilde{w}}{\partial \mu} = & \frac{\partial }{\partial \mu}\left( \mu + \sigma \tilde{\epsilon} \right) \\
= & 1 \tag{5.244.2}
\end{align*}$$
式(5.244.1)と式(5.244.2) の結果から \(\ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \) の \( \mu \) による偏微分は以下のようになります。

$$ \begin{align*}
\frac{\partial}{\partial \mu} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) = & \frac{\partial}{\partial \tilde{w}} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \frac{\partial \tilde{w}}{\partial \mu} \\
= & \frac{\partial}{\partial \tilde{w}} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \tag{5.244.3}
\end{align*}$$
これで式(5.244) の3項目の部分の導出ができました。次に式(5.245) の3項目の部分も導出します。流れは式(5.244)のときとほぼ同様ですので、違う部分だけ書きます。\( \tilde{w} \) を \( \sigma\) で偏微分すると以下のようになります。
$$\begin{align*}
\frac{\partial \tilde{w}}{\partial \sigma} = & \frac{\partial }{\partial \sigma}\left( \mu + \sigma \tilde{\epsilon} \right) \\
= & \tilde{\epsilon} \tag{5.245.1}
\end{align*}$$

式(5.245.1)の結果を使うと以下のようになります。
$$ \begin{align*}
\frac{\partial}{\partial \sigma} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) = & \frac{\partial}{\partial \tilde{w}} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \frac{\partial \tilde{w}}{\partial \sigma} \\
= & \frac{\partial}{\partial \tilde{w}} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \tilde{\epsilon} \tag{5.245.2}
\end{align*}$$

これで式(5.245)の3項目が導出できました。
次に式 (5.247) から(5.250) も導出していきます。まず、式 (5.247)を導出します。\( \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta}) \) は再パラメータ化トリックが使われています。これは式(5.234) を使うと以下のようになります。

$$ \begin{align*}
\ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta}) = & \ln \prod_{m=1}^M \prod_{d=1}^D \mathcal{N}(\tilde{w}_{m,d}|\mu_{m,d},\sigma_{m,d}^2) \\
= & \sum_{m=1}^M \sum_{d=1}^D \ln \mathcal{N}(\tilde{w}_{m,d}|\mu_{m,d},\sigma_{m,d}^2) \tag{5.247.1}
\end{align*} $$

次に\( \ln \mathcal{N}(\tilde{w}_{m,d}|\mu_{m,d},\sigma_{m,d}^2) \) に注目して変形します。本にガウス分布で対数を取った式 (2.65)が載っています。
$$
\ln \mathcal{N}(x | \mu, \sigma^2) = – \frac{1}{2}\{ \frac{(x-\mu)^2}{\sigma^2} + \ln \sigma^2 + \ln 2\pi \} \tag{2.65}
$$
この式(2.65) を使って\( \ln \mathcal{N}(\tilde{w}_{m,d}|\mu_{m,d},\sigma_{m,d}^2) \)を式変形します。 ここでは要素のインデックスは省略します。
$$
\ln \mathcal{N}(\tilde{w} | \mu, \sigma^2) = – \frac{1}{2}\{ \frac{(\tilde{w}-\mu)^2}{\sigma^2} + \ln \sigma^2 + \ln 2\pi \} \tag{5.247.2}
$$
次に 式(5.237) を使って\( \tilde{w} \) を置き換えて式を整理すると以下のようになります。
$$ \begin{align*}
\ln \mathcal{N}(\tilde{w} | \mu, \sigma^2) = & – \frac{1}{2}\{ \frac{(\mu + \sigma\tilde{\epsilon}-\mu)^2}{\sigma^2} + \ln \sigma^2 + \ln 2\pi \} \\
= &- \frac{1}{2}\left( \tilde{\epsilon}^2 + \ln \sigma^2 + \ln 2\pi \right) \tag{5.247.3} \end{align*} $$

式(5.247.1) と式(5.247.3) を使って \( \frac{\partial}{\partial \mu} \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta}) \) の式変形をしてみます。ここでは分かりやすさ重視でインデクスを付けます。

$$ \begin{align*}
\frac{\partial}{\partial \mu_{m,d}} \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta}) &= \frac{\partial}{\partial \mu_{m,d}} \sum_{m=1}^M \sum_{d=1}^D \ln \mathcal{N}(\tilde{w}_{m,d}|\mu_{m,d},\sigma_{m,d}^2) \\
&= \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \mu_{m,d}} \ln \mathcal{N}(\tilde{w}_{m,d}|\mu_{m,d},\sigma_{m,d}^2) \\
&= \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \mu_{m,d}} \{- \frac{1}{2}\left( \tilde{\epsilon}^2 + \ln \sigma_{m,d}^2 + \ln 2\pi \right) \} \\
&= -\frac{1}{2} \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \mu_{m,d}} \left( \tilde{\epsilon}^2 + \ln \sigma_{m,d}^2 + \ln 2\pi \right) \\
&= 0 \tag{5.247.4}
\end{align*} $$

これで式 (5.247)が導出されました。式(5.249) も式(5.247.1) と式(5.247.3)を使って同様の流れで導出できます。
$$ \begin{align*}
\frac{\partial}{\partial \sigma_{m,d}} \ln q(\boldsymbol{\tilde{W}};\boldsymbol{\eta}) &= \frac{\partial}{\partial \sigma_{m,d}} \sum_{m=1}^M \sum_{d=1}^D \ln \mathcal{N}(\tilde{w}_{m,d}|\mu_{m,d},\sigma_{m,d}^2) \\
&= \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \sigma_{m,d}} \ln \mathcal{N}(\tilde{w}_{m,d}|\mu_{m,d},\sigma_{m,d}^2) \\
&= \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \sigma_{m,d}} \{- \frac{1}{2}\left( \tilde{\epsilon}^2 + \ln \sigma_{m,d}^2 + \ln 2\pi \right) \} \\
&= -\frac{1}{2} \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \sigma_{m,d}} \left( \tilde{\epsilon}^2 + \ln \sigma_{m,d}^2 + \ln 2\pi \right) \\
&= -\frac{1}{2} \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \sigma_{m,d}} \ln \sigma_{m,d}^2 \\
&= -\frac{1}{2} \frac{2}{\sigma_{m,d}} \\
&= – \frac{1}{\sigma_{m,d}} \tag{5.249}
\end{align*} $$

これで式 (5.249)も導出できました。次に(5.248)の導出を行います。まずは \( \ln p(\boldsymbol{\tilde{W}}) \) を 式 (5.230) を使って式変形します。
$$ \begin{align*}
\ln p(\boldsymbol{\tilde{W}}) = & \ln \prod_{m=1}^M \prod_{d=1}^D \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \\
= & \sum_{m=1}^M \sum_{d=1}^D \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \tag{5.248.1}
\end{align*} $$

式(5.248.1)を使って\( \frac{\partial}{\partial \mu} \ln p(\boldsymbol{\tilde{W}}) \) を式変形していきます。

$$ \begin{align*}
\frac{\partial}{\partial \mu_{m,d}} \ln p(\boldsymbol{\tilde{W}}) = & \frac{\partial}{\partial \mu_{m,d}} \sum_{m=1}^M \sum_{d=1}^D \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \\
= & \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \mu_{m,d}} \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \tag{5.248.2}
\end{align*} $$

ここで式 (5.237) より、\( \tilde{w}_{m,d} \) は \( \mu_{m,d} \) の式なので合成関数の偏微分を使います。式 (5.244.2) も利用すると式 (5.248.2) は以下のように式変形できます。

$$ \begin{align*}
\frac{\partial}{\partial \mu_{m,d}} \ln p(\boldsymbol{\tilde{W}}) = & \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \mu_{m,d}} \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \\
= & \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \tilde{w}_{m,d}} \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \frac{\partial \tilde{w}_{m,d} }{\partial \mu_{m,d}} \\
= & \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \tilde{w}_{m,d}} \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1})
\tag{5.248.3}
\end{align*} $$

次にガウス分布で対数を取った式 (2.65)を使って\( \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \)の部分を式変形すると以下のようになります。

$$ \begin{align*}
\ln \mathcal{N}(\tilde{w} | 0, \lambda^{-1}) =& – \frac{1}{2}\left( \frac{\tilde{w}^2}{\lambda^{-1}} + \ln \lambda^{-1} + \ln 2\pi \right) \\
=& – \frac{1}{2}\left( \lambda \tilde{w}^2 – \ln \lambda + \ln 2\pi \right) \tag{5.248.2}
\end{align*} $$

インデックスは省略しています。これを使って式 (5.248.3) の式変形をすると以下のようになります。

$$ \begin{align*}
\frac{\partial}{\partial \mu_{m,d}} \ln p(\boldsymbol{\tilde{W}})
= & \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \tilde{w}_{m,d}} \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \\
=& \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \tilde{w}_{m,d}} \{ – \frac{1}{2}\left( \lambda \tilde{w}_{m,d}^2 – \ln \lambda + \ln 2\pi \right) \} \\
=& – \frac{1}{2} \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \tilde{w}_{m,d}} \left( \lambda \tilde{w}_{m,d}^2 – \ln \lambda + \ln 2\pi \right) \\
=& – \frac{1}{2} \left( 2 \lambda \tilde{w}_{m,d} \right) \\
=& – \lambda \tilde{w}_{m,d} \tag{5.248.5}
\end{align*} $$

これで式 (5.248) が導出できました。式(5.250)の導出もほぼ同じです。\( \frac{\partial}{\partial \sigma} \ln p(\boldsymbol{\tilde{W}}) \) を式 (5.248.1)、(5.248.2)、(5.245.1) を使って式変形していきます。

$$ \begin{align*}
\frac{\partial}{\partial \sigma_{m,d}} \ln p(\boldsymbol{\tilde{W}}) = &
\frac{\partial}{\partial \sigma_{m,d}} \sum_{m=1}^M \sum_{d=1}^D \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \\
= & \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \sigma_{m,d}} \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \\
=& \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \tilde{w}_{m,d}} \{ \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \} \frac{\tilde{w}_{m,d}}{\partial \sigma_{m,d}} \\
=& \sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \tilde{w}_{m,d}} \{ \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \} \tilde{\epsilon} \tag{5.250.1}
\end{align*} $$

式(5.250.1) から式(5.248.5)のときと同様の式変形を行うと以下のようになります。
$$ \begin{align*}
\frac{\partial}{\partial \sigma_{m,d}} \ln p(\boldsymbol{\tilde{W}}) = &
\sum_{m=1}^M \sum_{d=1}^D \frac{\partial}{\partial \tilde{w}_{m,d}} \{ \ln \mathcal{N} (\tilde{w}_{m,d}|0, \lambda^{-1}) \} \tilde{\epsilon} \\
=& (- \lambda \tilde{w}_{m,d}) \tilde{\epsilon} \\
=& – \lambda \tilde{w}_{m,d} \tilde{\epsilon}
\tag{5.250.2}
\end{align*} $$

これで式(5.250) の式も導出できました。

それでは式(5.244)と(5.245) の3項目に出てくる \( \frac{\partial}{\partial \sigma} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{\tilde{W}}) \) の部分を具体的に計算していきます。まず、本と同じように以下のように誤差関数 \( E_n \) を定義します。

$$
E_n = – \ln p ( \boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{W} ) \tag {5.251}
$$

この\( E_n \) を使うと以下のようになります。

$$
\frac{\partial}{\partial \tilde{w}} \ln p ( \boldsymbol{y}_n | \boldsymbol{x}_n, \boldsymbol{W} ) = – \frac{\partial}{\partial \tilde{w}} E_n \tag{5.252}
$$

この後ソフトマックス関数に関する微分公式 (A.33) が使われているので、先に解説します。
入力 \( \boldsymbol{a} \in \mathbb{R}^D \) としたとき、ソフトマックス関数の\( d \) 次元目の出力は以下のようになります。
$$
\text{SM}_d(\boldsymbol{a}) = \frac{\exp(a_{d})}{\sum_{d^{\prime}=1}^{D} \exp(a_{d^{\prime}})}
$$
インデックスは本とは違いロジスティック回帰のものに合わせています。

このソフトマックス関数の \( \boldsymbol{a} \) の\( d \) 次元目の偏微分は以下のようになります。
$$
\frac{\partial}{\partial a_{d}} SM_d(\boldsymbol{a}) = \begin{cases}
\text{SM}_d(\boldsymbol{a})(1 – \text{SM}_d(\boldsymbol{a})) & \text{if \( d^{\prime} = d \)} \\
-\text{SM}_d(\boldsymbol{a})\text{SM}_{d^{\prime}}(\boldsymbol{a}) & \text{otherwise} \\
\end{cases} \tag{A.33}
$$

どの次元の偏微分かによって結果が違うので注意してください。このソフトマックス関数の偏微分の公式を使うと次の式のようになると本にはあります。

$$
\frac{\partial}{\partial \tilde{w}_{m,d}} E_n = \lbrace \text{SM}_d (\boldsymbol{\tilde{W}}^\mathrm{T} \boldsymbol{x}_n) – y_{n,d} \rbrace x_{n,m} \tag{5.253}
$$

この式(5.253) の導出も初見では分からなかったので詳しく書いていきます。

まず、\( \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \tilde{\boldsymbol{W}} ) \) を具体的にしていきます。これはカテゴリ分布が使われているのでカテゴリ分布の定義を確認していきます。\( \boldsymbol{s} \) を \( \boldsymbol{s} \in \{0,1\}^K \) でかつ \( \sum_{k=1}^K s_k = 1 \) のベクトルとし、カテゴリ分布のパラメータ \( \pi \) を \( \pi \in (0, 1)^K \) でかつ \( \sum_{k=1}^K \pi_k = 1 \)とします。このときカテゴリ分布は以下のように定義されます。
$$
\text{Cat}(\boldsymbol{s}|\boldsymbol{\pi}) = \prod_{k=1}^K \pi_k^{s_k} \tag{2.29}
$$

このカテゴリ分布の定義と式(5.229)、 (5.231)、(5.232)から以下のようになります。
$$ \begin{align*}
\ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \tilde{\boldsymbol{W}} ) =& \ln \text{Cat}(\boldsymbol{y}_n | f(\tilde{\boldsymbol{W}}, \boldsymbol{x}_n) \\
=& \ln \prod_{d=1}^D f_d(\tilde{\boldsymbol{W}}, \boldsymbol{x}_n)^{y_d} \\
=& \sum_{d=1}^D \ln f_d(\tilde{\boldsymbol{W}}, \boldsymbol{x}_n)^{y_d} \\
=& \sum_{d=1}^D y_d\ln f_d(\tilde{\boldsymbol{W}}, \boldsymbol{x}_n) \\
=& \sum_{d=1}^D y_d\ln \text{SM}_d(\tilde{\boldsymbol{W}}^\mathrm{T} \boldsymbol{x}_n)
\tag{5.253.1}
\end{align*} $$
次に\( E_n \) を \( \tilde{w}_{m,d} \) で偏微分をする前に以下のような\( \boldsymbol{a}_{n} \) を定義します。また、後ほど使う\( \boldsymbol{a}_{n} \)の\( d \) 次元目 (\( a_{n,d} \))を\( \tilde{w}_{m,d} \) で偏微分した式も合わせて示します。
$$\begin{align*}
\boldsymbol{a}_{n} =& \tilde{\boldsymbol{W}}^\mathrm{T} \boldsymbol{x}_n \tag{5.253.2} \\
\frac{\partial}{\partial \tilde{w}_{m,d}} a_{n,d} =& \frac{\partial}{\partial \tilde{w}_{m,d}} \tilde{\boldsymbol{W}_{:,d}}^\mathrm{T} \boldsymbol{x}_n \\
=& x_{n,m}
\tag{5.253.3}
\end{align*} $$
この式(5.253.1)、(5.253.2)、(5.253.3)を使って\( E_n \) を \( \tilde{w}_{m,d} \) で偏微分の式変形をしていくと以下のようになります。
$$\begin{align*}
\frac{\partial}{\partial \tilde{w}_{m,d}} E_n =& \frac{\partial}{\partial \tilde{w}_{m,d}} (- \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \tilde{\boldsymbol{W}} ) ) \\
=& – \frac{\partial}{\partial \tilde{w}_{m,d}} \ln p(\boldsymbol{y}_n | \boldsymbol{x}_n, \tilde{\boldsymbol{W}} ) \\
=& – \frac{\partial}{\partial \tilde{w}_{m,d}} \sum_{d^{\prime}=1}^D y_{d^{\prime}} \ln \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) \\
=& – \frac{\partial}{\partial a_{n,d}} \lbrace \sum_{d^{\prime}=1}^D y_{d^{\prime}} \ln \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) \rbrace \frac{\partial a_{n,d}}{\partial \tilde{w}_{m,d}} \\
=& – \frac{\partial}{\partial a_{n,d}} \lbrace \sum_{d^{\prime}=1}^D y_{d^{\prime}} \ln \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) \rbrace x_{n,m} \\
=& – \lbrace \sum_{d^{\prime}=1}^D y_{d^{\prime}} \frac{\partial}{\partial a_{n,d}} \ln \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) \rbrace x_{n,m} \\
=& – \lbrace \sum_{d^{\prime}=1}^D y_{d^{\prime}} \frac{1}{\text{SM}_{d^{\prime}}(\boldsymbol{a}_n)} \frac{\partial}{\partial a_{n,d}} \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) \rbrace x_{n,m} \\
=& – \lbrace \sum_{d^{\prime}=1}^D \frac{y_{d^{\prime}}}{\text{SM}_{d^{\prime}}(\boldsymbol{a}_n)} \frac{\partial}{\partial a_{n,d}} \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) \rbrace x_{n,m}
\tag{5.253.4}
\end{align*}$$
実は式 (5.253.4) の途中の式変形からディープラーニングでお馴染みのソフトマックス関数とクロスエントロピーの偏微分の形と同じ形になります。なので、これ以降の式変形がわからなければソフトマックス関数とクロスエントロピーの偏微分で調べるとよいかもしれません。
ここで、ソフトマックス関数の偏微分公式 (A.33) を使います。ソフトマックス関数の偏微分は\( d\) 次元目とそれ以外で分岐しています。このため、\( d\) 次元目だけsumの外に一時的に出して偏微分し、またsumでまとめるということをします。ここからは式 (5.253.4) のsumの部分だけ式変形していきます。
$$\begin{align*}
& \sum_{d^{\prime}=1}^D \frac{y_{d^{\prime}}}{\text{SM}_{d^{\prime}}(\boldsymbol{a}_n)} \frac{\partial}{\partial a_{n,d}} \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) \\
& \ = \frac{y_{d}}{\text{SM}_{d}(\boldsymbol{a}_n)} \frac{\partial}{\partial a_{n,d}} \text{SM}_{d}(\boldsymbol{a}_n) \\
& \qquad + \sum_{d^{\prime}=1, d^{\prime} \neq d}^D \frac{y_{d^{\prime}}}{\text{SM}_{d^{\prime}}(\boldsymbol{a}_n)} \frac{\partial}{\partial a_{n,d}} \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) \\
& \ = \frac{y_{d}}{\text{SM}_{d}(\boldsymbol{a}_n)} \text{SM}_d(\boldsymbol{a}_n)(1 – \text{SM}_d(\boldsymbol{a}_n)) \\
& \qquad + \sum_{d^{\prime}=1, d^{\prime} \neq d}^D \frac{y_{d^{\prime}}}{\text{SM}_{d^{\prime}}(\boldsymbol{a}_n)} \lbrace -\text{SM}_d(\boldsymbol{a})\text{SM}_{d^{\prime}}(\boldsymbol{a}) \rbrace \\
& \ = y_{d}(1 – \text{SM}_d(\boldsymbol{a}_n)) – \sum_{d^{\prime}=1, d^{\prime} \neq d}^D y_{d^{\prime}}\text{SM}_d(\boldsymbol{a})\\
& \ = y_{d} – y_{d}\text{SM}_d(\boldsymbol{a}_n) – \sum_{d^{\prime}=1, d^{\prime} \neq d}^D y_{d^{\prime}}\text{SM}_d(\boldsymbol{a})\\
& \ = y_{d} – \sum_{d^{\prime}=1}^D y_{d^{\prime}}\text{SM}_d(\boldsymbol{a}) \\
& \ = y_{d} – \text{SM}_d(\boldsymbol{a}) \sum_{d^{\prime}=1}^D y_{n,d^{\prime}}
\tag{5.253.5} \\
\end{align*} $$
ここで\( \sum_{d=1}^D y_{n,d} = 1 \) を使うと以下のようになります。
$$\begin{align*}
\sum_{d^{\prime}=1}^D \frac{y_{d^{\prime}}}{\text{SM}_{d^{\prime}}(\boldsymbol{a}_n)} \frac{\partial}{\partial a_{n,d}} \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) =& y_{d} – \text{SM}_d(\boldsymbol{a}) \sum_{d^{\prime}=1}^D y_{n,d^{\prime}} \\
=& y_{n,d} – \text{SM}_d(\boldsymbol{a}) \tag{5.253.6}
\end{align*} $$

式(5.253.4), (5.253.6)の結果から以下のようになります。
$$\begin{align*}
\frac{\partial}{\partial \tilde{w}_{m,d}} E_n =& – \lbrace \sum_{d^{\prime}=1}^D \frac{y_{d^{\prime}}}{\text{SM}_{d^{\prime}}(\boldsymbol{a}_n)} \frac{\partial}{\partial a_{n,d}} \text{SM}_{d^{\prime}}(\boldsymbol{a}_n) \rbrace x_{n,m} \\
=& – \lbrace y_{n,d} – \text{SM}_d(\boldsymbol{a}) \rbrace x_{n,m} \\
=& \lbrace \text{SM}_d(\boldsymbol{a}) – y_{n,d} \rbrace x_{n,m}
\tag{5.253.7}\\
\end{align*} $$
これで式(5.253) が導出できました。これで式(5.240)、(5.241)が具体的に計算できるようになりました。式(5.240)、(5.241)が計算できれば学習率を \( \gamma > 0 \) とすると以下のようにすれば変分パラメータの更新が行えます。
$$\begin{align*}
\mu \leftarrow \mu – \gamma \Delta_\mu \tag{5.242} \\
\rho \leftarrow \rho – \gamma \Delta_\rho \tag{5.243} \\
\end{align*} $$
これで無事に本のロジスティック回帰の変分推論の部分の式は導出できました。

最後に

今回、「ベイズ推論による機械学習入門」5.6ロジスティック回帰の式の導出を真面目にやったのでいい機会なのでblogにするかと軽い気持ちで書き始めましたが、いざ書き始めると自分の理解が不十分なところが多くあることに気が付き、理解を深める良い機会になりました。また、私自身、教科書で分からないときは他の方の式導出のblog記事が大変参考になったので、今後、また機会があれば私もこのような記事を書いていこうと思います。ただ、この手の記事を書く際、mathjaxによる式の打ち込みにすごい時間がかかることがわかったので、mathjaxによる式の打ち込み速度を上げる工夫も合わせて考えていきたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です