mirror of
https://github.com/Llewellynvdm/php-ml.git
synced 2024-11-25 14:27:34 +00:00
e83f7b95d5
- Backpropagation using the neuron activation functions derivative - instead of hardcoded sigmoid derivative - Added missing activation functions derivatives - Sigmoid forced for the output layer - Updated ThresholdedReLU default threshold to 0 (acts as a ReLU) - Unit tests for derivatives - Unit tests for classifiers using different activation functions - Added missing docs
1.7 KiB
1.7 KiB
MLPClassifier
A multilayer perceptron (MLP) is a feedforward artificial neural network model that maps sets of input data onto a set of appropriate outputs.
Constructor Parameters
- $inputLayerFeatures (int) - the number of input layer features
- $hiddenLayers (array) - array with the hidden layers configuration, each value represent number of neurons in each layers
- $classes (array) - array with the different training set classes (array keys are ignored)
- $iterations (int) - number of training iterations
- $learningRate (float) - the learning rate
- $activationFunction (ActivationFunction) - neuron activation function
use Phpml\Classification\MLPClassifier;
$mlp = new MLPClassifier(4, [2], ['a', 'b', 'c']);
// 4 nodes in input layer, 2 nodes in first hidden layer and 3 possible labels.
Train
To train a MLP simply provide train samples and labels (as array). Example:
$mlp->train(
$samples = [[1, 0, 0, 0], [0, 1, 1, 0], [1, 1, 1, 1], [0, 0, 0, 0]],
$targets = ['a', 'a', 'b', 'c']
);
Use partialTrain method to train in batches. Example:
$mlp->partialTrain(
$samples = [[1, 0, 0, 0], [0, 1, 1, 0]],
$targets = ['a', 'a']
);
$mlp->partialTrain(
$samples = [[1, 1, 1, 1], [0, 0, 0, 0]],
$targets = ['b', 'c']
);
You can update the learning rate between partialTrain runs:
$mlp->setLearningRate(0.1);
Predict
To predict sample label use predict method. You can provide one sample or array of samples:
$mlp->predict([[1, 1, 1, 1], [0, 0, 0, 0]]);
// return ['b', 'c'];
Activation Functions
- BinaryStep
- Gaussian
- HyperbolicTangent
- Parametric Rectified Linear Unit
- Sigmoid (default)
- Thresholded Rectified Linear Unit