|Go Bet Results|
Move listings for most of the matches (sgf, pdf) are also available.
Will beat Scott's program 195.5-171.
Scott's program was "still not legal", as admitted by Scott, because it used a neural net from the internet rather than Scott training his own. Scott combined his search with the neural net, by multiplying the probabilities. The neural net has much better positional awareness (e.g. opening moves, the opening book). The search "score" is the value of the expected point gain + 2x the threat value. Every 3 points in expected difference equals double the probability.
Scott thought his program "might" beat Will, but he hadn't played against it yet himself, so he wasn't sure.
During the game, the program made at least one move that wasn't the top choice of either system (neither search, nor neural net). It was #5 in one, and #6 in the other. But the two systems disagreed strongly about the other potential moves, so when combined it became the #1 move choice. There was also another move, that was ranked #1 by the search system, and ranked 0% by the neural net (so it was rejected). There was also a "compromise" wasted move (on a group already dead), that was not a top choice of either system (but again became a top choice when combined).
This program was a huge step up in Go competence from Scott's previous versions. By far the best entry Scott has ever offered during this bet. About halfway through the game, we agreed to allow the program to "self play" (both sides) to the end. The final score was 195.5 for white (Will) to 171 for black (Scott) with 5.5 komi.
Will won, so Scott paid Will & Don $10 each. The game was surprisingly close, though!
Scott's program was unchanged. He played a human game against Will instead (no komi). In a mild surprise, Will actually won the game, 44-26.
Dusty wasn't available for the running bet. Instead, just for fun, Joe (who used to be a sprinter in high school) ran a race against Will. They headed in opposite directions on the horseshoe circle. Joe completed the circle in 25 seconds, by which time Will was only slightly past the halfway mark.
Also, Will paid Joe $1000, as a resolution of the side bet that the world champion Go player in 2024 would be human. With AlphaGo's success in 2016, Will conceded that the world champion is likely already a computer, and certainly would be in 2024.
Will beat Scott's program 215.5-151
Dusty inaugurated the first race in the 10-year running bet against Will. We found an approximately circular path outside the back of Tressider. They ran the circle simultaneously, but in opposite directions. Will finished in 39.10s, Dusty in 56.25s (with an initial fall). Will wins the first race.
Scott, following the lead from Dusty's computer Go victory the previous time, integrated the neural net, and was halfway to implementing the Monte Carlo search technique. His Mac doesn't have a CPU that works with CAFFE, so his workaround plan isn't yet clear. The program he fielded ran just the neural network, but -- as it was just a copy of the Go-playing neural network found on the internet (a 12-layer convolutional NN) -- the submission wasn't a legal entry into the bet.
Nonetheless, Will played Scott's program as an exhibition. The program was actually dominating the early to mid-game. (Perhaps not a surprise, as it was doing pattern matching on expert-level games, and the early board were excellent matches to real games.) It was also very fast, returning the next recommended move essentially instantaneously. However, after the mid-game, the program made about 3-4 moves that were tactical errors, and wound up losing large chunks of territory and pieces that even an average player should have been able to keep alive. At the end, Will (white) won, 215.5 to 151.
We also clarified that, under the terms of the bet, it was not legal for Scott to directly copy the 1-page NN structure code from the internet (as Dusty had done last time), nor was it legal to use the CAFFE neural net library. Legitimate programming submissions by Scott must be written completely by Scott, in a programming language no more capable than the typical general purpose languages (Java, C++, Lisp, etc.). Libraries are allowed for non-core work like graphics and file I/O, but the not for the reasoning algorithms of the program.
Will beat Scott's program 262-99. Dusty's program won, but was ruled invalid. Don and Will bought out the bet with Dusty.
Scott: No change to program. Scott conceded, then played vs. Will with a 9 stone handicap. Will (white) won, 262-99.
Dusty: Was 1 hour late, "working on the program". He used a "deep neural network" to suggest moves to a "Monte Carlo player". The network was trained on master games. Using the GPU, the NN gets 50 games /sec instead of 8000 /sec. (50milli to ask GPU NN.) Just the NN gives 44% match to grandmaster moves (but Dusty's gives 20% match). Monte Carlo now evaluates 5 moves (suggested by NN) instead of 300. Scott: "Best I've seen one of our programs do." Used CAFFE machine library, + 1-page NN model. Was this an invalid entry into the Go match? Likely, because of use of library code from other programmers. Cornell: Teaching Deep Convoluted Networks To Play Go. Monte Carlo uses NN to pick 5 moves at every level, so branching factor drops to 5 (vs. 300).
Dusty's program beat Will! But the computer entry was ruled invalid, due to use of other programmer's libraries. Nonetheless, we all agree that, with considerable effort, Dusty would be able to reprogram those libraries from scratch. And the program was sufficiently better than Will, that it seemed clear that Dusty would win future matches from then on. As a consequence, Don and Will bought Dusty out of the remainder of his bet for $800 (= repayment of the $700 Dusty had lost to date, plus an additional $100).
Running bet (vs. Dusty) begins: Joe Mathes took the final $5000 chunk.
Narinder was not present at the 5/17/2015 match.
Will won both games against the two computer players: beat Scott 318-43, and beat Dusty by 8 (+/- 42).
Will played as White in both games (receiving the usual 5.5 komi against Scott's program); the computers, as Black, went first (as usual). Dusty's program started with a 2-stone handicap.
Scott: Reimplemented group analysis (static analysis of what groups of stones are connected). Been working on it "reasonably consistently for the last month. Significant progress." Cleaned up the code, so that it is easier to work on in the future. Will won, 318-43; Scott's program secured one edge.
Dusty: Essentially the same program as last time (but with slightly better opening book knowledge). The program stopped in the midgame. The estimate was that white won by 8 (+/- 42).
Joe: On 3/31/2014, Joe exercised his right to "opt out" of his perpetual bet. The buyout provision technically required $1000 in losses first, plus a final match (including the stakes of the final match) before a final $100 termination fee. Joe was allowed to opt out for a total of $100.
Joe and Narinder were not present at the 5/18/2014 match.
Will won all 3 games against the 3 computer players. Will beat Scott's program 187 to 18, and defeated both Dusty's and Joe's programs.
Will played as White in all three games (receiving the usual 5.5 komi against Scott's program); the computers, as Black, went first (as usual). Dusty's and Joe's programs both started with a 2-stone handicap.
Scott: "Part of the reason I haven't made much progress with my program is: I decided Go was too easy. I decided to focus on the Turing Test." In the midgame, Scott's program passed. Will immediately passed as well, which meant the game was over. Will won, 187-18.
Dusty: Big improvements (or at least changes) to the opening book. Better at local pattern recognition.
Joe: Joe's program played an opening, and then forfeit. (It wasn't a serious program.)
Will won all 3 games against the 3 computer players. Will beat Scott's program 315 to 46, defeated Dusty's program, and beat Joe's program by whole board to 1 point.
Will played as White in all three games (receiving the usual 5.5 komi against Scott's program); the computers, as Black, went first (as usual). Dusty's and Joe's programs both started with a 2-stone handicap.
Scott: "Sadly, my program is no better. But not for lack of trying. I did build a simple stochastic player. Unfortunately, it was worse than my previous program." Scott's program passed, halfway through the game.
Dusty: "Got the pattern player working. It plays noticeably better on 9x9 boards. Sped up the code 10x." Played opening book moves (very strong) through the first handful of moves.
Joe: "Makes a move in a few microseconds, and then sleeps for 30-200 seconds, to pretend that it was thinking." The move choice was by "copying a move from the most similar master level game it could find", where similiar is "defined badly but for quick lookup". In the mid-game, from Will: "This is like popping bubble wrap." Joe's program captured a stone, so he got one point; Will got the whole board.
Will won all 3 games against the 3 computer players. Scott's program "passed" halfway through the game, and lost with zero territory. Dusty's program finished with a little territory, Will won that game 101 to 35. Joe got a working game player, but didn't play a game.
Scott was moving to a new house, so the standard date for the match was postponed by a couple of weeks until the Sunday of Thanksgiving weekend. Scott hosted at his new house.
Scott: "Between moving to a new house and getting a new job (@ Google), I haven't made any changes."
Scott's program "passed" halfway through the game, believing that all black stones were dead. Scott conceded, with zero territory.
Question to Dusty: "Your program had some bugs last time. Have you fixed the bugs?" Dusty: "I made a lot of changes. It's a whole new program." Dusty's program was not running on the Amazon servers this time, but instead his new MacBook (16GB RAM, retina display). Dusty added "open book knowledge trained off downloaded games" (both whole board and section matching), and moved from a 1 CPU implementation, to multicore.
Dusty implemented his "pattern player" (vs. a random player), but it was too slow. (20K games/sec vs. 300 games/sec.) Thought he was done at midnight, but after adding training data the program ran too slow, so he actually finished at 8:30am.
Dusty thought it was playing "connect-12", although it had been "trained on connect-4". His own evaluation was that it was playing "decent moves ... against a random opponent".
Result: Will won, but Dusty's program got some territory. (Don lost a $1 side bet to Scott, on whether Dusty's program would have any territory at all by the end of the game.) Will wins, about 101 to 35.
Joe had nothing, when the day started. He began programming, as the other two games started. Halfway through, he announced: "I downloaded a Go GUI. You can see the board, but it won't make a move." By the end of the match, Joe successfully implemented a random player, hooked up to the GUI.
Will defeats Scott, white 316 to black 65 (Chinese scoring). Also Will defeats Dusty.
Scott's program changed very little since the previous time. He tried to make it more conservative in the estimation of life & death. He also left Yahoo two weeks ago. Will began the game with a beer. Outcome (Chinese scoring): White (Will) 316, black (Scott) 65.
Dusty, for the first time, stayed up the entire 24 hours before. He improved the engine, and ported it to Amazon EC2. For the match, he purchased time on 100 servers, for a 100x parallel implementation. He also changed the evaluation: now using minimax for 2ply, instead of just the top move (before random search).
Will beat Scott's program, by 192 points. Dusty's program lost (resigned) to Will.
Scott was running on new hardware, a Mac (requiring reimplementation of the graphics), about 10x faster. He made a "small change" to incorporate learning, in the evaluation function.
Scott (in the middle of the match): "It makes me wonder whether, with a few tweaks, my proram could play a lot better."
A week ago, Dusty's program beat him on a 9x9. Dusty's program picks a move, then plays a sample of random games (with random moves) until the end. In contrast, Scott's program does a few ply of lookahead, and then evaluates the material strength of the resulting intermediate position. (Dusty's program does no intermediate evaluation.)
Will vs. Dusty's program: "It was kind of close, in a way: twice, I thought I saw ways that the bot could hook its big dragon to the live group in the lower left, or claim an eye and have a fighting chance of creating another eye in the upper left corner. But, it basically squandered those opportunities..." In the end, "black makes no life."
Dusty resigned, with no final score, but remarked: "I think it will always be hard to judge relative strength of my bot based on score, because it prefers to play bad moves that 'might' win rather than good moves that don't change the fact that it's losing, but prevent it from losing by 'less'."
Later, Will "demolished" Dusty's program on a 9x9. Dusty: "I realized from some corner play (and the bot's estimations of its chances) that I think there is a bug which is causing the bot to incorrectly assume the opponent is playing mostly randomly after a horizon of about 1.5 ply with the parameters it was fielding today. So, maybe with that fixed it will be better about not letting live groups die."
Scott's program lost to Will. (But it beat Dusty's program. Dusty's program lost to both Scott's program and also to Will. Narinder was unavailable, traveling.) Also, Will lost to Don (twice) in submission grappling ($1/match, 100:1 odds).
Scott attempted many improvements. His program appeared to play better. Scott credited the improvements to:
Dusty changed his program considerably, but it was unclear if it was any better. He slept not at all the previous night. He "finished the pattern player", but "didn't have time to generate the pattern database" (so that code was not used). Dusty was (jokingly) accused of "programming in real time", as it was noticed, during the match, that his Github source code repository was "last updated a minute ago". Halfway through the match, the consensus from the humans was that it seemed to be playing more randomly, and worse. An incredulous comment: "You were up all night ... and you made it worse?" Midway through both games, Dusty forfeited to both Scott's program and to Will. (The games were not completed.)
Separately, Will suggested a new bet with Don: physical submission grappling until one participant gives up. Will is about 175 lbs; Don about 145 lbs. However, Don has trained in martial arts for more than 20 years and holds a black belt in Brazilian Jiu-Jitsu, while Will only has some brief instruction in karate. Will agreed to risk $1, on 100:1 odds, that he could defeat Don. He attempted twice, and lost both matches. First match: Don feels out the takedown, pulls guard, gets full guard, transitions to omoplata, Will powers out by straightening his arm, Don (now on top) transitions to a rear naked choke, Will taps. Second match: Don remains standing, lots of back-and-forth arm pummeling for position, Don eventually gets double underhooks/bearhug, more jockeying for balance, finally Don gets an outside leg trip takedown (like Royce vs. Gordeau in UFC 1), and winds up straight into mount position on the ground; Will taps from position (no submission).
|Match 1 video (31M)||Match 2 video (32M)|
A few days after the grappling match, Will said that he had spent some time thinking about what new strategy he might use against Don next time. But then he stopped himself, suddenly realizing that "six months thinking about strategies" vs. a BJJ black belt (who has trained submission grappling for a decade, under a teaching lineage that has about a century of experience) is sort of like "Scott writing a world championship Go program without reading a single paper on the the state of the art".
Scott's program was "slightly tweaked". Forfeited match against Will. Instead, played a match against Dusty's program. Dusty's program won, 67 to 50.5 (= 45 + 5.5 komi).
Dusty's program (black) played Scott's program (white) with 5.5 komi. Scott
"tried to write" his "next-generation life & death" algorithm, and wound up
instead with a new appreciation for his old algorithm.
Dusty got one hour of sleep the previous night (10am-11am). Dusty's program used Monte Carlo methods. "It's never actually played a real game."
Scott forfeited without his program playing a game. (No change in six months.)
Scott spent a lot of time "thinking", but no time "coding". As the program hadn't changed, he forfeited the match. Meanwhile, Will has been training regularly with a professional Go tutor, and believes himself to be about 10 kyu. Scott only plays at our biannual Go challenges. Will said he would "easily" beat Scott in a straight up game. Will wound up losing to Scott, 44 1/2 (39 + 5 1/2 komi) to 53.
Ben (Will's brother) won easily. Scott's program had improved slightly, especially in the early game. Narinder was out of town, in India.
Jill (Will's girlfriend) wins by a score of 151 to 73.
A week before the match, Scott admitted that
As of right now, my program has not changed at all since last time, though I have some vague hope of implementing a new learning idea tomorrow or Wednesday.
After some scheduling chaos, this match took place on the Saturday after the officially scheduled date.
Will offered up his girlfriend Jill as the designated human champion. Jill had never played the game before a few months ago, and had only played about twenty games on a 9x9 board as practice. This was the very first game of her life on a 19x19 board. Scott was thrilled to offer his computer the best chance at a victory since the bet began five years earlier. (The game itself wound up being one of the most even and interesting in the history of the bet.)
Jill (a yoga instructor -- notice seated position in first photo) was extremely nervous all day, but bravely stepped up to the plate anyway, playing black.
As the early game developed, Jill began to lose about 1/3 of the board to Scott's computer, not contesting one corner and edge at all. However, in the rest of it, she did a good job containing and counterattacking.
In the late game, Jill had lost the 1/3 of the board. The rest of the board was a tactical battle, where Jill generally had at least a slight advantage in almost every local area. She would have to basically win each of the battles, in order to win the game.
And ... she pulled it off! There was a minor scare at the end, where the computer barely managed to make (space for) two eyes at the bottom of the board, and a small formation survived. But other than that, Scott's program kept the 1/3 of the board that it won early, but Jill won everything else. At the position shown in the final photo, the computer passed. And Jill was thrilled to pass as well, thus ending the game and her long nervous nightmare. But with great success! Final score was Jill 151, to Scott's program 73.
Ben (Will's brother) wins 238 to 128.5. (Also, Will beats Scott by surprise, by 20 points.)
Will was supposed to be the human champion, but at the match offered his brother Ben instead. Ben beat Scott's program by 238 (black) to 128.5 (white). (As usual, the end stages of the game were completed by the computer playing both sides.)
Overheard during the match: Scott saying
What I've discovered after all these years of working on it, is that machine learning is pretty simple.
At the same time, Will challenged Scott to a human vs. human game. They've played many times together in the past years, and it's always been clear that Scott is much better. So, in these games, Will always starts with a handicap advantage of a handful of stones.
But in this game, Will offered to play Scott even, with no handicap. Scott readily agreed, and thought it would be amusing. And of course, he was distracted watching his computer play (and lose) against Ben.
As the game with Will progressed from the opening to the midgame, Scott discovered that things weren't going quite as easily as he expected. Areas he thought were secure, wound up being threatened. Areas he thought he could attack, somehow escaped at the last minute.
Confused, Scott really began to concentrate in the midgame, and tried his best in the endgame. Alas, he wound up losing to Will, straight up, by 38 to 57, for a margin of 19 stones. Scott was flabbergasted, as Will had never come close to beating him with only a couple stone handicap, much less with zero handicap.
Only then did Will admit that, for the previous six months (since the last Go match), he had secretly hired a professional Go tutor (a Romanian 4 dan coach), and had been explicitly studying the game. Apparently, after a decade or two of Scott being much better at Go than Will, a few months of dedicated training allowed Will to catch up. (At least, to an unprepared Scott, who hadn't been playing regularly himself.)
As a result, Will was able to catch Scott by surprise in a head-to-head no-handicap game, and won by almost 20 points.
Will won, by a score of (approximately) 252 1/2 to 114. Scott claimed to have only made a "few small changes" in his program, but Will judged it to be an order of magnitude better than any previous version.
Scott implemented an entirely new program ("this time with search"). Will agreed it was much improved. Scott's laptop lost power right before the end of the game, so he forfeited.
Since Scott's programs have been so pathetic compared to Will's skill, we have been reduced (for entertainment purposes) to making subgoals. Our usual one was wondering whether Scott's program would have any territory at all by the end of the game.
As this match began, Will said that the usual no-territory subgoal was no longer interesting enough to him. He wanted to try a different handicap. He decided that he would make every other move "blindfolded". This isn't quite random, as he could place a stone in the rough area that he wished. Still, it made the game, and even the strategy, quite interesting. For example, many obvious typical Go situations (such as whether a group of stones is alive or dead) assume that you can make the correct countermove any time your opponent makes a move. It's quite a bit harder if your every-other move might not go exactly where you wish.
About halfway through the game, it appeared that Will was winning. But it was close. Will was also running out of time, so we all decided to abandon Will's odd blindfold strategy. He played another 10-20 moves just in the regular manner, with the objective of getting sufficient strategic advantage that we could just have the computer play itself quickly to finish the game.
When the game was slightly more than 1/2 done, Will stated that he was satisfied that he could win, even if the computer played both sides from then on. For speed reasons, we also decided to drastically limit the amount of searching Scott's program would do at each step. Naturally this meant it would make far more mistakes, but we figured it would make mistakes on both sides so it should cancel out.
Much to our surprise, as the endgame evolved, the outcome appeared to be in doubt. Many areas that Will thought he had shored up sufficiently to be sure they would remain in his hands at the end, wound up not being secured by the computer in the way Will imagined. For a short time, we were concerned that the humans might actually lose the match for the first time ever.
Then, as we were all watching the endgame quickly unfold on Scott's computer screen, Will's brother Ben said "is your battery low?". Indeed, a notification message had shown up on Scott's computer screen. He had plugged the laptop in to an electrical outlet, but it appears that the outlet was not actually providing electricity. Scott quickly attempted to save the game in progress, but in the process of pressing some keys to do so, somehow managed to simply quit the entire application without saving. The laptop still had a tiny bit of power remaining, but now the Go program was no longer running, and the game state was lost forever.
Scott conceded the match.
Scott worked hard (for two weeks) on his program, but the program he actually fielded was clearly worse than those in previous matches. He forfeited the main game to Will without playing. He lost to Narinder by 45.5 points (16 to 56).
In the previous match, Scott's program had worked "bottom up" to evaluate the board. He decided that this was a theoretical error, as the search space grew too large too fast. He spent (the last) two weeks working hard to implement a top-down search instead, only to find (the day before that match) that it, too, suffered from the same too-large search space problem.
Scott forfeited the match against Will, since he would otherwise have submitted the same program as last time, and Will already crushed that one.
There was an additional one-time side bet of Narinder ($10 Will) vs. Scott's program ($10 Scott) in a separate match. Scott intended to use his latest working version, but the source was not in a working state on the last day. (Scott claims that, with just one more day, he could have gotten it working.) Scott then intended to use the most recent version from six months ago against Narinder, but was unable to find that executable on his laptop. (Apparently, it had been deleted.) The most recent executable he could locate was dated 2004. This program actually played an interesting match against Narinder, who had just learned Go for the first time and spent a total of about 15 hours in the previous two weeks studying the game.
Narinder (playing white) won, by a score of 56 to 16. Including the komi of 5.5 points, Narinder won by 45.5. A very respectable, although not quite dominating, victory to the novice human.
Scott's program lost with zero territory. However, it was agreed that its play had improved greatly since the previous match. A "small bug" resulted in often placing stones in atari; without the bug, Will guessed that it might actually have won some small territory.
Scott didn't change his program in the previous six months, and forfeited without playing the match. Narinder was travelling in India and didn't make it.
Scott didn't change his program in the previous six months, and forfeited without playing the match.
Will (white) won the entire board. Scott ended with no territory, and a handful of prisoners.
Will (white) won the entire board. Scott ended with no territory, and a single prisoner.
Don ~+200, Scott ~-200. Scott ended with a small group of about 10 stones still alive. Original email report (reproduced below).
From: Don Geddis
The long awaited, six-months in the making, man vs. machine Go match finally took place yesterday:
Don Geddis vs. Scott's Go Program
Sunday June 8th, 11:30am
Stanford Coffee House
It was probably my first and only game on a full 19x19 board. I didn't realize how long those games can take! Hours later, we were finally done.
How did it go? Scott's amazing program achieved the following remarkable feats:
Scott was a little rushed at the end of the game, so we didn't finish the whole thing and come up with an exact score. However, we can estimate the approximate score. 19x19 is a little under 400 points. Near the end of the game, there were roughly the same number of white and black stones. At the end, on behalf of his program, Scott conceded all the stones except the lone group with two eyes.
So, at the end, Don had perhaps 250-350 points of territory, plus ~200 prisoners from the program. Scott's program had two points of territory, perhaps 10 stones still on the board, and maybe 5 or so prisoners of his own. Making the score, roughly, positive a couple hundred for Don, to negative a couple hundred for Scott's program.
Humans win again!
A quick postscript: Scott, ever the confident one, proposed re-upping the same bet for another six months. I was a bit reluctant, having actually been (needlessly!) worried the first time, I thought I had done my fair share to hold up the human side of things. Conveniently, Will Harvey (a _much_ better player than I) offered to take my place. As Scott debated whether to accept this more challenging bet, Will offered him 100-1 odds. Attempting to push Scott over the edge, I joined Will in the stakes.
Scott accepted. The Great Scott Roy Go Computer Challege, #2, is now set for six months away. On Sunday, December 7, 2003 (or within a week of that date), Scott's latest "new and improved" Go program will play a single challenge match against Will Harvey. If Will wins, Scott owes me and Will each $10. If Scott's program wins, we each owe Scott $1,000.
For those considering some side bets: it may interest you to know that in the first Great Go Challenge, Scott's program spent the first five months and three weeks "sucking". Then, in the last few days, it improved by "an order of magnitude". The final version was completed at 2am on Sunday morning, for the Sunday 11:30am contest. Those of you with experience in delivering robust software may wish to take this into account when estimating the likelihood that Scott's program six months from now might defeat Will Harvey.
|firstname.lastname@example.org||For encrypted email, use my PGP Public Key.||Last updated 10/22/17|