Restricted Boltzmann Machine node. An RBM is an undirected
probabilistic network with binary variables. The graph is
bipartite into observed (visible) and hidden (latent) variables.
By default, the execute method returns the probability of
one of the hiden variables being equal to 1 given the input.
Use the sample_v method to sample from the observed variables
given a setting of the hidden variables, and sample_h to do the
opposite. The energy method can be used to compute the energy
of a given setting of all variables.
Reference
For more information on RBMs, see
Geoffrey E. Hinton (2007) Boltzmann machine. Scholarpedia, 2(5):1668
The network is trained by Contrastive Divergence, as described in
Hinton, G. E. (2002). Training products of experts by minimizing
contrastive divergence. Neural Computation, 14(8):1711-1800
|
__init__(self,
hidden_dim,
visible_dim=None,
dtype=None)
Initializes an object of type 'RBMNode'. |
|
|
|
|
float
|
_execute(self,
v,
return_probs=True)
If return_probs is True, returns the probability of the
hidden variables h[n,i] being 1 given the observations v[n,:].
If return_probs is False, return a sample from that probability. |
|
|
|
|
|
|
|
|
|
|
|
|
|
_train(self,
v,
n_updates=1,
epsilon=0.1,
decay=0.0,
momentum=0.0,
update_with_ph=True,
verbose=False)
Update the internal structures according to the input data v .
The training is performed using Contrastive Divergence (CD). |
|
|
float
|
energy(self,
v,
h)
Compute the energy of the RBM given observed variables state v and
hidden variables state h . |
|
|
float
|
execute(self,
v,
return_probs=True)
If return_probs is True, returns the probability of the
hidden variables h[n,i] being 1 given the observations v[n,:].
If return_probs is False, return a sample from that probability. |
|
|
tuple
|
sample_h(self,
v)
Sample the hidden variables given observations v. |
|
|
tuple
|
sample_v(self,
h)
Sample the observed variables given hidden variable state h. |
|
|
|
|
|
train(self,
v,
n_updates=1,
epsilon=0.1,
decay=0.0,
momentum=0.0,
update_with_ph=True,
verbose=False)
Update the internal structures according to the input data v .
The training is performed using Contrastive Divergence (CD). |
|
|
Inherited from unreachable.newobject :
__long__ ,
__native__ ,
__nonzero__ ,
__unicode__ ,
next
Inherited from object :
__delattr__ ,
__format__ ,
__getattribute__ ,
__hash__ ,
__new__ ,
__reduce__ ,
__reduce_ex__ ,
__setattr__ ,
__sizeof__ ,
__subclasshook__
|
|
|
|
__call__(self,
x,
*args,
**kwargs)
Calling an instance of Node is equivalent to calling
its execute method. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_refcast(self,
x)
Helper function to cast arrays to the internal dtype. |
|
|
|
|
|
|
|
|
|
copy(self,
protocol=None)
Return a deep copy of the node. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inverse(self,
y,
*args,
**kwargs)
Invert y . |
|
|
|
is_training(self)
Return True if the node is in the training phase,
False otherwise. |
|
|
|
save(self,
filename,
protocol=-1)
Save a pickled serialization of the node to filename .
If filename is None, return a string. |
|
|
|
set_dtype(self,
t)
Set internal structures' dtype. |
|
|
|
|
|
|