电脑与假说

学围棋的时候,会看到很多棋谚,例如,“二子头必扳”。

围棋的进行,可以看作逻辑树状图,每步分叉出几百个可能性,下一步决定以后,又分叉出几百个可能性,如此类推直到终局(且让我们放下如何定义终局这个技术问题)。这样总共的变化,约莫估算,是300的阶乘这种数量级,自然是天文数字。

如果人类的计算力无穷,又快又准又全面,棋谚是完全多余的。看到一步棋,直接往下算就可以了,管它长什么样子。棋谚之所以出现,就是因为我们计算力不够。事实上,人类直接计算力很弱。“二子头必扳”,是一个规律,目的是简化计算。这也是人类比起机器强大的地方。

之后,我看了张五常的经济解释。

规律是事实的总结,基于规律我们可以提出假说。假说如果必然对,就肯定是废话。例如,“二子头可以扳,可以不扳”,它没有可能错,但就肯定是废话。“二子头必扳”,可能错,因为可能有某局面,二子头,却不应该扳。可能错,因为它去掉了某些可能性(不应该扳),却因此有了意义。

在现实中,二子头必扳不是必然的。的确有特殊局面。棋手依然认同这句话,因为它对的可能性比较大。在特殊的局面,有的棋手,有时即使是高手,也会受棋谚束缚,依然扳二子头而效果不佳。有的棋手却可以洞察到局面不同,而下出因地制宜的好手。

在逻辑上,没有“对的可能性比较大”这种说法。如果二子头必扳不是必然,那就是错的,怎么办?我们可以加入别的假设,例如除了某某某情况,二子头必扳。这样理论就被修补了,直至下一次出错,又再次修补。不过这不等于棋谚会越来越长。可能有个天才出现了,告诉你,其实重点不在于二子头,而是更一般的xxx,规律总结起来却很短。这样,假说不是被修补,而是被更一般的假说取代。人类的认识,就在这一次次的修补和一般化中增长。

我不清楚Alphago的算法是如何。它的水平没有达到顶尖棋手,但光看棋谱已经看不出是机器了。这就是人工只能的定义吧。不过我认为,电脑还没有掌握假说的能力。

有个叫做“蒙特卡罗”算法,大概是计算个几百亿种情况,看成功与失败的比例来判断这步棋好不好。这姑且算是一种提出假说的方法,而这“比例”的计算就有学问了。其实人也是类似这么处理的,但是,有些情况在人类眼中可能很无聊,人会直接将它们去掉。有得却因为印象深刻,大大提高比重。换而言之,将所有情况平均起来以判断一步棋好不好,这“平均”的方法,也就是每种情况所分配的“测度”,不应该是一致的。而且,它应该随着认识的提高而调整。

为什么逻辑上不能允许“百分之多少可能是对的”这种语句呢?因为,逻辑的层数可能很多。如果我们规定高于90%正确的假说就是对的,那么一个假说B,如果需要用十个对的定理才能证出,它就不对了,而且正确率相当低。当然,我们可以在任何一个假说旁边,加上一个数字,是它对的可能性。任何基于别的定理而证出的定理,对的可能性就乘一下加一下。这样有三个问题。第一,学问越发展,这个数字可能越低。第二,证一个定理时,可能无意中用了别的定理而不觉得,影响了准确率。第三,假如有一个很基本的定理,它正确的可能性忽然提高了,所有基于它的高级定理的正确率都要改写。懒惰的人类于是规定,要么是1,要么是0. 在这点上,电脑的确有优势。

 

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: