dev-master
9999999-devSupport code for the "Build Your Own Neural Network With PHP" talk
MIT
The Requires
The Development Requires
machine learning artificial intelligence neural networks
Support code for the "Build Your Own Neural Network With PHP" talk
Support material for the Build your own Neural Network, with PHP! talk., (*1)
With Docker:, (*2)
$ docker-compose build
or (PHP and Composer installed on the host):, (*3)
$ composer install
Included is an example with a Neural Network configured to solve an XOR:, (*4)
#!/usr/bin/env php <?php require_once __DIR__ . '/../vendor/autoload.php'; use Noiselabs\Byonn\Activation; use Noiselabs\Byonn\CostFunction; use Noiselabs\Byonn\Debug\Debugger; use Noiselabs\Byonn\Initializer; use Noiselabs\Byonn\Optimizer; use Noiselabs\Byonn\TrainingSet; use Noiselabs\Byonn\Topology; use Noiselabs\Byonn\NeuralNetwork; $xorTrainingSet = new TrainingSet( [[0, 0], [0, 1], [1, 0], [1, 1]], [0, 1, 1, 0] ); $neuralNetwork = new NeuralNetwork( new Topology([2, 2, 1], [ new Activation\Sigmoid(), new Activation\Sigmoid(), ]), new Initializer\ParametersInitializer( new Initializer\Zeros(), new Initializer\RandomUniform(0, 1) ), new Optimizer\GradientDescent(0.1), new CostFunction\MeanSquaredError() ); $neuralNetwork->train($xorTrainingSet, 20000, 0.01);
To run the XOR example do:, (*5)
$ docker-compose run byonn examples/xor.php Training for 20000 epochs or until the cost falls below 0.010000... * Epoch: 100, Error: 0.255492 * Epoch: 200, Error: 0.255405 * Epoch: 300, Error: 0.255290 * Epoch: 400, Error: 0.255123 * Epoch: 500, Error: 0.254865 * Epoch: 600, Error: 0.254448 * Epoch: 700, Error: 0.253756 * Epoch: 800, Error: 0.252605 * Epoch: 900, Error: 0.250739 * Epoch: 1000, Error: 0.247854 * Epoch: 1100, Error: 0.243657 * Epoch: 1200, Error: 0.237923 * Epoch: 1300, Error: 0.230646 * Epoch: 1400, Error: 0.222266 * Epoch: 1500, Error: 0.213619 * Epoch: 1600, Error: 0.205390 * Epoch: 1700, Error: 0.197623 * Epoch: 1800, Error: 0.189829 * Epoch: 1900, Error: 0.181427 * Epoch: 2000, Error: 0.171591 * Epoch: 2100, Error: 0.158625 * Epoch: 2200, Error: 0.140188 * Epoch: 2300, Error: 0.115453 * Epoch: 2400, Error: 0.088116 * Epoch: 2500, Error: 0.064397 * Epoch: 2600, Error: 0.047156 * Epoch: 2700, Error: 0.035515 * Epoch: 2800, Error: 0.027689 * Epoch: 2900, Error: 0.022291 * Epoch: 3000, Error: 0.018439 * Epoch: 3100, Error: 0.015599 * Epoch: 3200, Error: 0.013442 * Epoch: 3300, Error: 0.011760 * Epoch: 3400, Error: 0.010419 ...done. Epochs: 3437, Error: 0.009991 (took 11.00 seconds). Predictions: * Input: [0, 0], Predicted: 0.095753662872186, Expected: 0 [passed] * Input: [0, 1], Predicted: 0.90347433019157, Expected: 1 [passed] * Input: [1, 0], Predicted: 0.90289800056285, Expected: 1 [passed] * Input: [1, 1], Predicted: 0.10851568961942, Expected: 0 [passed] Accuracy: 100%
or without Docker:, (*6)
$ php examples/xor.php ...
And to help you debug your network a report gets generated after each run in the build
folder., (*7)
, (*8)
Have fun!, (*9)
Copyright (c) 2018 VĂtor BrandĂŁo. Licensed under the MIT License., (*10)
Support code for the "Build Your Own Neural Network With PHP" talk
MIT
machine learning artificial intelligence neural networks