What's next after training a network?

Started by
6 comments, last by Adaline 7 years, 4 months ago
Hi,
I am new to this forum, but not quite new to the world of AI. It's been about a year now since I began and so far I have quite understanding of how neural networks are made and function. So far I know how to feedforward, backpropagate, and train the network. Now it seems as I am stuck in the next process. That is, I want to learn how after I have trained a network I can predict the next output based in data that was already learned. Just wondering if anyone can guide me towards the right direction for this. I am familiar with Python and Java, not so much in C.
Mostly, I am looking to learn the next mathematical algorithm in predicting an output. Is statistics involved in this?
Thanks.
Advertisement

You're probably in the wrong place to ask about this because neural networks are very rarely used in games, and you haven't specified your game-related usage anyway.

The good news is that you've already done all the hard work. You should be able to put your data into the network, feed it forward, and the output is your prediction. You don't need anything else.

If that doesn't answer your question, you'll have to provide more details.

What youve described is the basic workings of the Neural Net system.

Usually the bigger effort is matching it to the game mechanism and the AI problem(s) you are seeking the NN to solve for you.

That fisrt includes processing/interpretting of the game state (or sequence of game states) to classify and encode it in a form that works with a NN (as its Input)

Next is what is to be decided by the AI, and what outputs (actions directives) it needs to produce. (decode what the NN produces)

Those things can get quite complex depending on the game specifics (like having inputs for 3+ turns back in a game so that the NN can detect a Trend instead of just a static single-situational analysis (if thats the type of game it is....)

Next, you may have your training system, but what about how you acquire all the training data for that game (which again in complex games can be a monumental task)

You may have to adjust (fiddle with/trial and error) the particular solution NNs (the neuron counts, the layers, even breaking into seperate NNS for different sub problems). You then need some method that PROVES the NN created does (sufficiently) what you want it to.

Then the packaging into an operating game - and testing it with real people (if they are the opponents) who dont always do what you expect .

You may have to revise the capabilities of the AI upward to compete with the opponents (and modify and restart the whole proceess)

One consideration may be optimization - HOW the NN AI is used in the game. Ex- does it need to be run every cycle or can its results be allowed to work for a while - and then part of the logic might be to determine HOW often/when the AI needs to be rerun .

Some optimization methods may make use of cached partial analysis (the encoding part) to cut down on the total AI processing the NN will make use of.

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

You're assuming a lot about the use cases there, when really a neural net could be used for all sorts of simpler tasks that don't require anything more complex than training it on a decent data set. Unfortunately the original poster hasn't elaborated further on their requirements.

For the art tools, one can use deep learning to make everything follow a certain style or just as a way of generating larger textures from photos without seams.

Application in style transfer:
http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Gatys_Image_Style_Transfer_CVPR_2016_paper.pdf

If you're interested in prediction, recurrent NN are quite powerful. (Loops in the topology of a MLP, for example). Try also LSTM (Long short term memory networks)

But using them inline, while AI, physics and rendering are struggeling, is not practicable.

You can however train your network offline, and just using it, in your game, for its responses (not for learning).

If your NN is correctly trained, there's nothing more to do : use it.

You should check if it is not in over-learning (sorry for the terminology, in french this is called "sur-apprentissage). This is "over-specialization".

Check the responses of your NN on a DB that was not used during training. If they are relatively correct, the training is correct .... just use your NN now ! :)

You should check if it is not in over-learning (sorry for the terminology, in french this is called "sur-apprentissage). This is "over-specialization".


The usual name for this in English is "overfitting".

Thank you Alvaro. :rolleyes:

This topic is closed to new replies.

Advertisement