ららにく@utool.cc

機械学習に関する怪しいメモやらあれこれその他メモやら

Discriminative Restricted Boltzmann Machines(RBM選択モデル)のメモ

細かい説明は省略。モデルの定義と導出のみ。
制限ボルツマンマシン(RBM)の基本的な話は深層学習本(MLP本, 人工知能学会本)などを参照のこと。
あと二値は\{0, 1\}でなく\pm1を使ってる。
シグモイド関数より\tanhのほうがなんかかっこいい。


MNISTだと認識率95%前後らしい
ソースコード
github.com


悲しいお知らせ
】悲報】】隠れ変数は\pm 2より\{0, 1\}のほうが性能が良いというまさかの可能性ががが。。。
DRBM Revision.(Hidden∈{0, 1}) - ららにく@utool.cc

RBM選択モデル(DRBM)

制限ボルツマンマシン(RBM)の構造を変えたら分類器として扱うこともできる。
f:id:utool:20170610042706p:plain
マルコフ確率場と条件付き確率場の違いが判らなくなってきた…
ボルツマンマシンはマルコフ確率場だけれども…

確率分布

\displaystyle{ P\left( \boldsymbol{y},  \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) = \frac{1} {Z(\boldsymbol{\theta})} \exp\left( -E(\boldsymbol{\theta}) \right)  }

エネルギー関数

\displaystyle{ E(\boldsymbol{\theta}) = -\sum_{i \in X}  \sum_{j \in H} W_{ij} x_i h_j - \sum_{j \in H} c_j h_j - \sum_{j \in H} \sum_{k \in Y}V_{jk}h_j y_k -\sum_{k \in Y} d_k y_k }

ポテンシャル関数

※ついでに掲載
\begin{align}
\Phi\left(\boldsymbol{\theta}\right) & =\exp\left(-E\left(\boldsymbol{\theta}\right)\right) \\
 &= \exp \left(\sum_{i \in X}  \sum_{j \in H} W_{ij} x_i h_j + \sum_{j \in H} c_j h_j + \sum_{j \in H} \sum_{k \in Y}V_{jk}h_j y_k +\sum_{k \in Y} d_k y_k \right)
\end{align}

変数の定義

 \boldsymbol{x}は実数値
\displaystyle{\left( \boldsymbol{x} = \{ x_i \in \left(-\infty, +\infty \right) \mid i \in X \} \right) }
 \boldsymbol{h}は二値
\displaystyle{\left( \boldsymbol{h} = \{ h_i \in \{-1, +1\} \mid j \in H \} \right) }
 \boldsymbol{y}は1-of-K表現
\displaystyle{\left( \boldsymbol{y} \in \left \{ \begin{pmatrix} 1\\0\\\vdots\\0 \end{pmatrix},  \begin{pmatrix} 0\\1\\\vdots\\0 \end{pmatrix}, \cdots,  \begin{pmatrix} 0\\0\\\vdots\\1 \end{pmatrix} \right \} \right) }


規格化定数

\begin{align}
Z\left(\boldsymbol{\theta}\right) &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} \exp\left(-E\left(\boldsymbol{\theta}\right)\right) \\
 &= \sum_{\boldsymbol{y}}\exp\left( \sum_{k \in Y} d_k y_k\right) \prod_{j \in H} 2\cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + \sum_{k \in Y}V_{jk} y_k \right) \\
 &= \sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} 2\cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right) \\
 &= 2^{|H|}\sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)
\end{align}

※自由エネルギー
\begin{align}
F\left(\boldsymbol{\theta}\right) &= -\ln Z\left(\boldsymbol{\theta}\right) \\
 &= -|H|\ln2 - \ln\left( \sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right) \right)
\end{align}

周辺確率

\begin{align}
P\left(\boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) &= \sum_{\boldsymbol{y}} P\left( \boldsymbol{y}, \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) \\
 &= \frac{1}{Z\left(\boldsymbol{\theta} \right)} \sum_{k \in Y} \exp \left(\sum_{i \in X}  \sum_{j \in H} W_{ij} x_i h_j + \sum_{j \in H} c_j h_j + \sum_{j \in H} V_{jk}h_j + d_k \right)
\end{align}

\begin{align}
P\left(h_j \mid \boldsymbol{x}, \boldsymbol{\theta} \right) &= \sum_{\boldsymbol{h} \backslash h_j} \sum_{\boldsymbol{y}} P\left( \boldsymbol{y}, \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) \\
 &= \frac{1}{Z\left(\boldsymbol{\theta} \right)} \sum_{k \in Y} \exp \left( \sum_{i \in X} W_{ij} x_i h_j  +  c_j h_j + V_{jk} h_j \right) \prod_{l \in H, l \neq j} 2\cosh \left(\sum_{i \in X} W_{il} x_i  +  c_l + V_{lk}\right) \exp \left( d_k \right) \\
 &= \frac{\displaystyle \sum_{k \in Y} \exp \left( \sum_{i \in X} W_{ij} x_i h_j  +  c_j h_j + V_{jk} h_j \right) \prod_{l \in H, l \neq j} \cosh \left(\sum_{i \in X} W_{il} x_i  +  c_l + V_{lk}\right) \exp \left( d_k \right)} {\displaystyle  2\sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)}
\end{align}


\begin{align}
P\left(\boldsymbol{y} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) &= \sum_{\boldsymbol{h}} P\left( \boldsymbol{y}, \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) \\
 &= \frac{1}{Z\left(\boldsymbol{\theta} \right)} \exp\left( \sum_{k \in Y} d_k y_k\right) \prod_{j \in H} 2\cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + \sum_{k \in Y}V_{jk} y_k \right) \\
 &= \frac{\displaystyle \exp\left( \sum_{k \in Y} d_k y_k\right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + \sum_{k \in Y}V_{jk} y_k \right)} {\displaystyle \sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)}
\end{align}

\begin{align}
P\left(y_k = 1 \mid \boldsymbol{x}, \boldsymbol{\theta} \right) &= \frac{1}{Z\left(\boldsymbol{\theta} \right)} \exp\left( d_k \right) \prod_{j \in H} 2\cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right) \\
 &= \frac{\displaystyle \exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)} {\displaystyle \sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)}
\end{align}

\begin{align}
P\left(h_j, y_k = 1 \mid \boldsymbol{x}, \boldsymbol{\theta} \right) &= \sum_{\boldsymbol{h} \backslash h_j} P\left( y_k = 1, \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) \\
 &= \frac{1}{Z\left(\boldsymbol{\theta} \right)} \exp \left( \sum_{i \in X} W_{ij} x_i h_j  +  c_j h_j + V_{jk} h_j \right) \prod_{l \in H, l \neq j} 2\cosh \left(\sum_{i \in X} W_{il} x_i  +  c_l + V_{lk}\right) \exp \left( d_k \right) \\
 &= \frac{\displaystyle \exp \left( \sum_{i \in X} W_{ij} x_i h_j  +  c_j h_j + V_{jk} h_j \right) \prod_{l \in H, l \neq j} \cosh \left(\sum_{i \in X} W_{il} x_i  +  c_l + V_{lk}\right) \exp \left( d_k \right)} {\displaystyle  2\sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)}
\end{align}

学習

出力\boldsymbol{y}のは1-of-K表現なので組合せ爆発を起こさないうえ、出力クラス数がそんなに多くないことを想定しているので期待値の厳密計算可能。
Contrastive Divergence法や平均場近似は不要かな?

対数尤度関数

 \begin{align}l\left(\boldsymbol{\theta} \right) = \frac{1}{N} \sum_{n=1}^N \ln P\left(\boldsymbol{y} = \boldsymbol{\mathfrak{l}}^{(n)} \mid \boldsymbol{x} = \boldsymbol{\mathfrak{d}}^{(n)}, \boldsymbol{\theta} \right) \end{align}

データ集合
\left( \boldsymbol{\mathfrak{D}} = \left\{ \boldsymbol{\mathfrak{d}}^{(1)}, \boldsymbol{\mathfrak{d}}^{(2)}, \cdots , \boldsymbol{\mathfrak{d}}^{(n)} \right\} \right)
\left( \boldsymbol{\mathfrak{d}}^{(n)} = \{ \mathfrak{d}^{(n)}_i \in \left(-\infty, +\infty \right) \mid i \in X \} \right)
ラベル集合
\boldsymbol{\mathfrak{L}} = \left\{ \boldsymbol{\mathfrak{l}}^{(1)}, \boldsymbol{\mathfrak{l}}^{(2)}, \cdots , \boldsymbol{\mathfrak{l}}^{(n)} \right\}
\displaystyle{\left( \boldsymbol{\mathfrak{l}}^{(n)} \in \left \{ \begin{pmatrix} 1\\0\\\vdots\\0 \end{pmatrix},  \begin{pmatrix} 0\\1\\\vdots\\0 \end{pmatrix}, \cdots,  \begin{pmatrix} 0\\0\\\vdots\\1 \end{pmatrix} \right \} \right) }


勾配(計算あってるか微妙)

※間違ってる可能性大
 \begin{align}
\frac{\partial l\left(\boldsymbol{\theta} \right) }{\partial W_{ij}} &= \frac{1}{N} \sum_{n=1}^N \mathfrak{d}_i^{(n)} \tanh\left( \sum_{i \in X} W_{ij} \mathfrak{d}_i^{(n)} + c_j + \sum_{k \in Y}V_{jk} \mathfrak{l}_k^{(n)} \right)  &-& \frac{1}{N} \sum_{n=1}^N \sum_{h_j \in \pm 1} \mathfrak{d}_i^{(n)} h_j P\left(h_j \mid \boldsymbol{x} = \boldsymbol{\mathfrak{d}}^{(n)} , \boldsymbol{\theta}\right) \\

\frac{\partial l\left(\boldsymbol{\theta} \right) }{\partial c_{j}}  &= \frac{1}{N} \sum_{n=1}^N \tanh\left( \sum_{i \in X} W_{ij} \mathfrak{d}_i^{(n)} + c_j + \sum_{k \in Y}V_{jk} \mathfrak{l}_k^{(n)} \right) &-& \frac{1}{N} \sum_{n=1}^N  \sum_{h_j \in \pm 1}  h_j P\left(h_j \mid \boldsymbol{x} = \boldsymbol{\mathfrak{d}}^{(n)} , \boldsymbol{\theta}\right) \\

\frac{\partial l\left(\boldsymbol{\theta} \right) }{\partial V_{jk}} &= \frac{1}{N} \sum_{n=1}^N \mathfrak{l}_k \tanh\left( \sum_{i \in X} W_{ij} \mathfrak{d}_i^{(n)} + c_j + \sum_{k \in Y}V_{jk} \mathfrak{l}_k^{(n)} \right) &-& \frac{1}{N} \sum_{n=1}^N  
\sum_{h_j \in \pm 1} h_j P\left(h_j, y_k = 1 \mid \boldsymbol{x} = \boldsymbol{\mathfrak{d}}^{(n)} , \boldsymbol{\theta}\right)  \\

\frac{\partial l\left(\boldsymbol{\theta} \right) }{\partial d_{k}} &= \frac{1}{N} \sum_{n=1}^N \mathfrak{l}_k^{(n)}  &-& \frac{1}{N} \sum_{n=1}^N P\left(y_k = 1 \mid \boldsymbol{x} = \boldsymbol{\mathfrak{d}}^{(n)}, \boldsymbol{\theta}\right) 
\end{align}

±1の隠れ変数を使う欠点

 \pm 1な隠れ変数を使う場合、規格化定数の計算がオーバーフローする可能性あり。
\displaystyle \prod_{j \in H} 2\coshの計算がやばい\displaystyle 2^Hってことは隠れ変数が大量にあると…
隠れ変数が1024個あったら分配関数がdoubleの範囲に収まりきらなくなる…
(ましてやfloat使ったら127個で分配関数の計算が破たんする…)

周辺確率とか期待値を計算するときは工夫するしかなさそう。
あとパラメータが極端に大きくなって\displaystyle 2\coshの引数がでかくなった場合とかもオーバーフローする可能性が…
これはどうしようもなさそう。

もしくは\displaystyle \{0, 1\}の二値を使うか。
(結局は\displaystyle \prod_{j \in H} (1 + \exp)の計算だから同じな可能性もあるけど…)
やれやれ┓┣┏┃┏

特別付録

自由エネルギーの勾配(計算あってるか微妙)

規格化定数(分配関数)に負対数を取ったものを自由エネルギーというらしい。
自由エネルギーは自由エネルギーでもヘルムホルツ自由エネルギーとかギブス自由エネルギーとかランダウ自由エネルギーとかベーテ自由エネルギーとかベイズ自由エネルギーとか菊池自由エネルギーとか変分自由エネルギーとかいろいろあるらしい。
闇が深すぎる…

とりあえず今回の自由エネルギーの定義。
F=-\ln Z

その勾配
 \begin{align}
 -\frac{\partial F }{\partial W_{ij}} &= \frac{1}{Z} \frac{\partial Z} {\partial W_{ij}} \\
 &= \frac{1}{Z} \frac{\partial}{\partial W_{ij}}\sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} x_i h_j \frac{1}{Z} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} x_i  h_j P\left( \boldsymbol{y},  \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) \\
% &= \left\langle x_i h_j  \right\rangle _{\mathrm{DRBM}} \\


 -\frac{\partial F }{\partial c_{j}} &= \frac{1}{Z} \frac{\partial Z} {\partial c_{j}} \\
 &= \frac{1}{Z} \frac{\partial}{\partial c_{j}}\sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} h_j \frac{1}{Z} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}}  h_j P\left( \boldsymbol{y},  \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) \\
% &= \left\langle h_j  \right\rangle _{\mathrm{DRBM}} \\


 -\frac{\partial F }{\partial V_{jk}} &= \frac{1}{Z} \frac{\partial Z} {\partial V_{jk}} \\
 &= \frac{1}{Z} \frac{\partial}{\partial V_{jk}}\sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} h_j y_k \frac{1}{Z} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}}  h_j y_k P\left( \boldsymbol{y},  \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) \\
% &= \left\langle h_j y_k  \right\rangle _{\mathrm{DRBM}} \\


 -\frac{\partial F }{\partial d_{k}} &= \frac{1}{Z} \frac{\partial Z} {\partial d_{k}} \\
 &= \frac{1}{Z} \frac{\partial}{\partial d_{k}}\sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} y_k \frac{1}{Z} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}}  y_k P\left( \boldsymbol{y},  \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) \\
% &= \left\langle y_k  \right\rangle _{\mathrm{DRBM}} 
\end{align}

DRBMの期待値の具体的な計算(めっちゃ導出に自信ない)

※間違ってる可能性大
 \begin{align}
\sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} x_i h_j P\left( \boldsymbol{y},  \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) &= \sum_{\boldsymbol{y}} x_i h_j \sum_{\boldsymbol{h}} \frac{1}{Z} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= x_i \frac{1}{Z} \sum_{k \in Y} \prod_{l \in H, l \neq j} 2\cosh\left(\sum_{i \in X} W_{il} x_i + c_j + V_{lk} \right)  \sum_{h_j \in \pm 1}h_j \exp\left(\sum_{i \in X} W_{ij} x_i h_j + c_j h_j + V_{jk} h_j \right) \exp\left(d_k \right) \\
 &= x_i\frac{1}{Z} \sum_{k \in Y} \prod_{l \in H, l \neq j} 2\cosh\left(\sum_{i \in X} W_{il} x_i + c_j + V_{lk} \right)  2\sinh\left(\sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right) \exp\left(d_k \right)  \\
 &= x_i \frac{\displaystyle \sum_{k \in Y} \prod_{l \in H, l \neq j} \cosh\left(\sum_{i \in X} W_{il} x_i + c_j + V_{lk} \right)  \sinh\left(\sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right) \exp\left(d_k \right)} {\displaystyle \sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)}
\end{align}


 \begin{align}
\sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}}  h_j P\left( \boldsymbol{y},  \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right)  &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} \frac{1}{Z} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \frac{1}{Z} \sum_{k \in Y} \prod_{l \in H, l \neq j} 2\cosh\left(\sum_{i \in X} W_{il} x_i + c_j + V_{lk} \right)  \sum_{h_j \in \pm 1}h_j \exp\left(\sum_{i \in X} W_{ij} x_i h_j + c_j h_j + V_{jk} h_j \right) \exp\left(d_k \right) \\
 &= \frac{1}{Z} \sum_{k \in Y} \prod_{l \in H, l \neq j} 2\cosh\left(\sum_{i \in X} W_{il} x_i + c_j + V_{lk} \right)  2\sinh\left(\sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right) \exp\left(d_k \right) \\
 &=\frac{\displaystyle \sum_{k \in Y} \prod_{l \in H, l \neq j} \cosh\left(\sum_{i \in X} W_{il} x_i + c_j + V_{lk} \right)  \sinh\left(\sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right) \exp\left(d_k \right)} {\displaystyle \sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)}
\end{align}



 \begin{align}
\sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}}  h_j y_k P\left( \boldsymbol{y},  \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right) &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} h_j y_k \frac{1}{Z} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \sum_{h_j}\sum_{\boldsymbol{y}}h_j y_k \frac{1}{Z} \prod_{l \in H, l \neq j} 2\cosh\left( \sum_{i \in X}W_{il}x_i + c_l + \sum_{k \in Y}V_{lk} \right)\exp\left( \sum_{k \in Y} d_k y_k\right) \exp\left( \sum_{i \in X}W_{ij} + c_j h_j + \sum_{k \in Y}V_{jk} h_j y_k  \right) \\
 &= \frac{1}{Z}\prod_{l \in H, l \neq j} 2\cosh\left( \sum_{i \in X}W_{il}x_i + c_l + V_{lk} \right)\exp\left( d_k \right) \sum_{h_j}h_j \exp\left( \sum_{i \in X}W_{ij} + c_j h_j + V_{jk} h_j \right) \\
 &= \frac{1}{Z}\prod_{l \in H, l \neq j} 2\cosh\left( \sum_{i \in X}W_{il}x_i + c_l + V_{lk} \right) 2\sinh\left( \sum_{i \in X}W_{ij}x_i + c_j + V_{jk} \right) \exp\left( d_k \right) \\
 &=\frac{\displaystyle \prod_{l \in H, l \neq j} \cosh\left( \sum_{i \in X}W_{il}x_i + c_l + V_{lk} \right) \sinh\left( \sum_{i \in X}W_{ij}x_i + c_j + V_{jk} \right) \exp\left( d_k \right)} {\displaystyle \sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)}
\end{align}


 \begin{align}
\sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}}  y_k P\left( \boldsymbol{y},  \boldsymbol{h} \mid \boldsymbol{x}, \boldsymbol{\theta} \right)  &= \sum_{\boldsymbol{y}}\sum_{\boldsymbol{h}} y_k \frac{1}{Z} \exp\left( -E\left(\boldsymbol{\theta} \right) \right) \\
 &= \frac{1}{Z} \sum_{\boldsymbol{y}} y_k \prod_{j \in H} 2\cosh\left( \sum_{i \in X}W_ij x_i + c_j + \sum_{k \in Y}V_{jk}y_k \right)\exp\left(\sum_{k \in Y} d_k y_k\right) \\
 &= \frac{1}{Z} \prod_{j \in H} 2\cosh\left( \sum_{i \in X}W_{ij} x_i + c_j + V_{jk} \right)\exp\left(d_k \right) \\
 &=\frac{\displaystyle \prod_{j \in H} \cosh\left( \sum_{i \in X}W_{ij} x_i + c_j + V_{jk} \right)\exp\left(d_k \right)} {\displaystyle \sum_{k \in Y}\exp\left( d_k \right) \prod_{j \in H} \cosh \left( \sum_{i \in X} W_{ij} x_i + c_j + V_{jk} \right)}
\end{align}


参考

Classification using Discriminative Restricted Boltzmann Machines
http://www.dmi.usherb.ca/~larocheh/publications/icml-2008-discriminative-rbm.pdf
人の選択行動を学習する制限ボルツマンマシン
http://www.orsj.or.jp/archive2/or60-4/or60_4_221.pdf
Restricted Boltzmann machines modeling human choice
https://papers.nips.cc/paper/5280-restricted-boltzmann-machines-modeling-human-choice
Generalising the Discriminative Restricted Boltzmann Machine
https://arxiv.org/abs/1604.01806