Neural networks:
Yes, they can learn.
No, they can't learn everything. At least not the ones I've seen.
No, they aren't intelligent, it just seems so because the results may look intelligent in a certain situation.
You can use them to train themself even without a trainer but you need to implement them fitting to your goals. If you miss something then the resulting network won't be able to learn according to a new situation.
Still you can provide the game with a good network to solve everything they designed and tested it for.
You can also combine a network with rule based algorithms.
BUT
It's very hard to design such a network.
The knowledge stored in network is very hard to locate. If you want to change something because you changed some of the game rules it may be a very hard task. It may even happen that you have to train this part of the network again.
The learning process itself is also not a trivial task.
How fast do you want the network to learn in game?
Very fast? Then the network will be a bit unstable. It may even learn to react to your bad moves. Then is has learned how to fight against a bad opponent. You may even trick the AI by behaving stupid for some turns and then switch back to smart moves and you`ll see how the AI has forgotten to react accordingly.
Very slow? The network will be stable and improve over time...but the learn effect will be rather low.
When and what should it learn?
Backpropagation needs some time in a bigger network but let's say we have small networks. What is the training data?
If I understand the posts above right you want the AI to learn from the human player. Now what exactly is the training data provided by the human player? Very very little each turn. Most of the time a single move doesn't make sense at all. A move belongs to a plan. You need to recognize the plan. The plan of a human player. Huh, very difficult.
You can do some pattern recognizing for that but given the small amount of data the outcome would be more or less fixed.
Neural networks were designed for reacting fast in a situation with overwhelming and/or incomplete information. If you want to train them while playing the game you need a data base big enough for learning something. Therefore you need to categorize each move within a given time-slize and judge whether these actions were succesful or not. Let's say you're supporting your ally while gaining nothing. Bad for you in the short run but maybe good for you in the long run.
So, even categorizing and determining whether something is succesful or not is a very difficult task.
You may have noticed that I used "reacting". Input->Output. Situation->Reaction.
Neural networks are good for reaction.
They cannot create a plan.
That's why you can use neural networks very good for letting individual units learn how to react to a certain situation. Then they are able to react better the next time. But this is very linear. You can learn from time-slize 1 to time-slize 2. Situation->Reaction. That's what they are made for.
You can teach a robot keep himslef balanced while moving. You can use them to learn the computer distinguish between a written "E" and a written "A" to automatically read your written transactions.
You can also use them to learn a CRT in EU. Let's say that no information about the strength of a cavalry unit for a certain tech level is provided. You can use a neural network to produce the results when it has enough battle fought. Which each battle the AI would be smarter to predict the outcome and thus avoiding loosing situations.
If you want the AI to create a plan to achieve a goal....distributed AI: agents are coming into my mind. Neural networks not.
For designing neural networks you still need a good understanding of what you want to do.
Here's an easy task for those who think that programming a "good" AI is an easy task:
Monopoly.
Everybody knows it and it seems to be an easy task to write an AI for it. Now write down a set of rules of how you think you are usually playing the game. Ask a friend to do the same. Then start a game where each of you is following only his own rules.
(I did it at university and we were alienated by our own rules)
At least when it comes to decide whether a trade of money/streets vs. cards/streets should be done you'll be surprised how stupid your set of rules is. You have forgotten something. Rewrite your rules and start the game again. Creating and offering a certain trade is even more difficult.
Again you'll be surprized how bad the AI is. Your own set of rules isn't playing like you and this is something you have played for years, where you thought to know how your brain is working.
Usually you don't.
Programming a good AI for Monopoly is a very trivial task. Programming a good AI for EU is not trivial.
Btw. I was impressed how good the AI in EU is. Yes, I have beaten the game for many times like a human player should do. I haven't seen that many big AI mistakes.... I have seen more good than bad moves moves.
Neural networks sound sexy. They sound cool. They sound like magic.
That's why many people think that you can solve everything with them
Yes, they can learn.
No, they can't learn everything. At least not the ones I've seen.
No, they aren't intelligent, it just seems so because the results may look intelligent in a certain situation.
You can use them to train themself even without a trainer but you need to implement them fitting to your goals. If you miss something then the resulting network won't be able to learn according to a new situation.
Still you can provide the game with a good network to solve everything they designed and tested it for.
You can also combine a network with rule based algorithms.
BUT
It's very hard to design such a network.
The knowledge stored in network is very hard to locate. If you want to change something because you changed some of the game rules it may be a very hard task. It may even happen that you have to train this part of the network again.
The learning process itself is also not a trivial task.
How fast do you want the network to learn in game?
Very fast? Then the network will be a bit unstable. It may even learn to react to your bad moves. Then is has learned how to fight against a bad opponent. You may even trick the AI by behaving stupid for some turns and then switch back to smart moves and you`ll see how the AI has forgotten to react accordingly.
Very slow? The network will be stable and improve over time...but the learn effect will be rather low.
When and what should it learn?
Backpropagation needs some time in a bigger network but let's say we have small networks. What is the training data?
If I understand the posts above right you want the AI to learn from the human player. Now what exactly is the training data provided by the human player? Very very little each turn. Most of the time a single move doesn't make sense at all. A move belongs to a plan. You need to recognize the plan. The plan of a human player. Huh, very difficult.
You can do some pattern recognizing for that but given the small amount of data the outcome would be more or less fixed.
Neural networks were designed for reacting fast in a situation with overwhelming and/or incomplete information. If you want to train them while playing the game you need a data base big enough for learning something. Therefore you need to categorize each move within a given time-slize and judge whether these actions were succesful or not. Let's say you're supporting your ally while gaining nothing. Bad for you in the short run but maybe good for you in the long run.
So, even categorizing and determining whether something is succesful or not is a very difficult task.
You may have noticed that I used "reacting". Input->Output. Situation->Reaction.
Neural networks are good for reaction.
They cannot create a plan.
That's why you can use neural networks very good for letting individual units learn how to react to a certain situation. Then they are able to react better the next time. But this is very linear. You can learn from time-slize 1 to time-slize 2. Situation->Reaction. That's what they are made for.
You can teach a robot keep himslef balanced while moving. You can use them to learn the computer distinguish between a written "E" and a written "A" to automatically read your written transactions.
You can also use them to learn a CRT in EU. Let's say that no information about the strength of a cavalry unit for a certain tech level is provided. You can use a neural network to produce the results when it has enough battle fought. Which each battle the AI would be smarter to predict the outcome and thus avoiding loosing situations.
If you want the AI to create a plan to achieve a goal....distributed AI: agents are coming into my mind. Neural networks not.
For designing neural networks you still need a good understanding of what you want to do.
Here's an easy task for those who think that programming a "good" AI is an easy task:
Monopoly.
Everybody knows it and it seems to be an easy task to write an AI for it. Now write down a set of rules of how you think you are usually playing the game. Ask a friend to do the same. Then start a game where each of you is following only his own rules.
(I did it at university and we were alienated by our own rules)
At least when it comes to decide whether a trade of money/streets vs. cards/streets should be done you'll be surprised how stupid your set of rules is. You have forgotten something. Rewrite your rules and start the game again. Creating and offering a certain trade is even more difficult.
Again you'll be surprized how bad the AI is. Your own set of rules isn't playing like you and this is something you have played for years, where you thought to know how your brain is working.
Usually you don't.
Programming a good AI for Monopoly is a very trivial task. Programming a good AI for EU is not trivial.
Btw. I was impressed how good the AI in EU is. Yes, I have beaten the game for many times like a human player should do. I haven't seen that many big AI mistakes.... I have seen more good than bad moves moves.
Neural networks sound sexy. They sound cool. They sound like magic.
That's why many people think that you can solve everything with them