On Sun, 2007-01-21 at 20:29 -0800, terry mcintyre wrote: > From: Don Dailey <[EMAIL PROTECTED]> > > On Mon, 2007-01-22 at 03:43 +0100, alain Baeckeroot wrote: > > The few games i played against mogobot on 19x19 shows that it does > not > > "know" overconcentration. And i can safely bet that increasing > > thinking time will not solve this, > > >By definition, a scalable program can solve all problems so your > statement is incorrect. > > Is Computer Go infinitely scalable? Is Mogobot, in particular, > scalable?
In theory, Mogobot is infinitely scalable with time and memory. In practice Mogobot probably used 32 or 64 bit integers to count statistics which would place a limit, but that could easily be overcome. When my program gets to the point it can do 4 billion play-outs, I will have to change to 64 bit counters. > Most programs reach scalability limits at some point. If the concept > of "overconcentrated shape" is not inherent in a given program, it > might take a vast number of simulations to compensate for that lack. Where most people go wrong is to assume that for a computer to beat a human it must be able to understand every single thing a human does but only better. This is a ridiculous burden to place on any player including a go program. Each player has his own strengths and weaknesses whether human or computer. The trick is to maximize your strengths and minimize your weaknesses. That's how computers beat humans because they have some glaring weaknesses and yet they still win because the human has weaknesses too. It's been my experience that the computers discover concepts much quicker than you imagine that they would. They will play as if they know things they were not explicitly programmed to understand. For example in chess, even if you don't tell the program about weak pawns (which you should), it will discover this on it's own as soon as it has to take a well positioned piece and defend a weak pawn with it. This is a simple example of concept discovery. But to understand the strength curve you have to appreciate that playing strength is more about avoiding the mundane errors than it is making brilliant moves and understand deep concepts. Of course the definition of mundane changes as you get stronger. What is a basic error to a strong player is not going to hurt a weak player. So if you don't understand some dan level concept when you are 20 kyu player and you want to improve, the trick isn't to learn the dan level concept, it is to first learn the simple things that you are screwing up on every other move. Those are the things that are killing you. Those deep things don't matter at this point but once you fix the big problems in your play, then these things gradually start coming into view as important things to fix. I figured this out myself when I first learned chess and wanted to improve. I was trying to learn sophisticated stuff but I was losing every game due to trivial blunders. The "low hanging fruit" pathway to improvement for me was to stop making trivial blunders. This was worth far more ELO points than learning how to checkmate with a bishop and knight or even win the simple KP vs K ending. The thing about 1 extra ply of search in computer chess is that 1 extra ply is like a whole new layer of understanding. A 1 ply search will never make a simple piece hanging blunder, but it won't be able to understand the value of a trivial forking move. So giving it 2 ply opens up a whole new world. But 2 ply can't anticipate and defend against a simple forking move that the opponent might make, but give it 3 play and another wonderful layer of understanding has opened up. A 3 ply might actually start to sense a pawn is weak even without the explicit knowledge of weak pawns. Each extra ply is like a whole new world of understanding and blunder avoidance and attack skills, etc. My program Botnoid started out as pure 1 ply search Monte Carlo and it plays reasonable looking moves (and it has actually won a 9x9 KGS computer go tournament.) However there is no tree search and it was vulnerable to making the most trivial error, self-atari. Simple Monte Carlo (without UCT or tree search) has a way of simulating basic global understanding but not appreciating tactics in any way. So Botnoid often would play a self-atari move if it also seemed to attack the opponents chains. A simple fix to avoid this was like a 200 ELO improvement. The patched up version kills the unfixed version. This is pretty similar to what you would expect in computer chess. Of course GO program are far weaker than chess programs but the same principles apply. Fix the stupid things first. You can fix a lot of stupid things with a little bit of time so that you can get to the next level where you fix the next most important things etc. It's not productive to fix the hard problems if the dumb things are killing you. - Don > > I suspect that monte carlo will need to be merged with some method of > learning patterns and concepts to play higher-level Go in human-scale > timeframes. > > > > ______________________________________________________________________ > The fish are biting. > Get more visitors on your site using Yahoo! Search Marketing. > _______________________________________________ > computer-go mailing list > computer-go@computer-go.org > http://www.computer-go.org/mailman/listinfo/computer-go/ _______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/