Re: [computer-go] Who else uses Hashtables in UCT?
Dear Chrilly, http://trac.gnugo.org/gnugo/attachment/ticket/150/MonteGNU.diff is the diff file from GNU Go, I guess. You can download original diff file from the bottom of the page. -gg chrilly: [EMAIL PROTECTED]: Chrilly wrote: I have no finished a plain vanilla 9x9 Suzie-UCT Version. The UCT-tree is stored in a Hashtable. I am interested who else uses this approach. MonteGNU does. I have searched for MonteGNU on the net and on the GNUGo website, but have nothing found. Is it under development, is it not open source or was I just to stupid to search on the right place? I have tried now to use the Suzie-AB Eval instead of the MC-Rollouts. Like for the Rollouts just the information: win = (Eval()0); The UCT search is identical. In the opening and middle game this approach looks interesting, in the endgame the rollouts are clearly better. One could think of a sort of voting system, although its probably more efficient just to double the rollouts. The AB-Evaluation version plays more aggressivly, but thats a double-edged. Once the Rollout-Version is ahead, it plays home the victory with very solid moves. One could also compare the Alpha-Beta version with the UCT-version with the AB-Eval. Chrilly ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/ -- [EMAIL PROTECTED] (Kato) ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Explanation to MoGo paper wanted.
Hi, Don I can find arguments to disagree. I think what makes humans homo sapiens is reasoning, not the ability to compute numerical simulations. As a human (I am one) I feel disappointed when the explanation I get for a best move is after x millions of simulated matches it proved to be the best. If it is well done, I believe it, but I don't like it because I cannot verify it by myself. Such a program will not improve my play because it will not tell me what I do wrong or how I can improve. As a user, I would rather pay for a program that makes me improve my play than for the best program that only tells me moves are simulation gospel. On the other hand, I can imagine an old go sensei (I have never met one, I imagine him from Kawabata's novel) like a virtuous piano player, imagine Arturo Benedetti Michelangeli or Tete Montoliú (I met him). These men had their brains and even their bodies transformed by a whole life of study and improvement towards perfection. What they finally gained was _gesture_. The way they put their hands on a piano keyboard or the way they read a go board was the result of a lifetime of training. What you call a dirty hack, patterns deeply implemented in their brains. Gesture is what I expect from my programs. And a lifetime of training may be 100 hours of computing. I call it jeito. It sounds Japanese, that is appropriate for go. Here, in the Canary Islands, the word is used in the sense of a skillful trick and most people believe it is a Canarian word. The truth is it is a Portuguese word and it means gesture. Of course, this is just chatting. At the end the strongest program decides who is right and who is wrong. ;-) Jacques. Don Dailey wrote: What really irks me is that in most peoples minds, that is considered the elegant approach - hard coding tons of fixed knowledge into the program. Nothing could be farther from the truth, this is a dirty shortcut, a hack. There is nothing elegant whatsoever about having a huge database of patterns that tell the program what and what not to do - then calling it smart. The reason UCT/MC is elegant is that it has a built in mechanism to discover truth for itself. It may not be the best way and perhaps there is something better but at least it is a try.In a lot of ways it mimics the human thinking process. The MC play-outs is a crude substitute for human experience (the experience is gained on the fly) and UCT tree is a substitute for reasoning about characteristics of the position, what does and doesn't work. ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] UCT caveat (was in Explanation to MoGo paper wanted)
Brian Slesinsky wrote : When you favor defense (or attack) you may think: This is unbiased since some times it favors black and other times it favors white But the fact is when black is in danger at the root of the tree, it is in danger in most of the tree, therefore the trick gets the evaluation wrong. Well, this is subtle enough that I don't understand it. What are two positions that it would compare incorrectly? - Brian It is not two positions. What I say is the same applies _obviously_ if it is the other color who is in danger. I will try to explain it better: E.g. The game is in a position where black is in danger. That position is the root node. All stones in the root node are inherited in any node below, except when they are captured. Your trick pretends to favor defense. Therefore, black has higher probabilities of survival than with uniformly random playouts. Since all nodes in the tree have been inherited from root, they are mostly in the same situation. The simulation is a stochastical estimator of either the territorial value of the game or the percentage of win (which is determined by comparing the former with some threshold). Since you are favoring systematically one of the players (the one who is in danger at root is always the same player) you are biasing the estimation. Because the variance of a random playout is so big compared with the difference in conditional probability: P(win | a good move) - P(win | a bad move) is a very small number - the smallest bias is too much bias - the program gets weaker. Jacques. ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Go programming as a profession.
On 7/11/07, Joshua Shriver [EMAIL PROTECTED] wrote: Really know a place hiring over 30k US? :) that doesn't require moving to California lol Sure. You just have to have professional experience. Without that, you must be coming straight out of a 4-year degree. If you have been only hobby programming for x years, companies do not like you. ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Explanation to MoGo paper wanted.
On Wed, 2007-07-11 at 11:47 +0100, Jacques Basaldúa wrote: What you call a dirty hack, patterns deeply implemented in their brains. What you call a dirty hack, patterns deeply implemented in their brains. The dirty hack I'm referring to is the robotic way this is implemented in programs, not how it's done in humans. With a pattern based program you essentially specify everything and the program is not a participant in the process. It comes down to a list of do's and dont's and if we can claim that knowledge was imparted it might be true, but no wisdom or understanding was. UCT simulates understanding and wisdom, patterns just simulates knowledge. Again, this is largely philosophical because even UCT programs are robots just following instructions. It's all about what you are trying to simulate and why it's called AI.I think UCT tries to simulate understanding to a much greater extent than raw patterns in a conventional program. - Don ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Who else uses Hashtables in UCT?
I guess once superko really matters for programs, this paper might become interesting for us: http://www.fun.ac.jp/~kishi/pdf_file/AAAI04KishimotoA.pdf Regards, Benjamin I use the simple ko position as part of the hash key, and generally ignore positional superko and situational superko when doing my search. That seems to make sense since the superko situations are pretty rare while ko is fairly common. I've considered putting in some simplistic superko avoidance such as tracking a bit more history of captures in the hash key, but I haven't convinced myself that it's worth it yet. ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Go programming as a profession.
I have been a programmer for about 11 years professionally. Though I dont have a degree, dropped out my senior year due to the horrible cost of tuition and materials. -Josh On 7/11/07, Chris Fant [EMAIL PROTECTED] wrote: On 7/11/07, Joshua Shriver [EMAIL PROTECTED] wrote: Really know a place hiring over 30k US? :) that doesn't require moving to California lol Sure. You just have to have professional experience. Without that, you must be coming straight out of a 4-year degree. If you have been only hobby programming for x years, companies do not like you. ___ 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/
Re: [computer-go] Explanation to MoGo paper wanted.
On 7/11/07, Don Dailey [EMAIL PROTECTED] wrote: The dirty hack I'm referring to is the robotic way this is implemented in programs, not how it's done in humans. With a pattern based program you essentially specify everything and the program is not a participant in the process. It comes down to a list of do's and dont's and if we can claim that knowledge was imparted it might be true, but no wisdom or understanding was. I'm compelled to point out that neural nets, _trained_ on patterns, which patterns themselves are then discarded, have the ability to recognize novel patterns, ones which have never been previously seen, let alone stored. The list of do's and dont's has been discarded, and what to do or not do, in a situation that may never have been seen before, is inferred, not looked-up in a library of rules. So, it is not true that with a pattern-based program you essentially specify everything. At least, not if you have thrown the patterns away, and have substituted multilayer feedforward networks for that _training_data_. UCT simulates understanding and wisdom, patterns just simulates knowledge. This is a very strong assertion. We eagerly await the proof. :-) I can just as easily assert: Trained neural nets simulate understanding and wisdom. (A static pattern library merely simulates knowledge, I agree.) Again, this is largely philosophical because even UCT programs are robots just following instructions. It's all about what you are trying to simulate and why it's called AI.I think UCT tries to simulate understanding to a much greater extent than raw patterns in a conventional program. Than raw patterns, yes. Trained neural nets, too, try to simulate understanding to a much greater extent than do raw patterns. Of course Don is right, it boils down to philosophy. And while we're on that topic, ... I regret some of the terms that have come into use with regard to AI, due to the (misguided, in my humble opinion) philosophy of some. The very name artificial intelligence bothers me; AI programs are neither. When humans run certain computer programs, the programs may seem intelligent enough to perform other tasks. By the implied reasoning, taken to its logical conclusion, a hammer is intelligent enough to drive a nail. The military has their so-called smart bombs but in truth, machines and algorithms are no more intelligent than hammers. By a similar token, pattern recognition bothers me. Machines and algorithms don't recognize anything, ever. That's anthropomorphism. A somewhat better term is pattern classification, but machines don't really classify anything, either. It is we humans who classify, _using_ the machines. It's like saying that the hammer drives the nail, when in fact it is the human who does so, _using_ the hammer. And there is nothing particularly neural about neural networks, other than their origins. (True, they were first invented -- discovered, really -- by someone who was trying to simulate a neuron, but they are much more general than that.) I prefer the term multilayer feedforward network for the type of neural net commonly used in many domains. (And now in go!) This sort of semantic nitpicking may seem too severe. However, it keeps me from falling into the camp of those who believe that machines will one day literally become intelligent, develop self-awareness, and achieve consciousness. Ain't gonna happen. -- Rich P.S. -- I hated the movie AI. ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Go programming as a profession.
Are there different versions of Igo? KCC Igo, AI Igo? If so is Igo and open source engine that is being used as a base for others? Congrats though! -Josh On 7/11/07, David Fotland [EMAIL PROTECTED] wrote: The list price in Japan is closer to $100 than $39. This is my Japanese product (AI Igo version 15): http://www.ifour.co.jp/product/aiigo15/ and you can see it lists for 13,440 yen (about $110). The other strong programs have similar prices. His royalty is more than $1 per copy. Since Go4++ hasn't participated in a competition recently, it's probably not #1. KCC Igo is the best, based on Gifu results. David -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Joshua Shriver Sent: Tuesday, July 10, 2007 8:53 PM To: computer-go Subject: [computer-go] Go programming as a profession. Was looking up engines when I came across the Go++ website. Is it still the #1 engine in the world? Most of the titles on the page seem to refer to the late 90's and early 2000's. Anyway, the one thing that shocked me the most was Over 400,000 copies sold in Japan! At $39.95 that's just shy of $16 million. Wow Even at $1 a copy that's almost 1/2 a million dollars. Is this normal? ___ 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/ ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] UCT caveat (was in Explanation to MoGo paper wanted)
On 7/11/07, Jacques Basaldúa [EMAIL PROTECTED] wrote: I will try to explain it better: E.g. The game is in a position where black is in danger. That position is the root node. All stones in the root node are inherited in any node below, except when they are captured. Your trick pretends to favor defense. Therefore, black has higher probabilities of survival than with uniformly random playouts. Since all nodes in the tree have been inherited from root, they are mostly in the same situation. The simulation is a stochastical estimator of either the territorial value of the game or the percentage of win (which is determined by comparing the former with some threshold). Since you are favoring systematically one of the players (the one who is in danger at root is always the same player) you are biasing the estimation. Because the variance of a random playout is so big compared with the difference in conditional probability: P(win | a good move) - P(win | a bad move) is a very small number - the smallest bias is too much bias - the program gets weaker. I'm still having trouble understanding this, but I will try to say what I got out of it. It seems that when black is in trouble, a bias towards defensive moves on both sides means that black would be playing well and white would be playing poorly, because the best move for black is likely one of those moves, while the best move for white is probably not a defensive move. And this would mean that a position where black is in trouble would look stronger than in a random playout (due to black playing well only for this kind of situation) which would make it harder to tell which positions are actually good. Or in general, an improvement in play that only works for some positions will tend to make those positions look good, and make it hard to tell which positions actually are good. - Brian ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Explanation to MoGo paper wanted.
Perhaps some day a mad Dr. Frankenstein will implement massively parallel supercomputing using an array of brains in petri dishes. But it will still be the meat that is intelligent. It's the only substance capable of that. I read an article several months back where a researcher used mice neurons in a petri dish to create basic logic gates. ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Explanation to MoGo paper wanted.
On Wed, 2007-07-11 at 09:06 -0500, Richard Brown wrote: I'm compelled to point out that neural nets, _trained_ on patterns, which patterns themselves are then discarded, have the ability to recognize novel patterns, ones which have never been previously seen, let alone stored. The list of do's and dont's has been discarded, and what to do or not do, in a situation that may never have been seen before, is inferred, not looked-up in a library of rules. There is blurry line and much of it is semantics. Most programs have hand coded programs in them and that's pretty much the extent. neural nets and other ideas of course I welcome as I believe they are better simulators of what a brain should be than simple patterns. I'm really in favor of making the attempt to produce a program that has very little if any domain specific knowledge other than the rules of the game. I'm not claiming it will be better - but it will be more elegant, aesthetically pleasing than rote knowledge blindly applied. In computer chess there is a big deal about the opening book. This is as ugly as it gets - there is ZERO understanding of anything other than doing a database lookup. But it's pretty much a necessity and there is something to be said for benefiting from the knowledge obtained by others - even us humans do it in a big way. So don't think I'm lambasting the idea of using knowledge in crude ways - I'm foremost an engineer and will do whatever it takes. But I'm recommending an approach not based on brute force if possible. - Don ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
[computer-go] Interesting Test Position (for UCT)
Attached is an interesting testposition which occured in UCT-Suzie against Peter-Woitke. If black plays 37 c4 the game is lost by 0.5 points. If Black passes, white gets a lot of threats. Black can choose between a safe loss, or some risk and a win. UCT-Suzie and the public domain version of Crazy-Stone played the save loss. See also comments in the sgf-Files by Peter Woitke. Alpha-Beta-Suzie plays the position right. If one replaces for such situations the Rollout by the AB-Eval also the UCT version plays correct. According our tests AB-Suzie is on 9x9 slightly stronger than UCT-Suzie. But UCT is plain-vannila, about 100h development time. AB-Suzie about 1500 h (mainly by Peter Woitke). The h/Elo ratio is much better for UCT-Suzie. Replacing always the Rollout by the AB-Eval is worse. With other words, UCT is not in generall the better tree-search. It is better for a Rollout-Eval. I think AB-Suzie is for humans more difficult, because it plays more aggressive. But sometimes too aggressive. If its ahead, it plays still risky. The UCT-version plays such positions safly home. The test is biased, because the human is always Peter Woitke. The Go-European Championship in Villach/Austria will be a better test. Chrilly UCT_verrueckt_02.sgf Description: Binary data ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Interesting Test Position (for UCT)
Why not put both version on CGOS and find out? - Don On Wed, 2007-07-11 at 23:17 +0200, chrilly wrote: Attached is an interesting testposition which occured in UCT-Suzie against Peter-Woitke. If black plays 37 c4 the game is lost by 0.5 points. If Black passes, white gets a lot of threats. Black can choose between a safe loss, or some risk and a win. UCT-Suzie and the public domain version of Crazy-Stone played the save loss. See also comments in the sgf-Files by Peter Woitke. Alpha-Beta-Suzie plays the position right. If one replaces for such situations the Rollout by the AB-Eval also the UCT version plays correct. According our tests AB-Suzie is on 9x9 slightly stronger than UCT-Suzie. But UCT is plain-vannila, about 100h development time. AB-Suzie about 1500 h (mainly by Peter Woitke). The h/Elo ratio is much better for UCT-Suzie. Replacing always the Rollout by the AB-Eval is worse. With other words, UCT is not in generall the better tree-search. It is better for a Rollout-Eval. I think AB-Suzie is for humans more difficult, because it plays more aggressive. But sometimes too aggressive. If its ahead, it plays still risky. The UCT-version plays such positions safly home. The test is biased, because the human is always Peter Woitke. The Go-European Championship in Villach/Austria will be a better test. Chrilly ___ 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/
Re: [computer-go] Interesting Test Position (for UCT)
Chrilly wrote: Attached is an interesting testposition which occured in UCT-Suzie against Peter-Woitke. If black plays 37 c4 the game is lost by 0.5 points. If Black passes, white gets a lot of threats. Black can choose between a safe loss, or some risk and a win. UCT-Suzie and the public domain version of Crazy-Stone played the save loss. See also comments in the sgf-Files by Peter Woitke. I don't know about Suzie but I'm fairly certain that CrazyStone only knows Chinese scoring, in which case black is still ahead by 0.5 after 37 C4. /Gunnar ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/
Re: [computer-go] Interesting Test Position (for UCT)
On 7/11/07, chrilly [EMAIL PROTECTED] wrote: Attached is an interesting testposition which occured in UCT-Suzie against Peter-Woitke. If black plays 37 c4 the game is lost by 0.5 points. If Black passes, white gets a lot of threats. Black can choose between a safe loss, or some risk and a win. UCT-Suzie and the public domain version of Crazy-Stone played the save loss. Seems like you're mixing up Territory and Area scoring. Under area scoring rules the programs can strengthen their (final) position by playing in their own territory. (Crazystone as Black would win under Chinese rules) The example illustrates why Japanese rules provide a slightly more interesting endgame. Erik ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/