Java Program Uses Neural Networks To Monitor Games 100
tr0p writes "Java developers have used the open source Neuroph neural network framework to monitor video game players while they play and then provide helpful situational awareness, such as audio queues when a power-up is ready or on-the-fly macros for combo attacks. The developers have published an article describing many of the technical details of their implementation. 'There are two different types of neural networks used by DotA AutoScript. The first type is a simple binary image classifier. It uses Neuroph's "Multi-Layer Perceptron" class to model a neural network with an input neurons layer, one hidden neurons layer, and an output neurons layer. Exposing an image to the input layer neurons causes the output layer neurons to produce the probability of a match for each of the images it has been trained to identify; one trained image per output neuron.'"
Re:Hilarious Overkill (Score:3, Interesting)
Re:Hilarious Overkill (Score:1, Interesting)
Did you miss the part where some ARM processors can execute Java byte code natively?
Re:Can it.... (Score:2, Interesting)
My program had no capacity to play the game with a different interface than a human. It actually read the values of the pixels on the monitor, processed them through its network, and yielded keystrokes.
It never got very good and eventually I got bored and moved on. I have some ideas for yielding better results that I want to try someday. Here's what happened:
1) Playing on lives didn't work because eventually a network would destroy the boss' offensive capabilities and hide in a corner. The game would never progress.
2) When I tried playing the game on a timer and ranking networks by what level they got to it ended up not moving at all and just shooting forward to destroy some bosses.
3) When I tried ranking by time survived the network would again just destroy the boss' offensive capability and hide.
1 is technically a perfect solution for the fitness criteria that I supplied. 2 and 3 are both examples of local minima where the networks found an early solution that dominated the competition (other networks, not the boss) and thus the gene pool.
Re:How about NO image recognition? (Score:2, Interesting)
Except to do something like that you have to analyze the program code of every game you make a trainer for. I've never done that sort of thing, but it seems scary.
An approach like the one they've outlined can probably be moved from game to game with only parameter tweaks.
That is the true beauty of machine learning :)
Re:Hilarious Overkill (Score:3, Interesting)
The point is that you have no way of determining what training data is "correct" because you don't know anything about what the NN is "looking at".
There also no guarantee that the network will ever converge and if it does there's no way to know if it has converged to a local minimum which isn't the solution rather than a global minimum.