3

So there are two ways of teaching a neural network as far as I am aware of.

  1. You supply the AI with test data and the correct solution to the problem. After some time the network will be able to get the answers right.

    Example: Hand-writing recognition. You supply the network with images and tell it what numbers they represent.

  2. You let the network figure solutions out by itself. The AI performs an action and gets a score. The AI will try to get a higher score every time.

    Example: Path finding. You make the AI go and tell it how well it did after it crashes into a wall.

But is there a third way?

For example if you want to make a Chess AI, the second approach is the more suitable one, but how do you rate the actions of the AI? It is really hard to tell if a player does well early in the game and the outcome heavily depends on the action of its opponent.

What I thought about was maybe putting the AI in certain situations of the game, for example an uneven trade and repeating it until the AI understands that it's chess figure is worth more.

Are there other solutions or are Chess AIs not even built on neural networks?

7
  • Chess AIs are not built using neural networks. They are nearly always some variation on minimax
    – user53141
    May 2, 2016 at 17:41
  • @StevenBurnap So neural networks are just for problems that we already know the answer for?
    – Post Self
    May 2, 2016 at 17:43
  • 2
    Not at all. But they are for matching patterns. Winning a game of chess is simply not that sort of task.
    – user53141
    May 2, 2016 at 17:45
  • 1
    Human brains are absolutely terrible at chess. The computer that beat Gary Kasparov had less than a tenth of the processing power of Gary Kasparov's brain.
    – user53141
    Nov 18, 2016 at 20:32
  • 1
    Oops, I mean that to be a tenth of a percent. :-P
    – user53141
    Nov 18, 2016 at 21:20

2 Answers 2

3

The first approach is called supervised learning, and the second is called reinforcement learning. There are two ways you can use a neural network with reinforcement learning for chess: as a policy network or as a value network:

  • a policy network would decide which move to play,
  • whereas a value network would just evaluate the utility of a board position and could be used with minimax or MCTS (Monte-Carlo tree search).

Training a neural network using reinforcement learning is straight-forward (if slow) — if a move comes from a winning game, it's good, if it comes from a losing game, it's bad.

Read up on AlphaGo if you are interested. It recently defeated the best human player at a more difficult game than chess. It uses both kinds of neural networks, policy and value, as well as MCTS.

3
  • Huh, so some Chess AIs do use neural networks?
    – Post Self
    May 3, 2016 at 9:29
  • @kim366, technologyreview.com/s/541276/…
    – Don Reba
    May 3, 2016 at 9:52
  • Thanks! I also found NeuroEvolution of Augmented Topologies, an Algorithm which evolves a neurral network through sheer chance and creates hidden neurons itself!
    – Post Self
    May 3, 2016 at 13:50
0

Neural Networks are good at solving a particular sort of problem. They are basically mechanisms that map particular source patters to particular target patterns. When given an input set of nodes that are either "on" or "off" they return an output set of nodes that are either "on" or "off". (Usually using some sort of threshold value that is specified as "on".

This maps very well towards tasks like text recognition. You give the neural network in input pattern (a bitmap) and it gives an output (some sort of binary representation of the letter.)

To train a network, you generally give it a set of source patterns and the expected targets. The training methods generally start at the target and push backwards, modifying links to make the network more likely to generate the expected target.

After training, you can send the network inputs it wasn't trained for and it will produce an output. If everything goes well, this should be meaningful. For example, if you've trained it to output 'A' when given bitmaps with the letter rendered in a number of fonts, it should output 'A' when shown something in a font that it has not been trained on.

So there aren't really two ways of training networks. The whole point of using a neural network is that it can respond to stuff you haven't trained it on. If you know all the mappings of inputs to outputs beforehand, a neural network is not the best option.

In regards to chess, the game is just not a task suitable for neural networks. Given a source board, you don't really have an end pattern that you can train it on. You can't really give it the "best" target as for a given chess position, what move is "best" is almost always a matter of debate. You might be able to use a neural network to score boards (i.e. mapping a board position to a numeric score), but you'd still use the traditional minimax to play the actual game.

1
  • 1
    Given the performance of Google's AlphaGo, Go certainly seems to be suitable for neural networks, at least in combination with Monte Carlo tree search. What differentiates Go from chess in this regard?
    – DylanSp
    May 2, 2016 at 18:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.