3.1. renom.bm

class CD_Method ( visible_layer , hidden_layer )

ベースクラス: renom.model.model.Model

CD法を用いて尤度関数の最大値を探索する。 現状では、二値データのみを扱うことができる。

hidden_layerとして与えたDenseオブジェクトの重みパラメタが更新される。

>>> import numpy as np
>>> import renom.layers as L
>>> from renom.model import Model
>>> from renom.bm import CD_Method
>>> from renom.optimizers import Sgd
>>> 
>>> model = Model(
...     layers = [
...         L.Input(10, name = 'layer1'),
...         L.Dense(10, name = 'layer2'),
...     ])
>>> iteration = 5
>>> x = np.array(np.random.rand(10, 10) > 0.5, dtype = np.float32)
>>> opt = Sgd(CD_Method(model['layer1'], model['layer2']))
>>> for e in range(iteration):
...     print(opt.train(x, x))
...     opt.update()
... 
0.497971439362
0.495402431488
0.491789579391
0.489204978943
0.486538553238
パラメータ:
  • visible_layer ( Dense ) – 可視層
  • hidden_layer ( Dense ) – 隠れ層
train ( x , y=None )

CD方による尤度最大化を実行する関数。 x, yはそれぞれ入力データと教師データだが、CD法ではどちらも 同じ値を入力する必要がある。

パラメータ:
  • x ( ndarray ) – 入力データ
  • y ( ndarray ) – 教師データ
Return float:

教師データとの二乗誤差

visible_to_hidden ( x )

可視層にxを入力した時の隠れ層の出力を返す。

パラメータ: x ( ndarray ) – 可視層への入力
hidden_to_visible ( x )

隠れ層にxを入力した時の可視層の出力を返す。

パラメータ: x ( ndarray ) –
update ( hook=None )

train関数の実行時に得られた勾配を用いて隠れ層の重みパラメタを更新する。

パラメータ: hook