Main Page

From Artificial Neural Network for PHP

ANN - Artificial Neural Network for PHP 5.x

This project realizes a neural network topology called multilayer perceptron for PHP 5.x environments. The source code is based on a work by Eddy Young in 2002. Several improvements and changes on this implementation are done by Thomas Wien in 2007. You will find the PHP source in the section Download. Please, consider the Copyright. To get a short idea what is the benefit of neural networks have a look at page Neural Networks.

Overview

Features

  • Momentum
  • Dynamic learning rate
  • Output type detection (linear or binary)
  • Logging (weights and network errors)
  • Client-Server model for distributed applications
  • Graphical network topology as PNG image
  • Displaying network details

Versions and Change-Log

Version 2.0.3 by Thomas Wien (2008-01-17) Download

  • Support for dynamic learning rate
  • Automatic epoch determination
  • Automatic output type detection
  • Shuffling input patterns each epoch instead of randomized pattern access
  • Bug fix: runtime error on call of setMomentum()
  • Logging of network errors
  • Logging on each epoch instead of each training step
  • Avoiding distributed internal calls of setMomentum() and setLearningRate()
  • Extending display of network details

Version 2.0.2 by Thomas Wien (2008-01-14)

  • Client-Server model for distributed applications
  • Calculating total network error for csv logging

Version 2.0.1 by Thomas Wien (2008-01-06)

  • Separation of classes to several files
  • Version control by Subversion
  • Performance issues
  • Graphical output of neural network topology
  • Logging of weights to csv file

Version 2.0.0 by Thomas Wien (2007-12-17)

  • PHP 5.x support
  • PHPDoc documentation
  • Momentum support
  • Avoiding network overfitting
  • Linear / binary output
  • ANN_InputValue + ANN_OutputValue classes
  • Exceptions
  • Threshold function
  • Hyperbolic tangent transfer function
  • Several performance issues
  • Avoiding array_keys() & srand() due to performance
  • Changes in saving and loading network
  • Printing network details to browser
  • Fixing bug: initializing inputs to all hidden layers
  • Fixing bug: training for first hidden layer was skipped

Version 1.0 by Eddy Young (2002)

  • Initial version

Version 2.0.4 by Thomas Wien (Development)

  • Weight decay
  • QuickProp algorithm (experimental)
  • RProp algorithm (experimental)
  • Linear saturated activation function (experimental)
  • Individual learning rate algorithm (experimental)
  • Reducing of overfitting (no training if input pattern produces desired output)
  • Increasing performance on activation
  • Increasing performance on testing all patterns to their desired outputs
  • Increasing performance on calculating hidden deltas
  • More details to printNetwork()
  • Fixing bug: learning rate is not part of saved delta value

Todo

  • Examples
  • ANN_InputArray + ANN_OutputArray
  • Performance check depending on host system
  • Wiki: More details to installation and use
  • Wiki: Project specific logo ( Done! )
  • PHPDoc: More details to documentation