More than different phases I was talking about different aspect of the position. The phase of the game could be a separate input (maybe from another little net that recognize the phase itself). I can't try neural networks because of the math required to make them work, if you want seriously experiment on that. It is not enough to apply known algorithms for learning, but you should know what algorithm to use and why it works. I would be happy if a simpler approach will works for my program, something very similar to an expert system, that I can grow up from my little chess knowledge and other better sources (grand Master books and so on). I think about an intelligent "move selector" more than an intelligent evaluation function.matthewlai wrote:[...]Using multiple nets is one solution to the issue of requiring different eval for different phases. However, it's got a very high computational cost since a lot of work would have to be done multiple times, so I'm trying to avoid that if possible. If you are interested in multi-net approaches, a very cool method is known as Mixture of Experts (http://www.cs.bham.ac.uk/~jxb/INC/l19.pdf), where n nets are trained to produce eval, and another net is trained to decide how to combine their outputs given the position.
The cool thing about that is the whole system can be trained together. You don't have to decide which net is responsible for what kind of positions. As training goes on, the nets will automatically specialize into niches.
* vs +
Moderator: Ras
-
stegemma
- Posts: 859
- Joined: Mon Aug 10, 2009 10:05 pm
- Location: Italy
- Full name: Stefano Gemma
Re: * vs +
-
matthewlai
- Posts: 793
- Joined: Sun Aug 03, 2014 4:48 am
- Location: London, UK
Re: * vs +
Ah isn't that what neural nets naturally do? Lower layers compute low level features, and higher layers combine their results.stegemma wrote:More than different phases I was talking about different aspect of the position. The phase of the game could be a separate input (maybe from another little net that recognize the phase itself). I can't try neural networks because of the math required to make them work, if you want seriously experiment on that. It is not enough to apply known algorithms for learning, but you should know what algorithm to use and why it works. I would be happy if a simpler approach will works for my program, something very similar to an expert system, that I can grow up from my little chess knowledge and other better sources (grand Master books and so on). I think about an intelligent "move selector" more than an intelligent evaluation function.matthewlai wrote:[...]Using multiple nets is one solution to the issue of requiring different eval for different phases. However, it's got a very high computational cost since a lot of work would have to be done multiple times, so I'm trying to avoid that if possible. If you are interested in multi-net approaches, a very cool method is known as Mixture of Experts (http://www.cs.bham.ac.uk/~jxb/INC/l19.pdf), where n nets are trained to produce eval, and another net is trained to decide how to combine their outputs given the position.
The cool thing about that is the whole system can be trained together. You don't have to decide which net is responsible for what kind of positions. As training goes on, the nets will automatically specialize into niches.
Yeah the math gets a little involved. It's really not that bad if you know basic calculus, though! Back-propagation is just chain rule, applied recursively.
There are also ready-made libraries like FANN (http://leenissen.dk/fann/wp/) that can handle all the math for you. Though understanding the math is important if you want to really use neural nets well.
Move selection is definitely another place where neural nets can be applied, and is in fact a large part of my thesis as well.
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.