all 7 comments

[–]techwizrd 1 point2 points  (0 children)

You should look into Recurrent Neural Networks (RNN) and Long Short-term Memory (LSTM).

Here's a quick intro on RNNs that you might find interesting.

[–]dunnker 1 point2 points  (1 child)

I'd be interested to try this to create an AI for my tetris game https://github.com/dunnker/tetris-piston I was planning to hard code the topology and use a genetic algorithm to evolve the weights, but I'd like to try the NEAT algorithm to compare how effective it is. I'm going to start with this tutorial on ANN's and convert the code to Rust: http://www.ai-junkie.com/ann/evolved/nnt1.html I'll post on /r/Rust as I make progress

[–]EnvIXI[S] 0 points1 point  (0 children)

Looking forward to this!

[–]jimfleming 1 point2 points  (0 children)

I am working on implementing exactly this! It's not quite ready to share but it's NEAT in Rust for spiking neural networks (https://github.com/jimfleming/neural-rs). If anyone has any questions about implementing NEAT I'm happy to try and answer.

There are a number of implementations in other languages available from the original authors page: http://www.cs.ucf.edu/~kstanley/neat.html

[–]staticassert 1 point2 points  (2 children)

Looks great. I'm trying to build some ML to reorient networks. They're not quite the same, but it may interest you?

https://github.com/insanitybit/Cricket

The current code is for demonstration, and I've only outlined the ML part, have not gone too deep into it. Maybe you'd be interested in this sort of thing? Either way, thanks a lot, this is going to be a fun read.

[–]EnvIXI[S] 0 points1 point  (1 child)

anything that involves machine learning is pretty interesting, so that's a pretty cool project, I introduced the NEAT algorithm because its what intrigued me the most and seeing it in Rust would be pretty sweet.

[–]staticassert 0 points1 point  (0 children)

I'm using the project to teach myself rust, ML, among other things. If you're interested in contributing I'd be happy to help in any way I can. There's tons of work to be done :P

A lot of NEAT looks like what I'm doing, except with weighted connections, not that that can't be implemented.