めもめも

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

PRML 4.3.6 Canonical link functionの説明

基本的にはテキストと同じことを言い直してるだけですが、テキストはGLMの定義などが曖昧なので、そのあたりを正確に書きます。

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) ―― (1)

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

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

※ 定数 s は、変数 t の定義を定数倍だけ変更する自由度を示しているだけで本質的なものではありません。

この時、t の期待値 y について、次の関係が成り立ちます。

 y = -s\frac{d}{d\eta}\ln g(\eta)|_{\eta = \xi({\mathbf w}^{\rm T}{\boldsymbol \phi})} =: \psi^{-1}(\eta)|_{\eta = \xi({\mathbf w}^{\rm T}{\boldsymbol \phi})} ―― (3)

(これは、 1 = \int p(t) dt、もしくは、 1 = \sum_t p(t) に (1) を代入したものを \eta で微分すると得られます。)

つまり、y{\mathbf w}^{\rm T}{\boldsymbol \phi} のみを通して {\mathbf w}, {\boldsymbol \phi} に依存するので、

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

と書けることになります。

※ (4)のように書けることをGLMの定義と説明する場合もありますが、厳密には、GLMの定義は(1)(2)で与えられるもので、(4)はその結果に過ぎません。

この時、(3)(4)より、

 \psi^{-1}\circ \xi({\mathbf w}^{\rm T}{\boldsymbol \phi}) = f({\mathbf w}^{\rm T}{\boldsymbol \phi})

つまり、

 \xi = \psi \circ f ―― (5)

の関係が成り立ちます。言い換えると、\xi の任意性は、f の任意性と等価になります。また、(3)で定義される関数 \psi をCanonical link functionと呼びます(理由は後述)。

2項分類のGLM

上記の議論では、確率分布 p(t \mid {\mathbf w},{\boldsymbol \phi}) を与える、具体的なモデルの中身は考えていませんでした。たとえば、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]

   = (1-f) \exp \left[t\left\{\ln f - \ln(1-f)\right\}\right] = g(\eta)\exp(t\eta)|_{\eta=\xi({\mathbf w}^{\rm T}{\boldsymbol \phi})}

ここに、

 \xi({\mathbf w}^{\rm T}{\boldsymbol \phi}) := \ln f({\mathbf w}^{\rm T}{\boldsymbol \phi}) - \ln\{1-f({\mathbf w}^{\rm T}{\boldsymbol \phi})\} (\Leftrightarrow\,\,f=\frac{1}{1+e^{-\xi}}

 g(\eta) := \frac{1}{1+e^\eta} (\Leftrightarrow\,\,g(\xi({\mathbf w}^{\rm T}{\boldsymbol \phi})) = 1-f({\mathbf w}^{\rm T}{\boldsymbol \phi})

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

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

従って、確かに、

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

という関係が成り立ちます。特に \xi として恒等関数を選択すると、f\psi^{-1} が一致して、f はロジスティクス関数になります。

一般に、Activation f の逆関数を Link function と呼ぶので、「Link function が Canonical link function に一致している」と言い換えることができます。

GLMにおける誤差関数

(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 \frac{1}{s}h\left(\frac{t_n}{s}\right) g(\eta_n)\exp\left(\frac{\eta_n t_n}{s}\right)|_{\eta_n = \xi({\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})

   = -\nabla_{\mathbf w} \sum_{n=1}^N\left\{\ln g(\eta_n)+\frac{\eta_n t_n}{s}\right\}|_{\eta_n=\xi({\mathbf w}^{\rm T}{\boldsymbol \phi_n})}

   = -\sum_{n=1}^N \left\{\nabla_{\mathbf w} \xi({\mathbf w}^{\rm T}{{\boldsymbol \phi}_n})\right\} \frac{d}{d\eta_n}\left\{\ln g(\eta_n)+\frac{\eta_n t_n}{s}\right\}

   = -\sum_{n=1}^N \left\{\nabla_{\mathbf w} \xi({\mathbf w}^{\rm T}{{\boldsymbol \phi}_n})\right\} \left(-\frac{y_n}{s}+\frac{t_n}{s}\right) (∵ (3))

   = \frac{1}{s} \sum_{n=1}^N \left\{\nabla_{\mathbf w} \xi({\mathbf w}^{\rm T}{{\boldsymbol \phi}_n})\right\}\left(y_n-t_n\right) ―― (6)

ここで、特に(5)において、\xi が恒等関数となるような f、つまり、

 f = \psi^{-1} ―― (7)

を選択したとすると、

 \nabla_{\mathbf w} \xi({\mathbf w}^{\rm T}{{\boldsymbol \phi}_n}) = \nabla_{\mathbf w} ({\mathbf w}^{\rm T}{{\boldsymbol \phi}_n}) = {\boldsymbol \phi}_n

これを(6)に代入して、次の結果が成り立ちます。

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

先に触れたように、GLMにおいて、y=f({\mathbf w}^{\rm T}{\boldsymbol \phi}) を与える f(Activation)の逆関数を Link function と呼びます。(7)は、Link functionとして、(3)で定義される \psi を採用していることになります。これが、(3)の \psi を Canonical link function と呼ぶ理由になります。