由InterSystems咨询工程师Sergey Lukyanchikov发布
同意术语
机器人不必是大型的,人形的或基本是材料的(到
Wikipedia的顶峰,不过,经过两段之后,软化了最初的措辞,使机器人变得无关紧要)。 机器人是算法意义上的自动机,是某些问题的自治(算法)解决方案的自动机。 晚上打开灯的光检测器是一个机器人。 还将电子邮件解析为“外部”和“内部”邮件客户端。
人工智能(从狭义上讲,
维基百科不再共享它)是用于从数据中提取依赖项的算法。 它本身不会解决任何问题,因此必须首先以特定分析过程(输入数据,模型,输出数据,过程控制)的形式实施。 充当“人工智能载体”的分析过程可以由人启动,也可以由机器人启动。 也停了下来,一个或另一个。 并进行管理。
与环境的互动
此外,人工智能需要数据以适合分析的形式。 当分析人员开始开发分析过程时,数据将由分析人员自己为模型准备。 通常,将创建一个数量和范围都足够的数据集(“数据集”),在该数据集上训练和测试模型。 典型的分析师在获得令人满意的准确性(并且在少数情况下,在时间上“局部稳定”)的结果后,认为他的工作已经完成。 但是真的吗 实际上,这只是成功的一半。 现在必须确保分析过程的“不间断且高效的操作”-分析人员对此可能会遇到困难。
除最简单的情况外,用于开发人工智能和机器学习机制的工具不适合与外部环境进行有效的交互。 即 例如,可能有可能迫使Python在生产过程中(至少短时间内)从传感器读取和转换数据。 但是,要根据情况在多个生产和管理过程之间进行切换,扩展相应的计算能力,处理各种“异常”(数据源之一的不可访问性,基础结构故障,用户交互问题等)-这并非旨在用于Python 。 这需要一个数据管理和集成平台。 负载越多,我们的分析过程就越多样化,集成和“子组件”解决方案组件的要求就越高。 这位分析师倾向于使用AI机制,试图通过他惯用的建模环境(以及为他开发的实用程序,例如“笔记本电脑”)的脚本语言来实施分析过程,但他无法为他的分析过程提供全面的生产性使用。
适应性和适应性
环境的可变性以不同的方式表现出来。 在某些情况下,由人工智能控制的现象的本质和性质将会改变(使企业进入新的业务领域,国家和国际监管机构的要求,企业产品的消费者偏好的演变等)。 在其他情况下,数据的性质来自环境(具有新传感器的新设备,更高效的数据传输通道,“标记”数据的新技术的可用性等)。
更改环境结构时,分析过程能否“自我重建”? 为了简化这个问题:在改变环境结构时重建分析过程有多容易? 从我们的观察来看,答案是简单而悲伤的:在我们所知的大多数实现中(不是我们的!),我们将不得不至少重写分析过程-并且通常重写其中的AI。 从重写到重写可能并不是从字面上看,但是您将不得不在编程中添加一些内容以处理新的现实,改变“模型应用过程”本身的内部逻辑,等等。 这会导致业务过高,尤其是在环境动态变化的情况下。
代理商:自治的极限?
正如读者可能已经注意到的那样,我们正朝着增加引起人工智能注意的现实的复杂性发展。 并且我们标记了“仪器部分”的可能后果。 希望最终我们能找到应对所有挑战的答案。
我们几乎需要为分析过程提供一定程度的自主权,使它不仅能够应对环境的变化,而且能够应对其状态的不确定性。 这与环境的量子性质无关(尽管我们将在以下出版物之一中对此进行讨论),我们仅在讨论在预期的时间和预期的“体积”中获得分析过程预期状态的可能性。 例如:在模型的下一次训练之前将管理的过程“思考”,直到到达应用该模型的新数据为止,但没有“管理”(出于客观原因,进入训练集的记录比平时多,并且模型训练被延迟)。 否则:标记小组在此过程中添加了新的印刷机,矢量化模型已经在新的文本材料上进行了训练,而神经网络仍在进行旧的矢量化,并且向“废料”发送极其有趣的新信息。 为了应对这种情况,正如我们的实践所示,只能将以前统一的分析过程划分为几个自主工作的组件,并为每个获得的代理过程创建自己的环境“缓冲投影”。 这个动作(再见,维基百科)将被称为分析过程的代理化。 代理商传达给分析过程(通常是一次包含多个过程的整个系统)的质量称为代理商。
我们为机器人设置任务
让我们尝试解决这样一个问题,对于该问题,将需要具有以上所有属性的机器人AI的解决方案。 我们不必落后于这个想法,因为许多有趣的案例和针对它们的解决方案已在Internet上发布-我们将使用这些“案例解决方案”中的一种(既用于陈述问题,也用于人工智能方面的解决方案)。 我们选择的任务将简化为在社交网络Twitter(“ tweets”)上的语句在情感色彩方面的分类为“负”和“正”。 为了训练模型,我们将有足够大的“标记”推文样本(即,已经定义了情感色),并且需要对“未标记”推文进行分类(即,带有未定义的情感色):
图1通过情感色彩对文本进行分类的问题的陈述(英语情感分析)S. Smetanin在互联网上发布的一个相当知名的
示例中提出了一种方法,该方法用于创建能够学习标记文本的数学模型并随后使用不确定的情感色彩对文本进行分类。
Yu。Rubtsova很好地收集,处理和发布了此类任务的
数据 。
在此基础上,我们可以开始``组装机器人''-但我们将使经典声明稍微复杂一点,但要满足一个条件:标记过程和未分配过程都以标准大小文件的形式提供给分析过程,因为过程``消耗''了已提供的文件。 因此,我们的机器人将需要开始处理最小量的训练数据,并通过对越来越多的训练数据重复进行模型训练来不断提高分类准确性。
我们去车间InterSystems
让我们以我们刚刚制定的任务为例,说明如何使用InterSystems IRIS平台及其一组扩展ML Toolkit对人工智能进行机器人化。 同时,确保我们创建的分析过程能够与环境有效地相互作用,具有适应性,适应性和代理性(“三个A”)。
让我们从代理商开始。 让我们在平台中放置四个业务流程:
图2使用带有与Python交互的组件的业务流程代理系统的配置- GENERATOR(“ generator”) -当文件被其他进程使用时,它将创建带有输入数据的新文件(标记为“ positive”和“ negative”-鸣叫,以及带有未定义的情感色彩的鸣叫)
- 缓冲区(“缓冲区”) -当记录被其他进程使用时,从生成器创建的文件中读取新记录,并在读取记录后删除这些文件
- ANALYZER(“ analyzer”) -消费来自不确定推文缓冲区的条目,将经过训练的卷积神经网络应用于这些条目,并将带有计算出的“正概率”的结果条目放入监控缓冲区; 使用正向和反向推文缓冲区中的条目,执行神经网络训练
- 监视器(“监视器”) -通过使用分析仪从其自己的缓冲区中处理的记录,它在上次训练期间通过神经网络监视推文分类错误指标的值,并向分析仪发送有关需要重新训练神经网络的信号
我们可以示意性地表示我们的业务流程代理系统,如下所示:
图3代理数据流我们系统中的所有进程都彼此独立运行,但要考虑到彼此的信号。 例如,进程生成器发出的开始创建带有记录的下一个文件的信号是缓冲区删除了先前带有记录的文件。
现在介绍适应性。 在我们的示例中,分析过程的适应性是通过AI的封装形式实现的,其形式是独立于元素的载体过程的逻辑的元素形式,并且隔离了其主要功能-模型的训练和应用:
图4 AI主要功能的分析过程分析器中的隔离-数学模型的训练和评分因为 上面介绍的分析器过程的一部分是“无限循环”的一部分(“无限循环”从分析器过程开始并运行,直到整个代理系统停止运行),并且AI功能并行执行,该过程具有使AI适应以下情况的能力:在必要时训练模型,并且可以不停地使用模型的版本。 培训模型的需求由自适应监视程序确定,该监视程序独立于分析器过程运行,并使用其自身的标准来评估分析器训练的模型的准确性:
图5过程监视器识别模型类型,并应用适当的标准评估模型的准确性我们转向适应性。 InterSystems IRIS中的分析过程是一个业务过程,具有图形或XML表示作为一系列步骤。 步骤又可以是步骤,循环,条件测试和其他过程控制的序列。 步骤可以运行用于执行的程序代码,也可以将信息(也可以是程序代码)传输到其他进程或外部环境以执行。
特别是,如果有必要更改分析过程,我们将有机会在图形编辑器和IDE中进行此操作。 在图形编辑器中更改分析过程可以使您无需编程即可适应过程逻辑:
图6图形编辑器中的过程分析器,带有用于添加控件的打开菜单最后,是与环境的互动。 在我们的案例中,环境中最重要的组件将是Python数学建模环境。 为了确保与Python和R环境的交互,创建了相应的功能扩展:
Python Gateway和
R Gateway 。 这两种机制的关键功能是能够使用便利的集成组件与适当的环境进行交互。 我们已经在代理系统的配置中看到了与Python交互的组件。 这样,包含以Python实现的AI的业务流程就会与Python交互。
例如,分析器过程包含用于训练和应用模型的功能,其中之一在InterSystems IRIS平台中的Python中的实现如下所示:
图7用于在分析器过程中训练模型的InterSystems IRIS平台的Python实现此过程的每个步骤都负责处理与Python的某种交互:将输入从InterSystems IRIS流程的上下文传递到Python上下文,传递要在Python中执行的代码,将输出从Python上下文返回到InterSystems IRIS流程的上下文。
在我们的示例中,最常用的交互类型是传递代码以在Python中执行:
图8将InterSystems IRIS解析器进程中托管的Python代码发送给Python以执行在某些交互中,数据从Python上下文返回到InterSystems IRIS流程上下文:
图9分析器过程会话的可视化轨迹,其中显示了过程步骤之一中Python返回的信息我们启动机器人
在本文中运行机器人? 为什么不呢,这是我们网络研讨会的
录像 ,在此期间(除了其他一些有趣的以及与机器人化AI故事有关的内容!),还显示了上述场景的工作。 不幸的是,由于网络研讨会的时间有限,并且我们希望尽可能紧凑和直观地展示我们的机器人脚本的“有用的工作”,因此,我们在下面更完整地概述了模型训练的结果(连续7个训练周期,而不是网络研讨会中的3个训练周期):

结果与直观预期非常一致:随着训练样本充满“标记”的正面和负面推文,我们的分类模型的质量得以提高(“曲线下面积”的增加证明了这一点,相同的AUC-曲线下面积)。
我想在文章末尾得出以下结论:
- InterSystems IRIS是用于机器人流程的强大AI平台
- 人工智能既可以在外部环境(例如Python和R及其模块中包含即用型算法)中实现,也可以在InterSystems IRIS平台本身中实现(使用内置算法库或通过使用Python或R编写算法)- InterSystems IRIS提供与外部AI环境的交互,使您可以将其功能与自己的功能结合起来
- InterSystems IRIS机器人AI使用“三个A”:自适应,自适应和代理业务流程(它们也是分析流程)
- InterSystems IRIS通过一组特殊的交互与外部AI(Python,R)配合使用:数据传输/返回,执行代码传输等。 在一个分析过程的框架内,可以与几个数学建模环境进行交互。
- InterSystems IRIS将模型输入和输出数据整合到一个平台中,对计算进行历史化和版本控制
- 借助InterSystems IRIS,人工智能既可以用于专门的分析机制中,也可以嵌入OLTP或集成解决方案中。
那些阅读本文并对InterSystems IRIS作为开发或部署人工智能和机器学习机制的平台的功能感兴趣的人,我们建议讨论您的企业可能感兴趣的场景。 我们将随时分析您企业的需求并共同确定一项行动计划; 我们的AI / ML专家团队的联系电子邮件是
MLToolkit@intersystems.com 。