飞扬围棋

标题: 对围棋软件 ZenHacker的作者的访谈 [打印本页]

作者: Fish    时间: 2003-8-13 16:12
标题: 对围棋软件 ZenHacker的作者的访谈
这个围棋软件的名字是 ZenHacker,作者是挺有野心的,并且提出了所谓的围棋人机对弈软件的新设计思路,关于该软件的更多信息可去看看其网站:
http://www.zenhacker.com

这里是对作者的访谈的原文
http://www.zenhacker.com/Interview.html

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.

Frank: 证据已经摆在眼前了.... 在我开始编写围棋程序之前,我曾怀疑过这种想法:要想编出强大的围棋程序,你自己至少必须是个专业棋手。我发现了为什么他们会这么说:围棋程序员们似乎在“人工地”将详细的围棋知识灌进他们的围棋程序中,例如,各种棋型模式等。我认为这是过去几十年以来围棋程序为什么不能超越6级的部分原因。因为围棋太复杂了,这种方式是无法抵达目的的。这需要一种创新。我有很多想法,大部分与机器学习以及基于目标的搜索有关。

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.

Frank: 我不想纠缠在细节之中,但是我有一个非常实际的步骤。程序只允许从强大的围棋选手那里学习--指的是各种围棋棋谱记录。我会克制自己不去干扰学习过程,我所做的唯一的事情就是去检查 ZenHacker 是否有进步,方法是验证它是否能更准确地预测职业棋手的落子。

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.

Frank: 其想法是通过创建一个能够学习“棋型”或“连接性”或“势力”的模块来定义一个围棋知识的子域(sub-domain)。接着你就可以用其来分析数以千计的对局了。你要让程序系统尽可能多地学习每一个子域,然后让该子域中的知识与其他所有模块中的知识联系起来。建立能够自动学习的模块要做很多的工作,而实际上的程序...除了非常细节的并且是自动产生的围棋知识的数据库之外,并没有太多的东西。

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]

Frank: 这个是和计算机目前的对弈水平相适应的。在它学习了许多围棋对局之时,它应该能够改进自己的水平,使用的方法类似于国际象棋程序中的搜索技术。那些国际象棋程序目前已经能击败国际象棋大师,并且能偶尔击败世界冠军了。当然,围棋的搜索空间要大得多,但这只是一个剪裁的问题。并且一个已经具备段级水平的直觉能力的围棋程序能被狠有效率地剪裁。当然,许多东西依赖于具体实现的速度。有时候我在半夜醒来,浑身是汗![笑]

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: 是的,我要感谢他们为此发表的所有内容。我希望有一天我也能为科学界的团体回报些什么。


[此贴子已经被作者于2003-8-14 8:46:09编辑过]


作者: prontjiang    时间: 2003-8-14 09:17
Looks cool. 不过看他说的:

"Frank: [laughs] On the contrary. I barely know the rules! I may have played a dozen games, that's all.
Frank: [大笑] 正好相反。我仅仅知道规则而已!我大概下过十来盘棋,就这么样了。"

让人觉得这个人有点 "无知者无畏".
作者: AWater    时间: 2003-8-14 12:39
只能一笑而过。
作者: 郝搏生    时间: 2003-8-14 14:38
但好象围棋知识是可以学习的吧?
学习简单的围棋知识需要花很长时间吗?
学习下围棋有学习编写电脑围棋程序难吗?

[I]感谢楼主提供信息。[/I]


作者: laocat2003    时间: 2003-8-15 05:58

难得!难得!!
作者: ywqz    时间: 2003-8-18 12:51
我们没有资格嘲笑任何一想法,但一蹴而就很难。这个世界复杂难分简单难懂。
作者: 小面包    时间: 2003-8-19 04:26
不觉得有什么可笑的,至少他的想法比刻板灌输要来的先进吧
作者: 小面包    时间: 2003-8-19 04:37
对人机对弈最感兴趣的一点是,在专业棋手中所谓“感觉的一手”,或者说某个局面下专业棋手之间都会有各自不同甚至截然相反的判断,还有“该局面双方可下”等等的,这些即使靠再复杂的计算也是枉然,那么电脑面对类似局面它怎么进行下一手呢?
作者: 郝搏生    时间: 2003-8-19 10:37
一语中的。
我在此不想重复我的老调、但好象还得提一下的:电脑不会下,只是证明了人类的能力有限。

看来也是一个感兴趣的。
对所谓“感觉的一手”等,就目前所知的电脑运算能力来说,还得靠量化、定量表示,以及大量的、所有能找到的围棋知识表示到电脑之中,等等。这里,不一定是“复杂的计算”,而是有效的判断(if-then),等等。

继续有兴趣的,可另文探讨。
[I]一家之言,仅供参考。[/I]
作者: cxterm    时间: 2003-9-3 13:25
以下是引用小面包在2003-8-19 4:37:33的发言:
对人机对弈最感兴趣的一点是,在专业棋手中所谓“感觉的一手”,或者说某个局面下专业棋手之间都会有各自不同甚至截然相反的判断,还有“该局面双方可下”等等的,这些即使靠再复杂的计算也是枉然,那么电脑面对类似局面它怎么进行下一手呢?


这些情形大多数是由棋手的棋风所决定的。我想如果电脑对类似局面作出判断
的话,也会导致电脑业呈现不同的风格吧? 呵呵。
作者: ywqz    时间: 2003-9-15 16:01
UP




欢迎光临 飞扬围棋 (http://flygo.net/bbs/) Powered by Discuz! X3.2