5.13 (★)
クラスの事前確率がp(\mathcal{C}_k) = \pi_{k}であり,入力特徴ベクトル\boldsymbol{\phi}のクラスで条件付けした密度がp(\boldsymbol{\phi} \mid \mathcal{C}_k)であるような,Kクラスの分類用生成モデルを考える.訓練データ集合\{\boldsymbol{\phi}_n, \mathbf{t}_n\}, n = 1, \ldots ,Nが与えられる.また,\mathbf{t}_nは 1-of-K 符号化法を用いて表現したK次元の二値ベクトルであり,その要素は,データ点のクラスが\mathcal{C}_kであるときt_{nj} = I_{jk}である.データ点はこのモデルから独立に得られたと,またクラスの事前確率が次式であると仮定したときの事後確率の最尤推定量を示せ.
\pi_{k} = \frac{N_k}{N} \tag{5.101}
ただし,\pi_{k}は, クラス\mathcal{C}_kに割り当てられたデータ点の数である.
尤度関数は以下のようになる。
p(\{\phi_n, t_n\} \mid \{\pi_k\})
= \prod_{n=1}^{N} \prod_{k=1}^{K} \big(p(\phi_n \mid C_k)\, \pi_k \big)^{t_{nk}}
これの対数をとると
\ln p(\{\phi_n, t_n\} \mid \{\pi_k\})
= \sum_{n=1}^{N} \sum_{k=1}^{K} t_{nk} \big\{ \ln p(\phi_n \mid C_k) + \ln \pi_k \big\}.
\pi_kについて最大化するためには、以下の制約の下で最大化する必要がある。
\sum_{k=1}^{K} \pi_k = 1.
制約条件下での最大化はラグランジュの乗数法を用いて行う。 ラグランジュ乗数 \lambda を導入し、以下の関数を最大化する。
\ln p(\{\phi_n, t_n\} \mid \{\pi_k\}) + \lambda \Big( \sum_{k=1}^{K} \pi_k - 1 \Big).
\pi_kについて積分して0とおくと、以下の式が得られる。
\frac{\partial}{\partial \pi_k} \Big[ \ln p(\{\phi_n, t_n\} \mid \{\pi_k\}) + \lambda \Big( \sum_{k=1}^{K} \pi_k - 1 \Big) \Big]
= \sum_{n=1}^{N} \frac{t_{nk}}{\pi_k} + \lambda = 0.
式変形することで、以下の式が得られる。
-\pi_k \lambda = \sum_{n=1}^{N} t_{nk} = N_k.
さらにこの式の両辺を全てのkについて足すと \lambda = -Nが得られる。直前の二つの式を用いて\lambdaを消去すると目的の式である以下が得られる。
5.14 (★★)
演習問題5.13の分類モデルを考える.ここでは,クラスで条件付けした密度は,次式のようにクラス間で共通の共分散行列を用いたガウス分布であるとする.
p(\boldsymbol{\phi} \mid \mathcal{C}_k) = \mathcal{N}(\boldsymbol{\phi} \mid \boldsymbol{\mu}_k, \mathbf{\Sigma}) \tag{5.102}
クラス\mathcal{C}_kのガウス分布の平均の最尤推定量が次式で与えられることを示せ.
\boldsymbol{\mu}_k = \frac{1}{N_k} \sum_{n=1}^{N} t_{nk} \boldsymbol{\phi}_n \tag{5.103}
これはクラス\mathcal{C}_kに割り当てられた特徴ベクトル集合の平均を表している.同様に,共通の共分散の最尤推定量は次式で与えられることを示せ.
\mathbf{\Sigma} = \sum_{k=1}^{K} \frac{N_k}{N} \mathbf{S}_k \tag{5.104}
ただし,\mathbf{S}_kは次式で与えられる.
\mathbf{S}_k = \frac{1}{N_k} \sum_{n=1}^{N} t_{nk} (\boldsymbol{\phi}_n - \boldsymbol{\mu}_k)(\boldsymbol{\phi}_n - \boldsymbol{\mu}_k)^{\mathrm T} \tag{5.105}
このように\mathbf{\Sigma}は,各クラスごとのデータ集合の共分散の,重み係数をクラスの事前確率とする重み付き平均で与えられる.
※ 演習問題5.13でのp(\boldsymbol{\phi}_n\mid \mathcal{C}_k)に正規分布\displaystyle \mathcal{N}(\boldsymbol{\phi}_n \mid \boldsymbol{\mu}_k,\mathbf{\Sigma}) = \frac{1}{(2\pi)^{D/2}|\mathbf{\Sigma}|^{1/2}} \exp\left\{ -\frac{1}{2}(\boldsymbol{\phi}_n - \boldsymbol{\mu}_k)^{\mathrm T}\mathbf{\Sigma}^{-1}(\boldsymbol{\phi}_n - \boldsymbol{\mu}_k) \right\}を仮定した場合になる。
演習問題5.13を利用すると尤度関数は
p\left(\left\{\mathbf{t}_{n}, \boldsymbol{\phi}_{n}\right\} \mid\left\{\pi_{k}\right\}\right)=\prod_{n=1}^{N} \prod_{k=1}^{K}\left[\pi_{k} \mathcal{N}(\boldsymbol{\phi}_n \mid \boldsymbol{\mu}_k,\mathbf{\Sigma})\right]^{t_{nk}}
であり、対数尤度関数は\boldsymbol{\mu}_kと\mathbf{\Sigma}に依存する項を抜き出して
\begin{aligned}
\ln p\left(\left\{\mathbf{t}_{n}, \boldsymbol{\phi}_{n}\right\} \mid\left\{\pi_{k}\right\}\right) &=\sum_{n=1}^{N} \sum_{k=1}^{K} t_{nk}\left(
\ln \pi_k +\ln \mathcal{N}(\boldsymbol{\phi}_n \mid \boldsymbol{\mu}_k,\mathbf{\Sigma})\right) \\
&=-\frac{1}{2}\sum_{n=1}^{N} \sum_{k=1}^{K} t_{nk}\left(
\ln |\mathbf{\Sigma}| + (\boldsymbol{\phi}_n - \boldsymbol{\mu}_k)^{\mathrm T}\mathbf{\Sigma}^{-1}(\boldsymbol{\phi}_n - \boldsymbol{\mu}_k)
\right)
\end{aligned}
\boldsymbol{\mu}_kについての微分を0とすると(※ここでkは特定の値をとる)
\begin{aligned}
\frac{\partial}{\partial \boldsymbol{\mu}_{k}} \ln p
&=-\frac{1}{2} \sum_{n=1}^{N}\left\{t_{n k} \frac{\partial}{\partial \boldsymbol{\mu}_{k}}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)^{\mathrm{T}} \mathbf{\Sigma}^{-1}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)\right\} \\
&=\sum_{n=1}^{N}\left\{t_{n k} \mathbf{\Sigma}^{-1}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)\right\} \\
&=\mathbf{\Sigma}^{-1} \sum_{n=1}^{N}\left\{t_{n k}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)\right\} \\
&=\mathbf{\Sigma}^{-1}\left(\sum_{n=1}^{N} t_{n k} \boldsymbol{\phi}_{n}-\sum_{n=1}^{N} t_{n k} \boldsymbol{\mu}_{k}\right) \\
&=\mathbf{\Sigma}^{-1}\left(\sum_{n=1}^{N} t_{n k} \boldsymbol{\phi}_{n}-N_{k} \boldsymbol{\mu}_{k}\right) = 0
\end{aligned}
以上から
\boldsymbol{\mu}_{k}=\frac{1}{N_{k}} \sum_{n=1}^{N} t_{n k} \boldsymbol{\phi}_{n} \tag{5.103}
が求まる。
続いて\mathbf{S}_kをうまく使えるように対数尤度関数を変形すると、
\begin{aligned}
\ln p &=\sum_{n=1}^{N} \sum_{k=1}^{K}\left\{t_{n k} \ln \mathcal{N}\left(\boldsymbol{\phi}_{n} \mid \boldsymbol{\mu}_{k}, \mathbf{\Sigma}\right)\right\} \\
&=\sum_{n=1}^{N} \sum_{k=1}^{K}\left\{t_{n k}\left[-\frac{1}{2} \ln |\mathbf{\Sigma}|-\frac{1}{2}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)^{\mathrm{T}} \mathbf{\Sigma}^{-1}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)\right]\right\}+\mathrm{const.} \\
&=-\frac{1}{2} \sum_{n=1}^{N} \sum_{k=1}^{K} t_{n k} \ln |\mathbf{\Sigma}|-\frac{1}{2} \sum_{n=1}^{N} \sum_{k=1}^{K} t_{n k}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)^{\mathrm{T}} \mathbf{\Sigma}^{-1}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)+\mathrm{const.} \\
&=-\frac{N}{2} \ln |\mathbf{\Sigma}|-\frac{1}{2} \sum_{n=1}^{N} \sum_{k=1}^{K} t_{n k}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)^{\mathrm{T}} \mathbf{\Sigma}^{-1}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)+\mathrm{const.} \\
&=-\frac{N}{2} \ln |\mathbf{\Sigma}|-\frac{1}{2} \sum_{n=1}^{N} \sum_{k=1}^{K} t_{n k} \operatorname{Tr}\left[\mathbf{\Sigma}^{-1}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)^{\mathrm{T}}\right]+\mathrm{const.} \\
&=-\frac{N}{2} \ln |\mathbf{\Sigma}|-\frac{1}{2} \sum_{k=1}^{K}\left( N_k \sum_{n=1}^{N} \frac{1}{N_k} t_{nk} \operatorname{Tr}\left[\mathbf{\Sigma}^{-1}\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)^{\mathrm{T}}\right]\right) +\mathrm{const.} \\
&=-\frac{N}{2} \ln |\mathbf{\Sigma}|-\frac{1}{2} \sum_{k=1}^{K} N_k \left( \operatorname{Tr}\left[ \mathbf{\Sigma}^{-1} \frac{1}{N_k} \sum_{n=1}^{N} t_{nk} \left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)\left(\boldsymbol{\phi}_{n}-\boldsymbol{\mu}_{k}\right)^{\mathrm{T}}\right]\right) +\mathrm{const.} \\
&=-\frac{N}{2} \ln |\mathbf{\Sigma}|-\frac{1}{2} \sum_{k=1}^K N_k \operatorname{Tr}\left[\mathbf{\Sigma}^{-1} \mathbf{S}_k\right]+\mathrm{const.}
\end{aligned}
\mathbf{\Sigma}についての微分をとって0とする。以前の演習問題3.28と同様に変形していくと、
\begin{aligned}
\frac{\partial}{\partial \mathbf{\Sigma}}\ln p &= -\frac{N}{2}(\mathbf{\Sigma}^{-1})^{\mathrm T} - \frac{1}{2}\sum_{k=1}^K N_k \frac{\partial}{\partial \mathbf{\Sigma}}\operatorname{Tr}\left[\mathbf{\Sigma}^{-1} \mathbf{S}_k\right] \\
&= -\frac{N}{2}(\mathbf{\Sigma}^{-1})^{\mathrm T} + \frac{1}{2}\sum_{k=1}^K N_k (\mathbf{\Sigma}^{-1} \mathbf{S}_k \mathbf{\Sigma}^{-1})^{\mathrm T} = 0
\end{aligned}
転置をとって移項すると
\mathbf{\Sigma}^{-1} = \sum_{k=1}^K \frac{N_k}{N} \mathbf{\Sigma}^{-1} \mathbf{S}_k \mathbf{\Sigma}^{-1}
左と右からそれぞれ\mathbf{\Sigma}をかければ
\mathbf{\Sigma} = \sum_{k=1}^K \frac{N_k}{N}\mathbf{S}_k \tag{5.104}
を得る。
5.15 (★★)
5.3.3 節で説明した離散二値特徴量の単純ベイズ分類器のパラメータ\{\mu_{ki}\}の最尤推定量を導出せよ.
今回、尤度関数は
p(\mathbf{t}, \mathbf{X}\mid \ \pi,\mu_{1}, \mu_{2}, \sigma) = \prod_{n=1}^N\prod_{k=1}^N[\pi_{k}\prod_{i=D}\mu_{kj}^{x_{nj}}(1 - \mu_{kj})^{x_{nj}}]^{t_{nk}}
となる。
対数尤度は
\ln{p(\mathbf{t}, \mathbf{X}\mid \ \pi,\mu_{1}, \mu_{2}, \sigma)} = \sum_{n=1}^N\sum_{k=1}^Nt_{nk}[\ln(\pi_{k}) + t_{nk}{\sum_{i=D}\ln(\mu_{kj}^{x_{nj}}(1 - \mu_{kj})^{x_{nj}})}]
となるので、\mu_{kj}で微分する(変数に注意)。
\begin{align*}
\frac{\partial \ln(p)}{\partial \mu_{kj}} = \sum_{n}t_{nk}(\frac{x_{nj}}{\mu_{kj}} - \frac{1 - x_{nj}}{1 - \mu_{kj}}) &= 0\\
\sum_{n}t_{nk}(x_{nj}(1 -\mu_{kj}) - (1 - x_{nj})\mu_{kj}) &= 0\\
\sum_{n}t_{nk}(x_{nj} - \mu_{kj}) &= 0
\end{align*}
よって、
\mu_{kj} = \frac{\sum_{n}t_{nk}x_{nj}}{t_{nk}}
5.16 (★★)
M次元の特徴ベクトル\boldsymbol{\phi}の各要素がL種類の状態をとるような,Kクラスの分類問題を考える.特徴ベクトルの要素は1-of-L符号化法で表現する.さらに,クラス\mathcal{C}_kで条件付けしたとき, M個の\boldsymbol{\phi}の要素は独立であるとする.すると,クラスで条件付けした特徴ベクトルの分布は,特徴ベクトルの要素ごとの分布の積で表せる.クラスの事後確率を表すソフトマックスの引数である
a_{k} = \ln p((\mathbf{x} \mid \mathcal{C}_k)p(\mathcal{C}_k)) \tag{5.77}
で与えられるa_k が,\boldsymbol{\phi}の要素の線形関数であることを示せ.なお,これは単純ベイズモデルの例となっている〔11.2.4節〕.
1. 1-of-L 符号化による特徴ベクトルの表現
M次元の特徴ベクトル \boldsymbol{\phi}のm番目の要素が、L種類の状態のいずれかをとるとします。これを1-of-L符号化法(ワンホットエンコーディング)で表現したベクトルを \mathbf{x}_m = (x_{m1}, x_{m2}, \dots, x_{mL})^{\mathrm{T}}とする。
ここで、x_{ml} \in \{0, 1\} であり、常にただ1つの要素だけが1になり、残りは0になるため、\sum_{l=1}^L x_{ml} = 1を満たす。
全体の特徴ベクトル\mathbf{X}は、これらM個のベクトルを連結したM \times L次元の行列になる。
2. クラス条件付き確率の定式化
クラス \mathcal{C}_k が与えられたとき、m 番目の特徴量が状態 l をとる確率(パラメータ)を \mu_{kml}とする。1-of-L表現を用いると、個々の特徴ベクトル要素の分布は次のように表せる。
p(\mathbf{x}_m \mid \mathcal{C}_k) = \prod_{l=1}^L \mu_{kml}^{x_{ml}} \tag{1}
問題の仮定より、クラス \mathcal{C}_k で条件付けしたとき、M 個の特徴ベクトル要素は互いに独立である。したがって、全体の特徴ベクトル \mathbf{x} の分布は、各要素の分布の積として積の形で表すことができる。
p(\mathbf{x} \mid \mathcal{C}_k) = \prod_{m=1}^M p(\mathbf{x}_m \mid \mathcal{C}_k) = \prod_{m=1}^M \prod_{l=1}^L \mu_{kml}^{x_{ml}} \tag{2}
3. ロジット a_k の計算
与えられたソフトマックスの引数a_kの式に対数の性質を適用して展開する。
a_k = \ln \{ p(\mathbf{x} \mid \mathcal{C}_k) p(\mathcal{C}_k) \} = \ln p(\mathbf{x} \mid \mathcal{C}_k) + \ln p(\mathcal{C}_k) \tag{3}
この第1項に式(2)を代入する。
\ln p(\mathbf{x} \mid \mathcal{C}_k) = \ln \left( \prod_{m=1}^M \prod_{l=1}^L \mu_{kml}^{x_{ml}} \right) = \sum_{m=1}^M \sum_{l=1}^L \ln (\mu_{kml}^{x_{ml}}) = \sum_{m=1}^M \sum_{l=1}^L x_{ml} \ln \mu_{kml} \tag{4}
式(4)を式(3)に戻すと、a_k は次のように書き換えられる。
a_k = \sum_{m=1}^M \sum_{l=1}^L (\ln \mu_{kml}) x_{ml} + \ln p(\mathcal{C}_k) \tag{5}
4. 線形関数としての解釈
式(5)において、各項を次のように定数パラメータとして置き換える。
- 重みパラメータ: w_{kml} = \ln \mu_{kml}
- バイアスパラメータ: w_{k0} = \ln p(\mathcal{C}_k)
これを代入すると、
a_k = \sum_{m=1}^M \sum_{l=1}^L w_{kml} x_{ml} + w_{k0} \tag{6}
式(6)は、係数 w_{kml} と変数 x_{ml} の積和にバイアス項 w_{k0} を加えた形をしている。したがって、ソフトマックス関数の引数 a_k は、1-of-L符号化された特徴ベクトルの要素 x_{ml} に対する線形関数になることが示された。
5.17 (★★)
演習問題5.16の確率的単純ベイズモデルのパラメータの最尤推定量を導出せよ.
M次元の特徴ベクトル\boldsymbol{\phi}の各要素がL種類の状態をとるというものだったのでそれらの和は1になり、以下の制約条件が得られる。
\sum_{l=1}^{L} \mu_{kml} = 1
ここで\mu_{kml}は、クラス\mathcal{C}_kにおいて、特徴ベクトルのm番目の要素が状態lをとる確率を表すパラメータである。
データセットをD = \{\phi_{nml}\} n = 1, \dots, Nとおくと
各クラスC_kについて、対数尤度関数は以下の形になる。
\ln p(D \mid C_k)
= \sum_{n=1}^{N} \sum_{m=1}^{M} \sum_{l=1}^{L} \phi_{nml} \ln \mu_{kml}.
\sum_{l=1}^{L} \mu_{kml} = 1という制約の下で、最大尤度解を見つけるには、各mについてこれらの確率が1になるという制約を考慮する必要がある。このためにラグランジュの乗数法を用いる。
ラグランジュ乗数 を\lambda_m とするとラグランジュ関数は以下のようになる。
\sum_{n=1}^{N} \sum_{m=1}^{M} \sum_{l=1}^{L} \phi_{nml} \ln \mu_{kml}
+
\sum_{m=1}^{M} \lambda_m
\Bigg(
\sum_{l=1}^{L} \mu_{kml} - 1
\Bigg)
\mu_{kml}について微分して0とおくと、以下の式が得られる。
0 = \sum_{n=1}^{N} \frac{\phi_{nml}}{\mu_{kml}} + \lambda_m
この式について両辺をlについて和をとれば、以下の式が得られる。ここで\mu_{kml}がlについて和をとると1になることを利用した。
\lambda_m = - \sum_{n=1}^{N} \sum_{l=1}^{L} \phi_{nml}.
したがってこれをもとの式に代入すれば
\mu_{kml} = \frac{\sum_{n=1}^{N} \phi_{nml}}{\sum_{n=1}^{N} \sum_{l=1}^{L} \phi_{nml}}
5.18 (★)
\sigma(a) = \frac{1}{1 + \exp(-a)} \tag{5.42}
で定義されるロジスティックシグモイド関数の導関数についての関係
\frac{\mathrm{d} \sigma}{\mathrm{d} a} = \sigma(1 - \sigma) \tag{5.72}
を検証せよ.
\exp(-a)=e^{-a}である。
\begin{aligned}
\frac{ \mathrm{d} }{ \mathrm{d} a} \sigma(a) &= \frac{ \mathrm{d} }{ \mathrm{d} a} \frac{1}{1+ \exp(-a)} \\
&= - \exp(-a) \frac{-1}{\left(1+ \exp(-a)\right)^2} \\
&= \frac{1}{1+ \exp(-a)} \frac{\exp(-a)}{1+ \exp(-a)} \\
&= \frac{1}{1+ \exp(-a)} \frac{(1+\exp(-a))-1}{1+ \exp(-a)} \\
&= \frac{1}{1+ \exp(-a)} \left(1- \frac{1}{1+ \exp(-a)}\right) \\
&= \sigma(1-\sigma)
\end{aligned}
5.19 (★)
ロジスティックシグモイドの導関数についての結果
\frac{\mathrm{d} \sigma}{\mathrm{d} a} = \sigma(1 - \sigma) \tag{5.72}
を活用して,ロジスティック回帰モデル
E(\mathbf{w}) = -\ln p(\mathbf{t} \mid \mathbf{w}) = - \sum_{n=1}^{N} \{ t_n \ln y_n + (1 - t_n) \ln (1 - y_n) \} \tag{5.74}
についての誤差関数の導関数が
\nabla E(\mathbf{w}) = \sum_{n=1}^{N} (y_n - t_n) \boldsymbol{\phi}_n \tag{5.75}
で与えられることを示せ.
Eはy_nの関数、y_nはa_nの関数、a_nは\mathbf{w}の関数なので、連鎖律を利用する。
すなわち\displaystyle \nabla E(\mathbf{w}) = \sum_{n=1}^{N}\frac{\partial E}{\partial y_n}\frac{\partial y_n}{\partial a_n}\nabla a_n としてそれぞれの項を求めれば良い。
E(\mathbf{w})=-\sum_{n=1}^{N}\left\{t_{n} \ln y_{n}+\left(1-t_{n}\right) \ln \left(1-y_{n}\right)\right\} より, \partial E/\partial y_{n}ではE(\mathbf{w})の中の第n項だけが残ることに留意して
\begin{aligned}
\frac{\partial E}{\partial y_n} &=-\left( \frac{t_{n}}{y_{n}}-\frac{1-t_{n}}{1-y_{n}} \right)\\
&=-\left(\frac{t_{n}\left(1-y_{n}\right)-y_{n}\left(1-t_{n}\right)}{y_{n}\left(1-y_{n}\right)}\right) \\
&=\frac{y_{n}-t_{n}}{y_{n}\left(1-y_{n}\right)}
\end{aligned} \tag{1}
y_n=\sigma(a_n) より \frac{d\sigma}{da} = \sigma(1-\sigma)を利用して
\frac{\partial y_{n}}{\partial a_{n}}=\frac{\partial \sigma\left(a_{n}\right)}{\partial a_{n}}=\sigma\left(a_{n}\right)\left(1-\sigma\left(a_{n}\right)\right)=y_{n}\left(1-y_{n}\right) \tag{2}
a_n = \mathbf{w}^{\mathrm T}\boldsymbol{\phi}_nより
\nabla a_n = \boldsymbol{\phi}_n \tag{3}
よって(1), (2), (3)より
\nabla E(\mathbf{w}) = \frac{\partial E}{\partial y_n}\frac{\partial y_n}{\partial a_n}\nabla a_n = \sum_{n=1}^{N}(y_n - t_n)\boldsymbol{\phi}_n
となり、(5.75)式が示された。
5.20 (★)
線形分離可能なデータ集合では,ロジスティック回帰モデルの最尤推定量は,決定境界\mathbf{w}^{\mathrm T} \boldsymbol{\phi}(\mathbf{x}) = 0 がクラスを分離するようなベクトル\mathbf{w}を見つけてから,\mathbf{w}の絶対値を無限大にすれば得られることを示せ.
1. 尤度関数と誤差関数
ロジスティック回帰モデルにおいて、出力はロジスティックシグモイド関数を用いて次のように与えられる。
y_n = \sigma(\mathbf{w}^{\mathrm{T}} \boldsymbol{\phi}_n) = \frac{1}{1 + \exp(-\mathbf{w}^{\mathrm{T}} \boldsymbol{\phi}_n)} \tag{1}
ここで、\boldsymbol{\phi}_n = \boldsymbol{\phi}(\mathbf{x}_n) である。
データ集合のターゲット変数を t_n \in \{0, 1\} とすると、最尤推定は交差エントロピー誤差関数 E(\mathbf{w}) を最小化することと等価である。
E(\mathbf{w}) = - \sum_{n=1}^N \left\{ t_n \ln y_n + (1 - t_n) \ln (1 - y_n) \right\} \tag{2}
確率の性質上 0 < y_n < 1 であるため、尤度は最大で 1 であり、誤差関数は E(\mathbf{w}) \ge 0 となる。誤差関数の最小値は 0(すなわち全ての n で尤度が 1)である。
2. 線形分離可能性の定式化
データ集合が線形分離可能であるという仮定から、すべてのデータ点を正しく分類できるような決定境界が存在する。すなわち、ある重みベクトル \mathbf{w}_{sep} が存在して、すべての n = 1, \dots, N について以下の条件を満たす。
-
t_n = 1 のクラス(\mathcal{C}_1)に属するデータ点に対しては:\mathbf{w}_{sep}^{\mathrm{T}} \boldsymbol{\phi}_n > 0
-
t_n = 0 のクラス(\mathcal{C}_2)に属するデータ点に対しては:\mathbf{w}_{sep}^{\mathrm{T}} \boldsymbol{\phi}_n < 0
3. 重みベクトルのスケールを無限大にする
この分離ベクトル \mathbf{w}_{sep} を定数倍したベクトル \mathbf{w} = \alpha \mathbf{w}_{sep} (ただし \alpha > 0)を考える。このパラメータ \alpha を無限大の極限 (\alpha \to \infty) に飛ばしたとき、モデルの出力 y_n がどうなるかをクラスごとに確認する。
ケース A: t_n = 1 の場合
\mathbf{w}_{sep}^{\mathrm{T}} \boldsymbol{\phi}_n > 0 であるため、\alpha \to \infty のとき
\mathbf{w}^{\mathrm{T}} \boldsymbol{\phi}_n = \alpha (\mathbf{w}_{sep}^{\mathrm{T}} \boldsymbol{\phi}_n) \to +\infty
となる。シグモイド関数の性質により、引数が +\infty に近づくと出力は 1 に近づく。
y_n = \sigma(\alpha \mathbf{w}_{sep}^{\mathrm{T}} \boldsymbol{\phi}_n) \to 1
このとき、式(2)の誤差関数への寄与 - \ln(y_n) は - \ln(1) = 0 となる。
ケース B: t_n = 0 の場合
\mathbf{w}_{sep}^{\mathrm{T}} \boldsymbol{\phi}_n < 0 であるため、\alpha \to \infty のとき
\mathbf{w}^{\mathrm{T}} \boldsymbol{\phi}_n = \alpha (\mathbf{w}_{sep}^{\mathrm{T}} \boldsymbol{\phi}_n) \to -\infty
となる。シグモイド関数の性質により、引数が -\infty に近づくと出力は 0 に近づく。
y_n = \sigma(\alpha \mathbf{w}_{sep}^{\mathrm{T}} \boldsymbol{\phi}_n) \to 0
このとき、式(2)の誤差関数への寄与 - \ln(1 - y_n) は - \ln(1 - 0) = 0 となる。
上記の結果から、\mathbf{w} = \alpha \mathbf{w}_{sep} として \alpha \to \infty とすると、すべてのデータ点 n において誤差関数への寄与が 0 に収束する。
\lim_{\alpha \to \infty} E(\alpha \mathbf{w}_{sep}) = 0
誤差関数の下限は 0(尤度の上限が 1)であるため、この極限において誤差関数は理論上の最小値(大域的最適解)に到達する。
したがって、線形分離可能なデータ集合におけるロジスティック回帰の最尤推定量は、データを正しく分離するベクトル \mathbf{w}_{sep} の絶対値を無限大にしたものとなることが示された。
5.21 (★)
ソフトマックス関数活性化関数
p(\mathcal{C}_k \mid \bm{\phi}) = y_{k}(\bm{\phi}) = \frac{\exp(a_k)}{\sum_{j} \exp(a_j)} \tag{5.76}
の導関数は
\frac{\partial y_k}{\partial a_j} = y_k(I_{kj} - y_j) \tag{5.78}
で与えられることを示せ.ただし,a_kは
a_{k} = \mathbf{w}_{k}^{\mathrm T} \boldsymbol{\phi} \tag{5.77}
で定義する.
I_{kj}は単位行列なのでj = kの時に1、j \neq kの時に0である。
(5.76)をa_jで微分すると、ソフトマックス出力の導関数が得られる。
j = kのとき
\frac{\partial y_k}{\partial a_k}
= \frac{\partial}{\partial a_k} \frac{e^{a_k}}{\sum_i e^{a_i}}
= \frac{e^{a_k} \sum_i e^{a_i} - e^{a_k} e^{a_k}}{(\sum_i e^{a_i})^2}
= y_k (1 - y_k),
j \neq kのときは
\frac{\partial y_k}{\partial a_j}
= \frac{\partial}{\partial a_j} \frac{e^{a_k}}{\sum_i e^{a_i}}
= - \frac{e^{a_k} e^{a_j}}{(\sum_i e^{a_i})^2}
= - y_k y_j.
よってこれらを合わせれば(5.78)が得られる。
5.22 (★)
ソフトマックス関数の導関数についての結果
\frac{\partial y_k}{\partial a_j} = y_k(I_{kj} - y_j) \tag{5.78}
を用いて,交差エントロピー誤差
E(\mathbf{w}_1, \ldots , \mathbf{w}_K) = -\ln p(\mathbf{T}\mid \mathbf{w}_1, \ldots , \mathbf{w}_K)= -\sum_{n=1}^{N} \sum_{k=1}^{K} t_{nk} \ln y_{nk} \tag{5.80}
の勾配は
\nabla_{\mathbf{w}_j} E(\mathbf{w}_1, \ldots , \mathbf{w}_K) = \sum_{n=1}^{N} (y_{nj} - t_{nj}) \boldsymbol{\phi}_n \tag{5.81}
で与えられることを示せ.
※演習問題5.21を利用する。
まず前提として行列\mathbf{T}は、「クラス\mathcal{C}_kに属する特徴ベクトル\boldsymbol{\phi}_nに対する目的変数ベクトル\mathbf{t}_nが、k番目の要素で1で残りはすべて0となる1-of-K符号化法」で記述されるような行列(教科書P.208)である。
\nabla_{\mathbf{w}_j}Eについて微分のchain ruleを使う。
Eがすでにy_{nk}(=y_k(\boldsymbol{\phi}_n))の関数となっていることを用いると
\begin{aligned}
\nabla_{\mathbf{w}_{j}} E(\mathbf{w}_1,\ldots,\mathbf{w}_K)
&=\sum_{n=1}^{N} \sum_{k=1}^{K}\frac{\partial E}{\partial y_{nk}}\frac{\partial y_{nk}}{\partial a_j}\nabla_{\mathbf{w}_{j}} a_j \\
&=-\sum_{n=1}^{N} \sum_{k=1}^{K} \frac{t_{nk}}{y_{nk}}y_{nk}(I_{kj}-y_{nj})\boldsymbol{\phi}_n \\
&=-\sum_{n=1}^{N} \sum_{k=1}^{K} t_{nk}(I_{kj}-y_{nj})\boldsymbol{\phi}_n \\
&=\sum_{n=1}^{N} \left\{ y_{nj}\left( \sum_{k=1}^{K} t_{nk} \right) - \left( \sum_{k=1}^{K} t_{nk}I_{kj} \right) \right\}\boldsymbol{\phi}_n
\end{aligned}
ここで、「前提」より\sum_{k=1}^{K}t_{nk}=1となり、k=jの場合I_{kj}=1で、k\neq jでI_{kj}=0であることを用いると
\begin{aligned}
\nabla E_{\mathbf{w}_{j}}(\mathbf{w}_1,\ldots,\mathbf{w}_K)
&=\sum_{n=1}^{N} \left\{ y_{nj}\left( \sum_{k=1}^{K} t_{nk} \right) - \left( \sum_{k=1}^{K} t_{nk}I_{kj} \right) \right\}\boldsymbol{\phi}_n \\
&=\sum_{n=1}^{N} (y_{nj}-t_{nj})\boldsymbol{\phi}_n
\end{aligned}
となり、(5.81)式が与えられた。
5.23 (★)
ガウス累積密度関数
\Phi(a) = \int_{-\infty}^{a} \mathcal{N}(\theta \mid 0, 1) \mathrm{d} \theta \tag{5.86}
とerf関数
\mathrm{erf}(a) = \frac{2}{\sqrt{\pi}} \int_{0}^{a} \exp(-\theta^2) \mathrm{d} \theta \tag{5.87}
の間に
\Phi(a) = \frac{1}{2} \left( 1 + \mathrm{erf} \left( \frac{a}{\sqrt{2}} \right) \right) \tag{5.88}
の関係があることを示せ.
\begin{aligned}
\Phi(a) &= \int_{-\infty}^{a} \mathcal{N}(\theta \mid 0,1)d\theta\\
&=\int_{-\infty}^{0} \mathcal{N}(\theta \mid 0,1)d\theta + \int_{0}^{a} \frac{1}{\sqrt{2\pi}}\exp\left(-\frac{\theta^2}{2}\right)d\theta \\
&= \frac{1}{2} + \int_{0}^{a} \frac{1}{\sqrt{2\pi}}\exp\left(-\frac{\theta^2}{2}\right)d\theta \quad \left(\because\quad \int_{-\infty}^{\infty} \mathcal{N}(\theta \mid 0,1)d\theta = 1 \right)
\end{aligned}
ここで\displaystyle \frac{\theta}{\sqrt{2}} = xとおくと
\begin{aligned}
\Phi(a) &= \frac{1}{2}+\frac{1}{\sqrt{\pi}}\int_{0}^{\frac{a}{\sqrt{2}}} \exp(-x^2)dx \\
&= \frac{1}{2}\left\{1+\mathrm{erf}\left(\frac{a}{\sqrt{2}}\right)\right\}
\end{aligned}
となり、(5.88)式が示された。
5.24 (★★)
\sigma(a) = \frac{1}{1 + \exp(-a)} \tag{5.42}
で定義されるロジスティックシグモイド関数\sigma(a)を,尺度変換したガウス累積密度関数\Phi(\lambda a)で近似することを考える.ただし,\Phi(a)は
\Phi(a) = \int_{-\infty}^{a} \mathcal{N}(\theta \mid 0, 1) \mathrm{d} \theta \tag{5.86}
で定義する.もし,a=0での二つの関数の導関数の値が等しくなるように\lambdaを選ぶなら,\lambda^2 = \pi / 8となることを示せ.
二つの関数 \sigma(a) と \Phi(\lambda a) のそれぞれについて、a で微分し、a=0 における微分係数を求める。
1. ロジスティックシグモイド関数 \sigma(a) の a=0 での微分
ロジスティックシグモイド関数の定義:
\sigma(a) = \frac{1}{1 + \exp(-a)}
この関数の微分は、
\begin{aligned}
\frac{\mathrm{d}}{\mathrm{d}a} \sigma(a) &= - (1 + \exp(-a))^{-2} \cdot (-\exp(-a)) \\
&= \frac{\exp(-a)}{(1 + \exp(-a))^2} \\
&= \frac{1}{1 + \exp(-a)} \cdot \frac{\exp(-a)}{1 + \exp(-a)} \\
&= \sigma(a)(1 - \sigma(a))
\end{aligned}
ここで、a=0 を代入する。\sigma(0) = \frac{1}{1 + e^0} = \frac{1}{2} であるため、
\left. \frac{\mathrm{d}}{\mathrm{d}a} \sigma(a) \right|_{a=0} = \frac{1}{2} \left(1 - \frac{1}{2}\right) = \frac{1}{4} \tag{1}
となる。
2. 尺度変換したガウス累積密度関数 \Phi(\lambda a) の a=0 での微分
ガウス累積密度関数 \Phi(a) は標準正規分布の積分
\Phi(a) = \int_{-\infty}^{a} \mathcal{N}(\theta \mid 0, 1) \mathrm{d} \theta
微積分学の基本定理より、\Phi(a) をaで微分すると、被積分関数である標準正規分布の確率密度関数になります。
\frac{\mathrm{d}}{\mathrm{d}a} \Phi(a) = \mathcal{N}(a \mid 0, 1) = \frac{1}{\sqrt{2\pi}} \exp\left(-\frac{a^2}{2}\right)
今考えているのは \Phi(\lambda a) ですので、合成関数のchain ruleから
\frac{\mathrm{d}}{\mathrm{d}a} \Phi(\lambda a) = \lambda \cdot \mathcal{N}(\lambda a \mid 0, 1) = \lambda \frac{1}{\sqrt{2\pi}} \exp\left(-\frac{(\lambda a)^2}{2}\right)
ここで、a=0 を代入する。
\left. \frac{\mathrm{d}}{\mathrm{d}a} \Phi(\lambda a) \right|_{a=0} = \lambda \frac{1}{\sqrt{2\pi}} \cdot 1 = \frac{\lambda}{\sqrt{2\pi}} \tag{2}
3. 二つの微分係数を等置して \lambda^2 を求める
問題の条件より、a=0 における導関数の値が等しくなるように \lambda を選ぶ。
\frac{1}{4} = \frac{\lambda}{\sqrt{2\pi}}
この式を\lambdaについて解く。
\lambda = \frac{\sqrt{2\pi}}{4}
両辺を2乗して
\lambda^2 = \left( \frac{\sqrt{2\pi}}{4} \right)^2 = \frac{2\pi}{16} = \frac{\pi}{8}
以上より、a=0 で二つの関数の導関数が一致するようにスケーリング係数を選んだ場合、\lambda^2 = \pi / 8 となることが示された。
Discussion