华南理工大学从知识表示看人工智能(下)
回顾《从知识表示看人工智能(中)》,文中详细探讨了用数学来表示人工智能(ArtificialIntelligence,AI)的思想。其中,深度学习是一个被多次提及的概念,它是一种基于卷积神经网络的重要技术,而卷积神经网络中一种重要的计算方式是无穷定积分的计算。无穷定积分的计算其实就是一种定积分的计算模型,即从负无穷到正无穷,对一个积分函数进行计算。高等数学课程对定积分有详细的介绍。
图1从高等数学定积分计算到深度学习卷积模型的思维过程
卷积就是一种积分变换的数学方法,可以实现特征的分离或增强,常用于深度学习、图像处理等领域。其中,定积分的计算效果是十分显著的。然而,高等数学或者数学分析课程往往只介绍定积分的由来和计算方法,没有说明定积分的具体作用。事实上,定积分可以完成数值的增强和分离。因此,卷积神经网络就像一个过滤器,通过卷积运算可以增强图像的重要特征,分离重要特征与非重要特征。
有卷积,当然就有反卷积。为了能直观地看到深度学习的效果,有研究人员实现了反卷积的可视化[1]——定积分的一些中间计算过程或者定积分的逆运算。所以,反卷积的可视化结果实际上是数学运算中间结果的可视化。当学生在学习高等数学或者数学分析的过程中接触到定积分,老师可以让学生进一步了解深度学习背后的原理。这样一来,学生在学习数学的时候可能会更有兴趣,因为他们会认为这是人工智能计算机视觉领域里知识表示的重要基础。
图2反卷积的可视化[1]
以上介绍的是人工智能与数学建模相关知识。如果你学的是计算机或者软件专业,或者你喜欢编程并学会了使用一些编程工具,那你可能会想:计算机里的编程和人工智能的知识表示有什么关系?这两者是怎么过渡的呢?对此,我认为有三个方面值得注意:
第一,计算机专业有很多编程课,这些编程课是人工智能的基础,但是千万不要过于强调某种语言。有些学校主张学人工智能就学python语言。这是完全错误的,因为在没有python语言之前,人工智能也是存在的。python语言是一个很好的工具,但只能说它是实现人工智能的一种工具,而不是人工智能唯一指定的语言,我们不应该把它提到很重要的位置。有一些培养应用型人才的院校(如专科院校)希望学生尽快接触工业的应用,那把python作为工具无可厚非,但是千万不要告诉学生python就是人工智能的全部,它只是一个工具而已。
图3python和人工智能的关系
第二,人工智能的计算机实践本质就是知识的计算机编码实践。我们在本文中反复强调,人工智能的核心是知识的表示。在人类的大脑里,人工智能的知识表示就是数学模型和数学思维。人工智能就是对以计算机为载体的知识表示的实践,也就是对人工智能所需要的知识的计算机编码实践。
第三,我们在学人工智能或者学编程时,除了学习编程知识,还可以尝试从编程的角度去理解人工智能方法的技术效果。但是我们
应该过于依赖某个技术,因为一个技术能解决什么问题取决于这个技术的本质,即它如何表示人工智能所需要的知识。下面对几种常见的数据结构在人工智能中的运用进行介绍。
先来说说在计算机编程中经常会使用的堆栈——一种先进后出的数据结构。人工智能在什么情况下会用到堆栈呢?走迷宫的模型就是一个例子,用堆栈就可以实现让AI走迷宫。再举一个应用更广的例子——机器人的路径规划。现在服务机器人的应用非常普遍,我们经常能在餐饮馆、医院或酒店见到它们忙碌的身影。为了实现预期的功能,要先把服务机器人服务的区域地图输入到它的电脑里。如果服务机器人要走一条路,那它需要做这条路的路径规划。其实在送餐、送药等东西的时候,机器人就已经在电脑里面跑了一个路径规划的算法。这个路径规划算法是允许试错的,而且它试错的过程就是用堆栈完成的,类似于走迷宫。需要注意的是,机器人要先跑最短的路径再跑一条候选路径,因为它要避免现实中突然有个人挡住它,在这种情况下它要现场进行计算,如果算不过来,就会出现“反应迟钝”的情况。我们希望它能很快地绕过障碍,快速反应,这时候它就需要提前进行一些计算。大家可以测试一下家里的扫地机器人,可以故意给它设置障碍物,看它能不能快速地绕过,以此看它的AI强不强。因此,在教学生堆栈的时候,老师可以告诉他们这个数据结构和扫地机器人具有类似的思想。从程序设计的堆栈,到走迷宫,再到包含路径规划的扫地机器人应用,这就是一个从理论到实践再到应用落地的思维过程,学生在学习编程时可以参考这种过程。
图4从堆栈到走迷宫到机器人路径规划再到扫地机器人应用的思维过程
再来看看树的模型,它同样是一个常见的数据结构。在人工智能的经典教程里有一个名为“N皇后问题”的问题。国际象棋中的皇后可以横着走、竖着走、斜着走,N皇后问题要求在一个棋盘上摆放尽量多的皇后并让她们不互相残杀。一般来说,我们会采用一些搜索算法如A*算法来解决这样的布局问题。在用A*算法之前,我们需要对这个问题的决策空间进行建模,也就是建一棵树的模型。先确定第一个皇后的摆放位置,再确定第二个皇后的摆放位置……以此类推,最后完成整个决策,这是我们求解N皇后问题的过程,也是一棵树的建模过程。老师在讲解N皇后问题时通常会告诉你要使用树的模型。尽管你学习了很多对树的操作,但当你真的需要用树来解决实际问题时,你会用吗?电子白板是一种可实现无纸化办公及教学的新型用具。在教学过程中,讲师可以在电子白板上方直接通过触摸操作电脑。那么,电子白板是如何实现触摸检测的呢?其实红外电子白板四周安装有红外发射灯管和接收灯管,红外发射灯管向对端的接收灯管发射红外线,发射灯管和接收灯管之间形成的光线将构成光网。当有人触摸电子白板时,计算机就能根据笔或手指遮挡的光线计算出触摸位置。那么,我们怎么布局这些光源呢?如果各个光源分布得太近,它们所构成的光网会过覆盖,浪费资源;如果分布得太远,光网的孔洞直径就会很大,产生触摸盲区。这样看来,光源的布局问题可以算是N皇后问题的拓展。从离散数学的树结构,到N皇后问题的决策树,再到光源的AI自动布局问题,其实都是AI的知识表示问题。这个知识表示就是一棵树以及对这棵树的构建过程。
图5从树结构到N皇后问题的决策树再到光源的AI布局应用的思维过程
除了决策树,博弈树也是一种常见的树模型。井字棋是人工智能中博弈树模型应用的经典例子。相比于国际象棋和围棋,井字棋的棋盘是一个比较有限的空间,所以在有限时间内AI可以把它的博弈树画完。我们在下井字棋时会很容易打成平手,这是因为双方都可以快速遍历这个空间,推算出必胜策略,于是最后打成平手。如果用博弈树去模拟下井字棋的过程,我们会发现这其实是构造了一个人机对弈的人工智能,这个人工智能的知识表示就是一棵博弈树。鉴于博弈树的构建过程,人机博弈中“深蓝”和AlphaGo是如何实现的也就不难理解了。从博弈树到人机对弈,正是一个从理论到实践的过程,其中博弈树就是人工智能的一种知识表示。
图6从离散数学的树到人机对弈应用的思维过程
此外,在计算机视觉领域中,人工智能可以利用卷积神经网络提取一幅图的特征,然后对它进行识别。其实AI对一幅图的识别要经历一个名为“滑窗过程”的步骤。人类会采用聚焦的方法去看一幅图的内容,因为视觉神经会告诉我们哪些部分是背景,哪些部分是前景。比如我们在看集体照时就会用眼睛扫过一张张人脸,最后找到目标人脸的位置。滑窗过程与之类似,但计算机
是人,它没有聚焦的功能,那它的滑窗过程是如何实现的?这就要用到数组结构了。如果对一维数组的遍历是对一个长表向量的遍历,那么二维数组对应的就是一个平面矩阵,三维数组对应一个方阵,多维数组对应多维空间的一个数据列阵。而图像滑窗可以看成是一个二维的数组,数组的大小可以变动,这是一种在计算机视觉中常用的技巧。深度学习中的图像检测其实就是对一张图片做多次的滑窗遍历,然后在每一次滑窗中调用卷积神经网络进行检测。因此,从数据结构的二维数组遍历,到图像检测的滑窗,再到深度学习的图像目标检测,也是知识表示在人工智能中的应用过程。
图7从二维数组的遍历到图像检测的滑窗再到深度学习图像目标检测的思维过程
从以上例子可以看出,除了可以用数学建模完成人工智能的知识表示,计算机编程基础课程中的很多模型也可以作为人工智能知识表示的基础。从知识表示的角度看人工智能,你会发现即使没有专门学过人工智能相关课程,你还是有能力开发人工智能的,因为很多知识表示的模型都是你曾经学过甚至用过的。总而言之,通过知识表示可以看到人工智能的本质,并且知识表示的精确程度是人工智能成败的关键。
参考文献
[1]J.Yosinski,J.Clune,A.M.Nguyen,T.Fuchs,andH.Lipson,“Understandingneuralnetworksthroughdeepvisualization”,inICMLDeepLearningWorkshop,2015.
总编:黄翰
责任编辑:袁中锦
文字:黄翰、梁靖欣
图片:梁靖欣
校稿:何莉怡
时间:2022年3月11日
谭建荣院士:知识工程是人工智能下一步发展的重中之重
谭院士在会上总结出人工智能的八大关键技术:深度学习算法、增强学习算法、模式识别算法、机械视觉算法、数据搜索方法、知识工程方法、自然语言理解、类脑交互决策。前面四项是人工智能的核心技术,但就人工智能本身发展而言,这四个算法还属于在人工智能的初级阶段。
人工智能的中级阶段是数据搜索方法和知识工程方法。数据搜索方法实际上就是大数据,而知识工程就是从数据里凝练出知识,这是人工智能的核心。知识工程是人工智能的方法,其核心是知识,用知识来指导我们的工作,用知识来牵引算法。
人工智能的高级阶段是自然语言理解和类脑交互决策。
我们把人工智能技术用在制造上就形成智能制造,智能制造最核心的问题就是知识建模和知识工程。这个知识不是死的,而是活的,能实现动态传感,实时感知,自主学习和自主决策。这些知识包括产品设计知识、制造知识、管理知识和服务知识等。
知识工程是由1977年美国斯坦福大学计算机科学家费根鲍姆教授提出,因其对人工智能的研究,费根鲍姆获得了计算机领域最高奖图灵奖。知识工程就是研究知识的获取、表达、推理。我们把知识放起来需要构建一个知识库,把知识进行固化,使其易操作、易利用,形成知识集群,在计算机中存储、组织、管理和使用。这些知识放在工业领域里,就是工业领域的理论知识、实验数据,专家发现的知识,相关定义、定理、运算法则等等。
知识库里这么多知识,怎么建立知识的联系呢?这就需要知识图谱。用知识图谱来支撑知识库,用可视化的方法进行知识的挖掘、分析、构建、绘制和显示等等。
知识的分类包括知识网络层,知识层,信息层和数据层。计算机首先获取的是数据,从数据中挖掘信息,由信息挖掘出知识,由知识再形成知识网络。知识网络研究最重要的是要把知识建模。
关于知识建模,早在1980年DEC公司率先采用大型知识系统支持过程和销售。1986年卡尔维格联合国国际劳工大会上提出了知识管理概念。1989年,《财富》杂志调查美国100家大公司的执行总裁,他们均认为知识是企业最重要的资产。1991年,《哈佛商业评论》第一次发表了知识管理的论文:脑力。可以看出,我们研究人工智能最宝贵的就是知识工程、知识系统、知识图谱、知识建模。
知识建模有四个趋势与特点:第一个从结构化数据发展到异构化信息;第二个由低价值分析发展到智能化挖掘;第三个从大范围检索发展到个性化推送;第四个从定性化经验发展到大数据定量。
知识建模需要解决的问题:第一是如何整合大量分散、异构的设计知识;第二是如何高效利用已有的设计知识辅助创新设计;第三是如何发现并满足潜在的设计知识需求;第四是如何改进定性化的设计经验知识。
知识建模要解决的问题是异构知识建模,智能知识挖掘,知识推理重用和大数据驱动进化。围绕四项问题陈建荣提出了6项关键技术。
第一个是产品设计知识的多层次关联转换技术,第二个是产品功能语义需求模糊知识获取技术,第三是产品设计知识深度学习智能挖掘技术,第四是基于多粒度演化的知识可拓配置技术,第五是基于多领域应用的知识主动推送技术,第六是大数据驱动的产品知识进化技术。
我们获取知识后,还要生成新的知识,凝练成更高阶的知识。这个过程包括知识获取、知识表达与建模、知识配置与处理、知识导航与进化、知识挖掘、知识集成,与广义配置集成结合,形成了一套可操作的知识建模技术。
知识工程发展的趋势由碎片化知识发展到系统化知识,由知识检索技术发展到知识推送技术,由知识应用技术发展到知识服务技术。那么,知识工程围绕产品设计有哪些关键技术?
我们把设计知识和知识建模结合在一起,开发了数控机床设计知识的建模库,包括机床硬件知识,如工具、量具等,机床软件知识,包括CAD软件,CAE软件,CAPP软件等,以及机床数据资源知识,如工艺数据库、材料数据库、刀刃数据库等等。把这些知识和云模式接入,实现生产设备、机床、加工中心等机床硬件知识资源,再集成到云模式平台上,供大家使用。
我们把人工智能知识工程的技术与产品实际开发、创新结合在一起,成功地实现了应用。比如将技术运用在了电梯产品大批量定制,超大型低能耗空分装备设计制造、高档数控机床数字化设计等等,为知识的应用提供了成功案例。返回搜狐,查看更多