Py学习  »  机器学习算法

徐宗本院士:如何突破机器学习的先验假设?

战略前沿技术 • 2 年前 • 336 次点击  

电话 | 010-82030532    手机 | 18501361766

微信 | tech99999    邮箱 | yw@techxcope.com



来源:中国人工智能学会
作者:徐宗本

2021年6月5日至6日,由中国科学技术协会、中国科学院、中国工程院、浙江省人民政府指导,中国人工智能学会、杭州市人民政府主办,杭州市余杭区人民政府筹备组承办,浙江杭州未来科技城管理委员会具体执行的2021全球人工智能技术大会在杭州成功举办。大会主论坛上,中国科学院院士、人工智能与数字经济广东省实验室(广州)主任、教授、西安交通大学教授,CAAI Fellow 徐宗本院士为我们带来了题为《如何突破机器学习的先验假设?》的精彩演讲。

徐宗本
中国科学院院士
人工智能与数字经济广东省实验室(广州)主任、教授
西安交通大学教授
CAAI Fellow

以下是徐宗本院士的演讲实录:

我今天报告的主题是如何突破机器学习的先验假设。这个主题涉及如何才能把现有的人工智能技术用好,特别如何把深度学习用好?如何能够进一步提高现有机器学习效果的问题。

现在的人工智能主流技术是以深度学习为基础的,深度学习是机器学习的一个特别类型。目前多数还是在选用模型、选用算法的阶段,换句话说,别人把模型、算法做好后我们选用,还没有做到精选,更谈不上设计与创造。这里最核心的问题在哪?根据我的观察,大家在选用模型和算法时有很多误区或者不清楚的地方,我把它概括为机器学习的先验假设。我将提出机器学习的这五个假设。然后根据这五个假设,与大家分享我们团队在突破这五个假设方面所开展的工作,展示这些研究所带来的作用与效果。

我们先回顾机器学习问题。机器学习是指这样一个问题:给定一组输入- 输出数据,要求从这些数据中寻找一个能够近似产生这组数据的一个未知函数( 作为经验的总结),然后这个函数被用来预测预报。怎么确定这个未知函数? 一般说要从一个事先指定的很大的函数簇中去找,这个函数簇叫做假设空间。根据什么准则选?主要是期望极小化某一个量,这个量就由两项组成,第一项是拟合项,即对数据的拟合度,换句话说,就是要找到的规律能够适合给定的数据集;第二项叫做正则项,即要求找到的函数要符合我们期望 ( 比如,这个函数比较连续、有特定的稀疏性、有特定的功能等)。这样,机器学习问题就能非常好地科学化为一个数学上的最优化问题。


任何技术如果能科学化、形式化一个简洁的数学公式,标志着它已经走上了科学化的第一步。所有的人工智能技术应用,特别是机器学习/深度学习应用都是基于这个公式。

这个公式写的非常简洁,但其中蕴含了很多的不确定性和技巧。首先我们不知道怎样去选择备选的函数簇(即假设空间),应用中表现为不知道如何选择函数的结构? 是用多项式逼近、线性函数,还是深度神经网络? 如选深度神经网络多少层、多宽?用什么样的非线性?这是一个大问题。第二,如何选择损失度量? 是选最小二乘、最小一乘、极大似然,还是选其他函数?我们常常并不明白。第三,正则项到底怎么假设?是用2范数、3范数,还是用5范数?最后,我们也不知道解这个模型最好用什么样的优化算法?这些“不知道“就是我今天要讲的“先验假设”,换句话说,大家在使用时所做出的习惯性选择以及它背后所蕴含的假设。

为什么要假设,难道我们不可以科学、理性地事先设定这些机器学习要素吗?很不幸,这是不可能的。以选择假设空间为例。科学的选择当然是最小的假设空间,但最小的假设空间是什么?如果知道问题的最优解,我们当然就知道了这个最小假设空间,但应用中怎么会事先知道最优解?所以, 设定假设空间,以及其他要素是一个“先有鸡还是先有蛋“的问题。因此,从逻辑上说,所有这些机器学习只能靠预先设定,所以必须要做假设。然而,我们必须注意到,机器学习要素的选择从本质上决定了一个机器学习算法的形态,是非常重要的事情。不能说我们平时的选择总是好的,也不敢说我们平时用的方法就是好的,用的好、效果好或许是凑巧的结果。如何才能使它们更加科学?这是我今天希望与大家分享的。


一、机器学习的先验假设


       



我们形式化地把机器学习做以下五个假设。

(一)独立性假设

这是关于损失度量的一个假设。损失函数的功能是度量你所选择的假设函数或者经验函数,当用到真正的x预测时,与真的解y差多远的一个度量。这个度量本质上决定了我们找近似解的最优性意义。一般而言,大家很熟悉用最小二乘函数,如果做分析、处理任务,我们也会经常用交叉熵。除此之外,还有各种各样的选法。但无论我们怎么选,都蕴含着一个最基本的假定,就是这个损失函数的选择与我们所面对的应用问题没关系。大家想想看,当我们决定是不是最小二乘函数时,想到与当前的问题有关吗?没有,这就是问题所在。换句话说,我们脑子总是在想,损失函数的选择是与问题无关的,这是我们是否用好机器学习/深度学习关键问题之一。我们把它叫做第一个假设,叫做独立性假设。

(二)大容量假设

这是应用机器学习对假设空间的一个假设。假设空间具体化到深度学习时大体对应多少层,每层多少个神经元,用什么样非线性操作等。很显然,现在大家很熟悉用深度网络结构。但是为什么是这样的结构?选择的太深会使得解这个模型变成极大的搜索空间,极大的复杂性;选择很浅的又不一定能找到问题的真正解。所以,当任何人在用深度学习时,总是假定自己用到的这个结构已经包含了最优解, 这就叫做大容量假设。大容量假设,即假定我们所使用假设空间/深度网络结构已经包含问题的最优解在其中了。大家想一下,我们的假设多么必须,但又是多么不自然。

(三)完备性假设

这是关于数据集本身的,就是有关这里的x和y的数量和质量。我们真正能做到有理论或者做到科学的,则不得不总是假定这个数据集是完全代表的、高质量的、少噪声的、分布均衡的;换句话说,是个完备的大数据集。如果没有足够的量,没有高质量标签,很难得到很好的结果。我们把这个要求叫做关于数据的完备性假设。

(四)正则项假设

正则项从功能上说,是为保证机器学习问题有且有唯一解所设置的惩罚项。从物理上说,正则项的增加是希望所找到的近似解能符合我们已知的先验约束。怎么设置这个正则项?我们似乎有了很多经验,比如当希望解平滑时用L2,当用于图像处理时用TV 正则, 当求稀疏解时用L1……一般情形,我们会想到用L(p)。问题是到底怎样设定这个p,它的根据是什么?其实大家很难回答这个问题的,因为我们只知道正则项的确定是应该反映问题的先验。但是什么是问题的先验知识?无从知晓,因而我们的选择通常是盲目的。我们可把这种盲目性叫做正则项假设。

(五)欧式假设

大家都很自然地要分析一个机器学习算法,比如它的收敛性、泛化性等,但是分析它必然会自觉或不自觉地用度量。我们通常作分析都非常不自觉地用内积、正交、欧氏范数等。本质上说,这蕴含着假设机器学习参数能够自然嵌入到我们熟悉的欧几里得空间中。我们把这个习惯性选择叫做机器学习的欧氏假没。这个假设则限制了我们对很多不能放在欧式空间分析或者使用的算法之分析。

这是我提出来的五个假设,第一个是有关损失函数的独立性假设;第二个是假设空间大容量假设;第三个是训练数据的完备性假设;第四个是关于正则项设置的正则项假设;第五个是有关分析方法的欧式假设。这五个假设反映了我们大家通常用机器学习/深度学习时的选择习惯。


二、如何突破机器学习的先验假设?


       



近十年来我一直思考怎么突破机器学习的这些假设。我和我的团队系统地开展了这方面的研究,取得了一些十分令人振奋的结果。

(一)关于欧氏假设

一个机器学习算法或一个深度学习算法必须要经过严密的分析,例如要分析它的收敛性、泛化性和计算复杂性等。要分析就必须把相应算法放在一个合适的平台上,这个平台就是数学上的空间。不同的空间决定了在分析这个算法时可以使用的工具,以及分析时必须遵循的推演准则。例如,考虑极小化损失函数的梯度下降法,这是深度学习训练经常使用的情况,被广泛称作BP算法。要分析这个算法的收敛性,自然要估计它迭代相邻两步的距离是否有一定比例的下降。为什么我们会不自觉地去用2范数去作这样的估计?看图示的演算过程,此时用2范数能够把要估计的量再分拆,即不加任何放大、不加任何粗糙化地把它展成3项,其中每一项都有更加确定的意义和更方便分析。例如,这个内积项正好可使用目标函数的凸性(或梯度算子的单调性)来估计。这里的关键是什么?是使用了用我们熟悉的这种初、高中都学过的二项式公式,不过这里用的是无穷维空间的变形,。这个公式决定了我们正在使用的平台是欧式空间,就是我们所作的欧氏假设。这个欧氏假设非常方便我们去分析数据拟合项和正则项都为2范数的情形,但不允许我们去分析p≠2 的拟合项和正则项。

我们如何才能突破对p≠2 目标函数的分析? 此时非常希望要p≠2 时的二项式公式,但很愦憾,这是不可能的。数学上早有结论:这个二项式公式成立当且仅当对应空间是希尔伯特空间( 有限维时是欧氏空间),或者说,对应范数是2范数。如何突破?观察到,我们做算法分析其实并不需要用恰好等式,不等式就足够,而且等式能够用两个互斥的不等式来等价刻画。于是,1989年我发现并证明了p 范数的“广义二项式公式”:


如果且仅如果 2 ≤ p 和


如果且仅如果 1


1991年我和英国数学家G.F. 罗奇联合发表了现在被广泛称之为“徐- 罗奇”定理的“巴拿赫空间特征不等式数量律”(见J.Math.Anal.Appl,1991,157:189-210)。这个定理进一步建立了抽象巴拿赫空间的“广义二项式公式”。所有这些工具涉及基础数学的一个领域-巴拿赫空间的几何学。这就是为什么说人工智能的基础是数学,数学很基础的公式能对我们分析算法、设计算法带来什么样的贡献的一个很好例证。简单地说,巴拿赫空间几何会帮我们在突破欧式假设上开辟一条新路,如果大家感兴趣数学和人工智能技术的结合,这是一条很诱人的路径。如果大家想进入这个领域,可以参考近年来有关用巴拿赫空间特征不等式数量律做机器学习的大量文章 (参考文献略)。

(二)关于独立性假设

如何在用机器学习/ 深度学习时设置一个合理的损失函数 (而不是简单地选用最小化二乘或极大似然) ?近年来我们发现,按照问题自适应设置是最好的选择,而独立于问题来指定是非常不明智的做法。为什么应该并且可能做到按问题设置?我们假定标签y 与特征x 之间满足一个确定性的近似关系,外加一个随机误差ε(即满足可加的生成模型),根据概率论,我们则立即知道,这个标签预测正确的概率是唯一由误差ε 决定的的,而且此时可由极大似然估计


来估计参数。基于这个观察,我们很快推出并实验证实:当问题的误差是白噪声时,最好的损失度量的确是最小二乘,而如果误差是拉普拉斯噪声,最好的损失度量却是最小一乘;类似地,如果误差服从指数分布,最好的损失度量则是p 范数。这样,只要知道生成数据的误差分布,我们就能求出最优的损失函数形式。我们将这个作法总结出来,叫做误差建模原理。换言之,最优的损失度量可按误差建模原理确定。作为一般应用,我们证明了“当数据误差是混合高斯分布时,最优的损失度量是加权最小二乘度量”。由于任意未知误差可通过高斯混合任意逼近,这一结论有应用的普适性。

误差建模原理最近几年得到了广泛发展,已经有几百篇文章讨论这个问题了。下面我举两个例子来展示误差建模原理所能带来的作用。

例1 我们把一段视频分解成受关注的背景部分和运动的目标部分,以便更高效的传输和完成目标识别。传统上用最小二乘损失只能得到一个完全不变的背景和一个运动的目标。当使用二混合高斯所驱动的损失度量后,我们便可获得带风吹草动、带海浪的背景。显然这样的背景分离更有利于对运动目标的识别( 参见视频处理结果)。

例2 如何基于误差建模原理研发微剂量CT。这是一个正在推动的产业化项目。传统上,CT是基于拉冬变换来成像的,本质上是通过弦图所满足的线性方程组来成像(需通过数据校正、去噪、反演等过程)。这样的方法要求X- 射线的照射剂量高,因而对人体造成潜在危害。我们希望研发出一个低剂量,甚至是微剂量,对病人无伤害的CT。用误差建模原理帮我们实现了这一目标。更具体地,为代替CT的传统模型,我们将CT成像建模作一个机器学习问题,并用系统的固有误差导致最优的损失度量,使得新的CT显著降低了X-射线的照射剂量,实现了不改变设备而把CT的剂量降低到五分之一到十分之一之间。2017年我们将研究成果发表后即快速产业化,目前微剂量CT在全国多地正开展临床应用验证。通过“扫描与成像分离”“用计算换剂量”这两个原理,我们把传统CT改造成了分布式微剂量CT,这个深刻的变化是用误差建模原理实现的。

(三)关于大容量假设和正则项假设

我们可以用相近的思路来解决这两个假设,所以放到一起来陈述。假设空间怎样才能在开始时就设计到最小,这是不太可能解决的问题。我们解决问题的思路是,用粗糙的模型( 称为模型簇,含大量超参数的模型) 来界定解所应满足的空间,用模型族导出寻找解的算法族,然后将算法谁映射到深度神经网络结构,最后用深度学习调参找到问题解。我们这个方法叫做“模型驱动的深度学习”,它保证了使用越来越小、渐近最优的假设空间去执行机器学习。不仅如此,这个方法既解决了深度学习的设计方法问题,也缓解了深度学习的可解释性问题。

模型驱动深度学习的原理是什么?首先,我们知道,数学家或者物理学家都是基于模型工作的,但是要求这个模型很精确才能解决问题,这就是数学和物理学领域面临的如何精确建模问题。我们想如果代替精确建模,在不容易精确的地方加进很多待定的超参数(叫做模型簇),这样会容易得多但仍不失描述了问题解存在的范围。这样粗糙的建模可以大大地减轻数学和物理学本身的困难,同时增加了人工智能应用的空间。这是我们的第一个想法。第二个想法是,基于粗糙的模型就可以进行理论研究、数学性质研究和求解方法研究,从而形成找解的方法簇,即含有大量超参数的算法。一旦这个方法簇形成,就能转成深度学习所使用的深度学习的深度结构。因为深度网络本身可看成是实现有限步的迭代法,这和所导出的方法簇(假定是迭代法簇)完全一致。这是最优化迭代算法与深度学习能打通的核心和关键。最后用深度学习学习出超参是自然的事。

下面以压缩感知应用于核磁共振成像(MRI)为例,说明模型驱动深度学习是如何工作的。根据已有研究,这个问题的模型簇可以取为


其中,是未知参数;A是已知采样算子;y是采样值。很显然,我们这里完全不知道正则项怎么设,而是用未知参数的方式描绘了解应该在合适变换后有分片稀疏性的期望 ( 这当然非常合理和自然)。我们认为问题解存在于上述模型簇的解所界定的范围内。运用数学上的ADMM优化方法,能够导出求解这一模型的算法簇是


其中除模型簇中所出现数外,S 参数是新引起的非线性投影函数。这样的算法簇很自然地能展开成一个深度网络,然后形成可深度学习的架构。我们基于这一方法所提出的ADMM CSnet是国内外第一个用模型驱动设计的执行压缩感知功能的深度学习方法,发表在NIPS 2018和IEEE TPAMI上,其性能至今保持国际领先。

(四)关于完备性假设

好的数据自然会得到好的结果,但现实中数据标签可能是不够的、不准确的、不平衡的。能不能对错标得不太离谱的数据用机器学习方法,让它能够很稳健的工作? 我们最近发现,在一定条件下,这是可能的,即是课程- 自步学习理论。

课程学习的想法最早由Bengio教授2009年提出,他提出将人类学习过程按从简单到复杂的难易程度设置课程按照不同年级、不同课程实施教育的过程变成算法,来处理标签不好的数据。后来Koller教授2010年提出了实现Bengio想法的自步算法。Koller的算法是一个硬阈值的算法,即引进一个随时间改变的难度阈值,当损失函数小于这个阈值的数据安排来当前学习,否则不学习。这种方法很难设置阈值,结果不理想。我们团队系统开展了课程- 自步学习理论与算法研究,取得了重要结果。

第一,我们将课程-自步学习纳入正则化框架,提出了正则化函数满足什么样的条件能达到课程- 自步学习的公理化条件。这种公理化建模使得设计各种各样课程- 自步学习策略成为可能,特别地,我们筛选出了一批高效课程-自步学习算法。2014年卡耐基梅隆大学用这一课程-自步学习算法思想在多媒体竞赛中多个赛道获得了第一名的好成绩;2019年我们发表在IEEE TCS的论文对互联网标注的数据,也取得了非常好的分类表现。

第二,我们理论上证明了课程-自步学习的本质是使用非凸损失函数的稳健机器学习。通过引进隐式攒失函数,建立了课程-自步学习的凹共轭理论,说明任何课程-自步学习策略等价于使用一个非凸出数作损失的常规机器学日算法:


这个理论揭示了课程-自步学习的本质,解释了为什么它能够处理不完备数据的机理。

第三,我们提出了自动设计自步正则项和年龄参数的元学习算法,全面实现了课程-自步学习 算法的自动化。

总之,对于不完备的数据集,我们有了一套处理办法——课程-自步学习。当然这不一定是最好的,但是的确能解决问题。


三、结束语


       



今天的报告主要是希望和大家分享一个基本观点:科学设置机器学习/深度学习中的参数是提高机器学习性能的关键,也是发展机器学习/深度学习更高效算法的一个出发点和关键。大家通常使用机器学习不自觉地强加了独立性假设、大容量假设、完备性假设、正则项假设和欧式假设这五个先验假设。突破这些假设是人工智能发展的必备步骤,也是长期的研究方向。我们团队所提出的误差建模原理、模型驱动的深度学习、课程-自步学习理论、巴拿赫空间特征不等式等是突破这五个先验假设的初步尝试,尽管在不同场合取得了很好的效果,但是还没有达到非常理想的程度。我们还需要做长期艰苦的工作,也希望更多的机器学习同行能加入这一行列,努力为完全突破这五个先验假设作出贡献。希望今天的报告能为大家在用好机器学习/深度学习方法、进一步发展这项技术上带来启示和帮助。



一网打尽系列文章,请回复以下关键词查看:
创新发展习近平 | 创新中国 | 协同创新 | 科研管理 | 成果转化 | 新科技革命 | 基础研究 | 产学研
热点专题 军民融合 | 民参军 | 工业4.0 | 商业航天 国家重点研发计划 装备采办 | 摩尔定律 | 诺贝尔奖 | 国家实验室 军工百强 试验鉴定 | 双一流 | 净评估 
前沿科技颠覆性技术 | 仿生 | 脑科学 | 精准医学 | 基因编辑 虚拟现实 | 增强现实 人工智能 |  机器人 | 3D打印 | 4D打印 太赫兹 | 云计算 | 物联网 互联网+ 大数据 | 石墨烯 | 电池 | 量子 | 超材料 | 超级计算机 | 卫星 | 北斗 | 智能制造 不依赖GPS导航 5G | MIT技术评论 | 航空发动机 | 可穿戴 氮化镓 |  隐身 | 脑机接口 | 传感器 | 数字孪生
先进武器无人机 | 轰炸机 预警机 | 运输机 | 直升机 战斗机 | 六代机 网络武器 | 激光武器 | 电磁炮 | 高超声速武器 反无人机 | 防空反导 潜航器
未来战争未来战争 | 抵消战略 | 水下战 |  网络空间战 | 分布式杀伤 | 无人机蜂群 | 太空战 反卫星 混合战 电子战 马赛克战
前沿机构战略能力办公室 | DARPA 快响小组 | Gartner | 硅谷 | 谷歌 | 华为 阿里 | 俄先期研究基金会 | 军工百强
其他主题系列陆整理中,敬请期待…… 




















Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/118092
 
336 次点击