Friday, December 19, 2014

Deep Convolutional Neural Networks are strong move predictors for Go

There has been lots of progress recently on the topic of move prediction in Go, and it is very promising for improving Monte Carlo-based programs. I give some background and analyze two games on
http://webdocs.cs.ualberta.ca/~mmueller/fuego/Convolutional-Neural-Network.html
The thing to keep in mind is that the network does not do any game tree search.

    Martin

Friday, March 21, 2014

The game between Yoda and Crazy Stone; news about Lim Jaebum and his program Dol Baram

Remi sent me the game record, and I put it on
http://webdocs.cs.ualberta.ca/~mmueller/fuego/2014-UEC.html
(If you see a different or mixed up game record, try reloading the page. Some caching issue.)

Lim Jaebum, the programmer of the strong Korean program Dol Baram, came to visit Densei-sen. He explained what had happened. He actually did originally come to Japan for the UEC cup, but he discovered a serious bug in his program, and he did not manage to fix it in time. So he decided to pull out of the UEC cup, and went back to Korea, where he did find the bug. Finally, he came back to Japan to attend Densei-sen as a spectator. He said that Dol Baram will play in future KGS tournaments.
In the audience: Hiroshi Yamashita (Aya) and Lim Jaebum (Dol Baram)

In the audience: Shinichi Sei (Katsunari)

On stage: Shimosaka Miori 2 Dan pro, Hideki Kato (Zen) and Remi Coulom (Crazy Stone)

Three senseis watching: Muramatsu, Nakayama and Matsubara

Remi gets his diploma for beating Yoda from Prof. Ito...

...and Yoda gets his diploma for beating Zen.

2nd Densei Sen game 2: Yoda beats Zen

The game was close, but Zen was a few points ahead. However, it made a few endgame mistakes, and possibly also missed a technique that reduced its territory by two points. Zen resigned, but it looked like losing by 1.5 points or so in the end. This was also a four stone game.

2nd Densei sen first game: Crazy Stone wins against Yoda

The second Densei sen, a handicap match between a top professional and the first and second place programs at the UEC Cup, is under way.

http://entcog.c.ooco.jp/entcog/densei/eng/index.html

Crazy Stone won the first game by 3 points. The handicap was 4 stones, same as last year. Crazy Stone played a strong game and was more than 10 points ahead. It then played some crazy defensive moves instead of finishing the last few endgame moves, so the final score became close.

Kobayashi Satoru 9 Dan comments on the game between Yoda and Crazy Stone. "tsuyoi" (strong)

Sunday, March 16, 2014

Zen wins exhibition game against strong amateur player

Zen beat Tanaka Yoshikuni, a strong amateur player and member of the UEC Go club. Zen killed a very large group. Redmond and Osawa did the commentary with some help from O Meien.

Tanaka Yoshikuni playing Zen

Saturday, March 15, 2014

UEC Cup final standings

1. Zen
2. Crazy Stone
3. Aya
4. HiraBot
5.Nomitan
6. GOGATAKI
7. LeafQuest
8. caren
9. MC_ark
10. Katsunari
11. storm
12. milago
13. MP-Fuego
14. Qinoa Igo
15. Mayoigo
16. ballade
Main knockout tournament

Places 3-8

Places 9-16


Zen wins UEC Cup

Game just finished. It was a complicated game and Crazy Stone may have been better at some stage. However it misjudged a semeai and lost.

Congratulations to Team DeepZen!

   Martin

Remi Coulom and Hideki Kato during the final game

Semifinal results

Zen beat Aya
Crazy Stone beat HiraBot

Like last year, the final is Crazy Stone against Zen.

Michael Redmond 9 Dan pro and Osawa Narumi 4 Dan pro explain how to play the nine star point opening, while commenting on the game between Zen (Black) and Aya (White)

Rounds 1 and 2 results

Round 1: (winner first)
Crazy Stone - ballade
Nomitan - storm
Hirabot - Katsunari
caren - MP-Fuego
Aya - Kinoigo
LeafQuest - milago
GOGATAKI-MC_ark
Zen - Qinoa Igo

Round 2: (winner first)
Crazy Stone - Nomitan (very good game, Nomitan leading near the end)
HiraBot - caren
Aya - LeafQuest
Zen - GOGATAKI

Semifinals (starting soon, Michael Redmond comments)
Zen - Aya
Crazy Stone - HiraBot

Round 1

This was the first game of the knockout finals against Caren. Disaster strikes. MP-Fuego plays on Tsubame, a Japanese supercomputer, because Kazuki wants more time to test MP-Fuego with 2048 cores on Hungabee.

The number of nodes per second is much slower on Tsubame than normal. During the game it gets worse. Still it looks like we might make it, barely. But in the late endgame, the program reduces to a crawl, then dies. We lose on time.


Mount Fuji

Mount Fuji, from Meguro, Tokyo

Getting ready


Left: Remi Coulom (Crazy Stone), Hiroshi Yamashita (Aya), Kazuki Yoshizoe (MP-Fuego)

Some games from Day 1; preview of day 2

Just getting ready for the final day. I put a selection of some games from the first day on my web pages. The weather in Chofu is bright and sunny. It is Sunday morning and the streets are very quiet. The games will start at 10am, about 80 minutes from now. Michael Redmond, professional 9 Dan, will do game commentaries. For the second day, the tournament site is rearranged to have the computer desks all on one side, and the other side will have a projector showing a selection of games in progress, a big demo board for the professional, and rows of seats for the spectators.

I brought my camera but unfortunately I forgot the little card reader so I cannot upload the pictures. I will see if I can borrow or buy one today.

Today will be just four rounds, knockout style. However, all programs will play all rounds, and all places from 1-16 will be determined. The first game decides whether a program is in places 1-8 or 9-16, and so on.

Round 7, end of Day 1

MP-Fuego had no chance against Crazy Stone. It misplayed two standard corner openings and it went downhill from there. Most of the favourites won, but Nomitan lost against HiraBot which achieved 5 wins.

Final scores after Day 1:

1. Crazy Stone 7:0
2. Zen 6:1
3. Aya 5:2
4. MP-Fuego 5:2
5. HiraBot 5:2
6. LeafQuest 4:3
7. GOGATAKI 4:3
8. Nomitan 3:4
9. storm 3:4
10. MC-ark 3:4
11. milago 3:4
12. Katsunari 2:5
13. caren 2:5
14. Mayoigo 2:5
15. Qinoa Igo 2:5
16. ballade 0:7

Tomorrow, the pairings for the knockout tournament will be 1 vs 16, 2 vs 15 etc. So MP-Fuego will meet caren again in the first round, and possibly HiraBot in the second round.

Rounds 5 and 6

Round 5:
Zen beat Nomitan, Crazy Stone beat Aya. Zen and Crazy Stone lead with 5:0 and will play next round. MP-Fuego beats Mayo Igo and has 4 wins, and 1 loss from the default in round 1. Hirabot beats Katsunari and is also on 4:1. Aya, Nomitan, storm and LeafQuest have 3 wins 2 losses.

Round 6:
Crazy Stone beats Zen and is alone at 6:0. MP-Fuego beats Nomitan in a wild game. Nomitan's lab has their planned electricity shutdown today of all days, so they used a much weaker machine than usual. Aya beat HiraBot.

Crazy Stone 6:0
Zen, MP-Fuego 5:1
Aya, HiraBot, LeafQuest 4:2

Friday, March 14, 2014

Rounds 3 and 4

Round 3:
In the only game between two unbeaten programs, Zen defeats Hirabot. The other programs with two wins all win again. MP-Fuego gives its opponent milago lots of territory in the corners and on the sides, and goes for a huge center. Eventually, most of the center turns into solid territory, and MP-Fuego gets its second win.

Round 4:
Crazy Stone - Nomitan and Aya - Zen are the top boards. Nomitan captures Crazy Stones stones in the first corner, but soon Crazy Stone gets a big moyo (framework of potential territory), and Nomitan does not do enough to reduce it. Nomitan resigns. Meanwhile, MP-Fuego is paired against Katsunari. Katsunari is the last non-Monte Carlo program, and is very territory-oriented. In 2011, Fuego lost in the first knockout round against Katsunari, because it did not understand Japanese rules and filled its own territory in the end. Much like in the previous game, Fuego gets the huge potential center in return. These games make me much too nervous! Eventually, one of two weak Katsunari groups dies. Fuego proceeds to play ultra-safe, and gives away lots of points in the endgame. Still it ends up with a relatively comfortable 9.5 point win.

A crowd of people including 9 Dan professional O Meien is watching the Aya - Zen game. Aya has Zen in some trouble, but it messes up its shinogi (making life for a weak group) and a big group dies.

Round 5 coming up:
Nomitan - Zen
Aya - Crazy Stone
MP-Fuego will be black against Mayo Igo

UEC cup first two rounds

Well, everything that could go wrong went wrong in the first round. After a perfect test last night, the program just would not connect. Hungabee looked fine, our backup system in Japan looked fine, but no matter what Kazuki tried, we did not manage to connect any of our programs to the tournament server. We lost the first game against Hiroshi Yamashita's Aya without playing a single move.

Our frantic efforts continued as the deadline for starting the second game crawled nearer. Kazuki suspected a problem on his laptop, so we tried to move things over to mine. Copy files for the front end program and connection scripts over to my machine. Compile fails. Copy the missing library. Compile works. Ruby script fails to run. My version of Ruby is too new for the script. Can we install an older Ruby? Time is ticking.

Finally I say "let's play the game on the laptop". So round 2, instead of 2048 cores we use 2. We win the game. Kazuki finds the problem - it is his ethernet cable. Its transmission drops so many packets that the program which links the large machine to the laptop thinks it is disconnected. We plug in a different cable. Everything works.

So, for round 3 we are finally set to use Hungabee. Keeping my fingers crossed. This is way too much excitement.

The tournament so far:
The strong Korean program Dol Baram did not show up. There are 16 programs in the competition. The top contenders Crazy Stone (last year's winner), Zen (2nd), Aya (3rd) and Nomitan (6th) all have two wins. Hirabot is the only other undefeated program.

Round 3 will start in 10 minutes.
Pairings (white player first):
Mc_ark - Crazy Stone
Qinoa Igo - Storm
Ballade - Mayo Igo
Aya - Katsunari
Nomitan - Caren
MP-Fuego - Milago
Leafquest - Gogataki
Zen - Hirabot

Why won't it connect to the server? (Photo courtesy of Remi Coulom)


The morning of the first tournament day

The tournament starts today!
I think MP-Fuego is as ready as it can be. Let's keep our fingers crossed that the connection to Hungabee holds up. Hungabee is a large 2048 core machine in Canada. Last year we used it for this competition, and again this year we were allowed to "take over" the whole machine for the event. Thanks Compute Canada, Westgrid and the fantastic people that work there!

I'm still in Tokyo, will go to Chofu in a few minutes. It is Saturday morning so the trains should not be too crowded. It is a bright morning, and I can see mount Fuji from my hotel window. A rare and beautiful sight from this far away!

I will try to keep posting about the results during the competition.

    Martin

On my way to the 2014 UEC Cup

(written March 11, posted late)
On my way to UEC cup in Japan. I have just lost my first 13x13 game on even against Fuego, playing on my laptop in the plane. I won the second game, but Fuego won again in the third. This is great progress - I have had no trouble beating any earlier versions of Fuego on 13x13.

I fixed an important problem in the code in Vancouver Airport, and now the program seems to play much better. I spent the last month and a bit to implement a feature recognition and learning system to use as “prior knowledge” in Fuego. It had been better than the old Fuego version since about 10 days ago. However, there were some problems with the search process. The progam liked to play silly, suicidal moves a few times during the game, and it played reckless “overplay” attacks even when it was only slightly behind.

I spent the last few days getting ready for the trip and trying to understand the problem. I wrote some tools to let me look at the details of the search process and try to figure out what goes wrong and why. I flew from Edmonton to Vancouver this morning, and while waiting for my connecting flight I looked in detail at the “trace” of a search that ended up playing a very bad move. I found that the new “feature knowledge” caused the search to become unbalanced, and stray from the best move by giving a too-high weight to other moves. I wrote a few lines of code to fix that, and it seems like it is working!

I left Edmonton on Monday morning, but because of the tme difference it is now Tuesday afternoon in Japan. It will be evening before I arrive at my hotel in Tokyo. The next few days I will work with my colleague Kazuki on the program, then we will have the competition on the weekend.