关于工业软件与AI那点事
在电影《模拟游戏》(The Imitation Game,2014)中,主角艾伦·图灵(Alan Tuim)看着自己发明的解密机“克里斯托弗”( Christopher)喃喃自语,仿佛在对着人说话。虽然这个场景可能是虚构的,但是依旧在计算机和人工智能(AI)历史上具有划时代意义。艾伦·图灵在二战中创造了能解决组合优化问题的机器,它具备可编程解决问题的能力,破译了德军的密码,为联军的胜利做出了决定性贡献,而在电影中图灵急切地等待结果的情景,就仿佛机器真的有自己的意志一样 。
艾伦·图灵这个人物和图灵测试等细节在本文中不作详细讨论,但这可以说就是现代计算机和AI的起点,因此我想通过这篇文章来讲述关于AI的一系列故事。
由于AI这个主题本身就比较广泛,所以文章中讲述的内容仅代表个人观点,如果发现表述有误的地方,也请大家见谅。
以下是维基百科对AI的定义摘要:
“这是计算机科学的一个细分领域,试图让计算机实现人类的学习能力、推理能力和感知能力。即具有智能功能的计算机系统,将人类的智能体现在机器上。”
AI是一门试图从理解智能到构建实体的学科。可以说对AI的研究早在第二次世界大战不久后就已经开始了,人工智能一词最早出现于1956年,因此它并不是最近突然冒出来的新科学,而是经历了大约100多年兴衰更迭,在经历了漫长的低迷期后,随着各种相关学科和计算机运算能力的发展,近期AI再次成为创新的核心。
由于AI的核心是对人类的理解和模仿,因此所有关于人类的学科都可以成为与AI相关的学科(如神经科学、脑科学、心理学、计算机工程、物理学、哲学、数学、经济学等)。随着这些相关学科的发展,最近AI在很多方面都取得了令人瞩目的成果:可以区分视觉信息(基于Vision)、模仿人类对话(基于GPT、Transformer的语言模型)、模仿和创造人类无法区分的学习内容或新事物(GAN)、通过相关信息和知识回答问题(GNN)。现在,AI在特定领域已经超越了人类,因此,对于AI的看法,狂热和担忧并存。
现在让我们更近一步地了解 一下AI
现代AI正在以基于数据的方法发展,因此对基于数据的机器学习(ML:Machine Learning)的理解至关重要。从个人的角度来看,如果用一句话来定义基于数据的AI推论和ML的关系就是:根据数据归纳导出数学形态(ML),再进行演绎推理并应用(AI)。
可以这么说,在AI的发展历史中,解决问题的方法是非常重要的一部分,大致可以概括为两种方法:基于规则的方法(演绎尝试)和基于经验的方法(归纳尝试)。
在AI近100年的发展历史中,这两种方法顺应时代需求你追我赶地发展。(这也类似于在RecurDyn中FFlex和RFlex交替受到关注的原因。)
演绎方法的一个典型例子是解决用逻辑符号表示问题的GPS(General Problem Solver),归纳方法的一个典型例子是最近的热门话题深度学习。在人工智能的早期,由于当时计算机的计算能力有限,演绎法比归纳法更有效。而后来计算能力的增强使得在合理时间范围内解决数据驱动问题成为可能。
数据驱动的方法在现代AI/ML中已经占据了主导地位,因此,可以认为本文后面提到的AI/ML皆指的是数据驱动的归纳方法。 数据驱动的方法是最近人工智能在许多领域崛起的动力,在解决无法解决的问题或发现传统方法未能探索的问题方面取得了成功。
那么,基于数据的AI/ML是如何解决现实世界中的问题的呢?过程如下:
要解决的问题包括在现实世界中积累的大量数据,或者可以编写或生成的数据。通过数学方式查明这些数据之间的关系来解决问题的过程就是机器学习,并使用由此训练的模型进行推理以解决实际问题。
机器学习通过优化从数学上解决问题。首先准备数据,从准备的数据中确定输入数据和输出数据。找到与输入和输出数据相匹配的数学模型。在此过程中,为了获得优化的结果,基本都需要大量的数据支持。(对于大型模型,自由度是以亿为单位的,需要在最高水平的数据中心长时间计算。因此,在计算机运算能力不足的年代,很难进行正确的尝试。)由于计算结果是在准备的数据所涵盖的空间内的优化答案,在所覆盖的数据空间内替换新的数据时,可以推导出该空间内的优化结果。
如果将这种解决方法比喻为学习英语,就可以说这种解决方法类似于在不懂英语语法的情况下,通过直接大量的对话和阅读,学习如何根据给定的语境记忆和排列所接触到的词汇。
虽然大致了解数据驱动的AI是如何解决问题的,但是在我们试图解决问题的过程中,必然会遇到一些普遍和现实的疑问,比如:这种方法在数学上合理吗?可以直接应用吗?能向客户说明吗?听说在解决问题时,准确性不是 100%?总结一句话就是 “这个结果是可信的吗”
AI/ML开始流行的初期,缺少对这部分的说明,但最近,这种可说明性(Explainable AI)越来越重要。这也是为什么发表AI相关库或框架时,论文会紧随其后。很多方法和理论存在于数学基础之上。支持AI/ML的数学定理有很多,例如高斯-马尔科夫定理(Gauss-Markov Theorem)、奇异值分解(Singular Value Decomposition)、默瑟定理(Mercer’s Theorem)、表示定理(Representer Theorem)、西文科定理(Universal Approximation Theorem)。值得一提的是,其中西文科SIBENKO定理还涵盖了最近对AI/ML影响最大的人工神经网络的数学意义。虽然无法一一详细说明,但毋庸置疑,基于数据的机器学习和由此产生的AI在数学上是可靠的。
在数学证明方面,就像演绎法和归纳法之间没有对错一样,采用基于规则的AI和基于数据的机器学习的AI也没有对错。解支配方程(以规则为基础解决问题)的应用虽然在数学上很美,但由于公式展开会存在无法显示的误差,因此经常与现实存在差异。同样,通过归纳数学表达式(基于数据解决问题)并加以应用,对使用的数据也无法获得100%的准确度。也就是说,理论和现实之间的误差总是存在的,区别在于何时何地显现。虽然基于数据的方法乍一看让人感觉像是在盲人摸象,但设计好的解决方法和演绎推论方法一样绝对没有错。如果我们因为不能100%解决一个问题而对人工智能/ML领域的研究和应用望而却步,那我们只能看到和听到习惯的东西,数据驱动才是解决棘手问题的最佳方法。
解决问题的正确方法是很好地解决了问题,而不管采取什么方法。
对于我们这些非AI研究人员来说,真正重要的是了解我们在AI时代应该做什么?怎么做?为什么做?以及什么时候做?当看到别人都在谈论AI的情景时,可能会害怕是否只有我们落在后面,但还是需要像往常一样保持冷静的态度去看待现实问题。
事实上,世界不会在短时间内发生翻天覆地的变化,我们的公司也不会马上倒闭。有很多人一成不变,仍然过得很好,也有很多人开拓创新,只是因为太前卫或对当下无用而被埋没。人工智能也有过这样的时刻,即使现在看起来没有它我们就注定是失败的,但你永远不知道什么时候我们会有另一个像80年代那样的人工智能冬天。
但是在某个时刻,技术会被突破,如果企业没有准备好,就可能被市场淘汰。重要的是,我们要以好奇的眼光和冷静的头脑去妥善应对这些威胁。其基础应该是我们理解AI的本质,我们拥有适应和应对环境的能力,并为之努力。冷静地思考一下再决定,是挑战原始技术开发,还是快速跟上技术趋势,还是将已推出的技术和理论结合起来应用。我个人认为,AI/ML技术可能不是现实中需要研究和开发基础技术的对象,而是像Visual Studio一样需要我们好好处理和利用的对象。
全球IT领域的研究公司Gartner于2021年发布了AI领域的Hype Cycle。与AI相关的关键词大多位于创新Trigger(技术创新)、Peak of Inflated Expectations(期望顶点)阶段。
AI是需要正面挑战的对象吗?有没有可能会威胁我们的生存?答案总是在“可能会,也可能不会”之间徘徊。在这种情况下,我们必须要明白一点:如果我们在研究技术和开发产品的过程中引入了AI,那么在研究和应用方面必须以客户为基础。您需要知道客户是否有潜在的需求,如果有,就必须能够通过产品传达明确的价值。借鉴领先企业的共同点,我们对新技术的信心和对未来的愿景是基础,我们必须提前具备高水平的专业知识。如果决定应用新技术,就必须朝着能够在整个产品和组织中全面创造协同效应的方向发展,而不只是零散的方式,最终的结果应该是极大地改善用户体验。
AI很有魅力,它提供了一种解决无法在有限的时间内解决的困难问题的方法。因为我们也有很多在有限的时间内无法解决的问题,所以我们也可以通过基于数据的方法来解决这些问题。
最近,现代AI在解决特定问题上的表现已经远超预期,后续将转向把多个领域捆绑在一起,试图共同解决问题。出现这种趋势的典型例子是:实现高水平的自动驾驶。随着时间的推移,在这种趋势的尽头,可能会实现强人工智能(“通用人工智能”)。
人类是能快速地进行并行计算的智能体,我们可以在几分之一秒内综合来自我们多个感觉器官的所有信息,比如通过发出“啊!”的声音的同时让我们的手迅速从滚烫的物体上缩回。现在的AI还无法完成这种非常复杂和快速的并行进程的动作。换句话说,在整个AI的发展历程中,虽然在某些方面上已经远远超越了人类,但在强人工智能方面仍处于初期,还需要长期的发展。就个人而言,我希望看到我们所拥有的数学和软件工程技能,与人工智能的问题解决方法相结合,将我们的产品提升到新的水平。
在遥远的未来,希望我们也可以像图灵一样,怀着忐忑的心情等待一个好结果,创造我们自己的克里斯托弗。那么,最后再说一句:“加油!未来的克里斯托弗!”