{"id":18305758,"url":"https://github.com/yaricom/goeshyperneat","last_synced_at":"2025-04-05T16:32:45.854Z","repository":{"id":38801411,"uuid":"156368858","full_name":"yaricom/goESHyperNEAT","owner":"yaricom","description":"The implementation of evolvable-substrate HyperNEAT algorithm in GO language. ES-HyperNEAT is an extension of the original HyperNEAT method for evolving large-scale artificial neural networks.","archived":false,"fork":false,"pushed_at":"2024-12-09T17:17:46.000Z","size":1419,"stargazers_count":16,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-21T06:51:20.215Z","etag":null,"topics":["artifical-neural-network","explainable-artificial-intelligence","golang","hyperneat","modular-ai","neat","neuroevolution","reinforcement-learning","unsupervised-learning-algorithms","unsupervised-machine-learning"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yaricom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"io42"}},"created_at":"2018-11-06T10:49:42.000Z","updated_at":"2024-12-01T17:31:20.000Z","dependencies_parsed_at":"2024-06-19T06:16:41.118Z","dependency_job_id":"fd53d932-25cd-4b3a-a010-e2ef8166ea7b","html_url":"https://github.com/yaricom/goESHyperNEAT","commit_stats":{"total_commits":90,"total_committers":2,"mean_commits":45.0,"dds":"0.022222222222222254","last_synced_commit":"b2990c3ecb7402db55bfdf7147f839dd61e15192"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaricom%2FgoESHyperNEAT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaricom%2FgoESHyperNEAT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaricom%2FgoESHyperNEAT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaricom%2FgoESHyperNEAT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yaricom","download_url":"https://codeload.github.com/yaricom/goESHyperNEAT/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247366913,"owners_count":20927619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artifical-neural-network","explainable-artificial-intelligence","golang","hyperneat","modular-ai","neat","neuroevolution","reinforcement-learning","unsupervised-learning-algorithms","unsupervised-machine-learning"],"created_at":"2024-11-05T15:35:37.392Z","updated_at":"2025-04-05T16:32:45.078Z","avatar_url":"https://github.com/yaricom.png","language":"Go","funding_links":["https://patreon.com/io42"],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/yaricom/goESHyperNEAT.svg?branch=master)](https://travis-ci.org/yaricom/goESHyperNEAT) [![GoDoc](https://godoc.org/github.com/yaricom/goESHyperNEAT?status.svg)](https://godoc.org/github.com/yaricom/goESHyperNEAT)\n\n## Overview\nThe implementation of Evolvable-Substrate HyperNEAT (ES-HyperNEAT) algorithm in GO language. The [ES-HyperNEAT][5] is an extension of the original\n[HyperNEAT][4] method for evolving large-scale artificial neural networks using method of [NeuroEvolution of Augmenting Topologies][6].\n\nThe **HyperNEAT** is hypercube-based extension of NEAT allowing to encode ANNs in the substrate with specific geometric topology and with significant\nnumber of neural units. In this respect it is similar to it's biological equivalent (brain) which also has defined topological\nstructure with groups of neural units in different regions performing different cognitive tasks. Another definitive trait\nof HyperNEAT is usage of [Compositional Pattern Producing Network][7] (**CPPN**) to generate patterns of weights between network nodes\nwhich allows to compactly encode huge neural network structures.\n\nWith all the power of **HyperNEAT** algorithm is has major drawback that neural nodes must be manually placed into substrate\nby human before algorithm execution to reflect inherent geometrical topology of the task in hand. And with increased number\nof hidden nodes in the network this leads to the reduction of algorithm efficiency due to lack of ability to estimate where\nCPPN generated patterns will have intersection with manually seeded nodes.\n\nThis drawback is addressed by **Evolved-Substrate HyperNEAT** method which allows to encode hidden nodes position\nin the substrate in the CPPN generated patterns of weights. As additional benefit of this the substrate is able to evolve it's\ngeometrical topology during training, producing regions with varying neural density, thereby providing a kind of scaffolding\nfor situating cognitive structures in the biological brains.\n\n\n## References:\n\n1. The original C++ NEAT implementation created by Kenneth O. Stanley, see: [NEAT][1]\n2. Other NEAT implementations can be found at [NEAT Software Catalog][2]\n3. [The ES-HyperNEAT Users Page][3]\n4. Kenneth O. Stanley, David D’Ambrosio and Jason Gauci, [A Hypercube-Based Indirect Encoding for Evolving Large-Scale Neural Networks][4], Artificial Life journal 15(2), Cambridge, MA: MIT Press, 2009\n5. Sebastian Risi, Kenneth O. Stanley, [An Enhanced Hypercube-Based Encoding for Evolving the Placement, Density and Connectivity of Neurons][5], Artificial Life journal, Cambridge, MA: MIT Press, 2012\n6. Kenneth O. Stanley, [Ph.D. Dissertation: EFFICIENT EVOLUTION OF NEURAL NETWORKS THROUGH COMPLEXIFICATION][6], Department of Computer Sciences, The University of Texas at Austin, Technical Report~AI-TR-04–39, August 2004\n7. Kenneth O. Stanley, [Compositional Pattern Producing Networks: A Novel Abstraction of Development][7], Genetic Programming and Evolvable Machines, Special Issue on Developmental Systems, New York, NY: Springer, 2007\n8. Iaroslav Omelianenko, [The GoLang NEAT implementation][8], GitHub, 2018\n\nThis source code maintained and managed by [Iaroslav Omelianenko][9]\n\n\n[1]:http://www.cs.ucf.edu/~kstanley/neat.html\n[2]:http://eplex.cs.ucf.edu/neat_software/\n[3]:http://eplex.cs.ucf.edu/hyperNEATpage/HyperNEAT.html\n[4]:http://eplex.cs.ucf.edu/papers/stanley_alife09.pdf\n[5]:https://www.mitpressjournals.org/doi/pdfplus/10.1162/ARTL_a_00071\n[6]:http://nn.cs.utexas.edu/keyword?stanley:phd04\n[7]:http://eplex.cs.ucf.edu/papers/stanley_gpem07.pdf\n[8]:https://github.com/yaricom/goNEAT\n[9]:https://io42.space","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaricom%2Fgoeshyperneat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyaricom%2Fgoeshyperneat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaricom%2Fgoeshyperneat/lists"}