めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

PRML 4.3.6 Canonical link functionの説明(簡易版)

PRML 4.3.6 Canonical link functionの説明」は数式がごちゃごちゃして本質が見えにくいので、数式をシンプルにしたバージョンを計算しておきます。(やっている中身は同じです。)

まず、先の記事では、GLMを次のように定義しました。

――――――――
一般に、目的変数 t の確率分布がパラメータ {\mathbf w} と特徴変数 {\boldsymbol \phi} の関数 p(t \mid {\mathbf w},{\boldsymbol \phi}) として決まるモデルを考えます。その中でも特に、ある1変数関数 \xi(a) を用いて、

 p(t \mid {\mathbf w},{\boldsymbol \phi}) = \frac{1}{s}h\left(\frac{t}{s}\right) g(\eta)\exp\left(\frac{\eta t}{s}\right)

ここに、\eta = \xi({\mathbf w}^{\rm T}{\boldsymbol \phi})

と書けるモデルのことを GLM (Generalized Linear Model)と呼びます。
――――――――

ここで、s は、変数 t の定義を定数倍する自由度を示しているだけなので、簡単に s=1 とします。また、\frac{1}{s}h\left(\frac{t}{s}\right) は変数 t で積分するときの測度 d\mu(t) = \frac{1}{s}h\left(\frac{t}{s}\right)dt とみなせるので、積分する際は測度 d\mu(t) を使う約束の元に確率分布の定義からは落としてしまいます。ついでに g(\eta) の定義を少し変えると、先の表式は、ここまで簡単になります。(\eta{\mathbf w}^{\rm T}{\boldsymbol \phi} を結ぶ関数 \xi は使わずに、暗黙に \eta{\mathbf w}^{\rm T}{\boldsymbol \phi} の関数と理解することにします。)

 p(t \mid {\mathbf w},{\boldsymbol \phi}) = \frac{1}{Z}e^{\eta t},  Z:=e^{-g(\eta)} ―― (1)

 \eta = \eta({\mathbf w}^{\rm T}{\boldsymbol \phi}) ―― (2)

ここで、 1 = \int e^{\eta t+g(\eta)}\,d\mu(t) の両辺を \eta で微分すると、

  0 = \int t e^{\eta t+g(\eta)}\,d\mu(t) + \int g'(\eta) e^{\eta t+g(\eta)}\,d\mu(t) = E[t] + g'(\eta)

したがって、

 y := E[t] = -g'(\eta) =: \psi^{-1}(\eta) ―― (3)

(2)を考慮すると、y は、{\mathbf w}^{\rm T}{\boldsymbol \phi} の関数となります。つまり、次の関係が成り立ちます。

 y = f({\mathbf w}^{\rm T}{\boldsymbol \phi})

 f := \psi^{-1} \circ \eta ―― (4)

さらに、(1)(2)で定義されるGLMにおいて、トレーニングセット \left\{({\boldsymbol \phi}_n, t_n)\right\}_{n=1}^N が与えられた時の尤度関数は、次になります。

 p({\mathbf t} \mid {\mathbf w}) = \prod_{n=1}^N p(t_n \mid {\mathbf w},{\boldsymbol \phi}_n) = \prod_{n=1}^N e^{\eta_n t_n+g(\eta_n)}

 \eta_n := \eta({\mathbf w}^{\rm T}{\boldsymbol \phi}_n)

従って、誤差関数 E ({\mathbf t} \mid {\mathbf w}) = -\ln p({\mathbf t} \mid {\mathbf w}) の勾配は次のように計算されます。

 \nabla_{\mathbf w}E({\mathbf t} \mid {\mathbf w}) = -\nabla_{\mathbf w}\ln p({\mathbf t} \mid {\mathbf w}) = -\sum_{n=1}^N\nabla_{\mathbf w} \left\{\eta_n t_n + g(\eta_n)\right\}

    = -\sum_{n=1}^N(\nabla_{\mathbf w}\eta_n)\frac{d}{d\eta_n}\left\{\eta_n t_n + g(\eta_n)\right\}

    = -\sum_{n=1}^N(\nabla_{\mathbf w}\eta_n)\left(t_n-y_n\right) (∵(3))

ここで、\eta が恒等関数になる場合、つまり、(4)より、 f({\mathbf w}^{\rm T}{\boldsymbol \phi}) = \psi^{-1}({\mathbf w}^{\rm T}{\boldsymbol \phi}) となる場合を考えると、\nabla_{\mathbf w}\eta_n = {\boldsymbol \phi}_n より、次が成立します。

 \nabla_{\mathbf w}E({\mathbf t} \mid {\mathbf w}) = \sum_{n=1}^N\left(y_n-t_n\right){\boldsymbol \phi}_n

2項分類のGLM

t \in \{0,1\} に対するベルヌーイ分布 p = y^t(1-y)^{1-t} を取って、t の期待値 y がある 1変数関数(Activation) f で次のように表されると仮定します。

 y = f({\mathbf w}^{\rm T}{\boldsymbol \phi})

これは、2項分類のGLMを与えます。なぜなら、次の関係が成り立つからです。

 p = f^t(1-f)^{1-t} = \exp\left\{t\ln f + (1-t)\ln(1-f)\right\}

     = \exp\left[t\left\{\ln f - \ln (1-f)\right\}+\ln(1-f)\right]

     = e^{\eta t + g(\eta)}

ここに、

 \eta := \ln f - \ln (1-f)=\ln\frac{f}{1-f}\,\,\Leftrightarrow\,\,f=\frac{1}{1+e^{-\eta}}

 g(\eta) := \ln(1-f) = -\ln(1+e^\eta)

またこの場合は、(3)より、

 \psi^{-1}(\eta) = -g'(\eta) = \frac{1}{1+e^{-\eta}}

従って、確かに、

  f = \psi^{-1}\circ\eta

という関係が成立することが分かります。(f{\mathbf w}^{\rm T}{\boldsymbol \phi} の関数であることに注意。)

ここで特に、\eta として恒等関数を選択すると、f はロジスティクス関数に一致します。

  f({\mathbf w}^{\rm T}{\boldsymbol \phi}) = \frac{1}{1+\exp\left\{-{\mathbf w}^{\rm T}{\boldsymbol \phi}\right\}}