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.'"
Huh. (Score:5, Informative)
Probably no one cares, but that's the wrong "queues" there. They mean "cues."
The '90-ties are over (Score:2, Informative)
Why on earth are people still wasting their time on Neural Networks? Sure, they have a catchy name, but everything else about them sucks. Today we have much more robust methods available, e.g. Relevance Vector Machines, etc.
Neuroph look pretty cool (Score:3, Informative)
I've use neural network and genetic programming a few time, in work. Its completely different to normal programming. Instead of understand a problem completely, and write a structured solution to the task. You get a network and try and train it until its output matches what you think the output should be, no programming involved.
Re:Hilarious Overkill (Score:3, Informative)
Me thinks someone was just doing this for entertainment.
Almost certainly, especially since a complete success would just mean they can play video games slightly more efficiently.
This toolkit worked for them, but does using a neural networking toolkit mean that what you produce is a neural network? It looks like the output neurons are doing image matching, and the hidden layer is identifying interesting candidates from a stream. In their environment, interesting candidates are any box that ticks from dim to bright (so they can spot the re-charged state when it gets fully lit).
As described, it sounds more like a pipeline than a network. They use training data, rather than hard-coding target images, but it's not clear to me that the training feedback goes between neurons. It looks like you could do unit testing on the individual neurons, which doesn't describe neural networks as I understand them.
I still think it's a neat tool that they made, but would some AI geek out there like to comment on calling it a neural network?
Re:Hilarious Overkill (Score:1, Informative)
Re:How about NO image recognition? (Score:5, Informative)
Re:Hilarious Overkill (Score:1, Informative)
That's a completely differente approach.
Neural network can detect similar images - the perl solution can detect only binary equivalent images.
They have choosen this solution as a proof of concept, not for speed.
Re:Hilarious Overkill (Score:1, Informative)
Is your application CPU-limited? If so, is it *the* fastest language? Those are the questions one should be asking when picking a programming language.
If your application is limited by the CPU, only the fastest language, C, will do for some routines. You may even consider using assembly or machine-optimized code such as Atlas [sourceforge.net]
If your application isn't limited by the CPU, then development speed is more important than execution speed. A rule of thumb I use is how big is the development team. If there are just a few people, or if the developers work more or less independent of each other, I'd recommend Python.
Java development, in my experience, is more laborious than Python or Ruby. Unless you have big teams of developers who must work close together, I wouldn't recommend Java for anything.
That has nothing to do with how efficient compilers have become in the last years.