はじめに こんにちは @ta-ka です. この記事は 数学とコンピュータⅡ Advent Calendar 2017 の25日目の記事です. pythonで制約ボルツマンマシンを実装しました. 教科書として『深層学習』を使いました. 本記事の構成 はじめに 制約ボルツマンマシン ボルツマン分布 条件付き分布 対数尤度関数 パラメータ更新 CD法 実装 結果 おわりに 下図のような構造を持つ無向グラフを考えます. $v_{i}$ を可視変数,$h_{j}$ を隠れ変数と呼び,$v_{i}, h_{j}$ は $0$ か $1$ の値をとります. ボルツマン分布 ボルツマン分布を下式で定義します. 指数部分の値が大きいほど,$\boldsymbol v, \boldsymbol h$ の生起確率が高くなるような分布です. \begin{align} p(\boldsymbol v, \bol