鄂维南老师说,深度学习不是别的,就是一个彻头彻尾的计算数学问题,只不过开始的时候计算数学的人搞得少,被计算机的那帮人先搞了,所以外界很少听到它和计算数学的关系。鄂维南老师提到,这种现象十年之内必然会改观,到时候搞深度学习的主要是计算数学的人,毕竟,这才是它的老家。

浅谈大数据和深度学习和计算数学的一点关系

专业介绍

计算数学是数学的一个分支,研究的内容包括设计和分析算法以及数学建模等,目的是为了在实际工程中利用快速稳定的算法得到精确值的近似值。在计算机科学高度发展的今天,其基础计算理论的发展使计算数学进入现代化阶段。(维基百科 )

计算数学,我个人的理解是,不管是生活中,还是工程上,只要是涉及到计算,都可以划到计算数学的研究范围内,自然包括人工智能算法中的各类问题的优化求解。更近一步说,它是研究如何用计算机解决各种数学问题的科学,它的核心是提出和研究求解各种数学问题的高效而稳定的算法。计算一词包罗万象,目前发展比较成熟,理论体系比较完整的很大一部分和方程的求解相关。

传统的计算数学,主要致力于工程问题数学建模与计算。也就是说,对于实际问题,通过数学建模,抽象出数学问题,并提出相对的计算方法,这就是我们计算数学人干的事情,我所计算数学涉及的方面,我做了一个简单的调研,罗列如下:

  • 实际问题: 地震勘探 、天气预测、材料科学、电磁学(麦克斯韦方程)、光学问题、生物计算与模拟、计算流体力学(多孔介质中的渗流问题等)……
  • 数学问题: 特征值问题、动力系统、随机微分方程、反问题、孤立子、可积系统……
  • 计算方法: 有限元方法、多尺度计算、最优化计算方法、谱方法、科学计算和高性能计算(并行计算等)、随机计算、微分方程的数值求解、辛几何算法、最优控制问题的数值方法、波场计算(包含小波分析等)……
  • 数学基础: 数值线性代数(大规模方程组求解、最优化计算等)、数值分析(微分方程数值解法)、数值逼近、有限元方法、积分方程、微分方程相关理论……

随着大数据和深度学习的兴起,计算数学中的很多基础工具,例如最优化计算、概率论、随机过程、动力系统等,瞬间被迁移到数据科学相关的算法中,得以利用。于此同时,数据科学相关计算方法在实际应用中过程中,也推动了计算数学的发展。

从数学建模谈起

首先来谈谈计算数学专业和建模之间的一个关系。计算数学最为传统的一个领域莫过于PDE的求解,而PDE的求解我们可以利用差分,有限元等方法。

在工程中,工程师们遇到各种各样的问题,最后都要通过建模的手段抽象为物理模型,而物理模型通常运用的数学方法如有限元分析。

有限元分析,即有限元方法(冯康首次发现时称为基于变分原理的差分方法),是一种用于求解微分方程组或积分方程组数值解的数值技术。
从建模的角度来看,在复杂区域上(像汽车、船体结构、输油管道),我们可能需要计算一些问题,就需要一个建模的过程,建立数学模型之后,有限元方法是在复杂区域上解偏微分方程的一个很好的选择。

数学模型在自然科学中非常重要的,特别是在物理学中。物理理论几乎无一例外是利用数学模型表示的。纵观历史,许多越来越准确的数学模型得到发展。在物理学中,使用理想化模型来简化事物是很常见的。用简单方程表示的物理定律有牛顿定律、麦克斯韦方程组和薛定谔方程等。这些定律都是创建在实际情况的数学模型基础上的。

举个势能场中的粒子模型的例子,在此模型中,粒子被视为一个质量为m的点,其轨迹为一将时间映射至其空间坐标的函数 x : R → R 3 x : R → R3 x:RR3,势能场由一函数 V : R 3 → R V:R3 → R V:R3R给定,则其轨迹为如下微分方程的解:

Alt text

也可以写作:
Alt text

需注意此模型假定粒子为一质点,但这在许多情形之下是错误的,如行星运动的模型之类。

上面提到的是从工程出发,建立方程数值求解,诚然,这是一种数学建模。当然,从生活出发,收集各类数据,挖掘需要的信息,建立输入输出模型,进行预测这也是一种数学建模。谈到大数据,自然侧重于后一个数学建模。

数学模型是使用数学概念和语言来对一个系统的描述。创建数学模型的过程叫做数学建模。模型会帮助解释一个系统,研究不同组成部分的影响,以及对行为做出预测。

这样一个数学建模的过程往往要经过以下阶段:

  • 将实际问题抽象为一个数学模型,这个数学模型通常由关系与变量组成。关系可用算符描述,例如代数算符、函数、微分算符等。变量是关注的可量化的系统参数的抽象形式。例如,Netflix电影推荐系统的例子,就是将各个用户对电影的打分作为一个变量(输出),通过一些已有的输入(某些用户对某些电影的打分),建立一个数学模型刻画变量(如可可化为矩阵完备化问题),那么电影推荐这个实际问题,就转化为了一个数学模型。
  • 利用已有的数学模型来进行预测,即对建立的因变量,使用模型预测它在不同的自变量(如选举预测模型中选民的倾向、社会政治因素等)条件下的取值,从而来预测选取。
  • 解释清楚模型的知识和机理,做到有理可依。比如说谷歌的翻译系统,融合了深度学习,它所建立的这个数学模型,从输入到输出,中间用到了卷积,矩阵,向量内积,链式法则等数学工具,每个工具都有很强的理论背景。即使这样,我个人认为,深度学习作为一个相对“黑箱”的模型,很多东西其实是解释不清楚的。这个模型在知识和机理方面解释有一定欠缺。
  • 展示和检验。把你做的东西,和大家说清楚,并接受大家的指评是很不容易的一件事情。检验还包括使用一些已有的数据,代入你的模型,把模型的输出和已有实际的输出做一个比较,看模型是否建立的合理。实际情况下,我们不要求检验结果要非常好,有句话叫“没有免费的午餐”,前期就做得太好,往往会过拟合。
数据科学与高性能计算

随着计算机计算能力的提高,很多不能精确求解而只能使用数值方法求解的问题,促进和推动了计算数学的发展。随着近年来摩尔定律的失效,算法优化显得更加重要。

科学计算,它是一个与数学模型构建、定量分析方法以及利用计算机来分析和解决科学问题相关的研究领域。在实际应用中,科学计算主要应用于:对各个科学学科中的问题,进行计算机模拟和其他形式的计算。科学家和工程师发展了计算机程序和应用软件,来为被研究的系统创建模型,并以多种输入参数运行这些程序。一般来说,这些模型需要大量的计算(通常为浮点计算),常在超级计算机或分布式计算平台上执行。

科学计算需要进行各种各样的数值模拟,数值模拟有各种不同的目的,取决于被模拟的任务的特性,比如说,重建和理解已知事件(如地震、海啸和其他自然灾害)以及预测未来或未被观测到的情况(如天气、亚原子粒子的行为)。

我所崔俊芝老前辈,设计的通用有限元程序, 成功地解决了刘家峡大坝等工程的复杂应力分析问题。科学计算应用程序常常创建真实世界变化情况的模型,包括天气、飞机周围的气流、事故中的汽车车身变形、星系中恒星的运动、爆炸装置等。科学计算也对经济学、生物学及医学等领域有着越来越大的影响。

说这么多,跟数据科学又有什么关系呢?

科学计算是计算数学的一个方面,我们做科学计算往往会以不同方式应用高性能计算机,以提高我们计算数学相关交叉学科(如物理学、化学或工程学的相关学科)中最先进的理论和技术水平。

换言之,建有高性能计算的集群,这对研究大数据和深度学习提供了强有力的帮助。

个人情况

以上提到的本专业和深度学习的关系确实是有点牵强。

说实在的,其实,现在也有很多计算数学求解PDE的方法被应用到机器学习中。比如,最近有很多工作是将机器学习和数值计算结合起来。举例来说,Thresholding方法被用到聚类分析中得到很好的结果。

当然,我个人平时也是一个喜欢折腾不喜欢看书的人。因为生活的诸多不便利,促使我们进行思考。与其说是好强,还不如说是懒。譬如说微信运动想着占领所有的封面,终究是可以弄得出一个脚本完成这个事情;譬如说有了有了女朋友,被逼着蚂蚁森林偷能量合种,终究是要写一个脚本定时完成这个事情;譬如说微博没什么粉丝,终究是要让程序干一些事情迅速涨点粉;譬如国科大抢热门课多难啊,终究是要快人一步让,让脚本帮你第一时间完成;譬如说饮料机、app的优惠是不是有BUG?逢年过节是否可以修改地理位置抢红包……

我热爱我的专业,喜欢折腾,喜欢做算法,喜欢编程,喜欢做一些和生活相关的东西,希望能将本专业和大数据和深度学习有机地结合起来,做一些有趣的事情。我很希望,能在数据科学相关领域找到一个新的切入点,并为之奋斗终身。

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐