库克教授的主要研究方向“计算复杂性理论”,这种专业术语大多数人肯定听不懂,
用两句人话翻译一下,大致就是这样的:
首先,用一台电脑来假设人脑面对问题时的处理模型。比如,当一个人走进一个满是人群的礼堂时,想知道“礼堂里有没有我认识的人”这个问题的答案,那么他就得一步步搜寻,从头到尾一个个认,如果全部人看完都没有一个认识的人,才能得出“礼堂里没有我认识的人”。而只要找到一个认识的人,就能下“这里有我认识的人”的判断。
所以,常识一般认为,“从科学严谨的角度而言,证明一件事情比证伪一件事情要耗费更多的判断/计算资源,因为证伪只需要找到一个反例就可以结束论证、不再继续往下耗费计算资源。而证明需要推翻所有反例”。
可是实际情况下,人脑在“不刻意追求绝对科学严谨”的前提下,做很多大致粗略的判断时,要比电脑快得多。
比如让人看一张照片,判断照片上的东西是不是“猫”,人一眼就判断出了,而不需要去验证“图片上这个疑似猫的生物是否有xxxxx等生物学上的特征”。
换句话说,人类懂得如何抓大放小、用“模糊算法”尽快得到一个勉强可用、但不太严谨的结论。
而1980年代以前,人类根本就不知道如何让计算机“不严谨”。
所以计算机在求解一切问题时都是用严谨到爆的暴力算法硬扛的,导致很多因为分支可能性多到天量级别而无法穷尽的问题,计算机就没法解决。
比如围棋。因为哪怕以2010年代的计算机硬件运算速度,如果要暴力算法“科学严谨”地穷究一切可能性,全世界的计算机加起来分布式运算都算不动。所以在那种思想指导下,人类只能满足于“用暴力算法攻克国际象棋之类穷尽运算量也不大的脑力运动”。而平行时空的“阿尔法狗”干掉那么多高手,就绝对不能靠近乎低能儿蛮干的暴力算法。
斯蒂芬.库克的毕生研究,就是在解决“如何让计算机在资源不允许其彻底严谨的前提下、学会像人脑一样抓大放小、用有限的计算资源得到一个相对准确的大概结果”。
顾诚觉得,或许多伦多大学计算机系里,在库克麾下,藏着更多从不同角度试探这一领域的人才。而杰夫辛顿有可能只是因为历史的选择而恰好最早在人工智能领域出头引起了重视。
但这绝不代表这一体系内,其他分支的人才就没有价值了。
如果可以折服史蒂芬.库克教授,对于顾诚的全盘、系统挖人大计,显然是很有帮助的。
……
下午3点,密西沙加校区,神经网络实验室。
顾诚见到了早已收拾妥当、一脸局促的杰夫.辛顿教授。
还有成名天下垂20载、刚刚从圣乔治主校区风尘仆仆赶来的史蒂芬.库克教授。
一番简单的客套之后,顾诚说出了此行的主要来意,首先向杰夫辛顿发出了延揽的邀约,而且出价不菲。
“辛顿教授,我可以为你成立一个基于‘深度学习算法’的研究所,你个人可以得到200万美元的年薪,以及每年1000万美元的研究经费,合同期至少5年。你的助手和带的研究生,我也可以给予最优厚的条件。唯一的问题是,你可能会终生失去在学术界的地位。你的论文只有很少一部分有发表的潜力,而且还得签保密协议。你自己看着办吧。”
杰夫.辛顿有些尴尬,毕竟资格比他老20年的学界泰斗史蒂芬.库克就坐在旁边。顾诚这样直截了当地谈钱,实在有辱斯文。
“到企业去做事,我们从来是不反对的,学术应该跟产业界结合。不过,就不知道一个明明只是做社交裹挟和游戏攀比的公司,能有什么课题让人拿出可以上ieee系列期刊的成果呢。”
库克教授直接就点出了顾诚的短板。
别的产业界大牛,无论微软还是谷歌,好歹有一水儿的顶级大学研究所支撑。顾诚虽然也是搞互联网的,但他的技术含量是最低的那一型。
就像后世bat三巨头当中,腾云是技术含量最低的一个。
“你提到了神经网络算法这个拟研究方向,但我看不出来这和你的产业有什么结合。让我们多伦多大学的教授去做那种看不到学术前景的花里胡哨东西,有违本校的学风。”
库克教授也不管自己只是个所长,直接就盖棺定论了。
所谓“神经网络式算法”,库克教授十几年前就有涉猎,相比于80年代以来的其他“np穷尽理论”而言,其最大的特点是“没有运算核心”。
用人体来举例,人作为一个生物个体而言,是有中枢神经的——绝大多数机体行动,都是大脑控制肢体,眼口耳鼻手足感知到了外部信号之后先要通过反射弧传递到大脑(部分最低级的反射,至少也要到延髓/脊髓处理)等大脑作出处理指令之后,手足才会作出反应。
但是如果把大脑单独作为一个独立个体解剖开来看,大脑内部上千亿个神经元是平等的。并不存在“某一小撮神经元高于其他周边神经元、从而在处理信息时先由这一撮神经元预处理、预处理完之后再交给下一撮神经元处理”这样的先后顺序。
(神经网络当然还有其他很多基础特点,这里仅仅讨论和“遗传算法/退火算法”的主要区别,所以不多赘述了。否则能水几万字,大家还看不懂。)
当年“神经网络”的概念被提出时,就是为了探讨一种让电脑高效处理类似于“找到礼堂里到底有没有我认识的人”问题的新方法:如果可以有多个电脑,自然随机地分配任务,并行从多个点开始用就近算法寻找,那么自然可以在“单核cpu”性能比较弱的情况下,通过堆砌cpu数量加快问题的解决速度。