David Ha (hardmaru) writes visual, interactive explanations of neural networks, evolution strategies, and neuroevolution, with demos like slime volleyball.
Commenters praise the work as excellent and graphical, pointing to the slime volleyball and evolution strategies posts; the author calls it educational rather than cutting edge.
haha, I like that.
Yeah, there are a total of 140 weights/biases in the neural network. This stuff is not bleeding edge - just taking techniques popular in academia and industry many years ago to make a fun game mainly for my own educational purpose. Basically recently I saw a lot of work on AI's playing ATARI games and wanted to learn reinforcement learning techniques, and the best way to learn is to build a game!
I put up a description of this sketch here:
http://blog.otoro.net/2015/03/28/neural-slime-volleyball/
Basically, the agent's brain consists of 7 neurons (compared to 250k for an ant), which are connected to all the inputs. The inputs are the game states, like locations of agents and ball, and velocities. Each neuron is also connected to each other.
The first 3 neurons control the neuron's output (it's motor function), like whether it hits the up, forward, or back button - the same function that a human game player can do.
The other 4 neurons are hidden neurons responsible for any deeper computation or thought, and are fed back into the input with a time lag.
I also graphed a slice of the neural network in real time on the screen just for effect. More for design effect if anything.
Here's a great blog from one of the residents - http://blog.otoro.net/
It's like any other (research) endeavor with lots of people involved. Some of us share research interests and so we coalesce around efforts towards accomplishing those goals. Out of the resident pool, I am currently working with Ryan and have had some discussions about collaborations with Denny and Justin.
Take a look at the published papers though and you can see some pairs that have flourished by working in the same vicinity.
This is a wonderful part of the program though, and it doesn't stop with the Residents. Brain is such a great place for ideas to meld and for people to come together to collaborate; it's designed to encourage that.
I love this work by Otoro / David Ha.
For come context, this uses a technique called CPPN’s (compositional pattern producing networks), where the inputs are (x, y, sqrt(x^2 + y^2)) and then there are several neural net layers with different activation functions and randomly initialized weights. It actually resembles the optical physics of light reflecting through glass (which explains why it sometimes looks like light reflecting through a gem).
Otoro wrote some great blog posts on this:
https://blog.otoro.net/2016/03/25/generating-abstract-patterns-with-tensorflow/
https://blog.otoro.net/2015/07/31/neurogram/
https://github.com/hardmaru/cppn-tensorflow
Topology generation is the new feature engineering, it's not surprising that it's the first thing to go. I have been working on advancing HyperNEAT for this very purpose - similar, but not quite the same to: http://blog.otoro.net/2016/05/07/backprop-neat/
Non-sequential and non-hierarchical topologies are the future, and it makes sense that machines should generate them
It's just an abbreviated form of the nets shown in this (http://blog.otoro.net/wp-content/uploads/sites/2/2015/03/slime_rnn.png) image, the 3 outputs displayed correspond to the "forward", "jump", and "back" on the diagram, and the 8 inputs correspond to the agents' and balls' position vectors (which you can see in the Brain() code in slimevolley_pro.js).
Not exactly what you want, but
"Recurrent Net Dreams Up Fake Chinese Characters in Vector Format with TensorFlow" - http://blog.otoro.net/2015/12/28/recurrent-net-dreams-up-fake-chinese-characters-in-vector-format-with-tensorflow/
previous discussion - https://news.ycombinator.com/item?id=10801712