算法受到自然界和人类生活的启发,是科技的一部分。由于计算机已被广泛用于解决人类的日常问题,算法在快速发展,对人类和自然界的算法思考也变得普遍。那么,算法的基本原理、性质与中国文化之间究竟有何联系?
编辑 | 青暮
12月9日,第六届全球人工智能与机器人大会(GAIR 2021)在深圳正式开幕,140余位产学领袖、30位Fellow聚首,从AI技术、产品、行业、人文、组织等维度切入,以理性分析与感性洞察为轴,共同攀登人工智能与数字化的浪潮之巅。
大会次日,香港科技大学(广州)教授,IEEE/AAAS Fellow熊辉教授发表了题为《人工智能算法中的人性和社会性》的演讲,从算法的人文及社会意义层面进行了探讨。熊教授结合《易经》中的“不易”、“简易”以及“变易”思想对算法在促进人类社会发展、创新中的作用进行了解读。
在此次演讲中,熊教授向与会者分享了一些关于算法中人性和社会性的个人想法,阐述了算法的基本原理、性质与我们熟知的课堂知识、日常经验和中国文化之间的联系。
例如,对于GAN算法中的判别器,熊辉教授是这样解释的:
“就好比有个非常好的老师指导学生学习的内容和学习的方向。”
再如对不同聚类方法特点的形象描述:
“分层级的聚类就像资本主义的市场经济,它在早期和中期会产生一些问题,这些问题还会逐渐累积;K-means是社会主义,兼顾公平但在一些问题上不符合现实。有没有办法把两种方法的优点融合起来呢?这就是我们的‘中国特色社会主义’。”
以及用易经中乾卦的爻辞解释来讲算法的“中庸之道”:
“九五是飞龙在天,古代帝王说自己是九五之尊,因为九五卦是至高点,九六就是亢龙有悔。(我们做算法做到)飞龙在天就完美了,再往上就是Overfitting(过拟合),往下就是Underfitting(欠拟合)。”
熊辉教授的讲解生动易懂,娓娓道来,赢得在座掌声不断。
熊辉教授现为香港科学技术大学(广州)讲席教授,人工智能学域主任;曾在学术休假期间担任百度研究院副院长并主管5个实验室。
熊教授获得的部分荣誉包括AAAS Fellow、IEEE Fellow、ACM杰出科学家、中国教育部长江讲座教授、中国国家基金委-海外及港澳学者合作研究基金、哈佛商业评论2018年“拉姆·查兰管理实践奖”-全场大奖、ICDM-2011最佳研究论文奖、和AAAI-2021最佳论文奖。
以下是演讲全文,AI科技评论做了不改变原意的整理:
今天演讲的主题是《人工智能算法中的人性和社会性》。此前一年,我一直在美国。这期间,我将人工智能的很多经典算法进行了审视与回顾,以人性和社会性的角度反思了这些算法与人类的关系,感慨良多,于是整理成报告与大家分享。
感谢我之前指导过的17位学生(有一位今年毕业,照片没放PPT上),他们现在大多都在学术界从事研究工作。前三位都已获得终身教授的荣誉,也有一些学生在工业界,还有些在创业。
首先,作为引子我先介绍GAN算法。
我们知道,对抗生成学习方法可以产生很多虚拟数据,比如人脸。此外,GAN还在其他场景中发挥作用,比如"时光机",当我们给出一个人18岁的照片,GAN算法可以预测这个人年老时的样子。
在百度期间,我们进行了一些有趣的工作,例如,走失儿童的问题前些年较为严重,近年已大幅减少,因为天眼系统日趋成熟。但天眼系统还未普遍应用的时候,走失儿童的找回是个大问题。当儿童走失且若干年没有回家,其样貌会随年龄发生改变。
我们的系统可以根据孩子童年的照片,生成如今的样子,然后将当前生成的样貌进入公安系统数据库中比对查找。锁定一些范围的人群后,再进行DNA的测试比对,从而找到走失儿童。这种应用十分有效,并且具有人性和社会意义。
这种算法和人性甚至社会性有何关联?我想先介绍两个概念。
我们在进行监督学习时,有两种思路,一种是Discriminative,即差异性的、差分式的方法。还有一种是Generative,即生成式的。下面我们举例来理解这两种方法的差异所在。
假设一个场景中有两个外国人,如何判断他们是否在使用韩语?
按照Discriminative的思路,我们可以找一些韩剧,观察演员的发音和语气。当我们大概知道韩语的发音模式时,再去听这两位外国人的对话,便可以判别他们是否使用韩语。虽然我们不知道谈话内容,但可以快速判别口语种类。
还有一种是生成式的方法,在同样的场景中,为了判别两位交流者所使用的语言是否为韩语,我们可以报班学习,学会后就可以判断这两位外国人说的是否为韩语,此外还可以对谈话内容加以理解。
这两种方法各有利弊,前者更为快速,后者则需要我们付出时间和精力进行系统的学习。那么,是否有一种学习方式融合两者的优势呢?生成式学习便是这样的方法,这也是其最显著的优势之一。
但这和我们的人生有何关系?
站在个人的层面,我们也需要一个很好的判别器。不同的人有不同的经历和选择,有些人成功有些人失败,主要在于他们使用的判别器。这个辨别器告诉个体在什么时候应该进行怎样的生成式学习。
也就是说,我们需要一个良好的导师。好的导师能让我们走在光明大道上;不好的导师则放任我们自由生成,甚至走在错误的生成式学习道路上。
人生在世,就像进行一次漫长的生成式学习。如果我们有一个好的生成式判别器,这个判别器可以是导师、偶像、家长、甚至是我们追逐的对手。因此,对抗学习融合了生成式和判别式学习的优点,它总是在寻找一个极佳的判别器,让我们走在正确的轨道上,让我们的资源用在正确的方向上。算法之所以有用,很大程度上是因为它从生活中来,抽象了我们的经验和哲理。
当我站在一个比较系统的宏观角度来观察所有的算法时,我用易经的理论对它们进行了梳理,将它们分成三个主要类别:不易、简易和变易。这里,我们所说的"易"是指变化。
“简易”,就是我们常说的大道至简,可以帮助我们洞悉事物的本质。事物的本质就是“不易”,是万事万物中恒定不变的东西。
比如,我曾在百度做过一项开发,帮助我拿到了哈佛评论的奖励。在这个智能化专业系统中,我涉足的是人力资源领域。其实学习人力资源并不困难,它只是一个行业知识基础,任何行业都有其"不易"的东西。
但如果我们的方法不对,学习可能会很难。我们需要把握住人力资源中恒定不变的那些"根本性知识树"。比如对企业、对团队、对个人的管理。如何把握这些根本性的东西,就是我们学习的难点。
我们的算法都可以从这些角度出发对问题进行审视。比如,对于监督式学习,如果想训练一个苹果香蕉的分类器,这之所以在技术上是可行的,主要是因为苹果和香蕉分别有着它们特有的、恒定不变的根本属性。
如果香蕉整天变化,算法就没法对其进行预测和识别。我们的算法主要是捕获这些不变的"根本"。只有捕获到这些,才能实现目标任务。
比如,我曾在百度进行员工的离职分析。一些HR问我这个事情是否具有可预测性?我说肯定可以,因为它有不变的根本——当我们准备离职时,心就不在公司了,工作状态就会发生变化。工作状态改变时,一定会在数据上表现出来。如果能抓住这个根本,就能预测离职。
很多人都觉得CNN不具备可解释性。但是从更高层级来说,黑盒一样的CNN也有其不变的根本。
例如手写字母的识别,对于一个X,我们可能根据心情、疲劳和习惯把X写成各种姿态,但机器判断的时候,其实都可以发现一些共性的东西,比如图中的红色和黄色小块,就算手法、字迹不同,它们也会恒定出现。这些就是Kernel(核心),即不变的根本。
CNN的任务就是去捕获这些Kernel,一旦捕获住,不论字体写成什么样,有这些Kernel在,CNN都可以将其识别。
这就是通过"简易"寻找不变特性的过程。这个例子中,卷积计算就是"简易",目的是捕获"不易"。但由于随机性,一些Kernel的表现并不完美,因此就要进行一些模糊化的Pooling操作。Max Pooling也是一种"简易",目的是让“不易”凸显出来,让Kernel更显眼。
所以,传统的CNN-Pooling组合背后的原理就是通过"简易"寻找"不易"的过程。机器学习另一个常用的工具是集成学习,它的意义是什么呢?
举例来说,一位VIP病人想知道自己是否罹患某种疾病,这时医院会召集多位临床专家共同探讨病情,并通过投票给出最终诊断结果。在很多机器学习竞赛时,我们都会用集成学习来提升算法效果。这其实就是民主投票,让多数人认可的结果作为最终输出。
这样的民主投票好处很明显。比如我有25个基分类器,每个分类器的误差都是0.35,那么集成学习能将误差降至0.06。
但集成学习也是有前提的。想让集成学习的投票成立,每个基础分类器都必须独立。即每个人的决策都必须不受他人影响。
第二个前提是,每个基分类器都要足够聪明。每个人对事物的认识起码要优于随机猜测,这就是投票机制的民主基础。所以一人一票并不一定是好的机制,不谈前提的投票,就是耍流氓。
这两个前提的必要性可以从数学上证明。
因此,从社会学的角度,投票之前要先看人口结构。如果人口结构太差,那投票就相当于让一堆随机猜测甚至低于随机猜测的基分类器投票,其结果会更糟。只有在"足够聪明"的人群中进行投票才是有意义的。
如何判断人群是否足够聪明呢?可以看人群中是否有足够数量的中产阶级,且每个人都要有独立的思考能力和选择投票的权利。
所以,算法和社会的运转形态一样。
有时我会感慨,和懂算法的人沟通十分顺畅,因为可以类比。只要我们认可算法的证明过程,将其应用于社会与人生,就无需赘言。
上面我们介绍了“不易”,接下来说“简易”。
“简易”包含很多东西,比如注意力机制(Attention)、聚类(Clustering)、规则化(Regularization)等等。它们都是“简易”的过程,目的是让我们聚焦到事物的本质——“不易”。
近年,我们一直在说大数据,但不意味着数据越多越好。大数据带来最好的提升是让其"不易"的本质更容易被捕获。但如何捕获这些本质呢?
比如,聚类是最简单的“简易”方法之一,将相似的东西组合在一起,再转化成一些优化问题,让类间的差异最大化,类内的误差最小化。这可以帮助我们进行知识的总结,而总结有助于我们理解。举一个简单的例子:
公司有5000万个客户,老板让我们分析这5000万个用户处于怎样的生态。我们通过聚类分析,可以将他们分类:第一类对钱不在乎。他们可能会买两张同个运营商的卡,还都买了无限流量的套餐,而且就摆着不用。这样的用户在公司眼中是最好的,因为他们付了最贵的代价,却占用最少的资源。
还有一类是需要公司赔钱的用户。他们会最大限度利用套餐中的服务,100分钟的通话肯定用到99.99为止。这样的用户会给公司的运维造成较大的负担。
进行了这样的聚类后,就能对用户归类并分别管理。这个例子的目的是说“简易”的意义。简易有两种方法,一个是分层次的,一个是Partitional聚类。分层的方法主要是产生分层的聚类理解。
它的好处是不用预先设定聚类结果的数量,而且有利于自然形态最终态的形成。这很像原始资本主义的市场经济,让企业自由竞争,互相吞并,不强加干涉,这就是一个自然的状态和结果。
它的缺点是什么呢?由于缺乏全局的指导(损失函数),它在早期和中期会产生一些问题,这些问题还会逐渐累积。这就是分层次的聚类方法的问题。
相对应的,我们一看K-means,就觉得像最初的社会主义形态。在这里我们首先需要一个中央全权负责周围的统治,并且规定好最终的簇数量,然后再按最优函数进行分配。
但其问题在于什么?比如我们国家,汉族人口占到90%以上,但我们却说有56个民族,在使用K-means进行民族划分时,就会有很多汉族人被分成壮族、苗族、维吾尔族人等等,这就不符合现实。
因此,分层级的聚类和K-means的方法各有利弊,能否将其融合起来呢?
这就是我们的“中国特色社会主义”,既能兼顾市场经济的灵活性,又能融合社会主义的大局领导力。
在算法中,为了克服不同数据的规模和密度差异,我们会首先将目标数量定高,然后发挥K-means的公平性特点,保证每个小类中的对象聚于一堂,这就是"兼顾公平的市场经济"。
每个小类再使用分层次的方法进行市场竞争,让它们自由融合吞并,最终大类和小类会呈现更好的、更自然的分布。
除了中国,北欧也将资本主义进行了改良。他们的改良资本主义也是将分层级和K-means的思路进行兼容。总的来说,社会和科学相辅相成、相互借鉴和促进交叉。
但话说回来,“简易”必然带来信息的缺失。信息丢失可能带来一些问题,比如“简易”后,原本三维的信息映射到二维空间,我们看到二维信息时很可能会"浮想翩翩"。因为它的信息本不完整,比如图中的男女,我们看这张图总觉得他们之间有点什么问题,但当恢复成三维的样子,却发现他们毫无瓜葛。
这提示我们不要在“简易”时丢掉了“不易”。最后讲“变易”,这里面的代表性算法是强化学习。
我们都听说过内卷,这里有两个概念,一个是Exploitation,中文就是内卷。为什么有内卷?是因为我们每个人都想活在自己的舒适区,不愿破圈。当很多人都不愿破圈,就形成了内卷。
为了避免内卷,我们要做Exploration,就是去破圈。比如,在给学生寻找研究方向时,我说推荐系统领域已经有内卷的趋势了,我们突破一下,去做人力资源的人才推荐。因此,同样是做推荐算法,研发传统推荐的人和我们没有竞争,人力资源的研究人员也跟我们没有关系,这就找到了新的天地,避免了内卷。
当我们开辟了一个新领域时,就像挖了一个坑,很多人也想涌进来分一杯羹。但不怕,我们继续开辟新领域即可。
因此为了避免内卷,我们要在Exploration和Exploitation之间找到有机的平衡。这个平衡是什么呢?就是强化学习算法。
强化学习算法首先有两个本体,一个是Agent,另一个是环境。Agent能感知环境的状态,之后可以采取一些动作,比如砍树。当树砍光,环境变差,就会通过Reward来惩罚Agent。如此一来,人类就知道树砍多了环境就变差了。因此,不仅不要砍树,还要去植树,从而形成一个循环。人类不断感知环境并采取行动,这就是强化学习算法。
强化学习的优点在于,它能在错误中学习,不断试错迭代,在内卷和探索之间取得很好的平衡。
算法其实很美,人类一直在艺术和科学之间进行拔河。例如,微积分。如果我们想估计一条曲线下的面积,微积分会进行近似。但不论多精确,都会有差异。那么这个差异就可以用艺术弥补。这也是不同机器学习炼丹师效率的差异核心所在。有的人可能上手一天就能完成任务,有的人可能三个月也束手无措。
其根本原因在于"艺术感"上的差异,后者缺乏一点"感觉",即那种看山是山,看山不是山的inside-out的经验和大局观的艺术感。只有当我们了解了算法中的人性和社会性,才能发挥算法的艺术性。
此外,做算法一定要有"中庸之道"。机器学习需要在偏差(Bias)和方差(Variance)之间取得平衡。前者会导致过拟合,后者则欠拟合。
那么,机器学习的"中庸之道"是什么意思?我们不论使用早停、L1/L2损失都是为了达到Bias和Variance之间的最优点。这就像易经的"乾卦",它分为前卦后卦、内卦外卦。
我们知道初九叫做潜龙勿用,意思是我们在学习时不要朝三暮四,就安心学习。学完之后,我们可以初出茅庐,显龙在田,小试牛刀,就像很多老师努力获得“优秀青年”称号。之后有人可能开始得瑟,这时就会进入九三。我们应该做到终日潜潜,也就是小心谨慎,避免枪打出头鸟。
有的人可能一辈子都在下卦,上不到上卦。此时一部分人能够从九三跨越到九四。九四再往上就是飞龙在天。很多古代帝王说自己是九五之尊,因为九五卦是至高点,九六就是亢龙有悔,比如袁世凯,他非要称帝,就物极必反,遗臭万年。
所以,“飞龙在天”就到完美了,再往上一步,就过拟合了,再往下可能就处于欠拟合的状态。因此,如果想真正做好算法的应用,一定要把领域知识和专业知识结合,明白什么是“不易”。领域知识能告诉我们“不易”是什么、在哪里,然后做到艺术和哲学的有机平衡。