Restricted Boltzmann Machine with softmax labels. An RBM is an
undirected probabilistic network with binary variables. In this
case, the node is partitioned into a set of observed (visible)
variables, a set of hidden (latent) variables, and a set of
label variables (also observed), only one of which is active at
any time. The node is able to learn associations between the
visible variables and the labels.
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
(visible and labels) 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
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
For more information on RBMs with labels, see:
- Geoffrey E. Hinton (2007) Boltzmann machine. Scholarpedia, 2(5):1668.
- Hinton, G. E, Osindero, S., and Teh, Y. W. (2006). A fast learning
algorithm for deep belief nets. Neural Computation, 18:1527-1554.
|
__init__(self,
hidden_dim,
labels_dim,
visible_dim=None,
dtype=None)
Initializes an object of type 'RBMWithLabelsNode'. |
|
|
|
_sample_v(self,
h,
sample_l=False,
concatenate=True) |
|
|
|
|
float
|
energy(self,
v,
h,
l)
Compute the energy of the RBM given observed variables state v
and l , and hidden variables state h . |
|
|
float
|
execute(self,
v,
l,
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,:]
and l[n,:]. |
|
|
tuple
|
sample_h(self,
v,
l)
Sample the hidden variables given observations v and labels l . |
|
|
tuple
|
sample_v(self,
h)
Sample the observed variables given hidden variable state h . |
|
|
|
train(self,
v,
l,
n_updates=1,
epsilon=0.1,
decay=0.0,
momentum=0.0,
verbose=False)
Update the internal structures according to the visible data v
and the labels l .
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__
|
|
|
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). |
|
|
|
|
|
|
|
__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. |
|
|
|
|
|
|