0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ボルツマンマシン

Posted at

今回は簡単なボルツマンマシンについて自分用にまとめます。

Boltzmann machine

ボルツマンマシンは生成モデルの一種として使われています。例えば今、学習データが${\bf{X}}_1, {\bf{X}}_2, ..., {\bf{X}}_n$で与えられ、それぞれのデータは-1か+1という2値の値を持つベクトルであるとします。

この時、データの生成モデルを次のように構成します。

\begin{align*}
q_{\theta}({\bf{X}}) &= \frac{1}{Z_{\theta}}{\rm{exp}}\Big[\sum_{k\neq l}J_{kl}X_{k}X_{l}+\sum_{k=1}^{N}h_{k}X_{k}\Big] \\
Z_{\theta} &= \sum_{{\bf{X}}}{\rm{exp}}\Big[\sum_{k\neq l}J_{kl}X_{k}X_{l}+\sum_{k=1}^{N}h_{k}X_{k}\Big] \\
\theta &= \{J_{kl}, h_{k}\}
\end{align*}

ただし$X_k$という表記は、データ${\bf{X}}$のk番目の値であることに注意してください。このように構築したモデルのことをボルツマンマシンと言います。
次にボルツマンマシンを学習するために、KL情報量を最小化します。

\begin{align*}
min_{\theta} \ D_{KL}(p_0||q_{\theta}) &= min_{\theta}\Big[-\sum_{{\bf{X}}}p_{0}({\bf{X}})\Big(\sum_{k\neq l}J_{kl}X_{k}X_{l}+\sum_{k=1}^{N}h_{k}X_{k}\Big)+{\rm{log}}Z_{\theta}\Big] \\
&= min_{\theta}\Big[-\frac{1}{n}\sum_{i=1}^{n}\Big(\sum_{k\neq l}J_{kl}[X_{k}]_{i}[X_{l}]_{i}+\sum_{k=1}^{N}h_{k}[X_{k}]_{i}\Big)+{\rm{log}}Z_{\theta}\Big]
\end{align*}

$p_0$はデータの経験分布です。最小化するためのそれぞれのパラメータに対する偏微分を行います。まず、$h_k$による微分は、

\begin{align*}
-\frac{1}{n}\sum_{i=1}^{n}[X_{k}]_{i} \ + \frac{\partial}{\partial h_{k}}{\rm{log}}Z_{\theta} &= -\frac{1}{n}\sum_{i=1}^{n}[X_{k}]_{i} \ + \frac{1}{Z_{\theta}}\sum_{{\bf{X}}}X_{k}q_{\theta}({\bf{X}}) \\
\frac{1}{Z_{\theta}}\sum_{{\bf{X}}}X_{k}q_{\theta}({\bf{X}}) \ &= \ <X_{k}>_{\theta} \ とすると \\
\therefore \ <X_{k}>_{\theta} \ &= \ \frac{1}{n}\sum_{i=1}^{n}[X_{k}]_{i}
\end{align*}

一方で$J_{kl}$による微分も、全く同じように計算ができます。

\begin{align*}
<X_{k}X_{l}>_{\theta} \ &= \ \frac{1}{n}\sum_{i=1}^{n}[X_{k}]_{i}[X_{l}]_{i}
\end{align*}

さて、最適化に関する式が導けました。しかしこれは、学習データに対する平均や相関に合うように、パラメータを決めなさいという当たり前の式です。このようにパラメータの決め方に関して計算困難性が生じてまう時、勾配法などの最適化アルゴリズムを使って、パラメータを更新するのが一般的です。勾配法についてはまた今度書くことにします。

[参考動画]
生成モデルの数理情報学!【2022年度・情報基礎科学としての数理情報学・東北大学大学院情報科学研究科】 (大関真之)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?