克劳德·香农论创造性思维

2026-04-03 · 原文链接

克劳德·香农于 1952 年 3 月 20 日在贝尔实验室的一场演讲

讲稿

如果把人们产出点子的能力按从低到高排列,再去看这些信号所产出的想法总量、以及其中真正有用的好点子数量,大概会得到这样一条曲线。你会发现,曲线到了后面会陡然升高,冲到非常惊人的高度。

人口中只有极少一部分人,贡献了绝大多数重要的想法。这有点像英国数学家图灵提出过的一个比喻:人脑有点像一块铀。如果一块铀还没达到临界状态,你往里面打一颗中子,也许只会引发有限的反应;但一旦越过临界点,碰撞就会产生更多中子,结果就是爆炸式增长。图灵说,人脑中的想法也有点像这样。有些人,你往他脑子里丢进去一个点子,只会得到半个点子;也有另一些人,每给进去一个点子,他能产出两个点子。这些人,就处在那条曲线拐点之后。

我不想显得太自负。我并不觉得自己已经越过那条曲线的拐点,而且我也不知道身边有谁真正到了那个位置。不过,我确实知道历史上有些人是这样的。比如说,我想大家都会同意,艾萨克·牛顿一定在这条曲线的高处。想想看,他在 25 岁时就已经在科学、物理和数学上做出了足以让 10 个甚至 20 个人名垂青史的成果——二项式定理、微积分、万有引力定律、运动定律、对白光的分解,等等。那么,究竟是什么能把一个人推到曲线的这一段?最基本的条件又是什么?

我想,做科学研究,或者说发明、数学、物理以及所有类似的工作,大致离不开三样东西。少了其中任何一样,我都不觉得一个人能真正做好。

第一样显而易见——训练和经验。 你不会指望一个律师,无论他多聪明,今天能提出一个全新的物理理论、数学理论,或者工程理论。

第二样是一定程度的智力或天赋。 换句话说,要想做好研究工作,你的 IQ 得相当高。我不认为任何优秀的工程师或科学家可以靠 100 的 IQ——也就是普通人的平均水平——把研究做好。换句话说,他必须高于这个水平。这个房间里的每个人都远高于这个数。我们可以说,训练和经验更多是环境带来的,而智力则更多与遗传有关。

但光有这两样还不够。我认为还有第三个因素、第三个组成部分,而它正是让一个人成为爱因斯坦或牛顿的关键。找不到更好的词,我们就叫它“动机”。 也就是说,你得有某种驱动力,有某种想弄清答案的欲望,想知道事物究竟是如何运转的。如果没有这一点,那么即便你拥有全世界最好的训练和智力,你也不会提出问题,自然也不会找到答案。

这东西很难精准描述。它大概和气质有关,也可能和早期教育、童年经历有关——一个人是否会把自己的驱动力投向科学研究,也许很早就决定了。就我粗浅的感觉来说,它像是几种东西混合在一起。我并不打算做什么深层分析,但我觉得,一个优秀的科学家身上一定有很强的、我们可以称之为好奇心的东西。我不准备再往更深处讲了。就是他想知道答案。他就是单纯地好奇事物是怎么运转的,想知道问题的答案;而且当他看到某些东西时,他会忍不住提出问题,也想知道这些问题的答案。

还有一个东西,是“不满足”。我说的不是那种悲观式的不满——不是“我不喜欢这个世界的样子”——而是一种建设性的不满足。它大概可以表达成这样一句话:“这样当然也行,但我觉得还能做得更好。我觉得这件事应该有一种更漂亮的做法。我觉得它还可以再改进一点。” 也就是说,当事情看起来不太对劲时,心里总会有一种轻微的刺痒感;而我认为,在今天,这种不满足感正是优秀科学家的关键驱动力之一。

我还想补充一点:人们会从看到结果、看到通往结果的方法、看到工程设计、设备等等之中得到乐趣。我自己就会因为证明出一个定理而非常兴奋。如果我花了一周左右去证明一个数学定理,最后终于找到了证明,我会特别开心。看到某个工程问题有一个巧妙的解法,看到一个电路设计非常聪明,只用了极少的设备却实现了看起来很多的效果,我也会很兴奋。

就动机而言,我觉得它有点像 Fats Waller 说过的摇摆乐:“这东西,要么你有,要么你没有。” 如果你没有,可能你本来就不该做研究工作;如果你根本不想知道这类问题的答案,那研究大概就不适合你。当然,没有这种动机的人也可能在别的领域非常成功;但研究者大概必须有一种极其强烈的冲动,非得把答案找出来不可。强烈到什么程度呢?强烈到他根本不在乎现在是不是下午 5 点;为了找到答案,他愿意熬一整夜,必要时也愿意整个周末都扑在上面。

好,说到这里都还不错。但假设一个人已经在这三方面都具备了足够的条件,足以成为一个有用的研究者,那么,有没有一些技巧、一些思维上的小机关,能真正帮助创造性工作,帮助研究中找到答案,或者更普遍地说,帮助解决问题?我觉得是有的,而且在某种程度上,它们是可以被归纳整理出来的。你完全可以列出很长一张清单;如果真这么做了,我觉得会非常有用。所以接下来,我想讲几个我自己想到的,或者别人告诉过我的方法。我相信,如果一个人能有意识地把这些方法用在自己要解决的问题上,很多时候会比平常更快找到解法;有些原本可能根本找不到答案的情况,也许就能找到了。

我认为,优秀的研究工作者其实会无意识地使用这些方法;也就是说,他们是自动这么做的。如果把这些方法明确带进意识层面,在某个具体情境下对自己说:“这里我应该试试这种思路。”那大概会更快到达答案——虽然我没法严格证明这一点。

我想先讲的第一个方法,是“简化”。 假设你面前有一个问题要解决,不管它是什么类型——设计一台机器、建立一个物理理论、证明一个数学定理,或者别的什么——一个非常有力的做法,往往就是尽量把问题里除了核心部分之外的东西都剥掉,也就是把它压缩到最基本的尺寸。几乎你遇到的每一个问题,都会夹杂各种各样无关紧要的数据和干扰项;如果你能把它缩减到真正的主干,你就会更清楚自己到底在试图做什么,也更可能找到解法。

当然,在这个过程中,你也可能把原本的问题剥得太狠,最后得到的东西甚至已经不像你最初要解决的问题了。但很多时候,只要你能先解出这个简化版问题,就可以再一步步把复杂性加回去,最终回到原始问题的解。

一个非常接近的方法,是去寻找相似的已知问题。 我可以用一个示意图来说明。这里有一个问题 P,那里有一个你暂时还不知道的解 S。如果你在这个领域里有足够多的经验,也许你会知道另一个有点相似的问题,叫做 P′,而它已经被解决了,它对应的解是 S′。那你要做的,也许只是找出从 P′ 到 P 的类比关系,再找出从 S′ 到 S 的对应关系,于是就能回到你原来那个问题的解上。

这也正说明了为什么一个领域里的经验如此重要:如果你在一个领域里浸得够深,你脑子里就会存着成千上万个已经被解决的问题和它们的解。你的心理矩阵里到处都是互相分散的 P 和 S。于是你就能找到一个和眼前这个 P 足够接近的 P′,再借由它对应的 S′,走回你真正要找的 S。无论是哪一种心智活动,看起来,做两个小跳跃,总比一下子完成一个大跳跃要容易得多。

还有一个方法,是把同一个问题尽可能换成不同的表述方式。 换一套词,换一个视角,从所有可能的角度去看它。做完这些以后,你甚至可以试着同时从几个角度去看它,也许这样你就能突然看到问题真正的底层结构,把关键因素关联起来,然后得到解法。

这件事做起来其实不容易,但非常重要。如果你不这样做,就很容易在思维上陷入车辙。你从某个问题出发,结果只是在一个圈子里兜来兜去;如果你能跳到另一个点上,也许前路一下就清楚了。但你就是没法挣脱某些思维上的障碍,它们把你困在同一种看问题的方法里。这也就是为什么常常会发生这种事:一个对问题还很“生”的人走进来,看一眼,立刻就找到答案,而你已经在上面苦干了几个月。因为你已经在既有思路里陷太深了,别人却能从全新的角度看它。

另一个有助于研究工作的思维技巧,是“泛化”。 这一招在数学研究里尤其强大。典型的数学理论往往是这样发展起来的:先证明一个非常孤立、非常特殊的结果,某个具体定理;然后总会有人继续把它推广。原来只在二维里成立的东西,他会把它推广到 N 维;原来在某种特定代数结构里成立的东西,他会把它放进更一般的代数体系;原来只在实数范围里谈的问题,他会把它推广到更一般的代数域,诸如此类。

其实这件事做起来并不难,前提只是你要记得去做。也就是说,一旦你刚刚找到某个答案,接下来的第一件事就该问自己:我还能不能把它进一步推广?我能不能把同样的内容说得更一般一点,让它包含更多情况?在工程里,我觉得也应该一直记着这一点。如果有人想出了一个很巧妙的做法,我们就该问自己:“我能不能把同样的原则用于更一般的情形?这套聪明的思路,能不能拿来解决一整类更大的问题?还有没有别的地方,也能用上这个方法?”

接下来我想提的是,对问题做结构分析。 假设这里是你的问题,那里是答案,而从这里到那里这一步跳跃太大了。你可以尝试的做法,是把这次大跳跃拆成许多小跳跃。如果这里是一组数学公理,而那边是你想证明的某个定理或结论,那么让我一口气把它证明出来,可能实在太难了。但也许我可以先设想一些中间性的定理或命题:只要我先证明这些,再逐步推进,最后就能抵达目标。

也就是说,我会在这个领域里先铺出一条路,放上若干个中间结果,1、2、3、4…… 先证明这个,再用它去证明下一个,再用那些已经证明出来的东西继续往前推,直到最后抵达 S。数学里很多证明,其实就是通过非常迂回的路线找到的。一个人开始证明某个定理,结果发现自己绕了很大一圈;中途证明了很多看起来并不直接相关的结论,最后却从“后门”进到了原问题的解上。

而且很多时候,一旦你真的找到了解法,反而就很容易再把它简化。你会在某个阶段突然发现,其实这里可以抄近路,那里也可以抄近路。设计工作里也是一样。你也许先做出一个明显笨重、累赘、用料过多的方案;但只要你先真正得到一个能抓得住、能运作的东西,接下来就可以开始一点点删减组件,发现哪些部分其实完全是多余的,从一开始就没必要存在。

还有一点,我在数学工作中经常碰到,那就是把问题倒过来看 你正试图从前提 P 推出解 S,但怎么也推不出来。那就把问题翻过来:假设 S 才是已知命题、已知公理,或者题目里给出的已知数字,而你真正要得到的是 P。就先想象一下,情况是这样的。你会发现,沿着这个方向去解,往往反而相对容易,路径也更直接。

如果真是这样,很多时候就可以分几小段把它再倒回来。也就是说,你先在另一头把路径标出来,再一点点把这些中继点反推回来。你会看到,该怎么把它一步步反转回来,也许最后只剩下三四个真正困难的步骤。

我想,在设计工作里也会发生同样的事。我以前设计过各种计算机器,当时想根据若干已知量去算出某些数字。这里说的是一台玩 nim 游戏的机器。最初看起来,这件事相当难做,要用很多继电器才能完成这个计算,虽然并不是做不到。后来我突然想到:如果把问题反过来,事情就会容易得多——如果把“已知”和“要求的结果”互换过来。这个想法最终让我找到了一种比第一版设计简单得多的方法。

那种做法本质上是一种反馈法:也就是说,你从想要的结果出发,往回跑,让它不断经过自身的取值过程,直到和给定输入对上。于是,这台机器实际上是反向工作的:它在数字范围里试探 S,直到碰到你真正拥有的那个数;一旦到了那个点,P 就会告诉你正确的路径。

好了,这套“哲学”讲到这里,可能已经让你们大多数人觉得有点无聊了。接下来我想把我带来的那台机器给你们看看,并顺便讲讲它的设计中遇到的一两个问题,因为我觉得,它们正好可以拿来说明我前面一直在讲的这些东西。要看清楚的话,你们得围过来,所以我想请大家现在都到桌子这边来吧。

资料来源:

这份讲稿最初发布于:http://www1.ece.neu.edu/~naderi/Claude%20Shannon.html