<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ann.thwien.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thwien</id>
	<title>Artificial Neural Network for PHP - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://ann.thwien.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thwien"/>
	<link rel="alternate" type="text/html" href="https://ann.thwien.de/w/Special:Contributions/Thwien"/>
	<updated>2026-04-04T19:37:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=442</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=442"/>
		<updated>2025-10-14T14:14:22Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Version 2.3.0 (2012-12-13) (PHP 5.4 or above) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 3.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;3.0.0&#039;&#039;&#039; (2025-10-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 8.2 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann300.tar.gz Download - ann300.tar.gz] (9 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20aebfb82fd1c248d6cea424675950e7  ann300.tar.gz&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=441</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=441"/>
		<updated>2025-10-14T14:14:06Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Version 2.2.3 (2012-12-12) stable (PHP 5.3 or above) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 3.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;3.0.0&#039;&#039;&#039; (2025-10-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 8.2 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann300.tar.gz Download - ann300.tar.gz] (9 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20aebfb82fd1c248d6cea424675950e7  ann300.tar.gz&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=440</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=440"/>
		<updated>2025-10-14T14:13:34Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Version 2.0.7 (2009-01-01) stable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 3.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;3.0.0&#039;&#039;&#039; (2025-10-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 8.2 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann300.tar.gz Download - ann300.tar.gz] (9 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20aebfb82fd1c248d6cea424675950e7  ann300.tar.gz&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=439</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=439"/>
		<updated>2025-10-14T14:13:13Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Version 2.1.7 (2011-06-15) stable (PHP 5.2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 3.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;3.0.0&#039;&#039;&#039; (2025-10-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 8.2 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann300.tar.gz Download - ann300.tar.gz] (9 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20aebfb82fd1c248d6cea424675950e7  ann300.tar.gz&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=438</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=438"/>
		<updated>2025-10-14T14:11:19Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Germany) since 2007. You get 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]].&lt;br /&gt;
&lt;br /&gt;
== Project backgroud ==&lt;br /&gt;
&lt;br /&gt;
Since 1992 I have been fascinated by the workings of neural networks, especially multilayer perceptrons. In the early days I planned to implement and use such networks in PHP projects. After taking over Eddy’s project in 2007 and releasing version 2.3.0 in 2012, a lot has changed in how we work with neural networks.&lt;br /&gt;
&lt;br /&gt;
Today large‑language models are ubiquitous. Consequently, a PHP class that implements a simple multilayer perceptron may no longer be essential for practical applications, though these models still underpin many modern systems. Nonetheless, the PHP class remains a valuable educational tool for grasping the core concepts of contemporary neural networks. It can serve as part of training or learning exercises. Enjoy!&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 3.0.0 by Thomas Wien&#039;&#039;&#039; (2025-10-04) [[Download]]&lt;br /&gt;
 &lt;br /&gt;
 * Full rework of all PHP scripts&lt;br /&gt;
 * Remaining functioniality reduced to fundamentaly function of neural network only&lt;br /&gt;
 * Phar support removed&lt;br /&gt;
 * PHP 8.2 is required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13)&lt;br /&gt;
 &lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
* PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12)&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=437</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=437"/>
		<updated>2025-10-06T08:23:50Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Version 3.0.0 (2025-10-04) stable (PHP 8.2 or above) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 3.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;3.0.0&#039;&#039;&#039; (2025-10-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 8.2 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann300.tar.gz Download - ann300.tar.gz] (9 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20aebfb82fd1c248d6cea424675950e7  ann300.tar.gz&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Selling_Icecreams&amp;diff=436</id>
		<title>Selling Icecreams</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Selling_Icecreams&amp;diff=436"/>
		<updated>2025-10-06T07:59:58Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Using trained network */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FAQ ==&lt;br /&gt;
&lt;br /&gt;
For information about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Training ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once &#039;../ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\InputValue;&lt;br /&gt;
use ANN\OutputValue;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
    $objNetwork = Network::loadFromFile(&#039;icecreams.dat&#039;);&lt;br /&gt;
} catch (Exception $e) {&lt;br /&gt;
    $objNetwork = new Network(2, 5, 1);&lt;br /&gt;
&lt;br /&gt;
    $objTemperature = new InputValue(- 15, 50); // Temperature in Celsius&lt;br /&gt;
&lt;br /&gt;
    $objTemperature-&amp;gt;saveToFile(&#039;input_temperature.dat&#039;);&lt;br /&gt;
&lt;br /&gt;
    $objHumidity = new InputValue(0, 100); // Humidity percentage&lt;br /&gt;
&lt;br /&gt;
    $objHumidity-&amp;gt;saveToFile(&#039;input_humidity.dat&#039;);&lt;br /&gt;
&lt;br /&gt;
    $objIcecream = new OutputValue(0, 300); // Quantity of sold ice-creams&lt;br /&gt;
&lt;br /&gt;
    $objIcecream-&amp;gt;saveToFile(&#039;output_quantity.dat&#039;);&lt;br /&gt;
&lt;br /&gt;
    $objValues = new Values();&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;train()&lt;br /&gt;
        -&amp;gt;input($objTemperature-&amp;gt;getInputValue(20), $objHumidity-&amp;gt;getInputValue(10))&lt;br /&gt;
        -&amp;gt;output($objIcecream-&amp;gt;getOutputValue(20))&lt;br /&gt;
        -&amp;gt;input($objTemperature-&amp;gt;getInputValue(30), $objHumidity-&amp;gt;getInputValue(40))&lt;br /&gt;
        -&amp;gt;output($objIcecream-&amp;gt;getOutputValue(90))&lt;br /&gt;
        -&amp;gt;input($objTemperature-&amp;gt;getInputValue(32), $objHumidity-&amp;gt;getInputValue(30))&lt;br /&gt;
        -&amp;gt;output($objIcecream-&amp;gt;getOutputValue(70))&lt;br /&gt;
        -&amp;gt;input($objTemperature-&amp;gt;getInputValue(33), $objHumidity-&amp;gt;getInputValue(20))&lt;br /&gt;
        -&amp;gt;output($objIcecream-&amp;gt;getOutputValue(75));&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;saveToFile(&#039;values_icecreams.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
    $objValues = Values::loadFromFile(&#039;values_icecreams.dat&#039;);&lt;br /&gt;
} catch (Exception $e) {&lt;br /&gt;
    die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
$boolTrained = $objNetwork-&amp;gt;train();&lt;br /&gt;
&lt;br /&gt;
print ($boolTrained) ? &#039;Network trained&#039; : &#039;Network not trained completely. Please re-run the script&#039;;&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;saveToFile(&#039;icecreams.dat&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using trained network ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once &#039;../ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\InputValue;&lt;br /&gt;
use ANN\OutputValue;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
    $objNetwork = Network::loadFromFile(&#039;icecreams.dat&#039;);&lt;br /&gt;
} catch (Exception $e) {&lt;br /&gt;
    die(&#039;Network not found&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
    $objTemperature = InputValue::loadFromFile(&#039;input_temperature.dat&#039;); // Temperature in Celsius&lt;br /&gt;
&lt;br /&gt;
    $objHumidity = InputValue::loadFromFile(&#039;input_humidity.dat&#039;); // Humidity percentage&lt;br /&gt;
&lt;br /&gt;
    $objIcecream = OutputValue::loadFromFile(&#039;output_quantity.dat&#039;); // Quantity of sold ice-creams&lt;br /&gt;
} catch (Exception $e) {&lt;br /&gt;
    die(&#039;Error loading value objects&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
    $objValues = Values::loadFromFile(&#039;values_icecreams.dat&#039;);&lt;br /&gt;
} catch (Exception $e) {&lt;br /&gt;
    die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objValues-&amp;gt;input( // input values appending the loaded ones&lt;br /&gt;
$objTemperature-&amp;gt;getInputValue(17), $objHumidity-&amp;gt;getInputValue(12))&lt;br /&gt;
    -&amp;gt;input($objTemperature-&amp;gt;getInputValue(31), $objHumidity-&amp;gt;getInputValue(42))&lt;br /&gt;
    -&amp;gt;input($objTemperature-&amp;gt;getInputValue(31), $objHumidity-&amp;gt;getInputValue(34))&lt;br /&gt;
    -&amp;gt;input($objTemperature-&amp;gt;getInputValue(34), $objHumidity-&amp;gt;getInputValue(21));&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
$arrOutputs = $objNetwork-&amp;gt;getOutputs();&lt;br /&gt;
&lt;br /&gt;
foreach ($arrOutputs as $arrOutput)&lt;br /&gt;
    foreach ($arrOutput as $floatOutput)&lt;br /&gt;
        print $objIcecream-&amp;gt;getRealOutputValue($floatOutput) . &amp;quot;\n&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Selling_Icecreams&amp;diff=435</id>
		<title>Selling Icecreams</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Selling_Icecreams&amp;diff=435"/>
		<updated>2025-10-06T07:59:18Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Training */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FAQ ==&lt;br /&gt;
&lt;br /&gt;
For information about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Training ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once &#039;../ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\InputValue;&lt;br /&gt;
use ANN\OutputValue;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
    $objNetwork = Network::loadFromFile(&#039;icecreams.dat&#039;);&lt;br /&gt;
} catch (Exception $e) {&lt;br /&gt;
    $objNetwork = new Network(2, 5, 1);&lt;br /&gt;
&lt;br /&gt;
    $objTemperature = new InputValue(- 15, 50); // Temperature in Celsius&lt;br /&gt;
&lt;br /&gt;
    $objTemperature-&amp;gt;saveToFile(&#039;input_temperature.dat&#039;);&lt;br /&gt;
&lt;br /&gt;
    $objHumidity = new InputValue(0, 100); // Humidity percentage&lt;br /&gt;
&lt;br /&gt;
    $objHumidity-&amp;gt;saveToFile(&#039;input_humidity.dat&#039;);&lt;br /&gt;
&lt;br /&gt;
    $objIcecream = new OutputValue(0, 300); // Quantity of sold ice-creams&lt;br /&gt;
&lt;br /&gt;
    $objIcecream-&amp;gt;saveToFile(&#039;output_quantity.dat&#039;);&lt;br /&gt;
&lt;br /&gt;
    $objValues = new Values();&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;train()&lt;br /&gt;
        -&amp;gt;input($objTemperature-&amp;gt;getInputValue(20), $objHumidity-&amp;gt;getInputValue(10))&lt;br /&gt;
        -&amp;gt;output($objIcecream-&amp;gt;getOutputValue(20))&lt;br /&gt;
        -&amp;gt;input($objTemperature-&amp;gt;getInputValue(30), $objHumidity-&amp;gt;getInputValue(40))&lt;br /&gt;
        -&amp;gt;output($objIcecream-&amp;gt;getOutputValue(90))&lt;br /&gt;
        -&amp;gt;input($objTemperature-&amp;gt;getInputValue(32), $objHumidity-&amp;gt;getInputValue(30))&lt;br /&gt;
        -&amp;gt;output($objIcecream-&amp;gt;getOutputValue(70))&lt;br /&gt;
        -&amp;gt;input($objTemperature-&amp;gt;getInputValue(33), $objHumidity-&amp;gt;getInputValue(20))&lt;br /&gt;
        -&amp;gt;output($objIcecream-&amp;gt;getOutputValue(75));&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;saveToFile(&#039;values_icecreams.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
    $objValues = Values::loadFromFile(&#039;values_icecreams.dat&#039;);&lt;br /&gt;
} catch (Exception $e) {&lt;br /&gt;
    die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
$boolTrained = $objNetwork-&amp;gt;train();&lt;br /&gt;
&lt;br /&gt;
print ($boolTrained) ? &#039;Network trained&#039; : &#039;Network not trained completely. Please re-run the script&#039;;&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;saveToFile(&#039;icecreams.dat&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using trained network ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\InputValue;&lt;br /&gt;
use ANN\OutputValue;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
  $objNetwork = Network::loadFromFile(&#039;icecreams.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch(Exception $e)&lt;br /&gt;
{&lt;br /&gt;
  die(&#039;Network not found&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
  $objTemperature = InputValue::loadFromFile(&#039;input_temperature.dat&#039;); // Temperature in Celsius&lt;br /&gt;
&lt;br /&gt;
  $objHumidity    = InputValue::loadFromFile(&#039;input_humidity.dat&#039;);    // Humidity percentage&lt;br /&gt;
&lt;br /&gt;
  $objIcecream    = OutputValue::loadFromFile(&#039;output_quantity.dat&#039;);  // Quantity of sold ice-creams&lt;br /&gt;
}&lt;br /&gt;
catch(Exception $e)&lt;br /&gt;
{&lt;br /&gt;
  die(&#039;Error loading value objects&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
  $objValues = Values::loadFromFile(&#039;values_icecreams.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch(Exception $e)&lt;br /&gt;
{&lt;br /&gt;
  die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objValues-&amp;gt;input( // input values appending the loaded ones&lt;br /&gt;
                 $objTemperature-&amp;gt;getInputValue(17),&lt;br /&gt;
                 $objHumidity-&amp;gt;getInputValue(12)&lt;br /&gt;
                 )&lt;br /&gt;
          -&amp;gt;input(&lt;br /&gt;
                 $objTemperature-&amp;gt;getInputValue(31),&lt;br /&gt;
                 $objHumidity-&amp;gt;getInputValue(42)&lt;br /&gt;
                 )&lt;br /&gt;
          -&amp;gt;input(&lt;br /&gt;
                 $objTemperature-&amp;gt;getInputValue(31),&lt;br /&gt;
                 $objHumidity-&amp;gt;getInputValue(34)&lt;br /&gt;
                 )&lt;br /&gt;
          -&amp;gt;input(&lt;br /&gt;
                 $objTemperature-&amp;gt;getInputValue(34),&lt;br /&gt;
                 $objHumidity-&amp;gt;getInputValue(21)&lt;br /&gt;
                 );&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
$arrOutputs = $objNetwork-&amp;gt;getOutputs();&lt;br /&gt;
&lt;br /&gt;
foreach($arrOutputs as $arrOutput)&lt;br /&gt;
  foreach($arrOutput as $floatOutput)&lt;br /&gt;
    print $objIcecream-&amp;gt;getRealOutputValue($floatOutput). &#039;&amp;lt;br /&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=434</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=434"/>
		<updated>2025-10-04T13:43:02Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Project backgroud */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Project backgroud ==&lt;br /&gt;
&lt;br /&gt;
Since 1992 I have been fascinated by the workings of neural networks, especially multilayer perceptrons. In the early days I planned to implement and use such networks in PHP projects. After taking over Eddy’s project in 2007 and releasing version 2.3.0 in 2012, a lot has changed in how we work with neural networks.&lt;br /&gt;
&lt;br /&gt;
Today large‑language models are ubiquitous. Consequently, a PHP class that implements a simple multilayer perceptron may no longer be essential for practical applications, though these models still underpin many modern systems. Nonetheless, the PHP class remains a valuable educational tool for grasping the core concepts of contemporary neural networks. It can serve as part of training or learning exercises. Enjoy!&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 3.0.0 by Thomas Wien&#039;&#039;&#039; (2025-10-04) [[Download]]&lt;br /&gt;
 &lt;br /&gt;
 * Full rework of all PHP scripts&lt;br /&gt;
 * Remaining functioniality reduced to fundamentaly function of neural network only&lt;br /&gt;
 * Phar support removed&lt;br /&gt;
 * PHP 8.2 is required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13)&lt;br /&gt;
 &lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
* PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12)&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=433</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=433"/>
		<updated>2025-10-04T13:28:26Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Project backgroud */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Project backgroud ==&lt;br /&gt;
&lt;br /&gt;
Since 1992 I was fascinated about the functionality of neural networks like multilayer perceptron. In the past I planned to realize and use neural networks in PHP projects. Since take-over Eddy&#039;s project in 2007 and the release of version 2.3.0 in 2012 many things have changed in using neural networks.&lt;br /&gt;
&lt;br /&gt;
Today it is common to use large language models. Therefore I think there is no need anymore for a PHP class to implement a multilayer perceptron. But large language models based on multilayer perceptron. Nevertheless this PHP class can help to understand the core basics of modern neural networks. So, this PHP class can be part of training or learning fundamental concepts. Enjoy!&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 3.0.0 by Thomas Wien&#039;&#039;&#039; (2025-10-04) [[Download]]&lt;br /&gt;
 &lt;br /&gt;
 * Full rework of all PHP scripts&lt;br /&gt;
 * Remaining functioniality reduced to fundamentaly function of neural network only&lt;br /&gt;
 * Phar support removed&lt;br /&gt;
 * PHP 8.2 is required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13)&lt;br /&gt;
 &lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
* PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12)&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=432</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=432"/>
		<updated>2025-10-04T13:20:59Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Project backgroud ==&lt;br /&gt;
&lt;br /&gt;
Since 1992 I was fascinated about the functionality of neural networks like multilayer perceptron. In the past I planned to realize and use neural networks in PHP projects. Since take-over Eddy&#039;s project in 2007 and the release of version 2.3.0 in 2012 many things have changed in using neural networks.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 3.0.0 by Thomas Wien&#039;&#039;&#039; (2025-10-04) [[Download]]&lt;br /&gt;
 &lt;br /&gt;
 * Full rework of all PHP scripts&lt;br /&gt;
 * Remaining functioniality reduced to fundamentaly function of neural network only&lt;br /&gt;
 * Phar support removed&lt;br /&gt;
 * PHP 8.2 is required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13)&lt;br /&gt;
 &lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
* PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12)&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=431</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=431"/>
		<updated>2025-10-04T12:46:48Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 3.0.0 by Thomas Wien&#039;&#039;&#039; (2025-10-04) [[Download]]&lt;br /&gt;
 &lt;br /&gt;
 * Full rework of all PHP scripts&lt;br /&gt;
 * Remaining functioniality reduced to fundamentaly function of neural network only&lt;br /&gt;
 * Phar support removed&lt;br /&gt;
 * PHP 8.2 is required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13)&lt;br /&gt;
 &lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
* PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12)&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=430</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=430"/>
		<updated>2025-10-04T12:44:21Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 3.0.0 by Thomas Wien&#039;&#039;&#039; (2025-10-04) [[Download]]&lt;br /&gt;
 &lt;br /&gt;
 * Full rework of all PHP scripts&lt;br /&gt;
 * Remaining functioniality reduced to fundamentaly function of neural network only&lt;br /&gt;
 * Phar support removed&lt;br /&gt;
 * PHP 8.2 is required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13)&lt;br /&gt;
 &lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
* PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12)&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=429</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=429"/>
		<updated>2025-10-04T12:28:34Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Performance issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ANN - Artificial Neural Network for PHP ==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the steps to implement the ANN source code to your project.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
The latest implementation requires a php environment running &#039;&#039;&#039;PHP 8.2&#039;&#039;&#039; or above.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* [[Download]] the source code&lt;br /&gt;
&lt;br /&gt;
* Checking integrity&lt;br /&gt;
&lt;br /&gt;
 $ md5sum ann300*&lt;br /&gt;
&lt;br /&gt;
* Unpack the source code&lt;br /&gt;
&lt;br /&gt;
 $ tar -xzf ann300.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Copy the directory ANN to your library directory of your project.&lt;br /&gt;
&lt;br /&gt;
* Including to your source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Learn to use the library. Have a look to chapter [[Examples]].&lt;br /&gt;
&lt;br /&gt;
* For further information e.g. about dat-files have a view to the [[FAQ]] page.&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=428</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=428"/>
		<updated>2025-10-04T12:09:00Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ANN - Artificial Neural Network for PHP ==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the steps to implement the ANN source code to your project.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
The latest implementation requires a php environment running &#039;&#039;&#039;PHP 8.2&#039;&#039;&#039; or above.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* [[Download]] the source code&lt;br /&gt;
&lt;br /&gt;
* Checking integrity&lt;br /&gt;
&lt;br /&gt;
 $ md5sum ann300*&lt;br /&gt;
&lt;br /&gt;
* Unpack the source code&lt;br /&gt;
&lt;br /&gt;
 $ tar -xzf ann300.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Copy the directory ANN to your library directory of your project.&lt;br /&gt;
&lt;br /&gt;
* Including to your source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Learn to use the library. Have a look to chapter [[Examples]].&lt;br /&gt;
&lt;br /&gt;
* For further information e.g. about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Performance issues ==&lt;br /&gt;
&lt;br /&gt;
* Install Zend Optimizer (PHP version before 5.3.0)&lt;br /&gt;
* Do not use any debugger module like xdebug&lt;br /&gt;
* Do not use any profiling tool&lt;br /&gt;
* Do not set &amp;quot;max_execution_time = 0&amp;quot; in your php.ini or .htaccess file&lt;br /&gt;
* Running PHP on Linux console use &amp;quot;php -d max_execution_time=60 neural.php&amp;quot;&lt;br /&gt;
* Run implicit ini_set() call to set &amp;quot;max_execution_time&amp;quot; by runtime&lt;br /&gt;
* Use PHP 5.3.x&lt;br /&gt;
* Use PHP 5.4.x (much faster than PHP 5.3.x)&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=427</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=427"/>
		<updated>2025-10-04T12:07:21Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ANN - Artificial Neural Network for PHP ==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the steps to implement the ANN source code to your project.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
The latest implementation requires a php environment running &#039;&#039;&#039;PHP 8.2&#039;&#039;&#039; or above.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* [[Download]] the source code&lt;br /&gt;
&lt;br /&gt;
* Checking integrity&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;md5sum ann230*&lt;br /&gt;
&lt;br /&gt;
* Unpack the source code&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;tar -xzf ann230.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Copy the directory ANN to your library directory of your project.&lt;br /&gt;
&lt;br /&gt;
* Including to your source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; as phar library (supported as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;phar://ann230.phar.gz&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Learn to use the library. Have a look to chapter [[Examples]].&lt;br /&gt;
&lt;br /&gt;
* For further information e.g. about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Performance issues ==&lt;br /&gt;
&lt;br /&gt;
* Install Zend Optimizer (PHP version before 5.3.0)&lt;br /&gt;
* Do not use any debugger module like xdebug&lt;br /&gt;
* Do not use any profiling tool&lt;br /&gt;
* Do not set &amp;quot;max_execution_time = 0&amp;quot; in your php.ini or .htaccess file&lt;br /&gt;
* Running PHP on Linux console use &amp;quot;php -d max_execution_time=60 neural.php&amp;quot;&lt;br /&gt;
* Run implicit ini_set() call to set &amp;quot;max_execution_time&amp;quot; by runtime&lt;br /&gt;
* Use PHP 5.3.x&lt;br /&gt;
* Use PHP 5.4.x (much faster than PHP 5.3.x)&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=426</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=426"/>
		<updated>2025-10-04T12:06:47Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ANN - Artificial Neural Network for PHP ==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the steps to implement the ANN source code to your project.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
The latest implementation requires a php environment running &#039;&#039;&#039;PHP 5.4.x&#039;&#039;&#039; or above. If using the client-server mechanism of the network class, the &#039;&#039;&#039;curl extension&#039;&#039;&#039; should be available on the client host which connects to an ANN server. If using class &#039;&#039;ANN_NetworkGraph&#039;&#039; &#039;&#039;&#039;GD library with png support&#039;&#039;&#039; should be installed.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* [[Download]] the source code&lt;br /&gt;
&lt;br /&gt;
* Checking integrity&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;md5sum ann230*&lt;br /&gt;
&lt;br /&gt;
* Unpack the source code&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;tar -xzf ann230.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Copy the directory ANN to your library directory of your project.&lt;br /&gt;
&lt;br /&gt;
* Including to your source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; as phar library (supported as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;phar://ann230.phar.gz&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Learn to use the library. Have a look to chapter [[Examples]].&lt;br /&gt;
&lt;br /&gt;
* For further information e.g. about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Performance issues ==&lt;br /&gt;
&lt;br /&gt;
* Install Zend Optimizer (PHP version before 5.3.0)&lt;br /&gt;
* Do not use any debugger module like xdebug&lt;br /&gt;
* Do not use any profiling tool&lt;br /&gt;
* Do not set &amp;quot;max_execution_time = 0&amp;quot; in your php.ini or .htaccess file&lt;br /&gt;
* Running PHP on Linux console use &amp;quot;php -d max_execution_time=60 neural.php&amp;quot;&lt;br /&gt;
* Run implicit ini_set() call to set &amp;quot;max_execution_time&amp;quot; by runtime&lt;br /&gt;
* Use PHP 5.3.x&lt;br /&gt;
* Use PHP 5.4.x (much faster than PHP 5.3.x)&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Logical_XOR_function&amp;diff=425</id>
		<title>Logical XOR function</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Logical_XOR_function&amp;diff=425"/>
		<updated>2025-10-04T12:04:22Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Training */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FAQ ==&lt;br /&gt;
&lt;br /&gt;
For information about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Training ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objNetwork = Network::loadFromFile(&#039;xor.dat&#039;);&lt;br /&gt;
} catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    $objNetwork = new Network();&lt;br /&gt;
&lt;br /&gt;
    $objValues = new Values();&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;train()&lt;br /&gt;
        -&amp;gt;input(0, 0)&lt;br /&gt;
        -&amp;gt;output(0)&lt;br /&gt;
        -&amp;gt;input(0, 1)&lt;br /&gt;
        -&amp;gt;output(1)&lt;br /&gt;
        -&amp;gt;input(1, 0)&lt;br /&gt;
        -&amp;gt;output(1)&lt;br /&gt;
        -&amp;gt;input(1, 1)&lt;br /&gt;
        -&amp;gt;output(0);&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;saveToFile(&#039;values_xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objValues = Values::loadFromFile(&#039;values_xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
$boolTrained = $objNetwork-&amp;gt;train();&lt;br /&gt;
&lt;br /&gt;
print ($boolTrained) ? &#039;Network trained&#039; : &#039;Network not trained completely. Please re-run the script&#039;;&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;saveToFile(&#039;xor.dat&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using trained network ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objNetwork = Network::loadFromFile(&#039;xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    die(&#039;Network not found&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objValues = Values::loadFromFile(&#039;values_xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objValues-&amp;gt;input(0, 1)&lt;br /&gt;
    -&amp;gt; // input values appending the loaded ones&lt;br /&gt;
input(1, 1)&lt;br /&gt;
    -&amp;gt;input(1, 0)&lt;br /&gt;
    -&amp;gt;input(0, 0)&lt;br /&gt;
    -&amp;gt;input(0, 1)&lt;br /&gt;
    -&amp;gt;input(1, 1);&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
print_r($objNetwork-&amp;gt;getOutputs());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Logical_XOR_function&amp;diff=424</id>
		<title>Logical XOR function</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Logical_XOR_function&amp;diff=424"/>
		<updated>2025-10-04T12:04:09Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Using trained network */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FAQ ==&lt;br /&gt;
&lt;br /&gt;
For information about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Training ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once &#039;../ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objNetwork = Network::loadFromFile(&#039;xor.dat&#039;);&lt;br /&gt;
} catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    $objNetwork = new Network();&lt;br /&gt;
&lt;br /&gt;
    $objValues = new Values();&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;train()&lt;br /&gt;
        -&amp;gt;input(0, 0)&lt;br /&gt;
        -&amp;gt;output(0)&lt;br /&gt;
        -&amp;gt;input(0, 1)&lt;br /&gt;
        -&amp;gt;output(1)&lt;br /&gt;
        -&amp;gt;input(1, 0)&lt;br /&gt;
        -&amp;gt;output(1)&lt;br /&gt;
        -&amp;gt;input(1, 1)&lt;br /&gt;
        -&amp;gt;output(0);&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;saveToFile(&#039;values_xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objValues = Values::loadFromFile(&#039;values_xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
$boolTrained = $objNetwork-&amp;gt;train();&lt;br /&gt;
&lt;br /&gt;
print ($boolTrained) ? &#039;Network trained&#039; : &#039;Network not trained completely. Please re-run the script&#039;;&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;saveToFile(&#039;xor.dat&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using trained network ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objNetwork = Network::loadFromFile(&#039;xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    die(&#039;Network not found&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objValues = Values::loadFromFile(&#039;values_xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objValues-&amp;gt;input(0, 1)&lt;br /&gt;
    -&amp;gt; // input values appending the loaded ones&lt;br /&gt;
input(1, 1)&lt;br /&gt;
    -&amp;gt;input(1, 0)&lt;br /&gt;
    -&amp;gt;input(0, 0)&lt;br /&gt;
    -&amp;gt;input(0, 1)&lt;br /&gt;
    -&amp;gt;input(1, 1);&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
print_r($objNetwork-&amp;gt;getOutputs());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Logical_XOR_function&amp;diff=423</id>
		<title>Logical XOR function</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Logical_XOR_function&amp;diff=423"/>
		<updated>2025-10-04T12:03:02Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Training */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FAQ ==&lt;br /&gt;
&lt;br /&gt;
For information about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Training ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once &#039;../ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objNetwork = Network::loadFromFile(&#039;xor.dat&#039;);&lt;br /&gt;
} catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    $objNetwork = new Network();&lt;br /&gt;
&lt;br /&gt;
    $objValues = new Values();&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;train()&lt;br /&gt;
        -&amp;gt;input(0, 0)&lt;br /&gt;
        -&amp;gt;output(0)&lt;br /&gt;
        -&amp;gt;input(0, 1)&lt;br /&gt;
        -&amp;gt;output(1)&lt;br /&gt;
        -&amp;gt;input(1, 0)&lt;br /&gt;
        -&amp;gt;output(1)&lt;br /&gt;
        -&amp;gt;input(1, 1)&lt;br /&gt;
        -&amp;gt;output(0);&lt;br /&gt;
&lt;br /&gt;
    $objValues-&amp;gt;saveToFile(&#039;values_xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
    $objValues = Values::loadFromFile(&#039;values_xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch (Exception $e)&lt;br /&gt;
{&lt;br /&gt;
    die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
$boolTrained = $objNetwork-&amp;gt;train();&lt;br /&gt;
&lt;br /&gt;
print ($boolTrained) ? &#039;Network trained&#039; : &#039;Network not trained completely. Please re-run the script&#039;;&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;saveToFile(&#039;xor.dat&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using trained network ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
use ANN\Values;&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
  $objNetwork = Network::loadFromFile(&#039;xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch(Exception $e)&lt;br /&gt;
{&lt;br /&gt;
  die(&#039;Network not found&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
  $objValues = Values::loadFromFile(&#039;values_xor.dat&#039;);&lt;br /&gt;
}&lt;br /&gt;
catch(Exception $e)&lt;br /&gt;
{&lt;br /&gt;
  die(&#039;Loading of values failed&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$objValues-&amp;gt;input(0, 1)  // input values appending the loaded ones&lt;br /&gt;
          -&amp;gt;input(1, 1)&lt;br /&gt;
          -&amp;gt;input(1, 0)&lt;br /&gt;
          -&amp;gt;input(0, 0)&lt;br /&gt;
          -&amp;gt;input(0, 1)&lt;br /&gt;
          -&amp;gt;input(1, 1);&lt;br /&gt;
&lt;br /&gt;
$objNetwork-&amp;gt;setValues($objValues);&lt;br /&gt;
&lt;br /&gt;
print_r($objNetwork-&amp;gt;getOutputs());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=422</id>
		<title>Examples</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=422"/>
		<updated>2025-10-04T11:58:39Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Input Support Classes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Logical Functions ==&lt;br /&gt;
&lt;br /&gt;
Training an artificial neural network to learn logical functions is just interesting in learning the use of such a network, but not for practical use. The only interesting thing behind learning the XOR function is that in history of development of neural networks it was figured out the XOR function cannot be learned by just one neuron. But in the past it was quite difficult mathematically to find a solution to connect a few neurons together.&lt;br /&gt;
&lt;br /&gt;
* [[logical XOR function]]&lt;br /&gt;
* logical OR function&lt;br /&gt;
* logical AND function&lt;br /&gt;
&lt;br /&gt;
== Prediction ==&lt;br /&gt;
&lt;br /&gt;
One benefit of multilayer perceptron is the possibility of prediction.&lt;br /&gt;
&lt;br /&gt;
* [[Selling Icecreams]]&lt;br /&gt;
* [[Lottery]]&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=421</id>
		<title>Examples</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=421"/>
		<updated>2025-10-04T11:57:48Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Several functions of ANN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Logical Functions ==&lt;br /&gt;
&lt;br /&gt;
Training an artificial neural network to learn logical functions is just interesting in learning the use of such a network, but not for practical use. The only interesting thing behind learning the XOR function is that in history of development of neural networks it was figured out the XOR function cannot be learned by just one neuron. But in the past it was quite difficult mathematically to find a solution to connect a few neurons together.&lt;br /&gt;
&lt;br /&gt;
* [[logical XOR function]]&lt;br /&gt;
* logical OR function&lt;br /&gt;
* logical AND function&lt;br /&gt;
&lt;br /&gt;
== Prediction ==&lt;br /&gt;
&lt;br /&gt;
One benefit of multilayer perceptron is the possibility of prediction.&lt;br /&gt;
&lt;br /&gt;
* [[Selling Icecreams]]&lt;br /&gt;
* [[Lottery]]&lt;br /&gt;
&lt;br /&gt;
== Input Support Classes ==&lt;br /&gt;
&lt;br /&gt;
* [[Using date input support class]]&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=420</id>
		<title>Examples</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=420"/>
		<updated>2025-10-04T11:57:36Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Optimization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Logical Functions ==&lt;br /&gt;
&lt;br /&gt;
Training an artificial neural network to learn logical functions is just interesting in learning the use of such a network, but not for practical use. The only interesting thing behind learning the XOR function is that in history of development of neural networks it was figured out the XOR function cannot be learned by just one neuron. But in the past it was quite difficult mathematically to find a solution to connect a few neurons together.&lt;br /&gt;
&lt;br /&gt;
* [[logical XOR function]]&lt;br /&gt;
* logical OR function&lt;br /&gt;
* logical AND function&lt;br /&gt;
&lt;br /&gt;
== Prediction ==&lt;br /&gt;
&lt;br /&gt;
One benefit of multilayer perceptron is the possibility of prediction.&lt;br /&gt;
&lt;br /&gt;
* [[Selling Icecreams]]&lt;br /&gt;
* [[Lottery]]&lt;br /&gt;
&lt;br /&gt;
== Input Support Classes ==&lt;br /&gt;
&lt;br /&gt;
* [[Using date input support class]]&lt;br /&gt;
&lt;br /&gt;
== Several functions of ANN ==&lt;br /&gt;
&lt;br /&gt;
* [[Visual network topoloy]]&lt;br /&gt;
* [[Logging network weights]]&lt;br /&gt;
* [[Client-Server model]]&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=419</id>
		<title>Examples</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=419"/>
		<updated>2025-10-04T11:57:26Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Prediction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Logical Functions ==&lt;br /&gt;
&lt;br /&gt;
Training an artificial neural network to learn logical functions is just interesting in learning the use of such a network, but not for practical use. The only interesting thing behind learning the XOR function is that in history of development of neural networks it was figured out the XOR function cannot be learned by just one neuron. But in the past it was quite difficult mathematically to find a solution to connect a few neurons together.&lt;br /&gt;
&lt;br /&gt;
* [[logical XOR function]]&lt;br /&gt;
* logical OR function&lt;br /&gt;
* logical AND function&lt;br /&gt;
&lt;br /&gt;
== Prediction ==&lt;br /&gt;
&lt;br /&gt;
One benefit of multilayer perceptron is the possibility of prediction.&lt;br /&gt;
&lt;br /&gt;
* [[Selling Icecreams]]&lt;br /&gt;
* [[Lottery]]&lt;br /&gt;
&lt;br /&gt;
== Input Support Classes ==&lt;br /&gt;
&lt;br /&gt;
* [[Using date input support class]]&lt;br /&gt;
&lt;br /&gt;
== Optimization ==&lt;br /&gt;
&lt;br /&gt;
* [[Internet routing decision]]&lt;br /&gt;
&lt;br /&gt;
== Several functions of ANN ==&lt;br /&gt;
&lt;br /&gt;
* [[Visual network topoloy]]&lt;br /&gt;
* [[Logging network weights]]&lt;br /&gt;
* [[Client-Server model]]&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=418</id>
		<title>Examples</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=418"/>
		<updated>2025-10-04T11:57:10Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Classification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Logical Functions ==&lt;br /&gt;
&lt;br /&gt;
Training an artificial neural network to learn logical functions is just interesting in learning the use of such a network, but not for practical use. The only interesting thing behind learning the XOR function is that in history of development of neural networks it was figured out the XOR function cannot be learned by just one neuron. But in the past it was quite difficult mathematically to find a solution to connect a few neurons together.&lt;br /&gt;
&lt;br /&gt;
* [[logical XOR function]]&lt;br /&gt;
* logical OR function&lt;br /&gt;
* logical AND function&lt;br /&gt;
&lt;br /&gt;
== Prediction ==&lt;br /&gt;
&lt;br /&gt;
One benefit of multilayer perceptron is the possibility of prediction.&lt;br /&gt;
&lt;br /&gt;
* [[Selling Icecreams]]&lt;br /&gt;
* [[Daily power consumption]]&lt;br /&gt;
* [[Lottery]]&lt;br /&gt;
&lt;br /&gt;
== Input Support Classes ==&lt;br /&gt;
&lt;br /&gt;
* [[Using date input support class]]&lt;br /&gt;
&lt;br /&gt;
== Optimization ==&lt;br /&gt;
&lt;br /&gt;
* [[Internet routing decision]]&lt;br /&gt;
&lt;br /&gt;
== Several functions of ANN ==&lt;br /&gt;
&lt;br /&gt;
* [[Visual network topoloy]]&lt;br /&gt;
* [[Logging network weights]]&lt;br /&gt;
* [[Client-Server model]]&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=417</id>
		<title>Examples</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Examples&amp;diff=417"/>
		<updated>2025-10-04T11:57:00Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Strings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Logical Functions ==&lt;br /&gt;
&lt;br /&gt;
Training an artificial neural network to learn logical functions is just interesting in learning the use of such a network, but not for practical use. The only interesting thing behind learning the XOR function is that in history of development of neural networks it was figured out the XOR function cannot be learned by just one neuron. But in the past it was quite difficult mathematically to find a solution to connect a few neurons together.&lt;br /&gt;
&lt;br /&gt;
* [[logical XOR function]]&lt;br /&gt;
* logical OR function&lt;br /&gt;
* logical AND function&lt;br /&gt;
&lt;br /&gt;
== Prediction ==&lt;br /&gt;
&lt;br /&gt;
One benefit of multilayer perceptron is the possibility of prediction.&lt;br /&gt;
&lt;br /&gt;
* [[Selling Icecreams]]&lt;br /&gt;
* [[Daily power consumption]]&lt;br /&gt;
* [[Lottery]]&lt;br /&gt;
&lt;br /&gt;
== Classification ==&lt;br /&gt;
&lt;br /&gt;
* [[Detection of language with classification]]&lt;br /&gt;
&lt;br /&gt;
== Input Support Classes ==&lt;br /&gt;
&lt;br /&gt;
* [[Using date input support class]]&lt;br /&gt;
&lt;br /&gt;
== Optimization ==&lt;br /&gt;
&lt;br /&gt;
* [[Internet routing decision]]&lt;br /&gt;
&lt;br /&gt;
== Several functions of ANN ==&lt;br /&gt;
&lt;br /&gt;
* [[Visual network topoloy]]&lt;br /&gt;
* [[Logging network weights]]&lt;br /&gt;
* [[Client-Server model]]&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=416</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=416"/>
		<updated>2025-10-04T11:56:14Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Versions and Change-Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Ratingen - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 3.0.0 by Thomas Wien&#039;&#039;&#039; (2025-10-04) [[Download]]&lt;br /&gt;
 &lt;br /&gt;
 * Full rework of all PHP scripts&lt;br /&gt;
 * Remaining functioniality reduced to fundamentaly function of neural network only&lt;br /&gt;
 * Phar support removed&lt;br /&gt;
 * PHP 8.2 is required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13)&lt;br /&gt;
 &lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
* PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12)&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Copyright&amp;diff=415</id>
		<title>Copyright</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Copyright&amp;diff=415"/>
		<updated>2025-10-04T11:52:45Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The copyright conditions are included in the source files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
https://opensource.org/license/BSD-2-Clause&lt;br /&gt;
&lt;br /&gt;
The BSD 2-Clause License&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2002, Eddy Young&lt;br /&gt;
Copyright (c) 2007 - 2025, Thomas Wien&lt;br /&gt;
All rights reserved.&lt;br /&gt;
 &lt;br /&gt;
Redistribution and use in source and binary forms, with or without&lt;br /&gt;
modification, are permitted provided that the following conditions&lt;br /&gt;
are met:&lt;br /&gt;
&lt;br /&gt;
1. Redistributions of source code must retain the above copyright&lt;br /&gt;
notice, this list of conditions and the following disclaimer.&lt;br /&gt;
&lt;br /&gt;
2. Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
documentation and/or other materials provided with the distribution.&lt;br /&gt;
&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
&amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS&lt;br /&gt;
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,&lt;br /&gt;
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;br /&gt;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER&lt;br /&gt;
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT&lt;br /&gt;
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN&lt;br /&gt;
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE&lt;br /&gt;
POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Copyright&amp;diff=414</id>
		<title>Copyright</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Copyright&amp;diff=414"/>
		<updated>2025-10-04T11:52:28Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The copyright conditions are included in the source files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
https://opensource.org/license/BSD-2-Clause&lt;br /&gt;
&lt;br /&gt;
The BSD 2-Clause License&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2002, Eddy Young&lt;br /&gt;
Copyright (c) 2007 - 2020, Thomas Wien&lt;br /&gt;
All rights reserved.&lt;br /&gt;
 &lt;br /&gt;
Redistribution and use in source and binary forms, with or without&lt;br /&gt;
modification, are permitted provided that the following conditions&lt;br /&gt;
are met:&lt;br /&gt;
&lt;br /&gt;
1. Redistributions of source code must retain the above copyright&lt;br /&gt;
notice, this list of conditions and the following disclaimer.&lt;br /&gt;
&lt;br /&gt;
2. Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
documentation and/or other materials provided with the distribution.&lt;br /&gt;
&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
&amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS&lt;br /&gt;
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,&lt;br /&gt;
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;br /&gt;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER&lt;br /&gt;
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT&lt;br /&gt;
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN&lt;br /&gt;
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE&lt;br /&gt;
POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=413</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=413"/>
		<updated>2025-10-04T11:49:54Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Ratingen - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 3.0.0 by Thomas Wien&#039;&#039;&#039; (2025-10-04) [[Download]]&lt;br /&gt;
 &lt;br /&gt;
 * Full rework of all PHP scripts&lt;br /&gt;
 * Remaining functioniality reduced to fundamentaly function of neural network only&lt;br /&gt;
 * PHP 8.2 is required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13)&lt;br /&gt;
 &lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
* PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12)&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=412</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=412"/>
		<updated>2025-10-04T11:47:25Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Version 2.3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 3.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;3.0.0&#039;&#039;&#039; (2025-10-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 8.2 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann300.tar.gz Download - ann300.tar.gz] (9 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 04079880c93b155e1183905a680024de  ann300.tar.gz&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=411</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=411"/>
		<updated>2025-10-04T11:42:47Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Versions and Change-Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Ratingen - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Output type detection (linear or binary)&lt;br /&gt;
* Logging (weights and network errors)&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Graphical network topology as PNG image&lt;br /&gt;
* Displaying network details&lt;br /&gt;
* String association&lt;br /&gt;
* Classification&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 3.0.0 by Thomas Wien&#039;&#039;&#039; (2025-10-04) [[Download]]&lt;br /&gt;
 &lt;br /&gt;
 * Full rework of all PHP scripts&lt;br /&gt;
 * Remaining functioniality reduced to fundamentaly function of neural network only&lt;br /&gt;
 * PHP 8.2 is required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13)&lt;br /&gt;
 &lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
* PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12)&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
&lt;br /&gt;
* More Examples&lt;br /&gt;
* Performance check depending on host system&lt;br /&gt;
* Wiki: More details to installation and use&lt;br /&gt;
* PHPDoc: More details to documentation&lt;br /&gt;
* Improving license agreement of source code&lt;br /&gt;
* Adding error codes to exceptions&lt;br /&gt;
* Exception if network error does not reach minimum&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Copyright&amp;diff=409</id>
		<title>Copyright</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Copyright&amp;diff=409"/>
		<updated>2020-11-27T14:06:08Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The copyright conditions are included in the source files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
 * Artificial Neural Network for PHP&lt;br /&gt;
 *&lt;br /&gt;
 * For updates and changes visit the project page at https://ann.thwien.de/&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * &amp;lt;b&amp;gt;LICENCE&amp;lt;/b&amp;gt;&lt;br /&gt;
 *&lt;br /&gt;
 * The BSD 2-Clause License&lt;br /&gt;
 *&lt;br /&gt;
 * http://opensource.org/licenses/bsd-license.php&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright (c) 2002, Eddy Young&lt;br /&gt;
 * Copyright (c) 2007 - 2020, Thomas Wien&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 * 1. Redistributions of source code must retain the above copyright&lt;br /&gt;
 * notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 * 2. Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 * notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 * documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
 * &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS&lt;br /&gt;
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,&lt;br /&gt;
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;br /&gt;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER&lt;br /&gt;
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT&lt;br /&gt;
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN&lt;br /&gt;
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE&lt;br /&gt;
 * POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 *&lt;br /&gt;
 * @author Eddy Young &amp;lt;jeyoung_at_priscimon_dot_com&amp;gt;&lt;br /&gt;
 * @author Thomas Wien &amp;lt;info_at_thwien_dot_de&amp;gt;&lt;br /&gt;
 * @version ANN Version 1.0 by Eddy Young&lt;br /&gt;
 * @version ANN Version &amp;gt;=2.x by Thomas Wien&lt;br /&gt;
 * @copyright Copyright (c) 2002 by Eddy Young&lt;br /&gt;
 * @copyright Copyright (c) 2007-2020 by Thomas Wien&lt;br /&gt;
 * @package ANN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=408</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=408"/>
		<updated>2020-11-27T11:08:32Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Ratingen - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Output type detection (linear or binary)&lt;br /&gt;
* Logging (weights and network errors)&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Graphical network topology as PNG image&lt;br /&gt;
* Displaying network details&lt;br /&gt;
* String association&lt;br /&gt;
* Classification&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.x.x by Thomas Wien&#039;&#039;&#039; (Development)&lt;br /&gt;
&lt;br /&gt;
* Image matrix support&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13) [[Download]]&lt;br /&gt;
  &lt;br /&gt;
 * Using traits for performance reasons&lt;br /&gt;
 * Checking php version for compatibility with ANN library&lt;br /&gt;
 * PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
&lt;br /&gt;
* More Examples&lt;br /&gt;
* Performance check depending on host system&lt;br /&gt;
* Wiki: More details to installation and use&lt;br /&gt;
* PHPDoc: More details to documentation&lt;br /&gt;
* Improving license agreement of source code&lt;br /&gt;
* Adding error codes to exceptions&lt;br /&gt;
* Exception if network error does not reach minimum&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=407</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=407"/>
		<updated>2020-11-27T11:07:22Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Düsseldorf - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Output type detection (linear or binary)&lt;br /&gt;
* Logging (weights and network errors)&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Graphical network topology as PNG image&lt;br /&gt;
* Displaying network details&lt;br /&gt;
* String association&lt;br /&gt;
* Classification&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.x.x by Thomas Wien&#039;&#039;&#039; (Development)&lt;br /&gt;
&lt;br /&gt;
* Image matrix support&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13) [[Download]]&lt;br /&gt;
  &lt;br /&gt;
 * Using traits for performance reasons&lt;br /&gt;
 * Checking php version for compatibility with ANN library&lt;br /&gt;
 * PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
&lt;br /&gt;
* More Examples&lt;br /&gt;
* Performance check depending on host system&lt;br /&gt;
* Wiki: More details to installation and use&lt;br /&gt;
* PHPDoc: More details to documentation&lt;br /&gt;
* Improving license agreement of source code&lt;br /&gt;
* Adding error codes to exceptions&lt;br /&gt;
* Exception if network error does not reach minimum&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=406</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=406"/>
		<updated>2020-11-27T10:41:44Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=405</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=405"/>
		<updated>2020-11-27T10:41:22Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP 5.x. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Development&amp;diff=404</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Development&amp;diff=404"/>
		<updated>2020-11-27T10:39:29Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to participate on the development of ANN implementation for PHP. Please feel free to clone this git repository, do enhancements on the code and send your repository or patch files to info_at_thwien_dot_de.&lt;br /&gt;
&lt;br /&gt;
== Public ANN Git Repository ==&lt;br /&gt;
&lt;br /&gt;
 # git clone https://ann.thwien.de/ann.git&lt;br /&gt;
&lt;br /&gt;
== Rules for developers ==&lt;br /&gt;
&lt;br /&gt;
* Write code, don&#039;t copy it from others&lt;br /&gt;
&lt;br /&gt;
* Consider the licence&lt;br /&gt;
&lt;br /&gt;
* Use the same code standard&lt;br /&gt;
&lt;br /&gt;
* Test your code changes before sending patches&lt;br /&gt;
&lt;br /&gt;
* Include examples to the example directory&lt;br /&gt;
&lt;br /&gt;
* Use php doc comments&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Development&amp;diff=403</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Development&amp;diff=403"/>
		<updated>2020-11-27T10:39:15Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Public ANN Git Repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP 5.x&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to participate on the development of ANN implementation for PHP 5.x. Please feel free to clone this git repository, do enhancements on the code and send your repository or patch files to info_at_thwien_dot_de.&lt;br /&gt;
&lt;br /&gt;
== Public ANN Git Repository ==&lt;br /&gt;
&lt;br /&gt;
 # git clone https://ann.thwien.de/ann.git&lt;br /&gt;
&lt;br /&gt;
== Rules for developers ==&lt;br /&gt;
&lt;br /&gt;
* Write code, don&#039;t copy it from others&lt;br /&gt;
&lt;br /&gt;
* Consider the licence&lt;br /&gt;
&lt;br /&gt;
* Use the same code standard&lt;br /&gt;
&lt;br /&gt;
* Test your code changes before sending patches&lt;br /&gt;
&lt;br /&gt;
* Include examples to the example directory&lt;br /&gt;
&lt;br /&gt;
* Use php doc comments&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Development&amp;diff=402</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Development&amp;diff=402"/>
		<updated>2020-11-27T10:39:03Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Public ANN Git Repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP 5.x&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to participate on the development of ANN implementation for PHP 5.x. Please feel free to clone this git repository, do enhancements on the code and send your repository or patch files to info_at_thwien_dot_de.&lt;br /&gt;
&lt;br /&gt;
== Public ANN Git Repository ==&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;git clone https://ann.thwien.de/ann.git&lt;br /&gt;
&lt;br /&gt;
== Rules for developers ==&lt;br /&gt;
&lt;br /&gt;
* Write code, don&#039;t copy it from others&lt;br /&gt;
&lt;br /&gt;
* Consider the licence&lt;br /&gt;
&lt;br /&gt;
* Use the same code standard&lt;br /&gt;
&lt;br /&gt;
* Test your code changes before sending patches&lt;br /&gt;
&lt;br /&gt;
* Include examples to the example directory&lt;br /&gt;
&lt;br /&gt;
* Use php doc comments&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=401</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=401"/>
		<updated>2020-11-27T10:34:54Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ANN - Artificial Neural Network for PHP ==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the steps to implement the ANN source code to your project.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
The latest implementation requires a php environment running &#039;&#039;&#039;PHP 5.4.x&#039;&#039;&#039; or above. If using the client-server mechanism of the network class, the &#039;&#039;&#039;curl extension&#039;&#039;&#039; should be available on the client host which connects to an ANN server. If using class &#039;&#039;ANN_NetworkGraph&#039;&#039; &#039;&#039;&#039;GD library with png support&#039;&#039;&#039; should be installed.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* [[Download]] the source code&lt;br /&gt;
&lt;br /&gt;
* Checking integrity&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;md5sum ann230*&lt;br /&gt;
&lt;br /&gt;
* Unpack the source code&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;tar -xzf ann230.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Copy the directory ANN to your library directory of your project.&lt;br /&gt;
&lt;br /&gt;
* Including to your source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; as phar library (supported as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;phar://ann230.phar.gz&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Learn to use the library. Have a look to chapter [[Examples]].&lt;br /&gt;
&lt;br /&gt;
* For further information e.g. about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Performance issues ==&lt;br /&gt;
&lt;br /&gt;
* Install Zend Optimizer (PHP version before 5.3.0)&lt;br /&gt;
* Do not use any debugger module like xdebug&lt;br /&gt;
* Do not use any profiling tool&lt;br /&gt;
* Do not set &amp;quot;max_execution_time = 0&amp;quot; in your php.ini or .htaccess file&lt;br /&gt;
* Running PHP on Linux console use &amp;quot;php -d max_execution_time=60 neural.php&amp;quot;&lt;br /&gt;
* Run implicit ini_set() call to set &amp;quot;max_execution_time&amp;quot; by runtime&lt;br /&gt;
* Use PHP 5.3.x&lt;br /&gt;
* Use PHP 5.4.x (much faster than PHP 5.3.x)&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=400</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=400"/>
		<updated>2020-11-27T10:34:12Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP 5.x&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Düsseldorf - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Output type detection (linear or binary)&lt;br /&gt;
* Logging (weights and network errors)&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Graphical network topology as PNG image&lt;br /&gt;
* Displaying network details&lt;br /&gt;
* String association&lt;br /&gt;
* Classification&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.x.x by Thomas Wien&#039;&#039;&#039; (Development)&lt;br /&gt;
&lt;br /&gt;
* Image matrix support&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13) [[Download]]&lt;br /&gt;
  &lt;br /&gt;
 * Using traits for performance reasons&lt;br /&gt;
 * Checking php version for compatibility with ANN library&lt;br /&gt;
 * PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
&lt;br /&gt;
* More Examples&lt;br /&gt;
* Performance check depending on host system&lt;br /&gt;
* Wiki: More details to installation and use&lt;br /&gt;
* PHPDoc: More details to documentation&lt;br /&gt;
* Improving license agreement of source code&lt;br /&gt;
* Adding error codes to exceptions&lt;br /&gt;
* Exception if network error does not reach minimum&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=399</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=399"/>
		<updated>2020-11-27T08:16:15Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP 5.x&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP 5.x. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=398</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=398"/>
		<updated>2020-11-25T14:24:45Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP 5.x&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP 5.x&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([https://thwien.de thwien.de] - Düsseldorf - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Output type detection (linear or binary)&lt;br /&gt;
* Logging (weights and network errors)&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Graphical network topology as PNG image&lt;br /&gt;
* Displaying network details&lt;br /&gt;
* String association&lt;br /&gt;
* Classification&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.x.x by Thomas Wien&#039;&#039;&#039; (Development)&lt;br /&gt;
&lt;br /&gt;
* Image matrix support&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13) [[Download]]&lt;br /&gt;
  &lt;br /&gt;
 * Using traits for performance reasons&lt;br /&gt;
 * Checking php version for compatibility with ANN library&lt;br /&gt;
 * PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
&lt;br /&gt;
* More Examples&lt;br /&gt;
* Performance check depending on host system&lt;br /&gt;
* Wiki: More details to installation and use&lt;br /&gt;
* PHPDoc: More details to documentation&lt;br /&gt;
* Improving license agreement of source code&lt;br /&gt;
* Adding error codes to exceptions&lt;br /&gt;
* Exception if network error does not reach minimum&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=397</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=397"/>
		<updated>2020-11-25T14:23:55Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP 5.x&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP 5.x&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([http://thwien.de thwien.de] - Düsseldorf - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Output type detection (linear or binary)&lt;br /&gt;
* Logging (weights and network errors)&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Graphical network topology as PNG image&lt;br /&gt;
* Displaying network details&lt;br /&gt;
* String association&lt;br /&gt;
* Classification&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.x.x by Thomas Wien&#039;&#039;&#039; (Development)&lt;br /&gt;
&lt;br /&gt;
* Image matrix support&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13) [[Download]]&lt;br /&gt;
  &lt;br /&gt;
 * Using traits for performance reasons&lt;br /&gt;
 * Checking php version for compatibility with ANN library&lt;br /&gt;
 * PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
&lt;br /&gt;
* More Examples&lt;br /&gt;
* Performance check depending on host system&lt;br /&gt;
* Wiki: More details to installation and use&lt;br /&gt;
* PHPDoc: More details to documentation&lt;br /&gt;
* Improving license agreement of source code&lt;br /&gt;
* Adding error codes to exceptions&lt;br /&gt;
* Exception if network error does not reach minimum&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=396</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=396"/>
		<updated>2012-12-13T21:23:12Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ANN - Artificial Neural Network for PHP 5.x ==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the steps to implement the ANN source code to your project.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
The latest implementation requires a php environment running &#039;&#039;&#039;PHP 5.4.x&#039;&#039;&#039; or above. If using the client-server mechanism of the network class, the &#039;&#039;&#039;curl extension&#039;&#039;&#039; should be available on the client host which connects to an ANN server. If using class &#039;&#039;ANN_NetworkGraph&#039;&#039; &#039;&#039;&#039;GD library with png support&#039;&#039;&#039; should be installed.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* [[Download]] the source code&lt;br /&gt;
&lt;br /&gt;
* Checking integrity&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;md5sum ann230*&lt;br /&gt;
&lt;br /&gt;
* Unpack the source code&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;tar -xzf ann230.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Copy the directory ANN to your library directory of your project.&lt;br /&gt;
&lt;br /&gt;
* Including to your source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; as phar library (supported as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;phar://ann230.phar.gz&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Learn to use the library. Have a look to chapter [[Examples]].&lt;br /&gt;
&lt;br /&gt;
* For further information e.g. about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Performance issues ==&lt;br /&gt;
&lt;br /&gt;
* Install Zend Optimizer (PHP version before 5.3.0)&lt;br /&gt;
* Do not use any debugger module like xdebug&lt;br /&gt;
* Do not use any profiling tool&lt;br /&gt;
* Do not set &amp;quot;max_execution_time = 0&amp;quot; in your php.ini or .htaccess file&lt;br /&gt;
* Running PHP on Linux console use &amp;quot;php -d max_execution_time=60 neural.php&amp;quot;&lt;br /&gt;
* Run implicit ini_set() call to set &amp;quot;max_execution_time&amp;quot; by runtime&lt;br /&gt;
* Use PHP 5.3.x&lt;br /&gt;
* Use PHP 5.4.x (much faster than PHP 5.3.x)&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=395</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Installation&amp;diff=395"/>
		<updated>2012-12-13T21:22:42Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ANN - Artificial Neural Network for PHP 5.x ==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the steps to implement the ANN source code to your project.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
The latest implementation requires a php environment running &#039;&#039;&#039;PHP 5.3.x&#039;&#039;&#039; or above. If using the client-server mechanism of the network class, the &#039;&#039;&#039;curl extension&#039;&#039;&#039; should be available on the client host which connects to an ANN server. If using class &#039;&#039;ANN_NetworkGraph&#039;&#039; &#039;&#039;&#039;GD library with png support&#039;&#039;&#039; should be installed.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
* [[Download]] the source code&lt;br /&gt;
&lt;br /&gt;
* Checking integrity&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;md5sum ann230*&lt;br /&gt;
&lt;br /&gt;
* Unpack the source code&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;tar -xzf ann230.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Copy the directory ANN to your library directory of your project.&lt;br /&gt;
&lt;br /&gt;
* Including to your source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;ANN/Loader.php&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;or&#039;&#039;&#039; as phar library (supported as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
require_once &#039;phar://ann230.phar.gz&#039;;&lt;br /&gt;
&lt;br /&gt;
use ANN\Network;&lt;br /&gt;
&lt;br /&gt;
$objNetwork = new Network;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Learn to use the library. Have a look to chapter [[Examples]].&lt;br /&gt;
&lt;br /&gt;
* For further information e.g. about dat-files have a view to the [[FAQ]] page.&lt;br /&gt;
&lt;br /&gt;
== Performance issues ==&lt;br /&gt;
&lt;br /&gt;
* Install Zend Optimizer (PHP version before 5.3.0)&lt;br /&gt;
* Do not use any debugger module like xdebug&lt;br /&gt;
* Do not use any profiling tool&lt;br /&gt;
* Do not set &amp;quot;max_execution_time = 0&amp;quot; in your php.ini or .htaccess file&lt;br /&gt;
* Running PHP on Linux console use &amp;quot;php -d max_execution_time=60 neural.php&amp;quot;&lt;br /&gt;
* Run implicit ini_set() call to set &amp;quot;max_execution_time&amp;quot; by runtime&lt;br /&gt;
* Use PHP 5.3.x&lt;br /&gt;
* Use PHP 5.4.x (much faster than PHP 5.3.x)&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=394</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Main_Page&amp;diff=394"/>
		<updated>2012-12-13T21:21:42Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Versions and Change-Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP 5.x&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project realizes a &#039;&#039;&#039;neural network topology called &#039;&#039;[[multilayer perceptron]]&#039;&#039; for PHP 5.x&#039;&#039;&#039; environments. The source code is based on a work by &#039;&#039;Eddy Young&#039;&#039; in 2002. Several improvements and changes on this implementation are done by &#039;&#039;Thomas Wien&#039;&#039; ([http://thwien.de thwien.de] - Düsseldorf - Germany) since 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]].&lt;br /&gt;
&lt;br /&gt;
== Donate ==&lt;br /&gt;
&lt;br /&gt;
If you want to support the current and future development&lt;br /&gt;
of this project I would appreciate if you donate a freely amount&lt;br /&gt;
via paypal.&lt;br /&gt;
&lt;br /&gt;
[http://ann.thwien.de/donate/donate.html Donate now]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [[Neural Networks]]&lt;br /&gt;
* [[Multilayer perceptron|Multilayer Perceptron]]&lt;br /&gt;
* [[Download]]&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Examples]]&lt;br /&gt;
* [[Development]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Copyright]]&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Output type detection (linear or binary)&lt;br /&gt;
* Logging (weights and network errors)&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Graphical network topology as PNG image&lt;br /&gt;
* Displaying network details&lt;br /&gt;
* String association&lt;br /&gt;
* Classification&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
== Versions and Change-Log ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.x.x by Thomas Wien&#039;&#039;&#039; (Development)&lt;br /&gt;
&lt;br /&gt;
* Image matrix support&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Version 2.3.0 by Thomas Wien&#039;&#039;&#039; (2012-12-13) [[Download]]&lt;br /&gt;
  &lt;br /&gt;
 * Using traits for performance reasons&lt;br /&gt;
 * Checking php version for compatibility with ANN library&lt;br /&gt;
 * PHP 5.4.x or above&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.3 by Thomas Wien&#039;&#039;&#039; (2012-12-12) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.2 by Thomas Wien&#039;&#039;&#039; (2011-07-04)&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.1 by Thomas Wien&#039;&#039;&#039; (2011-06-15)&lt;br /&gt;
 &lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.2.0 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
 &lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.7 by Thomas Wien&#039;&#039;&#039; (2011-06-15) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.6 by Thomas Wien&#039;&#039;&#039; (2011-06-01)&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.5 by Thomas Wien&#039;&#039;&#039; (2011-05-24)&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.4 by Thomas Wien&#039;&#039;&#039; (2011-05-23)&lt;br /&gt;
 &lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.3 by Thomas Wien&#039;&#039;&#039; (2010-01-06)&lt;br /&gt;
 &lt;br /&gt;
* Date input support class &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.2 by Thomas Wien&#039;&#039;&#039; (2009-12-26)&lt;br /&gt;
 &lt;br /&gt;
* Classification support&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.1 by Thomas Wien&#039;&#039;&#039; (2009-12-23)&lt;br /&gt;
&lt;br /&gt;
* String association support&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.1.0 by Thomas Wien&#039;&#039;&#039; (2009-12-22)&lt;br /&gt;
&lt;br /&gt;
* Checking parameter counts on ANN_Values::input() and ANN_Values::output()&lt;br /&gt;
* Removing protected method ANN_Neuron::getInputs()&lt;br /&gt;
* Fixing bug: Error tolerance calculation in ANN_Network::isTrainingComplete()&lt;br /&gt;
* Switching to Git version control&lt;br /&gt;
* Moving all experimental code into branch&lt;br /&gt;
* Removing all experimental code from master branch (due to performance and future development)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.7 by Thomas Wien&#039;&#039;&#039; (2009-01-01) [[Download]]&lt;br /&gt;
&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.6 by Thomas Wien&#039;&#039;&#039; (2008-12-18)&lt;br /&gt;
&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.5 by Thomas Wien&#039;&#039;&#039; (2008-12-16)&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparison in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.4 by Thomas Wien&#039;&#039;&#039; (2008-01-27)&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.3 by Thomas Wien&#039;&#039;&#039; (2008-01-17)&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
* Fixing bug: runtime error on call of setMomentum()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.2 by Thomas Wien&#039;&#039;&#039; (2008-01-14)&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.1 by Thomas Wien&#039;&#039;&#039; (2008-01-06)&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 2.0.0 by Thomas Wien&#039;&#039;&#039; (2007-12-17)&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Hyperbolic tangent transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Version 1.0 by Eddy Young&#039;&#039;&#039; (2002)&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;br /&gt;
&lt;br /&gt;
== Todo ==&lt;br /&gt;
&lt;br /&gt;
* More Examples&lt;br /&gt;
* Performance check depending on host system&lt;br /&gt;
* Wiki: More details to installation and use&lt;br /&gt;
* PHPDoc: More details to documentation&lt;br /&gt;
* Improving license agreement of source code&lt;br /&gt;
* Adding error codes to exceptions&lt;br /&gt;
* Exception if network error does not reach minimum&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=393</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Download&amp;diff=393"/>
		<updated>2012-12-13T21:16:06Z</updated>

		<summary type="html">&lt;p&gt;Thwien: /* Version 2.3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;ANN - Artificial Neural Network for PHP 5.x&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page offers to download the current stable version of ANN implementation for PHP 5.x. Go to [[Installation]] section to get information about requirements and on how to implement these PHP libraries into your project.&lt;br /&gt;
&lt;br /&gt;
== Version 2.3 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.3.0&#039;&#039;&#039; (2012-12-13) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.4 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann230.zip Download - ann230.zip] (47 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann230.tar.gz Download - ann230.tar.gz] (21 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann230.phar.gz Download (Phar) - ann230.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fd5d3ded9761dd745621ab06460e3e21  ann230.phar.gz&lt;br /&gt;
* dd1e604c7e16e666a98dc51f6dc38507  ann230.tar.gz&lt;br /&gt;
* 3ee3741ee830d4a5a095f122e5858ae6  ann230.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann230.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Using traits for performance reasons&lt;br /&gt;
* Checking php version for compatibility with ANN library&lt;br /&gt;
&lt;br /&gt;
== Version 2.2 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.3&#039;&#039;&#039; (2012-12-12) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.3 or above)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann223.zip Download - ann223.zip] (47 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann223.tar.gz Download - ann223.tar.gz] (21 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann223.phar.gz Download (Phar) - ann223.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 6e4f100df2d3bbb99753b224c1348fdf  ann223.phar.gz&lt;br /&gt;
* ae3ad1cc66f8803c7bf863702f90ba67  ann223.tar.gz&lt;br /&gt;
* 8e6f6de3b747f42450d27fff70aa2514  ann223.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann223.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugfix: Division by zero if training time below one second&lt;br /&gt;
* Adding php version and sapi interface to network information&lt;br /&gt;
* Test running on PHP 5.4&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.2&#039;&#039;&#039; (2011-07-04) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann222.zip Download - ann222.zip] (46 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann222.tar.gz Download - ann222.tar.gz] (21 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann222.phar.gz Download (Phar) - ann222.phar.gz] (22 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 20b3123169666f0b245b172126e5da96  ann222.phar.gz&lt;br /&gt;
* 56b3bad2cf8850aa13f10a5c4ae38cd9  ann222.tar.gz&lt;br /&gt;
* 2a12e0b8baf89135db35ae5aee1d1fe7  ann222.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann222.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Redesign of network details&lt;br /&gt;
* Considering cpu limits for calculation of network execution time&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.1&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann221.zip Download - ann221.zip] (39 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann221.tar.gz Download - ann221.tar.gz] (19 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann221.phar.gz Download (Phar) - ann221.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 7a366b40c05bb142f56412696dc86592  ann221.phar.gz&lt;br /&gt;
* f892a716b59ba77bc073d4e48a3c70e7  ann221.tar.gz&lt;br /&gt;
* 1311691e545ee549bfc4a67a8211ea4f  ann221.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann221.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
* Using Interface called \ANN\InterfaceLoadable to make easier decision of loadable objects.&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann220.zip Download - ann220.zip] (39 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann220.tar.gz Download - ann220.tar.gz] (19 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann220.phar.gz Download (Phar) - ann220.phar.gz] (21 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* d25f4b817539cdcb404b93c61fe76f47  ann220.phar.gz&lt;br /&gt;
* 6599d8bbbdeae02b0ffbbf5d7cb3b426  ann220.tar.gz&lt;br /&gt;
* a79e15ecd9a81038982affd4f8a1cc51  ann220.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann220.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction of namespaces as of PHP 5.3&lt;br /&gt;
* Dynamic learning rate&lt;br /&gt;
* \ANN\Network::setLearningRate() is protected now&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
== Version 2.1 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.7&#039;&#039;&#039; (2011-06-15) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;color: #FF8C00&amp;quot;&amp;gt;(PHP 5.2)&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann217.zip Download - ann217.zip] (37 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann217.tar.gz Download - ann217.tar.gz] (18 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann217.phar.gz Download (Phar) - ann217.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* e57c2dd57f657e75c6b69dec816ebbb3  ann217.phar.gz&lt;br /&gt;
* 6dea816713cb3e8b8e9dccf581dc9cf7  ann217.tar.gz&lt;br /&gt;
* 15a6080e0376c7aae18d079f44d3f28c  ann217.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann217.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in binary networks&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.6&#039;&#039;&#039; (2011-06-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann216.zip Download - ann216.zip] (37 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann216.tar.gz Download - ann216.tar.gz] (18 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann216.phar.gz Download (Phar) - ann216.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 4acbdb23bed762438a0c06c4f23f6a38  ann216.phar.gz&lt;br /&gt;
* 7cb3a1b1e17e1272dc02fa7fcbc7d964  ann216.tar.gz&lt;br /&gt;
* 9168c4f62693225d9a2785d7a72524de  ann216.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann216.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bug fix: Wrong output type detection in some circumstances&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.5&#039;&#039;&#039; (2011-05-24) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann215.zip Download - ann215.zip] (37 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann215.tar.gz Download - ann215.tar.gz] (18 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann215.phar.gz Download (Phar) - ann215.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 96ad7c92b08a44d89fd4a7a17b463a9e  ann215.phar.gz&lt;br /&gt;
* 88ffad519058881f90eb24b4363d0d94  ann215.tar.gz&lt;br /&gt;
* 2d293c4f92d0d17f3e0e5ba8e79e3dbd  ann215.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann215.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dividing method ANN_Math::random() in ANN_Math::randomDelta() and ANN_Math::randomWeight()&lt;br /&gt;
* Better implementation of printing network details including __invoke() und __toString() converting&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.4&#039;&#039;&#039; (2011-05-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann214.zip Download - ann214.zip] (36 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann214.tar.gz Download - ann214.tar.gz] (18 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann214.phar.gz Download (Phar) - ann214.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 998d377de058b959c5ad83141b168e5e  ann214.phar.gz&lt;br /&gt;
* 12b7a028021477555613d533410526e0  ann214.tar.gz&lt;br /&gt;
* e6762c5f667e1710ac7efdca70cb7c41  ann214.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann214.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Better calculation of remaining time of running the network&lt;br /&gt;
* Fixing bug: generating random delta not correct&lt;br /&gt;
* Adding momentum value&lt;br /&gt;
* Simplified ANN_Neuron::adjustWeights()&lt;br /&gt;
* Remove possible wrong calculation in ANN_Neuron::adjustWeights() on linear networks&lt;br /&gt;
* Simplify ANN_Layer::calculateHiddenDeltas()&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.3&#039;&#039;&#039; (2010-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann213.zip Download - ann213.zip] (34 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann213.tar.gz Download - ann213.tar.gz] (18 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann213.phar.gz Download (Phar) - ann213.phar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* ae8c5eb97e1984c836df53cfffb06294  ann213.phar.gz&lt;br /&gt;
* 0a375525863eb3f9663b64655bb7b637  ann213.tar.gz&lt;br /&gt;
* 981709c7da085a17994cb71ee603f9e0  ann213.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann213.phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to date input support class&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.2&#039;&#039;&#039; (2009-12-26) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann212.zip Download - ann212.zip] (31 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann212.tar.gz Download - ann212.tar.gz] (16 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann212.phar.gz Download (Phar) - ann212.phar.gz] (18 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MD5 finger prints&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 0a0e350a56941a99bbf55537978e0bdb  ann212.phar.gz&lt;br /&gt;
* 3cdea04e49898cdb2f0ab66864d4b4ad  ann212.tar.gz&lt;br /&gt;
* 8e63c8b89293ee43337bfac0ee4fa67c  ann212.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/phpdoc/ Documentation (HTML online)]&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann212_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to classification with ANN_Classification (Example see: [[Detection of language with classification]])&lt;br /&gt;
* Phar support (as of PHP 5.3.0)&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.1&#039;&#039;&#039; (2009-12-23) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann211.zip Download - ann211.zip] (29 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann211.tar.gz Download - ann211.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann211_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Introduction to string association with ANN_StringValue (Example see: [[Detection of language]])&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2009-12-22) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann210.zip Download - ann210.zip] (27 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann210.tar.gz Download - ann210.tar.gz] (15 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann210_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Default learning rate to 0.7&lt;br /&gt;
* Code changes referring profiling&lt;br /&gt;
* Change printing network details formatting&lt;br /&gt;
* Remove trailing php end tag&lt;br /&gt;
* Code-Standard&lt;br /&gt;
* Remove momentum, precision and unused math methods&lt;br /&gt;
* Remove unused methods&lt;br /&gt;
* Remove error weight derivative&lt;br /&gt;
* Removing weight decay&lt;br /&gt;
* Removing dynamic learning rate&lt;br /&gt;
* Removing algorithm switches and experimental algorithms. Just standard back propagation algorithm used&lt;br /&gt;
* Renaming class file names&lt;br /&gt;
* Learning rate and delta using&lt;br /&gt;
* Using learning rate&lt;br /&gt;
* Rounding of network error value&lt;br /&gt;
&lt;br /&gt;
== Version 2.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.7&#039;&#039;&#039; (2009-01-01) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #2E8B57&amp;quot;&amp;gt;stable&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann207.zip Download - ann207.zip] (32 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann207.tar.gz Download - ann207.tar.gz] (34 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann207_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Removing protected method ANN_Neuron::setOutput()&lt;br /&gt;
* Removing protected unused method ANN_Layer::getInputs()&lt;br /&gt;
* Removing protected unused property ANN_Layer::$arrInputs&lt;br /&gt;
* More detailed exceptions to ANN_Filesystem::saveToFile()&lt;br /&gt;
* Different distribution of activation calls across the layers&lt;br /&gt;
* Different adjustments in ANN_Neuron::adjustWeights() depending on output type&lt;br /&gt;
* Removing static local variables from ANN_Network::getNextIndexInputsToTrain()&lt;br /&gt;
* Increasing math precision&lt;br /&gt;
* Using class constants for output types (increasing performance)&lt;br /&gt;
* Fixing bug: ANN_Neuron::getOutput() is float and not array &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.6&#039;&#039;&#039; (2008-12-18) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann206.zip Download - ann206.zip] (30 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann206.tar.gz Download - ann206.tar.gz] (33 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann206_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
* Printing network details of output differences to their desired values&lt;br /&gt;
* Complete rewritten code standard of variables&lt;br /&gt;
* New class ANN_Values for defining input and output values&lt;br /&gt;
* Code examples to phpdoc&lt;br /&gt;
* Internal math precision defaults to 5 &lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.5&#039;&#039;&#039; (2008-12-16) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann205.zip Download - ann205.zip] (28 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann205.tar.gz Download - ann205.tar.gz] (31 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann205_phpdoc.zip Documentation (HTML download, zip compressed)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Adjustable output error tolerance between 0 and 10 per cent&lt;br /&gt;
* Internal rounding of floats for performance issues&lt;br /&gt;
* Loading class for all ANN classes (SPL autoload)&lt;br /&gt;
* Renaming filename of ANN_Maths class&lt;br /&gt;
* Improving code standard&lt;br /&gt;
* Fixing bug: Comparision in ANN_InputValue and ANN_OutputValue&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.4&#039;&#039;&#039; (2008-01-27) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann204.zip Download - ann204.zip] (25 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann204.tar.gz Download - ann204.tar.gz] (29 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Weight decay&lt;br /&gt;
* QuickProp algorithm (experimental)&lt;br /&gt;
* RProp algorithm (experimental)&lt;br /&gt;
* Linear saturated activation function (experimental)&lt;br /&gt;
* Individual learning rate algorithm (experimental)&lt;br /&gt;
* Reducing of overfitting (no training if input pattern produces desired output)&lt;br /&gt;
* Increasing performance on activation&lt;br /&gt;
* Increasing performance on testing all patterns to their desired outputs&lt;br /&gt;
* Increasing performance on calculating hidden deltas&lt;br /&gt;
* Increasing performance by defining layer relation by construction&lt;br /&gt;
* More details to printNetwork()&lt;br /&gt;
* Fixing bug: learning rate is not part of saved delta value&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.3&#039;&#039;&#039; (2008-01-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann203.zip Download - ann203.zip] (22 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann203.tar.gz Download - ann203.tar.gz] (20 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Support for dynamic learning rate&lt;br /&gt;
* Automatic epoch determination&lt;br /&gt;
* Automatic output type detection&lt;br /&gt;
* Shuffling input patterns each epoch instead of randomized pattern access&lt;br /&gt;
* Bug fix: runtime error on call of setMomentum()&lt;br /&gt;
* Logging of network errors&lt;br /&gt;
* Logging on each epoch instead of each training step&lt;br /&gt;
* Avoiding distributed internal calls of setMomentum() and setLearningRate()&lt;br /&gt;
* Extending display of network details&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.2&#039;&#039;&#039; (2008-01-14) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann202.zip Download - ann202.zip] (21 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann202.tar.gz Download - ann202.tar.gz] (17 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-Server model for distributed applications&lt;br /&gt;
* Calculating total network error for csv logging&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.1&#039;&#039;&#039; (2008-01-06) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann201.zip Download - ann201.zip] (19 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann201.tar.gz Download - ann201.tar.gz] (16 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Separation of classes to several files&lt;br /&gt;
* Version control by Subversion&lt;br /&gt;
* Performance issues&lt;br /&gt;
* Graphical output of neural network topology&lt;br /&gt;
* Logging of weights to csv file&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2007-12-17) &#039;&#039;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #CD5C5C&amp;quot;&amp;gt;obsolete&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Thomas Wien&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann200.zip Download - ann200.zip] (6 KB)&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann200.tar.gz Download - ann200.tar.gz] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* PHP 5.x support&lt;br /&gt;
* PHPDoc documentation&lt;br /&gt;
* Momentum support&lt;br /&gt;
* Avoiding network overfitting&lt;br /&gt;
* Linear / binary output&lt;br /&gt;
* ANN_InputValue + ANN_OutputValue classes&lt;br /&gt;
* Exceptions&lt;br /&gt;
* Threshold function&lt;br /&gt;
* Tangens hyperbolicus transfer function&lt;br /&gt;
* Several performance issues&lt;br /&gt;
* Avoiding array_keys() &amp;amp; srand() due to performance&lt;br /&gt;
* Changes in saving and loading network&lt;br /&gt;
* Printing network details to browser&lt;br /&gt;
* Fixing bug: initializing inputs to all hidden layers&lt;br /&gt;
* Fixing bug: training for first hidden layer was skipped&lt;br /&gt;
&lt;br /&gt;
== Version 1.0 ==&lt;br /&gt;
&lt;br /&gt;
=== Version &#039;&#039;&#039;1.0&#039;&#039;&#039; (2002) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Author: Eddy Young&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://ann.thwien.de/downloads/ann100.zip Download - ann100.zip] (6 KB)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change-Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Initial version&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
	<entry>
		<id>https://ann.thwien.de/wiki/index.php?title=Copyright&amp;diff=392</id>
		<title>Copyright</title>
		<link rel="alternate" type="text/html" href="https://ann.thwien.de/wiki/index.php?title=Copyright&amp;diff=392"/>
		<updated>2012-12-12T21:23:20Z</updated>

		<summary type="html">&lt;p&gt;Thwien: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The copyright conditions are included in the source files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 * Artificial Neural Network - Version 2.2&lt;br /&gt;
 *&lt;br /&gt;
 * For updates and changes visit the project page at http://ann.thwien.de/&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * &amp;lt;b&amp;gt;LICENCE&amp;lt;/b&amp;gt;&lt;br /&gt;
 *&lt;br /&gt;
 * The BSD 2-Clause License&lt;br /&gt;
 *&lt;br /&gt;
 * http://opensource.org/licenses/bsd-license.php&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright (c) 2002, Eddy Young&lt;br /&gt;
 * Copyright (c) 2007 - 2012, Thomas Wien&lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 * 1. Redistributions of source code must retain the above copyright&lt;br /&gt;
 * notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 * 2. Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 * notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 * documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
 * &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS&lt;br /&gt;
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE&lt;br /&gt;
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,&lt;br /&gt;
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;br /&gt;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER&lt;br /&gt;
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT&lt;br /&gt;
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN&lt;br /&gt;
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE&lt;br /&gt;
 * POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 *&lt;br /&gt;
 * @author Eddy Young &amp;lt;jeyoung_at_priscimon_dot_com&amp;gt;&lt;br /&gt;
 * @author Thomas Wien &amp;lt;info_at_thwien_dot_de&amp;gt;&lt;br /&gt;
 * @version ANN Version 1.0 by Eddy Young&lt;br /&gt;
 * @version ANN Version 2.2 by Thomas Wien&lt;br /&gt;
 * @copyright Copyright (c) 2002 by Eddy Young&lt;br /&gt;
 * @copyright Copyright (c) 2007-2012 by Thomas Wien&lt;br /&gt;
 * @package ANN&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thwien</name></author>
	</entry>
</feed>