The online racing simulator
The use of Neural Nets in LFS
(14 posts, started )
The use of Neural Nets in LFS
Just a thought -

It would appear to me that during the simulation of a car in a complex environment that there are a great many factors where they could be used, obviously so for the AI cars - (they may well be used already).

Trivia -

A neural net can be trained to map any set of inputs of any range to any given response.

Even in the late Eightees ALVINN, a computer controlled van was trained to stay on the road using a Neural Net with a hidden layer of just 5 Nodes, and an input of 30x32 greyscale pixels. Things have come a long way since.

Application -
I was thinking this may be especially useful for simulating engines - where a mathmatical algorithm may prove a close but oversmooth representation of engine behavior, a Neural Net may be trained to give a the correct outputs of all the simulated factors (power/torque production, fuel consumption, heat ouput, stress on components) by the use of training sets with real telemetary as the target results for the end nodes, and backproporgation of the node connection weights via a readily available algorithm.

Resources -
http://en.wikipedia.org/wiki/Artificial_neural_network
- > Everything you need to know to program one!
I would say NO. I have been learning about neural nets on my university and after programming a few of different types (partialy of course) I can see almost no advantage of such solution over hardprogramming everything in such example as you provided. We know absolutely everything we would like to know about engines and how to simulate them in normal way. Its easier and you have full contol over each aspect of simulation. In neural net you wouldnt be certain about the accuracy of such simulation because learning in most cases is based on probability laws.

Btw I think current AI in LFS is made using neural nets because bots seem to learn how to drive better.

edit:
Neural nets are functioning properly in such situations like analysing something we can not desribe ourselves with mathematic equations. You provided also a good example - it would be extremely hard to hardprogram the 30x32 video screen anyliser to control a car, but is possible with neurals. however you have absolutely no confidence that the net is tought properly and the car wont turn onto oncomming traffic any second.
Quote from himself :I would say NO. I have been learning about neural nets on my university and after programming a few of different types (partialy of course) I can see almost no advantage of such solution over hardprogramming everything in such example as you provided. We know absolutely everything we would like to know about engines and how to simulate them in normal way. Its easier and you have full contol over each aspect of simulation. In neural net you wouldnt be certain about the accuracy of such simulation because learning in most cases is based on probability laws.

Btw I think current AI in LFS is made using neural nets because bots seem to learn how to drive better.

edit:
Neural nets are functioning properly in such situations like analysing something we can not desribe ourselves with mathematic equations. You provided also a good example - it would be extremely hard to hardprogram the 30x32 video screen anyliser to control a car, but is possible with neurals. however you have absolutely no confidence that the net is tought properly and the car wont turn onto oncomming traffic any second.

You could run high speed simulations around the track a few times to train the net properly before the race starts. Would be interesting to see if it works anyway. But for a proper race you'd have to train it not only to go around the track but how to cope with all sorts of encounters with other cars on the track, which seems to me might take a lot of training.
#4 - col
Quote from z3r0c00l :Just a thought -
......
Application -
I was thinking this may be especially useful for simulating engines - where a mathmatical algorithm may prove a close but oversmooth representation of engine behavior, a Neural Net may be trained to give a the correct outputs of all the simulated factors (power/torque production, fuel consumption, heat ouput, stress on components) by the use of training sets with real telemetary as the target results for the end nodes, and backproporgation of the node connection weights via a readily available algorithm.

The thing is that you have to train a net for each system it is trying to understand... for your engine net, there would be little point in basing its training on a simulation (better to just use the sim direct). So you have to get some engines and rig up a whole bunch of sensors to gather data before you can teach the nets....

So, what about when you decide you want to update the xrt becasue the turbo class is unbalanced... you decide to give it an extra 80hp... oh dear, you will have to wire up a new real engine to your test rig and run all your tests to collect data to re-teach your neural net... oops.

Or what about when you want to include very obscure/expensive/unavailable engines ? or what about when you cannot licence real stuff so want to use 'fantasy' engines - build them from scratch?

Unfortunately, you are always going to get into situations where your net doesn't 'understand' what to do... (unless your data collection phase runs many real engines to detructions in all the different ways they can be destroyed )... so its starting to sound more and more like a fancy version of the 'canned effects' approach to sim with an engine based on data tables and all the problems that that brings...

Unfortunately Neural networks are another one of those areas that _can be_ incredibly powerful... so when you first start to understand the basics, you think WOW and get loads of far fetched ideas about how you can apply them to solve all the worlds problems ... as always though, the devil is in the details


Col
NNEts are best for pattern recognition problems, I don't know if they would suit LFS AI. So if they do, lots of time has to be invested in creating an appropiate net and training it.
#6 - col
My understanding is that the OP was suggesting Neural nets to simulate the engines - not for the AI
This was indeed done perhaps ten or fifteen years ago by a company whose name escapes me at the moment. They had a universal automotive/engine calculator for sale that did relatively simple suspension calculations and all sorts of handy things. The last thing I recall them adding to it was an engine simulation that was indeed AI driven, very likely by a neural net. The benefit is that it's lightening fast. The drawback is that in order for it to be accurate you need to hand it a lot of test data as with any ANN, generally. However, that sort of data is no big secret and is easy to come by, so it's not really that far fetched of an idea.

I don't know how well it worked or how accurate it was, but it was extremely fast at finding a result. Just a tiny fraction of a second.
oh yeah? well, MY CPU is a neural net processor. A learning computer.
You have a half-naked man as a computer?

*insert generic joke about joysticks*
Quote from col :My understanding is that the OP was suggesting Neural nets to simulate the engines - not for the AI

totally misunderstood.
neural nets are good for pattern recognition, but terrible at everything else, and they would require way too much cpu power to be useful in lfs.
#12 - col
Quote from evilgeek :neural nets are good for pattern recognition, but terrible at everything else, and they would require way too much cpu power to be useful in lfs.

Yep, you really need to reorganize your 'problem domain' into a 'pattern' that fits with the Neural net approach...

One area where Neural Nets might be very useful for LFS is in the Networking code... as a way of more accurately predicting where a car should be in the event of one or more dropped packets.... or predicting when certain cars are more likely lag and working a little harder on those cars prior to that time

But at the end of the day, you shouldn't try to find a problem for your solution - always be looking for a solution to your problems instead .

I'm sure that Scawen asseses many different options and chooses the best ones depending on many factors. Techniques like Neural nets and fuzzy logic are well known and relatively simple to implement, so I reckon he will at least have considered them in cases where they may be applicable.

Most situations in the context of a complex real time simulation require something much 'cheaper' though
Quote from col :
Quote from evilgeek :neural nets are good for pattern recognition, but terrible at everything else, and they would require way too much cpu power to be useful in lfs.

Yep, you really need to reorganize your 'problem domain' into a 'pattern' that fits with the Neural net approach...

I would have to disagree with this (just the pattern recognition, not the CPU part). You can use them for regression problems, and they ARE regularly used for such problems. Can't really see what would be the issue and why would they be terrible. Versatile as they are, for many problems there are better approaches. I'd say here too.
.
Pattern recognition, statistics, same thing. Rather than doing out a specific math problem you have it learn by experience. If you train a net with enough different encounters, eventually it learns how to react to different situations and come out on top.

The use of Neural Nets in LFS
(14 posts, started )
FGED GREDG RDFGDR GSFDG