OpenCV
3.0.0
Open Source Computer Vision
|
Artificial Neural Networks - Multi-Layer Perceptrons. More...
#include "ml.hpp"
Public Types | |
enum | ActivationFunctions { IDENTITY = 0, SIGMOID_SYM = 1, GAUSSIAN = 2 } |
enum | TrainFlags { UPDATE_WEIGHTS = 1, NO_INPUT_SCALE = 2, NO_OUTPUT_SCALE = 4 } |
enum | TrainingMethods { BACKPROP =0, RPROP =1 } |
Public Types inherited from cv::ml::StatModel | |
enum | Flags { UPDATE_MODEL = 1, RAW_OUTPUT =1, COMPRESSED_INPUT =2, PREPROCESSED_INPUT =4 } |
Public Member Functions | |
virtual double | getBackpropMomentumScale () const =0 |
virtual double | getBackpropWeightScale () const =0 |
virtual cv::Mat | getLayerSizes () const =0 |
virtual double | getRpropDW0 () const =0 |
virtual double | getRpropDWMax () const =0 |
virtual double | getRpropDWMin () const =0 |
virtual double | getRpropDWMinus () const =0 |
virtual double | getRpropDWPlus () const =0 |
virtual TermCriteria | getTermCriteria () const =0 |
virtual int | getTrainMethod () const =0 |
virtual Mat | getWeights (int layerIdx) const =0 |
virtual void | setActivationFunction (int type, double param1=0, double param2=0)=0 |
virtual void | setBackpropMomentumScale (double val)=0 |
virtual void | setBackpropWeightScale (double val)=0 |
virtual void | setLayerSizes (InputArray _layer_sizes)=0 |
virtual void | setRpropDW0 (double val)=0 |
virtual void | setRpropDWMax (double val)=0 |
virtual void | setRpropDWMin (double val)=0 |
virtual void | setRpropDWMinus (double val)=0 |
virtual void | setRpropDWPlus (double val)=0 |
virtual void | setTermCriteria (TermCriteria val)=0 |
virtual void | setTrainMethod (int method, double param1=0, double param2=0)=0 |
Public Member Functions inherited from cv::ml::StatModel | |
virtual float | calcError (const Ptr< TrainData > &data, bool test, OutputArray resp) const |
Computes error on the training or test dataset. More... | |
virtual bool | empty () const |
Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More... | |
virtual int | getVarCount () const =0 |
Returns the number of variables in training samples. More... | |
virtual bool | isClassifier () const =0 |
Returns true if the model is classifier. More... | |
virtual bool | isTrained () const =0 |
Returns true if the model is trained. More... | |
virtual float | predict (InputArray samples, OutputArray results=noArray(), int flags=0) const =0 |
Predicts response(s) for the provided sample(s) More... | |
virtual bool | train (const Ptr< TrainData > &trainData, int flags=0) |
Trains the statistical model. More... | |
virtual bool | train (InputArray samples, int layout, InputArray responses) |
Trains the statistical model. More... | |
Public Member Functions inherited from cv::Algorithm | |
Algorithm () | |
virtual | ~Algorithm () |
virtual void | clear () |
Clears the algorithm state. More... | |
virtual String | getDefaultName () const |
virtual void | read (const FileNode &fn) |
Reads algorithm parameters from a file storage. More... | |
virtual void | save (const String &filename) const |
virtual void | write (FileStorage &fs) const |
Stores algorithm parameters in a file storage. More... | |
Static Public Member Functions | |
static Ptr< ANN_MLP > | create () |
Creates empty model. More... | |
Static Public Member Functions inherited from cv::ml::StatModel | |
template<typename _Tp > | |
static Ptr< _Tp > | train (const Ptr< TrainData > &data, int flags=0) |
Create and train model with default parameters. More... | |
Static Public Member Functions inherited from cv::Algorithm | |
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
Loads algorithm from the file. More... | |
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
Loads algorithm from a String. More... | |
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
Reads algorithm from the file node. More... | |
Artificial Neural Networks - Multi-Layer Perceptrons.
Unlike many other models in ML that are constructed and trained at once, in the MLP model these steps are separated. First, a network with the specified topology is created using the non-default constructor or the method ANN_MLP::create. All the weights are set to zeros. Then, the network is trained using a set of input and output vectors. The training procedure can be repeated more than once, that is, the weights can be adjusted based on the new training data.
Additional flags for StatModel::train are available: ANN_MLP::TrainFlags.
possible activation functions
Train options
Available training methods
Enumerator | |
---|---|
BACKPROP |
The back-propagation algorithm. |
RPROP |
The RPROP algorithm. See [101] for details. |
Creates empty model.
Use StatModel::train to train the model, Algorithm::load<ANN_MLP>(filename) to load the pre-trained model. Note that the train method has optional flags: ANN_MLP::TrainFlags.
|
pure virtual |
BPROP: Strength of the momentum term (the difference between weights on the 2 previous iterations). This parameter provides some inertia to smooth the random fluctuations of the weights. It can vary from 0 (the feature is disabled) to 1 and beyond. The value 0.1 or so is good enough. Default value is 0.1.
|
pure virtual |
BPROP: Strength of the weight gradient term. The recommended value is about 0.1. Default value is 0.1.
|
pure virtual |
Integer vector specifying the number of neurons in each layer including the input and output layers. The very first element specifies the number of elements in the input layer. The last element - number of elements in the output layer.
|
pure virtual |
RPROP: Initial value \(\Delta_0\) of update-values \(\Delta_{ij}\). Default value is 0.1.
|
pure virtual |
RPROP: Update-values upper limit \(\Delta_{max}\). It must be >1. Default value is 50.
|
pure virtual |
RPROP: Update-values lower limit \(\Delta_{min}\). It must be positive. Default value is FLT_EPSILON.
|
pure virtual |
RPROP: Decrease factor \(\eta^-\). It must be <1. Default value is 0.5.
|
pure virtual |
RPROP: Increase factor \(\eta^+\). It must be >1. Default value is 1.2.
|
pure virtual |
Termination criteria of the training algorithm. You can specify the maximum number of iterations (maxCount) and/or how much the error could change between the iterations to make the algorithm continue (epsilon). Default value is TermCriteria(TermCriteria::MAX_ITER + TermCriteria::EPS, 1000, 0.01).
|
pure virtual |
Returns current training method
|
pure virtual |
|
pure virtual |
Initialize the activation function for each neuron. Currently the default and the only fully supported activation function is ANN_MLP::SIGMOID_SYM.
type | The type of activation function. See ANN_MLP::ActivationFunctions. |
param1 | The first parameter of the activation function, \(\alpha\). Default value is 0. |
param2 | The second parameter of the activation function, \(\beta\). Default value is 0. |
|
pure virtual |
|
pure virtual |
|
pure virtual |
Integer vector specifying the number of neurons in each layer including the input and output layers. The very first element specifies the number of elements in the input layer. The last element - number of elements in the output layer. Default value is empty Mat.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
Sets training method and common parameters.
method | Default value is ANN_MLP::RPROP. See ANN_MLP::TrainingMethods. |
param1 | passed to setRpropDW0 for ANN_MLP::RPROP and to setBackpropWeightScale for ANN_MLP::BACKPROP |
param2 | passed to setRpropDWMin for ANN_MLP::RPROP and to setBackpropMomentumScale for ANN_MLP::BACKPROP. |