Renamed tests + added some + misc
This commit is contained in:
@@ -107,7 +107,7 @@ class PerceptronController extends Controller
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'table_2_11':
|
case 'table_2_11':
|
||||||
$dataset['defaultMinError'] = 1.0;
|
$dataset['defaultMinError'] = 0.02;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$datasets[] = $dataset;
|
$datasets[] = $dataset;
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ class ADALINEPerceptronTraining extends NetworkTraining
|
|||||||
|
|
||||||
protected function stopCondition(): bool
|
protected function stopCondition(): bool
|
||||||
{
|
{
|
||||||
$condition = $this->epochError <= $this->minError && $this->perceptron->getSynapticWeights() !== [[0.0, 0.0, 0.0]];
|
$condition = $this->epochError <= $this->minError;
|
||||||
if ($condition === true) {
|
if ($condition === true) {
|
||||||
event(new PerceptronTrainingEnded('Le perceptron à atteint l\'erreur minimale', $this->sessionId, $this->trainingId));
|
event(new PerceptronTrainingEnded('Le perceptron à atteint l\'erreur minimale', $this->sessionId, $this->trainingId));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class GradientDescentPerceptronTraining extends NetworkTraining
|
|||||||
|
|
||||||
protected function stopCondition(): bool
|
protected function stopCondition(): bool
|
||||||
{
|
{
|
||||||
$condition = $this->epochError <= $this->minError && $this->perceptron->getSynapticWeights() !== [[0.0, 0.0, 0.0]];
|
$condition = $this->epochError <= $this->minError;
|
||||||
if ($condition === true) {
|
if ($condition === true) {
|
||||||
event(new PerceptronTrainingEnded('Le perceptron à atteint l\'erreur minimale', $this->sessionId, $this->trainingId));
|
event(new PerceptronTrainingEnded('Le perceptron à atteint l\'erreur minimale', $this->sessionId, $this->trainingId));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ use Tests\Services\IterationEventBuffer\DullIterationEventBuffer;
|
|||||||
class ADALINEPerceptronTest extends TrainingTestCase
|
class ADALINEPerceptronTest extends TrainingTestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
public function test_simple_perceptron_training_logic_and()
|
public function test_adaline_perceptron_training_logic_and()
|
||||||
{
|
{
|
||||||
$training = new ADALINEPerceptronTraining(
|
$training = new ADALINEPerceptronTraining(
|
||||||
datasetReader: new LinearOrderDataSetReader(public_path('data_sets/logic_and_gradient.csv')),
|
datasetReader: new LinearOrderDataSetReader(public_path('data_sets/logic_and_gradient.csv')),
|
||||||
@@ -31,7 +31,7 @@ class ADALINEPerceptronTest extends TrainingTestCase
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public function test_simple_perceptron_training_table_2_9()
|
// public function test_adaline_perceptron_training_table_2_9()
|
||||||
// {
|
// {
|
||||||
// $training = new ADALINEPerceptronTraining(
|
// $training = new ADALINEPerceptronTraining(
|
||||||
// datasetReader: new LinearOrderDataSetReader(public_path('data_sets/table_2_9.csv')),
|
// datasetReader: new LinearOrderDataSetReader(public_path('data_sets/table_2_9.csv')),
|
||||||
@@ -50,4 +50,25 @@ class ADALINEPerceptronTest extends TrainingTestCase
|
|||||||
// expectedEpochs: 92
|
// expectedEpochs: 92
|
||||||
// );
|
// );
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
public function test_adaline_perceptron_training_table_2_10()
|
||||||
|
{
|
||||||
|
$training = new ADALINEPerceptronTraining(
|
||||||
|
datasetReader: new LinearOrderDataSetReader(public_path('data_sets/table_2_10.csv')),
|
||||||
|
learningRate: 0.0015,
|
||||||
|
maxEpochs: 1000,
|
||||||
|
synapticWeightsProvider: new ZeroSynapticWeights(),
|
||||||
|
iterationEventBuffer: new DullIterationEventBuffer(),
|
||||||
|
sessionId: 'test-session',
|
||||||
|
trainingId: 'test-training',
|
||||||
|
// minError: 16.597077, // Impossible pour un dataset avec des labels -1 et 1 d'avoir une erreur moyenne supérieure à 2
|
||||||
|
minError: 0.000000001,
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->verifyTrainingResults(
|
||||||
|
training: $training,
|
||||||
|
expectedWeights: [[[-0.022673, -0.25422, 0.294955]]],
|
||||||
|
expectedEpochs: 1000
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ use Tests\Services\IterationEventBuffer\DullIterationEventBuffer;
|
|||||||
class GradientDescentPerceptronTest extends TrainingTestCase
|
class GradientDescentPerceptronTest extends TrainingTestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
public function test_simple_perceptron_training_logic_and()
|
public function test_gradient_descent_perceptron_training_logic_and()
|
||||||
{
|
{
|
||||||
$training = new GradientDescentPerceptronTraining(
|
$training = new GradientDescentPerceptronTraining(
|
||||||
datasetReader: new LinearOrderDataSetReader(public_path('data_sets/logic_and_gradient.csv')),
|
datasetReader: new LinearOrderDataSetReader(public_path('data_sets/logic_and_gradient.csv')),
|
||||||
@@ -30,7 +30,7 @@ class GradientDescentPerceptronTest extends TrainingTestCase
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public function test_simple_perceptron_training_table_2_9()
|
// public function test_gradient_descent_perceptron_training_table_2_9()
|
||||||
// {
|
// {
|
||||||
// $training = new GradientDescentPerceptronTraining(
|
// $training = new GradientDescentPerceptronTraining(
|
||||||
// datasetReader: new LinearOrderDataSetReader(public_path('data_sets/table_2_9.csv')),
|
// datasetReader: new LinearOrderDataSetReader(public_path('data_sets/table_2_9.csv')),
|
||||||
@@ -49,4 +49,25 @@ class GradientDescentPerceptronTest extends TrainingTestCase
|
|||||||
// expectedEpochs: 402
|
// expectedEpochs: 402
|
||||||
// );
|
// );
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
public function test_gradient_descent_perceptron_training_table_2_10()
|
||||||
|
{
|
||||||
|
$training = new GradientDescentPerceptronTraining(
|
||||||
|
datasetReader: new LinearOrderDataSetReader(public_path('data_sets/table_2_10.csv')),
|
||||||
|
learningRate: 0.0015,
|
||||||
|
maxEpochs: 1000,
|
||||||
|
synapticWeightsProvider: new ZeroSynapticWeights(),
|
||||||
|
iterationEventBuffer: new DullIterationEventBuffer(),
|
||||||
|
sessionId: 'test-session',
|
||||||
|
trainingId: 'test-training',
|
||||||
|
// minError: 16.388103, // Impossible pour un dataset avec des labels -1 et 1 d'avoir une erreur moyenne supérieure à 2
|
||||||
|
minError: 0.000000001,
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->verifyTrainingResults(
|
||||||
|
training: $training,
|
||||||
|
expectedWeights: [[[-0.04107, -0.263527, 0.286406]]],
|
||||||
|
expectedEpochs: 1000
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user