Fish 对翻译的说明:时间不多,匆匆而就,翻译比较粗,不少地方是意译的,大家将就一下,主要看原文吧。
--------------------------------------------------------------------------
The title of your website says: "Building the strongest Go program", aren't you exaggerating a little?
你网站的标题是:“创造最强的围棋(人机对弈)程序”,是不是夸张了点?
Frank: Well, it may sound over-ambitious, arrogant or even ignorant, but when I say such a thing, I mean it. ZenHacker is by no means the strongest Go program yet, it doesn't even play a full game of Go. But yes, I am building the strongest -future- Go program. Dave Dyer once said to me: "The world isn't waiting for another mediocre Go program". I believe him. David Mechner said: "I predict that thirty years from now a computer will play go, without a handicap, against someone of Kim's caliber. And the computer will win." I agree with that. And I'm trying not to disappoint him.
Frank: 嗯,听起来是有些过于雄心勃勃、狂妄甚至是无知的,但我是很认真地说的。ZenHacker目前还不是最强的围棋程序,甚至还不能下上一盘完整的对局。但是,我确实是在创造最强的“未来的”围棋程序。Dave Dyer 曾对我说:“这个世界是不会期待一个平凡的围棋程序的。”我相信他所说的。David Mechner 说:“我预测三十年后会出现能够在不被让子的情况下与 Kim 这样水平的棋手相抗衡的计算机(围棋程序)。并且计算机能赢。”我同意他的说法,并且我正在努力不使他失望。
Fish注:Kim 大概是指美国女棋手 Janice Kim,她在韩国获得职业初段
How can you be so sure? Are you a such a strong player?
你怎么能这么自信呢?你自己有这么强吗?
Frank: [laughs] On the contrary. I barely know the rules! I may have played a dozen games, that's all.
Frank: [大笑] 正好相反。我仅仅知道规则而已!我大概下过十来盘棋,就这么样了。
Then how are you so sure that you can make a competitive Go program?
那么你怎么能够这么确信你能创造出这样的能与人类竞争的围棋程序?
Frank: The proof is in the pudding already.. When I started with Go programming, I was sceptical about the idea that you needed to be an expert player in order to make a strong Go program. I discovered why they said that: Go programmers seem to "manually" put detailed Go knowledge into their Go programs, like, in the form of patterns. I think this partly explains why Go software hasn't progressed beyond 6 Kyu, for the past decades. Because Go is to complex to approach it that way. What is needed, is innovation. I have lots of ideas, most have to do with Machine Learning and Goal-based Search.
You mean that your program learns like a human does?
你是说你的程序能够像人类那样学习?
Frank: Yes and no. In order for a Go program to learn "like a human does", you would need to simulate human brain processes. That would be very inefficient with a Von-Neumann architecture, not to mention the fact that nobody knows how humans learn, exactly. I *do* use learning, but by simple number crunching, not by endulging in abstraction or neural networks.
Frank: 既是又不是。为了让围棋程序“像人类那样的方式”学习,必须模拟人类的大脑处理方式。对于冯诺依曼体系的计算机来说这种方式是效率极低的,更不用说根本就没有人知道人类是如何学习的这一事实。我“确实”使用了机器学习,但只是单纯的数字处理,而不是 endulging in abstraction 或神经网络。
Fish 注:这里的最后一句话两个关键单词不知道该怎么翻译,瞎来了。
Could you elaborate on that?
你能否详细说明一下?
Frank: I don't want to go into details, but I have a very pragmatic approach. The program only is allowed to learn from strong Go players - in the form of game records. I refrain from interfering with the learning process, and the only thing I do is check whether ZenHacker has improved, by verifying that it predicts a higher percentage of pro moves.
That sounds interesting. How does ZenHacker learn?
听起来挺有意思的。ZenHacker 是如何学习的呢?
Frank: The idea is that you define a sub-domain of Go knowledge by creating a module that learns "shape", or "connectivity" or "influence", for example. Then you go and parse hundreds of thousands of games. You let the system learn as much as possible about every sub-domain, and you let it correlate that knowledge with the knowledge from all the other modules. It's a lot of work building the automatic learning modules, while the actual program - ..there is not much except huge databases of very detailed, automatically generated Go knowledge.
But how will you ever make a Go program of pro-strength, when 95% of the games you use for learning are amateur games?
既然你的程序所学习的对局95%以上是业余棋手的对局,你怎么能够制作出专业水平的围棋程序来呢?
Frank: This is where the specific strengths of the computer come into play. When it has learned a lot from game records, it should improve upon that with similar search techniques used in chess programs. Those programs are now routinely beating grandmasters and occasionally the world champion. Of course Go has a much larger search space, but this is a pruning problem. And a Go program that has aquired dan-level "intuition" of the game can easily prune efficiently! Of course a lot depends on speed of implementation, and sometimes I wake up at night, sweating. [grins]
It sounds ambitious but interesting, although I'm not sure your approach will work - When do you expect to have a first version ready?
听起来挺有野心且很有趣。不过我还是不敢相信你能达到目的。你认为什么时候会有第一个版本?
Frank: Good software should never be rushed. This is especially true for a Go program. A lot of seemingly minor decisions have a major influence on the maximum attainable playing strength. I aim to have an interesting version ready at the end of 2004. In the meantime, you can see how I progress in the CodeLog.
Frank: 好的软件从来不是赶出来的,对于一个围棋程序来说尤其如此。许多看起来细小的决定会对所能达到的最高对弈水平有很大的影响。我希望在2004年年底能有一个有趣的版本。与此同时,你可以在我主页的 CodeLog 栏目中看到我的进展如何。
Are you encountering obstacles?
你遇到什么障碍了吗?
Frank: Of course. Things are not as simple and easy as I might have made them seem. ZenHacker needs a lot of stuff. Life & Death search for example. That can't be "learned", I'm afraid. Look at Thomas Wolf, he spent a third of his life on it.
Frank: 当然。事情不像我当初想的那么单纯和容易。 ZenHacker 需要许多素材。例如死活题搜索。这是不能“学习”的。我有点担心这个。看看 Thomas Wolf 吧,他三分之一的人生都花在这上面了。
Is there anything you want to say to your fellow computer Go researchers?
你想对像你这样的计算机围棋研究者说点什么吗?
Frank: Yes, I want to thank them for everything they've published. I hope that, one day, I will be worthy of giving something back to the scientific community.
Frank: 是的,我要感谢他们为此发表的所有内容。我希望有一天我也能为科学界的团体回报些什么。