Re: [computer-go] Who else uses Hashtables in UCT?

2007-07-11 Thread Hideki Kato
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.

2007-07-11 Thread Jacques Basaldúa

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)

2007-07-11 Thread Jacques Basaldúa

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.

2007-07-11 Thread Chris Fant

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.

2007-07-11 Thread Don Dailey
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?

2007-07-11 Thread Benjamin Teuber
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.

2007-07-11 Thread Joshua Shriver

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.

2007-07-11 Thread Richard Brown

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.

2007-07-11 Thread Joshua Shriver

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)

2007-07-11 Thread Brian Slesinsky

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.

2007-07-11 Thread Joshua Shriver

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.

2007-07-11 Thread Don Dailey
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)

2007-07-11 Thread chrilly
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)

2007-07-11 Thread Don Dailey
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)

2007-07-11 Thread Gunnar Farneb�ck
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)

2007-07-11 Thread Erik van der Werf

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/