整理|网易科技 孟倩
特别鸣谢 部分编辑校对:
-游培廷,北京大学数学科学学院计算数学博士生
-方林,深圳大学光电工程学院光学硕士生
2020年5月9日,未来论坛青创联盟发起的YOSIA Webinar特别推出了“AI+X”科学系列主题,第二期主题为“AI+科学计算”,主要针对科学计算的现状和挑战、科学计算与人工智能融合的价值、研究的路径和案例以及科学计算与人工智能融合的未来发展方向进行了分享。
本次参与者有六位嘉宾,他们分别是来自北京大学的李若教授、 中国科学院数学与系统科学研究院研究员明平兵、清华大学数学科学系副教授史作强 、北京大学教授杨超、联科集团创办人兼首席执行官,美国华盛顿大学终身教授孙纬武和厦门大学数学学院教授熊涛。主持人为未来论坛青创联盟成员,北京大学北京国际数学研究中心长聘副教授董彬。
过去10年,人工智能(AI)技术深刻影响了人类社会,也在逐渐改变许多学科的研究范式。在科学计算的诸多领域存在待求解的问题机理不清楚,或者虽然问题具有明确的机理,但由于过于复杂以至于传统算法难以求解的困难。AI技术,特别是机器学习和强化学习方法,基于实验或者计算产生的数据对所求解的问题进行可计算建模,从而得到复杂问题的有效解决方式,这对当今科学计算领域的研究范式已经产生了巨大影响。
与此同时,以深度学习为代表的AI在内部机理、数学理论、基础算法等方面尚不清楚、不完善,AI方法的稳健性、精确度等尚缺乏严格的数学论证,这正对其进一步发展造成严重阻碍。然而,结合机理的思维方式将有可能对面向数据的AI技术,提供新的洞见与研究途径。因此,AI与科学计算的结合,势必会推动两个领域的共同发展。
李若分享了《智能时代的科学计算:低维表达与高维问题的自然融合》,他表示经典的科学计算在过去的半个多世纪彻底改变了科学研究和科学本身的面貌,这些成就激励人们不断去挑战更为本质的困难,其中一个典型的代表就是高维问题的求解,基于计算技术本身所发展起来的大数据相关技术为高维问题的求解提供了新的契机。
从逼近论的角度来看,各种神经网络从大图景上就是为高维的函数给了一种低维的表达方式。种种迹象表明,此种表达方式具有极高的有效性和逼真度,竟可以使人们模糊地对其产生智能的感觉。
通过机器学习的手段,运用神经网络给出表象高维函数函数的低维逼近形式,在技术上是完全可以实现的。把近似的低维逼近形式代入到高维的物理模型中,则可以通过程式化的手段推导出低维的约化模型,并能够通过不断地细化逐渐改善其逼近精度。
李若说相信我们都乐见在不久的将来可以实现高维问题的求解技术和智能的低维表达技术的自然融合。
杨超在《浅论超级计算、人工智能与科学计算的融合发展:以偏微分方程求解为例》的分享中阐述了人工智能与超级计算和科学计算的融合发展趋势。
近年来,超级计算机的计算能力不断突飞猛进,为科学计算和人工智能领域的诸多难题的解决提供了强大的算力支撑。与此同时,科学计算和人工智能的发展也对超级计算机的研制产生了深刻影响。
科学计算一般以准确的数学模型为根基,以严谨的计算方法为手段,对应用领域中气候气象、能源材料、航空航天、生物医药等问题进行模拟。而人工智能则往往依赖于以神经网络为代表的具有“万能逼近”性质的数学工具从数据中挖掘规律,从而在图像处理等类型的任务上实现超越人类水准的突破。超级计算、人工智能与科学计算这三个蓬勃发展的领域是否可能实现某种程度的结合甚至融合?
他表示无论是科学计算、超级计算还是人工智能,都可以视为连接真实世界和数字世界的工具。真实世界就是人们不断设法去了解、改造的客观世界,而数字世界指的是我们能够操作、能够任意实验的基于计算机的数字化虚拟世界。衔接真实世界和数字世界,人工智能至少在模型、算法、软件和硬件四个角度可以与科学计算和超级计算结合并发挥重要作用。
明平兵分享了《多尺度问题:科学计算+人工智能Crack the Multiscale Problem: Scientific Computing + Artificial Intelligence》的主题,自然界中诸多现象如材料损伤与破坏、流体湍流、核爆炸过程、生物大分子等均呈现出巨大的尺度效应, 并伴随着不同尺度上的物理多样性和强耦合性以及多个时间与空间尺度的强关联。这些典型的多尺度问题的求解一直是非常有挑战性的课题。科学计算曾经并正在为求解多尺度问题发挥重要作用,人工智能为解决多尺度问题提出了新的思路。
多尺度建模提供了一种建模精确化的途径。多尺度建模主要基于物理定律,物理定律和数学来解决。科学计算在每个尺度上的计算方法发挥了很大作用,而且为多尺度算法提供了概念性的东西。在人工智能、深度学习对多尺度计算已经提供了一些新的思路,它有希望破除这里面的瓶颈,现在还在继续发展,但发展的不迅速。
史作强则在《基于流形和偏微分方程的机器学习数学模型》中分享了从微分流形的角度对数据流形进行建模,然后用相应不同的偏微分方程也有不同的数学方法来来解。他表示机器学习尤其是深度学习近年来取得了巨大的成功,这是用科学计算的角度帮助和理解AI就是机器学习里面的一些模型和方法。
总的思路是,对机器学习建立数学模型,尝试建立可解释、具有内在鲁棒性的数学模型和理论,并发展相应的计算方法。
主题分享一:《智能时代的科学计算:低维表达与高维问题的自然融合》
李若 北京大学教授
李若,博士毕业于北京大学数学科学学院,现为该院教育部长江特聘教授,博士生导师,副院长。研究方向为偏微分方程数值解,具体是网格自适应方法和流体力学数值方法,解决了已经存在了六十余年的Grad矩模型双曲性缺失的问题。他是第九届国际工业与应用数学大会报告人,获得第十二届冯康科学计算奖、国家杰出青年基金、全国百篇优秀博士论文奖,入选教育部新世纪人才计划。他曾经或正在担任SISC、NMTMA、AAMM编委,《数值计算与计算机应用》副主编,北京计算数学学会理事长、监事长,中国数学会计算数学分会副主任委员,教育部数学类专业教指委副主任,北京大学科学与工程计算中心主任、应用物理与技术中心副主任。
李若:各位朋友们好!我的研究领域是传统的科学计算,今天我想和大家探讨的是一种新的可能性。,维数的概念,对于学过数学的人是一个非常标准而熟悉的词汇。我们做科学计算,比如做偏微分方程数值解,其常常目标是为了逼近一个函数,这个函数从一个m维空间映射到n维空间,m和n如果非常大,就是所谓的高维的问题。
尽管很高的维数对于学数学的人来说感觉非常自然,但是在历史上对于普罗大众,大家开始接受比直观的三维空间更高的维数概念是在狭义相对论的时候,那时候伴随狭义相对论所提出的四维时空的概念,使得高维的概念进入大众视野。对于数学家和物理学家来说,维数本质上只是变量的个数。对于科学计算来说,我们要想表达一个高维函数,这个维数m-就是自变量的维数-非常要命,这个数大了以后很难办,但是n这个维数带来的困难要小得多。
狭义相对论出现以前,大概更早三四十年,就有了气体动理学的玻尔兹曼方程。这个方程中就会涉及到一个高维的所谓分布函数,这个函数是时间、空间的函数。与此同时,它居然把速度量作为自变量,使得这个函数变成一个七维函数,它满足这样一个方程(图)。这个f的自变量维数一旦高上去之后,当时大家没有感觉,等到我们真想解这个方程的时候,才发现面对着巨大的困难。
其实七维并不是显得特别高,我们平时觉得时空是四维的,事实上可以在建模的时候,将维数从日常的四维,升高到几乎不可能的维数,这是所谓的量子多体问题。这是一个薛定谔方程,薛定谔方程里面的波函数依赖于非常非常多个自变量,每个自变量都是普通的三维空间中的一个向量。这里的N会大到什么程度呢?它会大到像阿伏伽德罗常数这样的数,这个维数一下子变得高不可攀了。通过这个例子可以看到,维数我们是可以把它玩的非常大的。
在物理的历史上,维数是从日常的维数逐渐一步一步的加上去,这件过程大约可以从广义相对论的时候开始算起。在理解广义相对论的时候,大家发现它本质上是把相互作用几何化,把引力解释成为空间曲率。大家发现可以享受引入新的自变量的好处,把各种相互左右都解释为新加入的维数的几何结构。比如说为了解释磁铁的磁力,可以为电子硬生生的引进自旋这个自变量,物理书上叫做“内禀属性”,在数学看来就是一个自变量,引进这个就可以解释磁铁的磁性。吃了这种甜头以后,物理学家们逐渐就把四种基本的作用力,比如核里面的强相互作用、弱相互作用,逐渐都想把它统一起来使用,加自变量维数的方式,然后把它统一起来,就发展成了现在的各种弦的理论、m理论这些。大致上看来,物理学家把各种各样的相互作用最终变成了新的自变量,从而导致了函数自变量维数的增长,这种增长为我们求解这些方程带来了非常巨大的困难。
科学研究的目标第一步是理解,就是所谓认识自然,第二步是控制,这是希望通过获得的理解来改造自然。当我们想做科研的时候,一个被研究的客体放在面前,我们可以把我们研究的客体,首先可以看成是一个黑盒子,我们通过观察它的输入,测量它的输出,然后猜测到底这个黑盒子里发生了什么事。输入和输出从表象上常常是非常高维的,但是需要注意的是,我们能够观察、测量和控制的关于输入和输出中的信息都是非常低维的数据。这是因为我们对所能够观察和控制的所有这些因素,只有低维的表达能力造成的。我们翻来覆去的做输入和输出的观察,有一天终于给出这个客体的方程,这就是物理的模型。所以这些模型,或者说方程,就是照亮黑盒子的光,使得黑盒子变成了亮盒子。我们的问题在于这些方程中自变量的维数太高,计算量太大,我们就会很难对其进行求解。
这个盒子和现在热门的神经网络长得非常像,给它一个输入,输入从表象上非常高维,它就给一个输出。神经网络和刚才我们说的这个盒子比较,其特点在于它是天生就是一个亮盒子,里面所有的连接结构、参数都是设定好的。现在大家做神经网络的训练,就是反复地匹配这些输入和输出的数据,然后把盒子里面的参数给确定下来。一提到这个大家马上会非常兴奋的去讨论大家非常感兴趣的一些问题,比如怎么样调参和训练,还有关于所谓的泛化和解释性的问题,这些讨论很容易就会把科学问题和哲学联系在一起,我们就不展开了。
最近这几年,利用神经网络去表达过去我们觉得很难的一些问题的解的时候,往往给我们非常神奇的感觉,训练出来的神经网络常常可以捕获我们过去觉得绝对不能表达的特征,准确度非常高,这让我们觉得这个好像是一种智能,我们说它是人工智能的意思是觉得它和人的智能多少还是有一些区别的。神经网络的结构天然和我们研究科学问题的解构这么相像,我们可能马上会觉得它们之间会有一些竞争,但是今天我想讨论的是,我们其实可以利用它们的相似性,把神经网络的这种表达形式,以非常自然的形式应用到求解高维科学计算的问题上来。
我特地构造了一个看上去很抽象,但事实上又相当具体的例子,来说明这种可能性。我们考虑时间发展的方程,左边是一个函数,这个解函数u是时间和空间的函数,空间可以是非常高维的,右边是不包含时间导数的算子,具有初值。为了解这样一个方程,原则上n非常大的时候,现在的科学计算是很难解决这样一个问题的。但是请注意到刚才我们说过的一个重要的事实,我们所关心的初值或者说我们所能够给出的初值,这种U0,它的整个集合是非常低维的,每个U0本身有非常高维的表象,但是所有的U0放在一起的集合是一个低维的结构。所有的这种函数所形成的集合,这个集合形成了一个流形,它的维数是很低的,我们把它记作K,这个是和1差不多一样大的一个数。
由于这个方程是个时间发展方程,以U0作为初值时候的的解,就会在所有可能的解空间里面形成一条单参数的曲线。所有这种单参数的曲线,形成了这样一个集合(图),单参数是t,其他的维数是K维的。对于所有的解形成的在解空间中的流形,构成了以U0作为底的K+1维的流形,整个流形的维数是不高的。这样,原则上来说我们就可以用下面的形式对这个流形做参数化,我们利用t是其中一个显式的参数,可以把其中每一个函数都写成x的函数,依赖于参数ω,这个ω是只依赖于t的一个K维向量。这样的解的形式代入到方程里面去,我们会发现这样的等式,拿u对所有的ω求导数,这是一个广义导数,每一个ω对t求一个导数,会发现这个对所有x都成立。我们可以使用u对ω的导数做检验函数,这个东西是一个内积。总而言之,我们最后可以转化为一个常微分方程组,以ω作为变量的常微分方程组,前面这个东西就是由这些东西所做出来的矩阵,这个矩阵是对称正定的,右边是右端项。我们获得了只有K个变量的常微分方程组,这个方程组我们是可以非常高效的求解的。
在这个过程中,我们可以看到其中最大的困难是,如何获得这个解流形的结构,因为这意味着我们要给出解的参数表达式。如果能够做出这一点,一个非常困难的问题,就会变成一个非常非常简单的问题。但是我们基本上可以说,想精确给出这个表达式是没有可能的,一旦有这个可能,这个问题我想也不是一个非常值得做的问题,因为太简单了。这个时候我们有没有可能通过机器学习的手段,运用神经网络给出一个“u hat”(音)的逼近形式呢?这件事情完全是可以操作的!神经网络天然就可以表达这种函数,我们可以获得一些数据,这些数据可能来源于一些测量或者一些精细的、局部的解,这可以我们的计算能力可以获取的解。获得大量这样的数据后,然后它形式上长得像这样的数据,我们用这些点,用一个神经网络然后去构造某些损失函数训练出一个东西。然后我们就可能用这样一个网络来代替我们刚才“u hat”的形式,具体怎么操作有大量的可能性。其中比较关键的一点,我认为这种点云数据的维数怎么确定,我们确定了以后将会确定K到底是多少。以及中间的这些参数,就是ω怎么选择。经过进一步的思考,我们其实知道这些参数的选择并不是非常关键,有非常丰富的余地。
于是我们把近似的形式解代入到刚才的方程中。由于这是一个近似的形式,这个方程不可能等于零,有余项。于是我们依然可以使用刚才的套路,我们做一个检验函数写到这里面去,构造一个模型。这个模型将会是一个近似模型,无论如何它的计算量彻底小下来了。特别的一点,对于这样一个模型我们可以很轻松的给出这样一个形式的(图)后验误差估计。这个后验的形式说明,原则上我们可以对于精确的解流形什么都不知道,但是可以发展出技术手段,通过不断地减少这个误差,使得它的精度逐渐得到改进。
由于时间的关系我就讲到这里,谢谢大家!
主题分享二:《浅论超级计算、人工智能与科学计算的融合发展:以偏微分方程求解为例》
杨超 北京大学教授
杨超,北京大学数学科学学院教授,博士生导师。主要从事与超大规模并行计算相关的模型、算法、软件和应用研究,研究领域涉及计算数学、计算机科学与应用领域的交叉。研究成果曾先后获2012年中国科学院卢嘉锡青年人才奖、2016年美国计算机学会“戈登·贝尔”奖 (ACM Gordon Bell Prize)、2017年中国科学院杰出科技成就奖、2017年CCF-IEEE CS青年科学家奖等,2019年入选北京智源人工智能研究院“智源学者”。目前担任北京大学科学与工程计算中心副主任,中国科学院软件研究所学术/学位委员会委员,中国工业与应用数学学会“高性能计算与数学软件”专业委员会副主任兼秘书长,中国新一代人工智能产业技术创新战略联盟“AI指令集与开发接口”标准专题组组长等职务。
杨超:非常高兴参加这次活动,借此机会我想结合偏微分方程求解的一些经验,分享一下关于超级计算、人工智能和科学计算融合发展的观点。
从主流的科研范式来看,人们认识客观世界的三种最主要的科研手段是实验、理论和计算,最近十来年随着数据科学的兴起,基于数据的科学发现被认为是第四种重要的科研范式。而围绕计算和数据有三个非常独立但又相互关联很大的方向,超级计算、科学计算和人工智能。
从计算科学诞生之初,超级计算和科学计算的关系已经建立起来。它们之间的关系可以概括为:超级计算是支撑科学计算发展的重要工具,科学计算作为需求牵引、拉动超级计算机性能不断提升。事实上,早在电子计算机诞生之前,超级计算的思想萌芽就已产生,其中一个代表性的工作是英国数学家理查德森1922年提出来“预报工厂”的概念,这个概念被称为“理查德森之梦”。为什么说是一个梦?因为1922年当时没有电子计算机,他提出的“预报工厂”主要用于预报天气。众所周知,天气预报是科学计算领域最有代表性的一类应用。预算工厂包括64000台Human Computers,每台“计算机”由一个人完成相关计算。预报工厂中还有专人用信号灯指挥不同的“计算机”进行数据交换。“预报工厂”的计算目标是大气,把计算区域分成64000个部分,每个人负责一块,大家分别计算,并有人去协调指挥,这其实体现了早期人们畅想超级计算的一种朴素思想。
随着世界第一台电子计算机ENIAC的问世,理查德森之梦终于得以实现,ENIAC重达几十吨,占地面积非常大,并且耗电惊人。据说每当ENIAC开机的时候,整个费城的灯都暗了。1950年,冯诺伊曼和他的助手改造了ENIAC的可编程性,并在这个基础上编写了世界上第一个天气预报程序,成功完成了24小时预报,实现了理查德森之梦,也成为了科学计算的蓬勃发展的一个重要开端。
如今,历经几十年的发展,超算已经在科学计算的方方面面,例如航空、航天、气候、能源、材料、安全、天文等领域中发挥了不可取代的支撑作用。2013年美国能源部曾经统计过一些典型的科学计算应用中的计算需求,这些计算需求即便放在今天来看仍然是很大。在科学计算巨大需求的牵引之下,超级计算机的计算性能按照“十年千倍”的速度迅猛攀升。我们都知道摩尔定律,摩尔定律的是说个人计算机的性能提升速度是每18到24个月性能翻一番,而超级计算机可以达到每年性能翻一番,“十年千倍”的发展速度。
现在超算发展的一个重要趋势是:异构众核,即同一个系统有不同类型的计算核心,而且每个芯片上要集成大量的计算核心。为什么会沿着异构众核趋势发展?其实这与计算需求关系不大,更多的是超级计算发展本身的技术条件限制造成的。现在所有的超级计算机都是基于冯诺伊曼体系结构,冯诺伊曼体系结构的“算”-“存“分离特性会导致现有工艺下,为了满足计算需求,能够选择的设计方案十分有限。这样的系统现在越来越多,同一个系统有很多计算核心,而且计算核心还不一样,从设计算法和研究软件角度来说面临很大挑战。
例如求解偏微分方程的经典并行算法——区域分解算法,该算法一般假定每个子区域应该是大致相同,而且满足一些数学上的条件,例如子区域应具有凸性和的单连通性等。在异构系统上,这些前提假定已经难以成立,需要从思想上突破传统算法的约束。对此,我们提出了一套异构区域分解算法,在传统的区域分解思想基础上,对每个子区域进行第二次切分,切分时排除掉之前理论上的假定,包括凸区域、单联通区域之类的约束,目标就是要与现有的异构系统硬件配置相适配。
虽然理论上很难分析这种异构区域分解算法的收敛性,但是在实际应用中,这种算法达到很好的应用效果。HPCG是基于偏微分方程求解的高性能计算机的排名标准,我们把这个算法应用于HPCG优化里,取得了很好的效果,收敛性非常好,帮助天河2号拿到2016年的HPCG世界排名第一。
如前所述,科学计算和超级计算之间相互促进、共同发展的闭环已经形成了几十年了。最近十来年随着大数据兴起,人工智能技术得到复兴并呈爆发式发展。此时,人工智能作为一个“新”角色进来之后又起什么作用呢?至少两个方面的作用,首先从超算角度来看,超算原本主要用来支撑科学计算,现在有了人工智能这种新需求,超算必然也要为人工智能提供强大算力支撑。反过来由于人工智能的本身特性又会改变超算的发展趋势。第二,人工智能和科学计算的关系。人工智能有一些好的数学工具和思想方法可以作为新思路、新方法、新工具提供给科学计算,科学计算又有多年发展的基础和较为完善的理论框架,可能帮助我们实现可解释性的人工智能。
AlphaGo和AlphaGo Zero作为人工智能最近几年非常著名的突破,先后打败了人类的围棋冠军。像AlphaGo Zero这种大型的AI应用,如果想一天之内完成它的训练,我们所需要的计算能力已经超过1E ops,事实上过去6年训练神经网络的算力需求已经增长了30万倍,这远远超出超级计算机“十年千倍”的计算性能提升速度。所以现在有观点认为计算能力是人工智能发展的非常重要的基础,甚至有人认为算力常胜。
与此同时,人工智能的发展深刻改变了超算发展趋势,尤其是在2017年前后,随着大规模AI应用的涌现,新型超级计算机设计也逐渐开始考虑人工智能这类应用,最有代表性的机器就是美国的Summit,计算性能世界排名第一的系统,这台机器科学计算的双精度浮点计算性能是148Pflops/s,但是它还通过配备特殊的Tensor Core计算单元,可以实现3.4 Eops/s的AI计算性能。与此同时国际上谷歌、IBM、寒武纪、华为等大厂也都先研发了各种AI处理器。最近,谷歌Jeff Dean等人发展了采用AI设计芯片的新技术,大幅度提升芯片数据效率。毫不夸张地说,AI已经对硬件设计产生方方面面的深刻影响。
在超级计算机系统设计方面,举个例子,牛津大学2018年出版了一个白皮书《解码中国的AI梦》,其中有一个观点:“中国建设超级计算机方面的成功表明,它有可能赶上AI硬件领域世界领先的企业……如果其他国家专门开发针对AI新型超级计算机,中国在制造传统超级计算机方面的卓越表现可能并不重要“。顺着这个思路我们去思考,也许有一天,可能很快我们会看到专门用于AI计算的大型超级计算机。
现在让我们回到偏微分方程求解。借助神经网络这类数学工具,我们是不是可以解一些之前难以求解的问题呢?(图)在这里,我列出了三个比较有特色的方程,它们都有强烈的非线性,并且计算区域具有不规则和高维的特点。比如第一个方程的计算区域虽然是二维,但是区域边界非常复杂。中间是三维的例子,其计算区域是一个扭曲的torus形成,采用经典方法很难准确的刻划。第三个是100维的超立方体,它高维的性质决定了经典的方法很难去求解。
通过神经网络的方法可以很好地求解这类问题,我们提出了一套新方法——PFNN,这一方法的最大特点是只需要求解无约束优化问题,不需要引入任何惩罚项。传统的神经网络求解方法或多或少会引入惩罚项,但是通过采用一些手段去重新构造解空间,可以设法避免这个事情。把一个约束优化问题变成完全没有约束的优化问题,数值计算结果表明,PFNN方法可以很好的改善问题的求解精度和计算效率。
下面考虑如何实现并行求解。一个很自然的思路是直接做分布式训练,但这样的处理没有很好的利用问题本身的性质。偏微分方程的求解,在经典的科学计算领域,有一个非常好的并行算法——区域分解。我们将区域分解的思想用在神经网络求解偏微分方程中。比如可把一个方形的区域一分为四之后,增加一点重叠度,就可以把单个神经网络训练问题分成子区域网络的训练。通过实测发现,这样的手段不但能够提供很好的并行加速,同时问题的计算精度也同时得到改善,实现了计算精度和计算速度的双重收益。
从未来的发展趋势来看,人工智能、超级计算、科学计算会怎样发展?三个方向共同目的是通过某种手段连接真实世界和数字世界。真实世界就是人类在不断设法了解、改造的客观世界。数字世界是我们能够操作、能够任意实验的基于计算机的数字化虚拟世界。从真实世界到数字世界,至少存在四个角度,人工智能可以与科学计算和超级计算结合,发挥作用。
第一,模型角度。经典的科学计算方面,很多问题是建模方面很困难,或者模型很准确但是不可计算或者很难计算,或者是模型可以计算但不够准确。这时候基于人工智能的手段也许可以构造更好的模型,比如现在湍流模型,分子力场模型,天气预报领域的物理过程参数化等都有成功案例。
第二,算法角度。刚才举的PFNN的例子就是算法角度,人工智能的发展有很多的很好的数学工具,思考问题的视角。借鉴里面好的数学工具,比如神经网络,可以应用在一些科学计算领域的经典问题,比如线性方程求解、微分方程组求解、最优化问题求解等。
第三,软件角度。光有算法和模型是不够的,还需要在计算机上实现,写成软件,实现出来。这个过程涉及到大量的编程工作,而且很容易出错。这时候如果借助机器学习等手段,可以在编译优化,自适应调优,自动代码生成等方面把人们从繁重的体力劳动中释放出来。
最后就是硬件角度。AI事实上已经深刻改变了超算硬件的发展,而且未来还会有更多改变,比如计算单元的设计、芯片的设计、处理器的设计、超算系统的设计等。
最后我想利用这个机会介绍一下我们课题组正在招新,感兴趣的欢迎到这个网站(https://scholar.pku.edu.cn/chaoyang/news)。谢谢大家。
主题分享三:《多尺度问题:科学计算+人工智能Crack the Multiscale Problem: Scientific Computing + Artificial Intelligence》
明平兵 中国科学院数学与系统科学研究院研究员
2000年博士毕业于中国科学院数学与系统科学研究院,目前是该院研究员并担任科学与工程计算国家重点实验室副主任。主要从事计算数学及科学计算的研究,特别是固体多尺度建模、模拟及多尺度算法的研究。他预测了石墨烯的理想强度并在Cauchy-Born法则的数学理论、拟连续体方法的稳定性方面有较为系统的工作。他在JAMS, CPAM, ARMA, PRB, SINUM, Math. Comp. Numer. Math, SIAM MMS. 等国际著名学术期刊上发表学术论文五十余篇。他曾应邀在SCADE2009,The SIAM Mathematics Aspects of Materials Science 2016等会议上作大会报告。他于2014年获得国家杰出青年基金,2019年入选北京智源人工智能研究院“智源学者”。
明平兵:今天非常高兴有机会和大家分享我们在这些问题的观点和体会,今天主要从科学计算和人工智能角度谈谈我工作多年的一个领域:多尺度建模与计算。
首先简单给大家介绍一下多尺度现象以及多尺度模型,这里面涉及到比较多的物理。然后从传统科学计算的角度来讨论一下如何求解多尺度模型,求解的过程以及面临的问题,以及多尺度建模与计算有哪些困难和挑战。最后谈谈在智能时代,人工智能会不会对多尺度模型模拟或者多尺度问题的求解带来一些新的思路、新途径。
多尺度顾名思义,就是时间尺度和空间尺度,这是大家都可以理解的。事实上多尺度是一个一般性概念,比如下面这个图像就可以看作一个多尺度模型,大尺度是图像的边,小尺度就是图像的纹理,这个图像在数学上可以用Fourier级数以及小波来表示,下面这幅图表示一个多尺度函数,仔细区分可以看到有六个尺度,最大尺度上的图形其实是非常简单的正弦函数的叠加。
下面这张片子讲讲湍流,这是非常著名的多尺度问题。湍流可以用Navier-Stokes方程来描述。这个问题之所以很困难,就是因为它有很多“涡”,这些涡在数学上就是非常不光滑的解,它们在不同尺度上相互作用,这是多尺度最为困难的一个问题:完全无尺度分离问题。
下面再给大家介绍一个典型的多尺度问题。这个图片展示的就是著名的Titanic号游船断裂的情形。断裂是从原子键的断裂开始,发生在纳米尺度。断裂聚集演变成微损伤,一般发生在微米尺度。微损伤的聚集演变成裂纹,最后裂纹就可以扩展成为在宏观层面上可见的物体的断裂。
下面给大家看看在能源、环境里的一个重要问题:碳捕捉和碳封存。这相当于把二氧化碳采用某种技术捕捉起来,再找一个安全的废弃矿井把它封存起来,这里面有一个很重要的问题,就是把二氧化碳直接排放到地下,会不会对地下水、土壤产生不良影响,这是个非常典型的多尺度问题。在连续尺度,就是从10厘米到100米,我们会看到,二氧化碳的输运对地下多孔介质性会产生重要影响,这个层次上主要是求解反应输运方程。在下一个尺度,也就是所谓的孔隙尺度,这个尺度上它的模型就是Lattice Boltzmann模型。在更小的纳米尺度,我们要研究二氧化碳与矿物质的化学反应,需要求解量子力学方程,这是属于地球化学的范畴。在碳捕捉和碳封存这个问题里面,多尺度、多物理特征异常明显。此外数据的不确定性对于模型及求解方法也有很大的影响。
实际上我们可以看到在不同尺度上具有不同的物理模型,传统的科学计算对单个尺度的模型发展了很多高效的求解方法,在宏观尺度上,差分方法和有限元方法、间断Galerkin方法以及谱方法都是非常通用的方法;在微观尺度也有分子动力学、Monte-Carlo模拟方法以及各种电子结构计算方法。宏观尺度上的方法,前面几位老师讲得比较多了,我下面谈谈一种微观模拟方法:分子动力学方法。 分子动力学方法看起来是求解一个大型非线性常微分方程组,但实际上它是一种用计算机来做实验的方法,就是用计算机来模拟粒子的真实运动轨迹。分子动力学模拟必须要考虑温度、压力以及粒子数等因素的影响。下面讲一个例子,这是去年4月公开报道的一个大规模分子动力学模拟实例,Los Alamos国家实验室的研究人员模拟了一个DNA的一个全基因序列,当时用了10亿个原子,轰动一时。
下面讲一个我们自己做过的分子动力学模拟例子,这个例子只是想说基于第一性原理的分子动力学模拟(就是所谓的从头计算)在某些时候是非常关键的。我们预测了石墨烯的理想强度,我们的预测比实验还要早一点。做这样的模拟是非常昂贵的。 我们模拟用的计算机是科学与工程计算国家重点实验室的二号集群,当时是能够进入世界前500强的机器。
前面讲了针对单个尺度上模型的计算方法,你当然可以把不同尺度的模型进行耦合求解,这是我们通常所说的多尺度耦合方法,这个方法原理上并不新,上个世纪70年代、80年代已经涌现出来了这样的方法,这些工作产生了重大的影响。比如Warshrel 和Levitt因为他们在1975年提出的量子力学与分子动力学耦合算法获得了2014年的诺贝尔化学奖。正如美国加州理工的Ortiz教授所说,多尺度模型及模拟是一个一般性概念,它贯穿了科学技术乃至工程的全部领域,不同尺度的模型已经非常清楚,剩下的就是一个计算问题。下面这两幅图是多尺度耦合方法的基本示意图,一个基于区域分裂,一个基于多重网格,这正好对应多尺度耦合方法的两种设计思路,而这两个方法都是我们在传统科学计算中非常经典的算法。
现在谈谈多尺度建模与计算的挑战,一个挑战就是前面说的维数灾难。 Schrodinger方程是个非线性特征值问题,这个方程维数非常高,难以求解。一个挑战是分子动力学的模拟时间问题。一个典型的分子动力学模拟在时间上是数百个纳秒,但是一般我们感兴趣的问题发生的时间尺度都在秒这个量级,所以二者还有非常大的差距。另外一个很实际的问题,比如极端条件下的多尺度模型问题,在多尺度模拟中,我们怎么保持极端物理条件是非常困难的。另一个挑战是前面我提到过的完全没有尺度分离的问题。
讲完了挑战,我们再看看人工智能、机器学习会给多尺度建模与计算带来什么新思路。前面几位老师已经介绍了机器学习现在已经有了非常成功的应用实例了,但是背后的机理其实并不清楚,比较公认的成功原因如Poggio所说是如下几个方面:灵活的网络架构和万有逼近性质、强有力的随机梯度法以及良好的泛化能力。多尺度模型、模拟基本都是基于物理定律,而机器学习基于数据,它们两个是可以互补互助的。一方面,基于机器学习,可以高效地处理多尺度模拟产生的海量数据,从而可以进行可预测模拟。另外一方面可以利用多尺度模型去优化机器学习模型,后者往往是不适定的。这个非常关键的,当然互补的东西还可以更多。
我们现在问一问反映分子间相互作用的势函数为什么取这样的形式?另外势函数的参数是怎么来的。我们当然可以从物理定律、定理分析得到得到部分信息。机器学习方法第一步是构造对称函数,这些对称函数可以刻画势能函数的一些基本不变性。对称函数里面包含大量的未知参数。然后利用一个典型的二次损失函数可以把对称函数里面的未知参数“学习“出来,当然需要大量可靠的数据,这些数据一方面可以从诸多现有的数据库里面得到,另一方面,也可以做一个on-the-fly的电子结构模拟来提供我们需要的数据。一般来说,数据越多越精确,得到的势能函数就越精确。
基于机器学习的势函数,最早是Behler和Parrinello提出来的,之前也许有别的方法,但是目前公认的就是这个工作。这方面已经有很多工作,发展也非常快。对于没有精确势函数的材料,特别是一些新的复合材料,这个方法特别有效,大家如果有兴趣的话可以看看最近这两篇综述论文。
最后总结一下,多尺度建模提供了一种建模精确化的途径。多尺度建模主要基于物理定律。科学计算在单个尺度上的计算方法发挥了很大作用,而且为多尺度耦合算法的设计提供了概念性的东西。目前人工智能、深度学习对多尺度计算已经提供了一些新的思路,有望破除这里面的瓶颈。谢谢大家。
主题分享四:《基于流形和偏微分方程的机器学习数学模型》——史作强
史作强 清华大学数学科学系副教授
从事偏微分方程数值方法的研究,对于基于偏微分方程的机器学习的数学模型、理论和算法有深入的研究。在国内外知名学术期刊发表文章40余篇,2019年入选北京智源人工智能研究院”智源学者”。
史作强:谢谢主持人的介绍,今天非常高兴有这个机会给大家分享我们最近做的一点工作。今天的主题是AI+科学计算。前面三位老师做了非常精彩的分享。前面三位老师的分享中更多是关注于AI怎么样来帮助我们更好地进行科学计算。下面我的介绍中,我从另外一个角度,我们用科学计算的角度怎么帮助和理解AI就是机器学习里面的一些模型和方法。
这是我们的一个思路,是框架性的思路。首先我们发现很多数据,大家都知道很多数据都可以很方便地转化成高维空间度的点云,如果是100×100的一幅图像,可以看作是一万维空间中的一个点,有一堆这样的图像,(图)这就是一个点云。一维信号可以很方便的转化成这样的点云。甚至文本,如果有一篇文章,我们从新华字典里挑选出五千个常用字,然后统计文章中每个字出现的频率,然后把这篇文章转化成五千维的向量,如果有很多这样的文章,我们就可以转化成五千维中间的一堆点。各种各样不同的数据都可以转化成这样的高维空间中的点、高维空间中的点云。这里的维数非常高,相对传统科学计算处理的维数,这个维数可以轻松到几万、几十万、上百万。现在我们老是说海量数据,,在这样的高维空间中,再大量的数据都是小数据。
比如维数是一百,我们如果想在每个维数上只放两个点,就需要2的100次方的点,这已经是天文数字了。现在世界上所有计算机加起来也处理不了这么大量的数据。所以在前面尤其是李若老师的分享中特别强调数据的表象,表观上看起来维数非常高,但实际上肯定是有某种低维结构存在在里面的。数据实际的维数是比较低的。处理这种低维的结构,在数学上有一个非常有力的工具就是流形。流形可以认为是高维空间中的低维曲面,数学上把这个东西定义成用流形进行描述和刻划。我们可以假设这一堆点云在高维空间构成了低维的流形,但是这个低维的流形结构肯定是非常复杂的,我们也很难想象在很高维的空间中这个流形的结构到底是什么样的,也就是我们很难通过直接参数化的手段对这个流形结构进行刻划。只能进行间接的手段来帮助我们刻划流形的结构。我们想采用的手段是偏微分方程PDE作为一个工具,在流形上解,首先建立一个偏微分方程模型,然后求解这个模型,这个偏微分方程的解,反过来告诉我们这个流形是什么样的结构。利用偏微分方程研究这个流形也不是特别新的想法,实际上在纯数学里面,在微分几何的研究里面,这已经被大家研究的非常多。但是在我们想处理的问题里面,如果想把这个想法付诸实现就需要面临两个问题。一个问题是我们要用什么样的PDE,我们用什么样的偏微分方程比较适合我们要研究的这个问题,这是数学建模的问题。另一个问题,假设这个偏微分方程已经确定好了,我们需要怎么样求解这个偏微分方程,我们现在面临的这个偏微分方程构建高维空间上的一堆点云上,我们需要在点云上离散这个偏微分方程,来求解它,我们就需要搞一些数字方法来达到这个目的。
下面看一些具体的例子。首先,我们用非常常见的一类偏微分方程对流形建模,我们发现拉普拉斯方程,我们为什么用拉普拉斯方程对它进行建模,是因为我们发现拉普拉斯方程对应了流形的维数,我们在极小化流形的维数。大家普遍认为流形的维数应该是比较低的,相对于嵌入的高维空间,数据真实所在的流形的维数应该是比较低的。我们发现拉普拉斯方程对应极小化流形维数,所以我们用拉普拉斯方程进行建模。我们也发展一套方法,叫做就是PIM,在高维空间的点云上求解拉普拉斯方程,这个方法在一些问题里取得了不错的效果。
再看另外一个例子,这是这两年非常常用的一个网络ResNet,这个网络主要的特征是加入了shortcut。 ,从模型的结构上来看,残差网络可以建模为对流方程。对于对流方程,沿着特征线进行求解,用向前欧拉的方法离散它的特征线方程,就可以得到残差网络的结构,反过来说残差网络背后对应了偏微分方程模型,就是对流方程的控制问题。我们给定了一个对流方程的初值、终值,实际上我们想找速度场v,可以把初值变成我们想要的终值。对流方程,这样一类的偏微分方程也可以用来处理机器学习里面的问题。
我们还有没有其他方程也可以做这样的事情呢?我们考虑深度学习里大家非常关心的一个问题,对抗样本的问题。深度学习网络有非常好的效果,比如做分类问题的时候,我们训练一个网络,对这样的图片可以正确的分类,告诉我们这是一只熊猫,但是加一点小小的扰动上去,对于人类来讲这两个图片基本没有区别,但是同样的图片给我们训练好的网络再让它识别,它会告诉你这是一个长臂猿。这个神经网络稳定性不是太好,输入的一点小小的扰动会造成输出的很大变化。从偏微分方程角度理解这个现象,它对应的是偏微分方程解的光滑性不是太好。对应前面说的对流方程,这也是可以理解的。对流方程刻划的是,比如空气的流动、水的流动这样一个过程。大家日常经验也知道,空气流动可以是非常复杂的。刚才明平兵老师的报告里有湍流的涡的结构非常复杂,它的解可以是非常不光滑的。解不光滑就造成对应网络的稳定性不太好。让从偏微分方程理论告诉我们如果加上所谓的黏性项或者扩散项可以让解变的比较光滑,这个方程相应就变成了对流扩散方程。对流扩散方程的解,从偏微分方程理论就告诉我们,这个解会比较光滑,我们就预期它的稳定性就会比较好。但是现在在高维空间里,可以用随机微分方程的方法来求解对流扩散流程,求解以后发现确实它的稳定性得到了改善。
偏微分方程对于模型压缩也可以给我们一些思路。刚才是对流扩散方程,我们所有想得到的参数都是在速度场里面,速度场是在高维空间的高维向量场,比如一万维的一万维向量场,那需要的参数数目是非常多的。如果我们能够把高维的向量场压缩成一个标量场可以大大降低我们所需要的参数数目。这个思路是可以把对流扩散方程变成Hamiton-Jacobi方程,我们想要计算的这个东西就变成了标量场,通过比较少的参数就可以建模出标量场。不太好的地方是Hamiton-Jacobi方程就变成了非线性方程,求解它的时候就比较困难,但是我们也有一些方法可以求解Hamiton-Jacobi方程。前面就是告诉大家我们不同的偏微分方程都可以帮助我们建立机器学习中的数学模型,比如拉普拉斯方程、对流方程、对流扩散方程等等各种各样的方程。
从理论上来讲我们想回答这样一个问题,偏微分方程有无穷多种,如果一个一个的来试,我们永远试不完。理论上讲我们希望知道我们能不能建立一套理论帮助我们推导确定偏微分方程,到底应该用什么样的偏微分方程建立数学模型。这也对应了某种可解释性。我们在物理或者在力学里有大量的偏微分方程模型,有很多偏微分方程模型也都是非常复杂的,比如Navier-Stokes方程(音)、麦克斯韦方程,很多的方程也是非常复杂,不能显示的求解它。对于这类方程,基本认为这类方程是可以理解的,虽然不能显式的求解它但是可以理解它,是具有可解释性的。很大一个原因是因为那些方程是由一些物理定律推出来的,比如万有引力、质量守恒、能量守恒,这些物理定律我们认为是可以理解的,自然而然由物理定律推出来的偏微分方程,我们也认为是可以解释的。在机器学习里面我们也想做类似的事情,我们希望从基本的假设出发,我们认为合理的假设出发,用一些数学方法能够推出来我们应该用什么样的偏微分方程。我们借助数学的工具能够推出来我们应该用这样的,比如不变性的假设、稳定性的假设,我们可以推出来我们用的这一类的二阶的偏微分方程,如果有更多条件放进去可以进一步细化这个偏微分方程的样子。
前面和大家分享我们用各种各样的偏微分方程对数据流形进行建模,然后相应不同的偏微分方程也有不同的数学方法来来解。在这个框架里前两步也是有很多事情可以做的。比如从这个点云到这个流形,如果大家学过微分流形的知识就知道,这个地方还有一个非常重要的东西我们刚才忽略了,就是所谓的度量。简单来讲度量就是刻划了点与点之间的关系,可以帮助点云整合成一个流形。到底应该用什么样的度量,我们可以通过一些方法学一些比较好的度量。第一步从数据到点云,怎么把数据更好地转化成点云,我们可以借助于质点学习,可以寻找更好方法把各类数据转化成高维空间中的点云。我们希望建立这样一个框架,前面的流形和后面的PDE是耦合在一起的。建立一个反馈网络,流形给PDE提供了定义域,我们希望PDE的解可以反过来帮助我们更好地构建这个流形。最终这个结构有点像大家熟知的DNA的双链的结构,一个链是流形,一个链是PDE,这两个纠缠在一起共同演化。DNN深度学习和DNA只差一个字母,这可能也不是一个巧合。
我今天的分享就到这里,谢谢大家。
讨论环节
嘉宾介绍
孙纬武 联科集团创办人兼首席执行官,美国华盛顿大学终身教授,香港中文大学荣誉教授
孙纬武博士,自美国加州理工学院博士毕业后,在海外投身教学科研二十余载,现为美国华盛顿大学理论物理学终身教授及香港中文大学荣誉教授。 2000年创办联科集团,任首席执行官至今。孙博士在计算技术领域有超过30年经验。从90年代开始,领导多个跨国超级计算项目,研究相对论天体物理学。在孙博士的领导下,联科集团迄今已为数百家国家级机构及公司提供高性能计算、大数据基础设施和分析、以及人工智能解决方案。
熊涛 未来论坛青创联盟成员,厦门大学数学学院教授
熊涛,厦门大学数学科学学院教授,博士生导师,主要从事计算流体力学和动理学方程高精度数值方法的研究。2007年和2012年本科和博士毕业于中国科学技术大学。2015年入职厦门大学。获欧盟2015年度玛丽居里学者,2016年至2018年在法国图卢兹第三大学从事访问合作研究。
董彬:非常感谢史老师的分享,四位嘉宾分别从机器学习、科学计算、人工智能、超级计算的角度进行了分享。下面进入主题讨论环节,在这里首先简要介绍一下参与讨论的两位嘉宾:一位是孙纬武老师,孙老师是联科集团创办人兼首席执行官、美国华盛顿大学终身教授、香港中文大学的荣誉教授;另外一位嘉宾是未来论坛青创联盟成员、厦门大学数学学院教授熊涛老师。首先有请孙纬武老师给我们作一个分享,也是对我们这次主题的一个见解。
孙纬武:刚才主持人说我是一位老师,也是一位业界人士,我现在先简单介绍我的工作。
我的教研工作,几十年来就是解爱因斯坦场方程,这是一条看上去非常简单的偏微分方程,却是自然界给我们最复杂的一套偏微分方程,我做的就是这套方程的数字解。
现在从这张图上看到,这套方程,用有限差分的算法做模拟,得出两个中子星的双星系统,碰撞生成一个黑洞,这样一个爱因斯坦场方程的数字解,可以模拟出两个中子星对撞放出来的引力波。大家知道两年前我们观察到引力波,从观察引力波到理解背后的天文现象,倚靠的就是这样的数字计算,数字解。
两年前给引力波的发现颁发诺贝尔奖,大家看到照片上我手上拿的是货真价实的诺贝尔奖,颁发给引力波发现者的,只是这个奖不是发给我的,是发给我的博士导师Kip Thorne 的,沾他的光,拿这个奖拍个照。这件事情想说明的是什么?就是说大数据、AI加上高性能计算,带来的是一个基础科学的突破,这是我所知道的最鲜明的例子,这就是我教研工作的介绍。
对于业界角色。我在2000年成立联科集团,所做的事情就是把高性能计算与大数据、AI连接起来为各个行业提供服务。我们的服务领域包括金融工程、商业智能、环境科技、智慧城市、互联网应用、教育与培训,每个方向都有很多很有趣的服务与案例,我们的客户是包括了几百所国际级、国家级机构。我们做的事情从预测明天股票期权的上落,到预测你所在的城市明天的空气污染,这些事情都是我们每天用高性能计算与AI一起解决的问题。
我们今天的主题就是联科20年来努力的方向, 有清晰的现实价值,而且就在我们身边每天都在发生,是我们每天都在使用、都在努力的方向。我就介绍到这里。下面的讨论,我希望更多用业界的角色和各位老师讨论。
董彬:下面请厦门大学的熊涛老师分享,谈谈对今天这个主题的看法。
熊涛:首先非常感谢未来论坛的邀请,有机会参与这个活动。我来自厦门大学数学科学学院,我的专业就是计算数学。我的研究方向主要是关于计算流体力学,动理学方程的高精度数值方法。动理学方程刚才在李若老师和明平兵老师的报告中都提到了。我的研究兴趣、研究内容分以下几个方面,第一个是双曲守恒系统,计算流体力学和动理学方程都可以说是双曲系统,我主要关心它们的高精度的保界算法,比如最大值原理的保界算法、保物理量正性的算法、保能量稳定和守恒的算法,动理学方程的时空一致稳定性算法,比如显式和隐式结合的高精度渐近保持算法。第三类是关于守恒型的有限差分半拉格朗日方法,这个方法主要是介于拉格朗日和欧拉方法中间的方法。我的主要研究是关于高精度算法,这里简单介绍一下高精度算法,为什么研究高精度算法,它有什么好处。
我主要说两个。第一,它是高效的算法。相对低精度算法而言,因为有更快的网格收敛速度。这里的公式对于高精度算法而言在空间和时间上的收敛速度,比如p和q次,相比一阶算法而言,收敛速度要快得多。(图)CPU时间和误差,对不同精度算法的比较图。我们有三条斜线代表一阶、二阶、三阶算法,有一条竖线代表同样CPU时间下(CPU时间和网格尺寸和时间步长有关系),相同CPU时间下高精度算法达到的误差明显比一阶、二阶算法小的多。从另外一个方面讲,如果想达到同样的误差水平,可以看到高精度算法的CPU时间要小得多。
第二个是高精度算法的高分辨率。高分辨率对解的表达能力好得多。这里比较了二阶算法和三阶算法。二阶算法,如果算这样一个问题算到后面基本上看不清楚了,但是采用三阶算法明显好得多。通常来说从二阶到三阶是有本质变化的。
这是高精度算法的优势,但要发展高精度算法也有一些核心问题,主要是鲁棒性问题,包括算法的稳定性、健壮性和高效性,这和设计保结构算法、保能量算法非常相关,这里举一个例子,模拟物理上的冲击波,一个波从原点往外传播的过程,波在蓝色区域密度非常接近于零,如果没有保物理特性密度为正,这个算法一般是算不过去的。另外一方面在波前,如果不采用高精度算法是很难捕捉到这个比较尖锐的波前的峰值的。
我的介绍就到这里,谢谢大家。
问题一:怎么用机器学习来解决科学计算,同样怎么用科学计算来解决机器学习的问题,评价标准又是怎么样,两个评价体系不一样,关心的问题有相通之处,做交叉的时候有什么要注意的?
李若:我个人对AI方面是不大懂的,几乎所有的知识都是各位教给我的。首先就像问题里面说的,大家现在显然对机器学习是有一定的怀疑,我想怀疑的主要可能是认为它的可靠性,它在验证中在事实中是如此可靠,但是我们数学上从理论上什么都给不出。我现在想介绍的是关于做模型优化的这个思路,主要的目标也是希望说我们到底把科学计算的目标定在哪儿?过去我们教科书上解的每一个问题都是希望解所有问题。但是真的面对科学问题,我们大可不必把自己的目标定在解决形式上的我们所写出来的那个问题的所有问题,我们哪怕写了一个1023维的薛定谔方程,但是事实上我们真正关心的还是现实的世界,我们所制造的药物分子,它的电子到底是怎么分布的。所以我们面对这样一个特殊的实际,然后去寻找解,本身真正就有低维的结构,并且把这种结构融合到我们内心里认为非常可靠的科学的模型上,有可能使得我们下一步的计算看到新的机会。
史作强:这个问题对我来讲有点大,因为科学计算也是非常大的领域,有各种不同的问题,我个人稍微了解一点的就是某些具体的偏微分方程的数值的方法,怎么样用PDE来帮助我们理解这个偏微分方程。如果大的角度来讲,想从做科学计算的这些研究人员想做一些机器学习的问题,最重要的就是一个转化的过程,我们需要把机器学习里面的那些问题用我们熟悉的科学计算的语言或者这样的数学工具,把机器学习的问题转化成我们熟悉的这些东西,这个是我个人觉得非常重要的一步。只有这个转化了之后,才能用我们科学计算的这些人比较熟悉的工具来研究那样的问题,这对我们来讲我觉得是最重要的一步,如果完成这个转化之后,后面的事情对我们来讲就比较好办了。如果变成了我们熟悉的科学计算问题,我们可以利用各种各样我们熟悉的东西来处理它。
刚才我看到主题里还有一个是什么问题是最好的?我觉得这个问题就因人而异了。一般来讲你能够转化成你熟悉的问题对你来说就是最好的问题,大家背景不一样,每个人熟悉的领域不一样,同样一个机器学习里的问题,不同人看它的角度是不一样的,只要你能够把那个问题转化成你所熟悉的问题,那这个问题对你来讲就是一个好问题。所以“最好的问题”这不太好说。
我个人体会到什么样的问题不太适合我们来做,这可能有一个标准,我个人觉得这个标准是机器学习里做的比较好的问题不太适合我们科学计算的人再去做了。比如举个例子,神经网络如果我们就追求精度,比如在各种数据集上刷精度,我觉得这不太适合我们这样的人去做,我们肯定拼不过专门做机器学习的人。反过来讲,比如说神经网络的鲁棒性或者所谓的数据隐私这方面的问题,我个人感觉比较适合我们做科学计算的切入角度,比如模型的压缩。这就是我个人的一些体会。
明平兵:机器学习解决科学计算问题做到何种程度是最好的,这个很难回答,但是能解决以前工具不能解决的问题的工作我认为就是好工作。比如德国Ruhr-Bochum大学的J. Behler的一个工作,大概是2016/2017年,他们研究水的特性,在他们研究的那个问题中,没有可用的经验势函数。然而,Ab-initio的模拟又太昂贵了。他们用机器学习得到了一个势函数,然后通过MD模拟揭示了水分子的某种新奇特性。
孙纬武:刚刚几位老师分享的以及讨论, 比较聚焦在用人工智能技术如何帮助科学计算,或者用科学计算的手段如何解决人工智能问题,都是非常有趣的思路和方向。我想说一说我在业界里面见到的,我们面对现实世界的问题。我们经常发现要把这两个手段, 人工智能/大数据以及科学计算/高性能计算的手段, 叠加起来才能解决真实世界里面的问题。这个叠加的需要几乎是我们提供过解决方案的客户里面都有看到。必须把两种手段能够有效地整合起来才能够得到真实世界问题的解决的方案。
举个例子,刚刚说到预测股票的升降、预测美金对日元下一秒钟是升还是降,像这样的问题我们一方面需要人工智能技术,还需要大数据技术,因为要很短时间处理大量数据,这些都需要数据技术、高性能计算的技术,把这些技术整合, 还要和客户的系统配合起来才能解决真实的问题。刚才说到金融的计算、污染的计算,天气的数据,卫星观测的数据都要有效储存/调动/排查/整合,然后才能通过计算手段来解偏微分方程, 才能够预测明天的天气、污染等等,中间牵涉多方面的技术。很多我们的日常工作,比如我们目前正在解决的一个客户问题是, 证监会有大量股票交易的数据…P级的数据量,现在要查有没有人买卖股票的时候作弊。这中间就要有大数据的需求、人工智能的分析、文本挖掘的分、图像的分析、数据挖掘的分析,高性能计算的需求,软件的需要等等,这些都要整合起来才能真实的解决世界上的问题。所以我看到的不是一个为另一个服务,而是二者要加在一起的时候是最多的,也是我们从事这个方向的最大的挑战。
问题二:不管是科学计算还是机器学习,目的是为了解决实际的问题,来自于各种各样方面的实际问题,只不过选择的手段不一样。科学计算多数基于动力学、方程、原理、机理去计算;但机器学习,特别是现在的深度学习,大数据下的深度学习和AI基于的是数据,原本我想讨论的就是怎么能够甄别你问题里面科学计算到底什么时候适合机器学习,机器学习里面有些东西是不是可以不用去学习,可以基于一些原理来做,最终目标为了能够更好地解决实际问题。我觉得现在大家可以讨论一下我们如何把科学计算的手段和机器学习的手段能够结合,能够更好地解决比较实际的问题。各位嘉宾老师可以从比较综合的层面谈一谈自己的看法,也可以拿一两个具体的例子讲一下。
熊涛:刚才几位主讲老师在报告中也提到了,我觉得科学计算前面实际上还有一个很重要的就是数学建模的过程。从我来看,传统的科学计算,数学建模和计算这两个还比较独立的东西,但现在因为我们研究的问题越来越复杂,所以建模和计算也逐渐地融到一起,这两个不是那么独立了。建模一方面可以基于物理规律,另一方面比如说社会模型,像刚才孙老师提到的股票这些东西,这些东西没有一个物理的机理,可能时候在数学建模过程中采用一些实验或者个人经验的数据,但个人经验或者通过做实验得到的毕竟是在特定场景,它的适用范围可能没有那么广。所以这部分依据经验和特定场景下总结出来的规律,这部分可以将人工智能、机器学习和科学计算结合到一起来。
董彬:我自己做的研究也是希望机器学习和科学计算能够搭桥,具体怎么搭桥呢?现在在做模型设计、算法设计的时候,其实模型算法的主体结构大体上是确定的了,比如你研究一个flow的建模,它的主体可能由某种方程组成的,比如我们做图像处理,可以设计一些PDE,也可以设计一些优化模型。这些模型虽然对某个具体例子不是最优的,但总体来讲也都不差。所以在主体结构方面就不用搞黑盒子的神经网络去学了,如果去学也未必能学到我们原来设计的那么好。那么哪些环节需要引入神经网络?我觉得就是那些之前说不清除的地方,比如以前我们做建模的可能只能忍受手动调节一到三个超参数,超参数少我们还可以通过不停的观察我的数值结果手动来调,如果超参数真的很多,是没有办法人工去调的。但要有些时候,想得到更优的结果,我们需要引入更多的超参数,那么多的超参数怎么去调?现在有很多机器学习的方法可以自动的去调这些超参数。另外,我们在做建模的时候,有些时候大概知道主体方程肯定含有某些项,但还有一些非常微妙的项,大家众说纷纭,你不确定这些微妙的项应该怎么去建模。但是,如果我们可以做大量数值模拟,得到大量的数据,我们可以基于这些数据,用神经网络做一个拟设,把它嵌入到你的大模型里面,基于数据去把那些微妙的环节确定下来。我现在信奉一个套路,就是你的方法里有哪些原理是你比较清楚的,清楚的就不要去学了,那些基于经验的,基于直觉,凭手感、靠运气的地方可以用机器学习做建模,然后两个揉在一起,再根据你的问题本身的性质可以去选择是用机器学习的哪些方法训练这些环节,所以这是我们做搭桥、做融合的套路。
李若:基于数据做的所有事儿,目标就是为了构建那个解空间的结构。我们做的每一次实验,做的每一次模拟拿到的那些数据,其实都是在为那个解空间做一次观察。每做一次观察以后,你就会把你对解空间的观察做的更加稍微清晰一点,我们根据正确的一般性原理到小的解空间去解。
董彬:基于数据做微小调整。
李若:不一定是小调节。原则上来说,你把薛定谔方程简化了,那你可以去学势函数,那可不是一个小调节。
杨超:我从应用角度补充一个应用案例。实际应用中还有一个很现实的情况是很多应用领域有实时性的要求,比如短临天气预报,我们要预测1-4小时后的天气,以便及时应对天气的极端变化给生产生活带来的影响。从实时性角度来说,这样的问题传统科学计算手段处理起来难度较大,因为科学计算无论如何还是要解方程,很难在极短时间内完成模拟。机器学习有一个特点是先训练再预测,训练过程可能开销很大,但它预测的过程往往极快,往往比科学计算领域的方法快得多,所以这时候用机器学习的技术,可能能够实实在在解决一些实时性要求比较高的问题。
董彬:以前我们做计算的问题,设计的方法是比较普适的,但是实际问题中我们需要反复解的问题非常具体,有很强的低维结构,有时候不如搞一个神经网络就把这个任务做的又快又好。虽然这些神经网络可能不能像传统计算方法那样泛化到别的问题,但从解决实际问题角度来讲这个就够了。有些时候,主流科学计算希望能设计包打天下的算法,现在我们希望针对具体问题把性能推到极致,我觉得要能达到这个目的,我们做科学计算可以借鉴机器学习领域的经验和技术。
问题三:下面的议题是从产业界角度,高性能计算与人工智能计算融合有什么应用路径和价值?
孙纬武:现实世界里出现的、我们需要去解决的问题, 正如我刚才强调的,一般都是大数据/人工智能与科学计算两方面都同时需要的。与科研不相同, 我们不能选择问题,而是问题已经摆在那里了,我们要的是要整合出一个最有效的解决方案, 把现实世界的问题解决掉。实际上需要融合的不仅是人工智能、大数据与科学计算等科技,还包括软件、讯息储存/调动/排查/传递、可视化等等技术,除了技术之外, 还要有对现实世界问题的理解(把文字题变为算式)、对客户需要的理解等软能力, 也包括工程能力: 你要解决客户的问题,就需要把你的解决方案与客户现有的系统融合的工程能力,这些科技和工程能力都要配成一套,然后才能解决真实世界里出现的问题。真实问题的困难经常不在于纯粹科技因素,而是在于真实的问题常常牵涉的很多方面,这些方面的集成才是最大的挑战。
董彬:我们听众中不少的学生,对于机器学习+AI+科学计算的学生培养,有什么可以给学生的建议。我这里抛砖引玉一下,我接触深度学习、机器学习大概2016年底,那时候跳进这个坑,至今乐此不疲,那时候我也是和学生一起在学深度学习、机器学习,有一些经验也有一些教训。我整体觉得对于学生来讲,特别是做计算数学或者做应用数学的学生,很多时候可能要释放一下思想,有些时候要勇敢一点,不要对严谨性有过度的执着。我觉得我们受数学训练出来的人,都对严谨性有着不同程度的执念,这是学科特点,这种执念既是我们的优势,有时也会是一个包袱。一般我们有一些想法,一定要能用严谨的逻辑推出来,证明了,然后才敢去做数值实验。但是,很多时候你推不出来,并不代表它真的推不出来,不能被证明,可能是你的假设过于严格,定理的设定不够合理。所以,我给想去接触机器学习的数学专业的学生一个建议是一定要大胆做尝试,去学习一些机器学习里面经常用到的一些你看起来觉得好像没有什么道理的Trick。我比较信奉的一个观点,就是说“如果某个方法数值上有非常好的性能、能得到非常好的数值效果,背后一定有它的道理”,如果你发现了一些Work非常好的东西,再回来去分析它,用数学严格的论证。我觉得如果刚入手机器学习的话,首先要把机器学习的基础学好了,可以看看MIT Press的那本Foundations of Machine Learning,要知道机器学习的问题是怎么描述的,它关注的问题都是哪些,一些基本的概念到底是什么,时刻想着这些概念和你学的数值分析、函数逼近、PDE之间到底有什么联系。当你能够把这些概念联系到你所学的科学计算的知识的时候,你不仅对这些概念的理解会更加深刻,甚至还能有科研上的一些新想法。
孙纬武:对于培养学生我从两个角度讲一讲。一个角度是学生该怎么学?首先学生要判断: 我自己想要走科研的路, 还是想要掌握本领来跳进真实世界,在业界发展。两条路都是非常有意义的。但是在学习的时候要注意的重点是有不同的。如果是作为科研人员,以科研作为目标的,把问题、把学习从深入的方向去走是首要的; 当然也需要有相当的普遍的认识,然后才可以对大局有了解, 才能找到好的研究题目,但是首要还是要深入钻研。如果想走的路是要解决真实世界的问题,从业界做出贡献的话,我认为广比深更重要。原因其实我刚才已经说过, 真实世界的问题常常牵涉很多方面,这些方面的集成才是最大的挑战, 你要和有其他专长的同事一起合作来解决这些问题, 你起码要明白人家在说什么、人家在想什么,跟你一起想要解决的是什么问题,他的痛点在哪里,这些沟通、这些理解是解决真实问题非常重要的。没有一个比较广阔的知识背景, 就会连沟通也沟通不了。所以如果你是一个学生,将来想要跳进业界,首要的就是要有一个比较广泛的知识基础。当然也要建立自己的专长。
董彬:不只是业界,现在在学术圈,即便是在基础数学内部也要跨学科。只掌握一门技术现在可能已经不太够用了,在学术圈做得非常出色的学者、那些领军人物,他们的知识面是非常广的,能力也是非常多元的。
问题四:如何看待类脑计算和量子计算,它们会成为科学计算的发展方向吗?
杨超:我觉得无论是类脑计算还是量子计算,或者其他新型计算技术,目的都是输出计算能力。从这个角度来说,哪项技术能够真正实用化,哪项技术就可以被纳入超级计算的范畴。目前来看,已经看到了不少曙光,现在已经有人把传统的超算和类脑计算结合,也有人探索经典超算和量子计算结合的手段,这可能是未来一个趋势。
问题五:下一个问题,亮盒子参数是怎么变化的?它们变化的原理是什么?
李若:这比较接近我们刚才说的细节,原则上来说这相当于说我们想知道我们真的的解空间的低维流形到底怎么参数化的问题。因为时间关系我没有办法仔细跟大家讲,我们之所以给一个后延误差,具有什么样的意义。原则上如果我们能够给定一个后延误差,意味着我们可以对解流形本身一无所知,我们就通过我们到底犯了多少错,不断地加进新参数然后进行改进,然后逐渐可以获得对真正解流形的一个更加好的逼近。在这个过程中我们就会了解到这些参数是什么。这些参数将会不断地从你所给的近似的流形,带到方程里的材料里面去提取出来。我们可以通过观察货物到底是什么样的,然后拿到这些参数。
问题六:请明老师简要介绍一下分子动力学模拟的原理和过程,它是怎样模拟分子的复杂动力学的。其与分子真实动力学的相符程度如何?
明平兵:分子动力学从计算的角度来讲,就是求解一个大型的非线性常微分方程组,但是和通常求解常微分方程组又有显著的不同,它关注的是大量粒子的长时间系统平均量,而不是单个粒子的运动状态。一般来说,只要模拟时间足够长,粒子数足够多的话,势函数又足够精确的话,分子动力学模拟结果总会趋于粒子的真实动力学。
问题七:下一个问题是给史作强老师,PDE刻划以后用SD求解怎么保证精确性,为什么不用SD直接刻划呢?
史作强:一个是怎么样保持SDE的精度,一句话来回答,就是我们不太在乎它的精度。我们要记住我们现在要解决的问题是机器学习的问题,PDE对我们来讲只是一个工具,没有必要把PDE求解地非常高精度,用PDE建立数学模型本身有误差,说不定这个误差还是很大的,PDE求解的精度再高,精度高到一定程度没有意义。另一方面在机器学习里面对误差的要求和传统的科学计算里面的对误差的要求是不一样的,传统的科学计算里面误差是10的负的多少次方,传统科学计算对精度的要求是很高的,恨不得达到机器无误差的精度。但机器学习里面完全不一样,可能10%的误差都已经非常令人满意了。所以我们要看我们的问题是什么。我们处理机器学习问题的时候,PDE只是一个工具,目的并不是精确地求解PDE,而是解决机器学习的那个问题,只要误差能够达到我们那个问题的要求就可以了。
第二个问题为什么不用SDE直接建模?我个人的背景是因为我对PDE更熟悉一点,所以我们倾向于用PDE建模。如果提问的同学或者老师你更熟悉SDE,你完全可以用SDE建模,这个是没有问题的,就看你个人背景,哪个领域你更熟悉,这是很开放的一个问题,机器学习你可以用各种各样的角度去理解它,八仙过海各显其能,你熟悉什么就用什么去解决它。
问题八:请问从事传统的数值计算方法研究目前还有用武之地吗?是否需要融入机器学习和人工智能?
李若:不管是做传统的科学计算数值方法之类的研究,还是做现在热门的机器学习方法的研究,但凡去做研究工作,那么我们发展的是这个方法的本身。当然我们要用业界的角度来讲,你去解决了一个问题,在业界你只需要做出来一个馒头,这个馒头就有它的价值。如果我们去发展方法,不管是哪个方面的方法,传统的数值计算也好,还是新兴的方向也好,你使得这个方法本身具有了新的能力,然后从中间获得了新的理解,它都是你所做工作的贡献,不用去说我所做的事情到底是不是有什么用。有用与否很大程度上是一种和现实世界结合起来的某种价值判断,做科研你还同时要追求人类知识发展永恒的价值,在这方面无论如何都会是有用的。
孙纬武:我听到这个问题以及前面也问到量子计算、类脑计算这些,我的感觉是, 也许问问题的同学或者老师想问的是,现在哪里是风口?哪一个方向是最容易飞起来的?我对这一点有一个建议,无论你是想要从事学术研究或者是从业界做出成绩,最关键的不是去找风口,最关键的是找出做什么事情、做什么方向、做什么研究是最能够让你兴奋的。你如果是看到传统数值计算能够让你兴奋,你就钻进去做,这样你成功的机会远比你找一个风口,想方设法飞起来,成功机会是大很多的。所以对于选什么方向, 最要紧是什么事情让你自己最兴奋, 最会废寝忘餐。
董彬:非常认同。有些时候会有学生问我做这个事情有什么意义,然后做出来了会怎么怎么样,也有人问我你为什么做这个,有什么意义。真的很难回答,一个包打天下的回答就是:做这个事儿好玩儿。不少重要的有影响力的工作,一开始就是纯好奇心驱动的。好奇心可能不是唯一的驱动力,但是是非常重要的一个驱动力。如果你想不清楚到底是不是要入坑机器学习、人工智能,你就想想自己喜欢干什么就行了。我们在北大看到有很多学生,可能一开始听说机器学习很火,尝试了一下,但是回过头来还是继续做科学计算,计算数学问题,我觉得这个很好,大家要根据自己兴趣来做自己感兴趣的东西,如果你只是因为它很火去做,很多时候不一定做得很好。
问题九:,请问国内在哪些人工智能方面比国外做得好?
董彬:我觉得至少人脸识别是一个,AI芯片,寒武纪至少是做的很领先的。
孙纬武:有一样肯定比人家做得好的,就是对于中文的识别、中文的文意理解,做的肯定比外国好,但是这个好也不能说明什么东西。
李若:我们都离应用好像比较远。
董彬:但是至少可以讲在科学计算+AI我们不比他们落后。
问题十:AI是用来建模的还是解方程的?是不是两个都有?看你做的反问题正问题,老师们可以谈一谈看法。
明平兵:可以用AI解方程。AI可不可用来建模呢,这个也是可以的,比如有很多数据,当然这些数据要比较可信,然后从数据里面从数据中学习某些规律、机制。这应该也是一个建模过程。所以应该说都可以。
李若:从我们概念上来讲,建模和解方程这两件事情似乎也没有那么大的区别。解方程也可以看成是建模,把一个微分方程模型最后变成代数模型,代数模型最后解出来,所有这个过程也可以看作是建模。
明平兵:我今天讲的这个题目里面,大家看到我经常用多尺度建模、多尺度计算、多尺度问题求解,这几个基本上是不分的,正如李若老师讲的一样没有什么区别,都是理解现实世界、理解某个问题的一种方式。
董彬:从反问题建模角度来讲,可以用AI做建模,比如观测到一个动力学过程,我知道这里面肯定有convection diffusion,也肯定还有一些别的东西不知道是什么,你可以用机器学习来把那些不知道不确定的部分拟出来,如果你运气好发现拟合部分具有某种新的较为普世的规律,那你就成功的通过AI方式发现了一个新的原理。当然,以这种方式去发现新的原理是大海捞针,但至少可以通过这种方式做模型约简。为什么又和解方程分不开呢?如果你建模了,怎么知道这个模型准不准,肯定要去求解它,去和你手上的真实数据进行比对。做建模的时候要不停地解反问题、正问题,交替迭代,非常像神经网络训练,要前传反传,前传看看匹不匹配数据,如果不匹配数据反传再调节你的参数,建模和解方程是一体的,这是我的理解。
问题十一,科学计算的超参数能否用AI算法解决?