Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Play Go Against a Deep Neural Network (chrisc36.github.io)
77 points by c-clark on Nov 13, 2015 | hide | past | favorite | 31 comments



It was OK. I'm only about 6k, and I slaughtered it pretty badly (32 for black to -47 for white), but it did a respectable job of playing fuseki and there was an exciting semeai that pretty well decided the game.

It filled in some of its own territory to capture a dead group I had in a corner. It's particularly vulnerable to trick moves -- I was able to set up some pretty horrifying ripoffs by throwing a stone in to make a cut and reduce a liberty, which it ignored, and then I could capture from the other side.

It plays joseki reasonably well and does pretty OK with shape. I think if there were a way to train it against tsumego it would get a lot stronger.

It would be kinda neat to be able to download an sgf of the game with it.

edit: this might be fixable: it confuses snapbacks with kos; I set up a snapback in a second game and it wouldn't let me capture the group because it thought the situation was a ko.

edit #2: I played two more quick games, more honte this time, and it killed me pretty badly. It's difficult to keep the game even during the opening and if I don't set up a complicated fight then it wins by a handy margin.


it doesn't actually do any reading, it just plays moves that appear in pro games

like for example, it will play out the ladder because a pro would play there since the ladder doesn't work so escaping makes sense

however, if it works this loses the game


It plays the opening and middle game impressively well - provided one plays reasonable moves. I'm a 4 dan amateur player and it had me beat around move 40. Its strength deteriorates to a complete beginner fairly quickly whenever there's a fight or a nonstandard situation.


That's about what I would expect. The two major weaknesses of "naively" training a Go player in this no-look-ahead purely-supervised way are:

1) The training data only consists of positions that occurred in professional games. This means positions that are not likely to occur in that context have no training data, making the network liable to play poorly.

2) The lack of any kind of planning ahead means situations that require carefully working out future sequences of moves are not handled well.

However, even in those difficult situations the network is still usually able to play passably showing that there is at least some generalization.


This is quite exciting. I'd imagine combining the supervised version with the usual Monte Carlo search would result in a huge jump in strength, and that doesn't seem too difficult of a task to do. Normally the Monte Carlo bot has a strong fighting ability, but about 0 knowledge of fuseki. This one seems to have mid-high level dan in fuseki, and yet if you get a ladder, you win the game.


Since this neural net is trained to respond as a professional would to a given board state - could it be that a 'naive' or less sophisticated level of play would elucidate a matching level of response ?

Concretely, if the player plays worse does the net respond at that level ?


Interesting! Other people seem to think it plays the opening well, but it didn't seem that way to me. Consider this position:

http://chris.printf.net/deepgo.png

Every corner shows a joseki, so there's been no non-standard play. But globally, white (the computer) seems to me to have blundered by allowing the combination of the lower-right and top-right joseki and N10.

Would be curious to hear if stronger players than me (~1d) agree. Maybe it's actually just much better than me!


I'm 3k, but it doesn't seem that white is behind in this game because white has komi and gets to move now


I am brand new to Go am trying to learn it together with my bright, but young (6 year old) son. Can anyone recommend some good introductory resources for to better learn the basic concepts and scoring? While general gameplay seems relatively straight-forward, I've found there seem to be a variety of rules and I don't understand the algorithm for scoring and determining the winner.


As another beginner (still <50 19x19 games, so take with salt) I really appreciated the style and content in Janice Kim's Learn to Play Go series' first book. (Partway through the second.) Sensei's Library online is often a good intro to some things too. For manual scoring, the important thing I think is to have a mostly completed board, at the very least borders have been all established so no outside invasion points from e.g. the edges, then if you want you can pretty easily re-arrange stones within boundaries into quads for easier counting and use either area or territory scoring. I like territory scoring since there's less to count: add in the captured/dead opponent's stones to their territory, count all the empty spots remaining. In most games with my coworker though, I use this app to score: https://play.google.com/store/apps/details?id=com.jimrandomh... (Must load pic from gallery.) Occasionally I'll compare its output to my own scoring or even take its sgf and run it through gnugo's scorer, the winner outcomes have always been the same on completed boards even if the exact numbers have differed...

If your kid likes anime, Hikaru No Go is great.


I second http://playgo.to/iwtg/en/, it's a great site for learning the basics.

OGS (http://online-go.com/) also has a large beginner community, but they have some trolls and sandbaggers so you might not want your kid on there unguided.

KGS (http://www.gokgs.com/) has a Beginner Room and a Teaching Ladder room, and it's sort of the de-facto online go community for westerners, but the Java client can be a bit broken and KGS isn't as active as it used to be.

And check for local clubs! I live in a fairly rural area and we (amazingly!) have about 6 regular members in our local Go club, and we love getting new players started. You can check the American Go Association to see if there's a club in your area (http://www.usgo.org/where-play-go), although their list isn't totally comprehensive.

The usual adage is "lose your first 100 games quickly"; once you've played around a hundred games and gotten the hang of the rules and basics, start checking out some of Nick Sibicky's videos on YouTube (https://www.youtube.com/user/nicksibicky/videos?view=0&shelf...). He teaches at the Seattle Go Center and does a really great job working with an audience of beginners. Start with his earlier lectures, because they're more geared towards real beginners, with later lectures starting to target more advanced amateurs as he gets more popular.

Enjoy!


Here is a great interactive tutorial that teaches the basic rules: http://playgo.to/iwtg/en/ I'd recommend checking out senseis library after you've learnt the rules: http://senseis.xmp.net/?PagesForBeginners


Check out Sensei's Library Go wiki, Nick Sibicky on YouTube, and Janice Kim's "Learn to Play Go" series of books, IMO.

Also, the "Hikaro no Go" anime series is absolutely wonderful, and that takes Hikaro from a young and completely new to Go kid through to being a professional, with short instructional videos for kids after each episode.


Nick Sibicky seems great. Thank you.


There doesn't seem to be a way to pass. How do you end the game?

As a very bad Go player, the bot managed to be even worse than me in several key engagements, giving me territory I had no right to capture. It still beat me by a little bit, though (I think -- the game never actually ended!) I wonder if complementing the NN with a more traditional tree search would help it play better tactically.

EDIT: Also, your paper link is broken for me: replacing https:// with http:// makes it work.


Thanks for catching that, I fixed the link.

The network itself has no capability to pass its turn, which is a consequence of the fact it was only trained to predict player moves, not passes (we thought trying to learn when to pass would be difficult and a complication best avoided). So essentially you have to play until it seems clear to you the position is won or lost. If you played on indefinitely the DCNN would start playing terrible/suicidal moves rather then passing, so you could beat in the long run.


But it doesn't seem possible on the web link for the player to pass and then see the score?


No, you'll have to estimate or count manually, as it stands. An "end game now" button sounds like a reasonable fix, though.


This is cool, but it seems to think snapbacks are not allowed: http://i.imgur.com/HdOOpIr.png


Didn't have time to play a full game, but it played quite well. As usual with AIs, it made some strange decisions in life and death situations and ko-fights.


Agreed, I was impressed with it! It killed me on the big picture stuff (I'm not very good) but let me win a lot of life-and-death spots where I had no right to survive. But still, it did much better than I was expecting.

The "show analysis" button seemed to suggest a lot of poor moves for me, which surprised me given how the AI didn't actually seem to do anything like that (such as playing into an eye with no chance to win).


While other commenters only came here to say "I am a bad player, but I won" I want to say I have lost.

The bot was better than me in the sense that he knew exactly the best thing to do in "standard" situations and I don't. In a sense he looks more experienced and studied than me. But he did some stupid moves in some other situations in which he had to think more as a human, I imagine.


Sometimes it says ‘Illegal move: Suicide is not allowed!’ after I play (black), then it passes my white control to me. Is this intended or bug?


Ditto to me. Seems strange - maybe white tried suicide?


Has a decent concept of high-level strategy, but performs very poorly tactically. It makes predictable mistakes that look like what a player might do by "knee-jerk reaction" without considering the entire board state. Certainly the estimate of 4-5 kyu in the paper is ridiculous. Maybe 15kyu?


This is fun. My game is quite rusty. Love playing fast. Training that neural net in my skull. This was how I originally learned the basics some 20 years ago: by playing & undoing against an AI. It's a low-stress way to get into the groove.


Can somebody run the obvious experiment and make it play against another instance of itself?


http://www.computer-go.info/ has lots of info on other bots and is run by Nick Wedd who is an admin on KGS and is involved in running computer go tournaments. You can play vs lots of different bots (some of which are virtually guaranteed to beat you, but not quite...) on KGS.


Nice job. I started a similar for-fun project a few weeks ago, but progress has been slow and I am using a small board. Really nice!


There seems to be a problem with ko: it alerts that retaking is forbidden even though the board has changed. Afterwards, play seems to be ended.


Any chance of a source code release for the trainer?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: