public function train(array $samples, array $targets, float $desiredError = 0.001, int $maxIterations = 10000)
{
for ($i = 0; $i < $maxIterations; ++$i) {
$resultsWithinError = $this->trainSamples($samples, $targets, $desiredError);
if ($resultsWithinError == count($samples)) {
break;
}
}
}
/** * @param array $samples * @param array $targets */ public function train(array $samples, array $targets) { $layers = $this->hiddenLayers; array_unshift($layers, count($samples[0])); $layers[] = count($targets[0]); $this->perceptron = new MultilayerPerceptron($layers, $this->activationFunction); $trainer = new Backpropagation($this->perceptron); $trainer->train($samples, $targets, $this->desiredError, $this->maxIterations); }