This class implements deep architectures and provides the ability to train them with a pre training using contrastive divergence and fine tuning with backpropagation, resilient backpropagation and conjugate gradients.
rbmList
A list which contains all RBMs for the pre-training.
layers
A list with the layer information. In the first field are the weights and in the second field is the unit function.
learnRateBiases
The learning rate for the bias weights.
fineTuneFunction
Contains the function for the fine tuning.
executeFunction
Contains the function for executing the network.
executeOutput
A list which contains the outputs of every layer after an execution of the network.
cancel
Boolean value which indicates if the network training is canceled.
cancelMessage
The message when the execution is canceled.
dropoutInput
Dropout rate on the input layer.
dropoutHidden
Dropout rate on the hidden layers.
dropoutOneMaskPerEpoch
Logical indicating whether to generate a new dropout mask for each epoch (as opposed to for each batch).
dropoutMasks
List of dropout masks, used internally.
dataSet
preTrainParameters
A set of parameters keeping track of the state of the DBN in terms of pre-training.
fineTuningParameters
A set of parameters keeping track of the state of the DBN in terms of fine-tuning.
The class is inherits all attributes from the class link{Net}
. When
creating a new instance with the constructor newDArch
(recommended), the darch-object contained the number of layers -1 restricted
Boltzmann machines (RBM
), which are used for the unsupervised
pre training of the network. The RBM
s are saved in the
attribute rbmList
and can be fetched over the getter method
(getRBMList
. The two attributes fineTuneFunction
and
executeFunction
containing the functions for the fine tuning (default:
backpropagation
) and for the execution (default:
runDArch
. The training of the network is performed by the two
learning functions preTrainDArch
and
fineTuneDArch
. The first function trains the network with the
unsupervised method contrastive divergence. The second function used the
function in the attribute fineTuneFunction
for the fine tuning. After
an execution of the network, the outputs of every layer can be found in the
attribute executeOutput
.