{"id":13413371,"url":"https://github.com/jinyeom/neat","last_synced_at":"2025-03-14T19:32:02.114Z","repository":{"id":57496896,"uuid":"73990000","full_name":"jinyeom/neat","owner":"jinyeom","description":"NEAT (NeuroEvolution of Augmenting Topologies) implemented in Go","archived":true,"fork":false,"pushed_at":"2018-07-04T20:45:55.000Z","size":517,"stargazers_count":71,"open_issues_count":4,"forks_count":13,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-07-31T20:52:16.751Z","etag":null,"topics":["genetic-algorithm","go","neat","neural-network","neuroevolution","recurrent-neural-networks","reinforcement-learning","topologies"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jinyeom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-17T04:23:14.000Z","updated_at":"2024-07-31T01:05:59.000Z","dependencies_parsed_at":"2022-09-13T08:31:57.017Z","dependency_job_id":null,"html_url":"https://github.com/jinyeom/neat","commit_stats":null,"previous_names":["whitewolf-studio/neat"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jinyeom%2Fneat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jinyeom%2Fneat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jinyeom%2Fneat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jinyeom%2Fneat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jinyeom","download_url":"https://codeload.github.com/jinyeom/neat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243635379,"owners_count":20322928,"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":["genetic-algorithm","go","neat","neural-network","neuroevolution","recurrent-neural-networks","reinforcement-learning","topologies"],"created_at":"2024-07-30T20:01:38.807Z","updated_at":"2025-03-14T19:32:01.809Z","avatar_url":"https://github.com/jinyeom.png","language":"Go","readme":"![alt text](https://github.com/jinyeom/neat/blob/master/banner.png \"neat\")\n[![GoDoc](https://godoc.org/github.com/jinyeom/neat?status.svg)](https://godoc.org/github.com/jinyeom/neat)\n[![Go Report Card](https://goreportcard.com/badge/github.com/jinyeom/neat)](https://goreportcard.com/report/github.com/jinyeom/neat)\n[![cover.run go](https://cover.run/go/github.com/jinyeom/neat.svg)](https://cover.run/go/github.com/jinyeom/neat)\n\nCURRENTLY NOT WORKING! There will be a further notice when it's updated.\n\nNEAT (NeuroEvolution of Augmenting Topologies) is a neuroevolution algorithm by \nDr. Kenneth O. Stanley which evolves not only neural networks' weights but also their \ntopologies. This method starts the evolution process with genomes with minimal structure,\nthen complexifies the structure of each genome as it progresses. You can read the original\npaper from [here](http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf).\n\n## Installation\nTo install `neat` run the following:\n\n```bash\n$ go get -u github.com/jinyeom/neat\n```\n\n## Usage\n\nThis NEAT package is as simple as plug and play. All you have to do is to create\na new instance of NEAT, given the configuration from a JSON file, for which the\ntemplate is provided below, and an evaluation method of a neural network, and \nrun.\n\n```json\n{\n\t\"experimentName\": \"XOR Test\",\n\t\"verbose\": true,\n\t\"numInputs\": 3,\n\t\"numOutputs\": 1,\n\t\"fullyConnected\": false,\n\t\"numGenerations\": 50,\n\t\"populationSize\": 100,\n\t\"initFitness\": 9999.0,\n\t\"minimizeFitness\": true,\n\t\"survivalRate\": 0.5,\n\t\"stagnationLimit\": 5,\n\t\"ratePerturb\": 0.2,\n\t\"rateAddNode\": 0.2,\n\t\"rateAddConn\": 0.2,\n\t\"rateMutateChild\": 0.5,\n\t\"distanceThreshold\": 20.0,\n\t\"coeffUnmatching\": 1.0,\n\t\"coeffMatching\": 1.0,\n\t\"cppnActivations\": [],\n}\n```\n\nNow that you have the configuration JSON file is ready as `config.json`, we can\nstart experiment with NEAT. Below is an example XOR experiment.\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\t\"math\"\n\n\t// Import NEAT package after installing the package through\n\t// the instruction provided above.\n\t\"github.com/jinyeom/neat\"\n)\n\nfunc main() {\n\n\t// First, create a new instance of Config from the JSON file created above.\n\t// If there's a file import error, the program will crash.\n\tconfig, err := neat.NewConfigJSON(\"config.json\")\n\tif err != nil{\n\t\tlog.Fatal(err)\n\t}\n\n\t// Then, we can define the evaluation function, which is a type of function\n\t// which takes a neural network, evaluates its performance, and returns some\n\t// score that indicates its performance. This score is essentially a genome's\n\t// fitness score. With the configuration and the evaluation function we\n\t// defined, we can create a new instance of NEAT and start the evolution \n\t// process.\n\tneat.New(config, neat.XORTest()).Run()\n}\n\n```\n\n## License\nThis package is under GNU General Public License.\n","funding_links":[],"categories":["机器学习","Machine Learning","Go","機器學習","\u003cspan id=\"机器学习-machine-learning\"\u003e机器学习 Machine Learning\u003c/span\u003e","Relational Databases"],"sub_categories":["Advanced Console UIs","SQL 查询语句构建库","Search and Analytic Databases","Tools","高級控制台界面","[Tools](#tools-1)","Speech Recognition","检索及分析资料库","\u003cspan id=\"高级控制台用户界面-advanced-console-uis\"\u003e高级控制台用户界面 Advanced Console UIs\u003c/span\u003e","高级控制台界面","交流"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjinyeom%2Fneat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjinyeom%2Fneat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjinyeom%2Fneat/lists"}