作者:Sergey Lukyanchikov,InterSystems的销售工程师
固定术语
预计机器人不会是巨大的或人形的,甚至不会是物质的(与
Wikipedia不同 ,尽管
Wikipedia在一个段落中软化了最初的定义并接受了机器人的虚拟形式)。 从算法的角度来看,机器人是自动化的,用于自动化(算法)执行具体任务的自动化。 一个在晚上触发路灯的光检测器是一个机器人。 将电子邮件分为“外部”和“内部”的电子邮件软件也是一个机器人。
人工智能(在狭义的意义上,
维基百科再次对人工智能进行解释)是从数据中提取依赖项的算法。 它不会自行执行任何任务,因为那将需要将其实现为具体的分析过程(输入数据,模型,输出数据以及过程控制)。 可以由人类或机器人启动充当“人工智能载体”的分析过程。 也可以通过两者之一停止它。 并由其中任何一个进行管理。
与环境的互动
人工智能需要适合分析的数据。 当分析人员开始开发分析过程时,该模型的数据由分析人员自己准备。 通常,他构建的数据集具有足够的容量和特征,可用于模型训练和测试。 一旦获得的结果的准确性(在较不频繁的情况下,及时的“局部稳定性”)变得令人满意,典型的分析人员就会认为他的工作已经完成。 是吗 实际上,这项工作仅完成了一半。 确保分析过程“不间断且高效地运行”仍然是我们的工作-这就是我们的分析师可能会遇到困难的地方。
除某些最简单的情况外,用于开发人工智能和机器学习机制的工具不适合与外部环境进行有效交互。 例如,我们可以(在短时间内)使用Python从生产过程中读取和转换传感器数据。 但是Python并不是用于全面监控情况并在多个生产过程之间切换控制,上下缩放相应的计算资源,分析和处理所有类型的“异常”(例如,数据源不可用,基础架构故障,用户交互问题等)。 为此,我们将需要一个数据管理和集成平台。 负载越多,我们的分析过程就越多样化,对于平台集成和“ DBMS”组件的期望值就越高。 一位受脚本语言和传统开发环境熏陶以构建模型(包括诸如“笔记本”之类的实用程序)的分析师将几乎无法确保自己的分析过程高效,高效地实施。
适应性和适应性
环境的可变性以不同的方式表现出来。 在某些情况下,这将改变由人工智能管理的事物的本质和性质(例如,企业进入新的业务领域,国家和国际监管机构施加的要求,与企业相关的客户偏好的演变等)。 在其他情况下-来自外部环境的数据的信息签名将变得不同(例如,具有新传感器的新设备,性能更高的数据传输通道,新数据“标记”技术的可用性等)。
随着外部环境结构的变化,分析过程能否“重塑自我”? 让我们简化一下问题:如果外部环境结构发生变化,调整分析过程有多容易? 根据我们的经验,得出的答案是显而易见的和可悲的:在大多数已知的实现方式中(不是我们自己!),将需要至少重写分析过程,并且很可能重写其中包含的AI。 好吧,端到端重写可能不是最终结论,但确实可能需要进行编程以添加一些可以反映新现实的东西或更改“建模部分”。 这可能意味着过高的开销-尤其是在环境变化频繁的情况下。
代理商:自治的极限?
读者可能已经注意到,我们朝着人工智能提出的越来越复杂的现实的方向前进。 同时注意可能的“仪器方面的后果”。 希望我们最终能够对正在出现的挑战作出回应。
现在,我们正在为分析过程配备自治级别的必要性,以使其不仅可以应对环境的可变性,而且可以应对其状态的不确定性。 这里不打算提及环境的量子性质(我们将在其他出版物中进行讨论),我们仅考虑分析过程在预期“体积”中的预期时刻遇到预期状态的概率。 例如:在将新数据应用到模型之前,它“设法”完成了模型训练的运行,但是“失败”了以完成模型(例如,出于几个客观原因,训练样本包含了更多内容)记录比通常)。 另一个示例:贴标团队在此过程中添加了一批新印刷机,使用该新材料训练了矢量化模型,而神经网络仍在使用先前的矢量化,并将一些极为相关的信息视为“噪音”。 我们的经验表明,要克服这种情况,需要将以前曾经是单个分析过程的部分拆分为几个自治组件,并为每个生成的代理程序创建其对环境的“缓冲投影”。 让我们称此动作为分析过程的代理(再见,维基百科)。 让我们称代理为由于代理而通过分析过程(或分析过程系统)获得的质量。
机器人的任务
在这一点上,我们将尝试提出一项任务,该任务需要具有上述所有素质的机器人化AI。 无需花费很长的时间就可以找到想法,尤其是由于存在一些非常有趣的案例和针对这些案例的解决方案,这些案例和解决方案已在Internet上发布-我们将仅重复使用其中一种案例/解决方案(任务和解决方案的制定)。 我们选择的方案是基于Twitter社交网络中的帖子分类(“ tweets”)。 为了训练模型,我们有相当大的“标签”推文样本(即指定了情感),而分类将在“未标签”推文(即未指定情感)下进行:
图1基于情感的文本分类(情感分析)任务表述在Web上发布的一个很好的
示例中提出了一种创建数学模型的方法,该模型能够从标记的文本中学习并分类具有未知情感的未标记的文本。
可以从Web上获得我们场景的
数据 。
有了上述所有内容,我们可能会开始“组装机器人”-但是,我们更喜欢通过添加条件来使经典任务复杂化:将标记和未标记的数据都作为标准大小的文件作为分析过程送入分析过程“消耗”已经送入的文件。 因此,我们的机器人将需要开始使用最少的训练数据量进行操作,并通过对逐渐增长的数据量重复进行模型训练来不断提高分类准确性。
前往InterSystems研讨会
我们将以刚刚制定的场景为例,演示InterSystems IRIS和ML Toolkit(一组扩展)可以使人工智能机器人化。 并与我们创建的分析过程实现与外部环境的有效交互,同时保持它们的适应性,适应性和代理性(“三个A”)。
让我们从代理开始。 我们在平台中部署了四个业务流程:
图2使用代理与Python交互的组件的基于代理的业务流程系统的配置- GENERATOR-先前生成的文件被其他进程占用,生成带有输入数据的新文件(标记为-正向和负面的推文-以及未标记的推文)
- 缓冲区 -由于已缓冲的记录已被其他进程占用,因此将从GENERATOR创建的文件中读取新记录,并在从文件中读取记录后将其删除
- ANALYZER-消耗来自未标记缓冲区的记录,并将经过训练的RNN(递归神经网络)应用于它们,将“应用的”记录以及已添加的相应“概率为正”值传输到监视缓冲区; 消耗来自标记的缓冲区(正值和负值)的记录,并基于它们来训练神经网络
- MONITOR-使用分析仪处理并传输到其缓冲区的记录,在最后一次训练后评估神经网络显示的分类错误度量,并通过ANALYZER触发新的训练
我们基于代理的流程系统可以说明如下:
图3基于代理的系统中的数据流我们系统中的所有进程都彼此独立运行,但是正在听对方的信号。 例如,GENERATOR进程开始使用记录创建新文件的信号是BUFFER进程删除了先前的文件。
现在让我们看一下适应性。 在我们的示例中,分析过程的自适应性是通过AI的“封装”实现的,它是独立于载波过程逻辑的组件,其主要功能(训练和预测)彼此隔离:
图4在分析过程中AI主要功能的隔离-使用数学模型进行训练和预测由于上面提到的ANALYZER流程片段是“无限循环”的一部分(在流程启动时触发,并且在整个基于代理的系统关闭之前一直起作用),并且由于AI功能是同时执行的,该过程能够使AI的使用适应以下情况:如果需要,则训练模型,否则根据训练模型的可用版本进行预测。 自适应MONITOR流程独立于ANALYZER流程运行,并根据其标准估算由ANALYZER培训的模型的准确性,从而表明需要训练模型。
图5通过MONITOR流程识别模型类型和相应精度指标的应用我们继续保持适应性。 InterSystems IRIS中的分析过程是一种业务过程,具有以步骤序列的形式进行的图形或XML表示。 这些步骤依次可以是其他步骤,循环,条件检查和其他过程控制的序列。 这些步骤可以执行代码或传输信息(也可以是代码),以供其他进程和外部系统处理。
如果有必要更改分析过程,则可以在图形编辑器或IDE中进行。 在图形编辑器中更改分析过程可以在不进行编程的情况下适应过程逻辑:
图6图形编辑器中的ANALYZER流程,打开了用于添加流程控件的菜单最后,它是与环境的相互作用。 在我们的案例中,环境中最重要的元素是数学工具集Python。 为了与Python和R交互,开发了相应的功能扩展
-Python Gateway和
R Gateway 。 它们的关键功能是与具体工具集实现舒适的交互。 在基于代理的系统的配置中,我们已经可以看到与Python交互的组件。 我们已经证明,包含使用Python语言实现的AI的业务流程可以与Python交互。
例如,ANALYZER流程带有使用Python语言在InterSystems IRIS中实现的模型训练和预测功能,如下所示:
图7使用Python在InterSystems IRIS的ANALYZER流程中实现的模型训练功能此过程中的每个步骤都负责与Python进行特定的交互:将输入数据从InterSystems IRIS上下文传输到Python上下文,将要执行的代码传输到Python,将输出数据从Python上下文返回到InterSystems IRIS上下文。
在我们的示例中,最常用的交互类型是在Python中执行代码的传输:
图8将InterSystems IRIS的ANALYZER流程中部署的Python代码发送给Python执行在某些交互中,输出数据从Python上下文返回到InterSystems IRIS上下文:
图9 ANALYZER流程会话的可视化轨迹,其中显示了在流程步骤之一中Python返回的输出的预览启动机器人
在本文中启动机器人吗? 为什么不呢,这是我们网络研讨会的
录音 ,其中(除了与机器人有关的其他有趣的AI故事!)还演示了本文中讨论的示例。 不幸的是,网络研讨会的时间总是有限的,我们仍然希望尽可能简短地展示我们的工作,因此,我们在下面分享了所产生成果的更完整概述(7次培训,包括初始培训,而不仅仅是网络研讨会中的3):
图10机器人在预测时达到稳定的AUC高于0.8这些结果符合我们的直觉期望:随着训练数据集充斥着“标记”的正面和负面推文,我们的分类模型的准确性提高了(这通过预测中显示的AUC值逐渐增加得到证明)。
我们可以在文章末尾得出什么结论:
•InterSystems IRIS是一个强大的平台,可对涉及人工智能的流程进行机器人化
•人工智能既可以在外部环境(例如Python或R及其模块中包含即用型算法)中实现,也可以在InterSystems IRIS平台中实现(使用本机函数库或通过用Python和R语言编写算法)来实现。 InterSystems IRIS可确保与外部AI工具集的交互,从而将其功能与其本机功能相结合
•InterSystems IRIS通过应用“三个A”来使AI机器人化:自适应,自适应和代理业务流程(或其他分析流程)
•InterSystems IRIS通过专用交互工具包来操作外部AI(Python,R):数据的传输/返回,执行代码的传输等。 一个分析过程可以与多个数学工具集交互
•InterSystems IRIS在单个平台上整合了输入和输出建模数据,保持了计算的历史化和版本控制
•借助InterSystems IRIS,人工智能既可以用作专门的分析机制,也可以内置在OLTP和集成解决方案中
对于那些已阅读本文并对InterSystems IRIS作为开发和部署机器学习和人工智能机制的平台的功能感兴趣的人,我们建议对与您的公司相关的潜在方案进行进一步讨论,并提出协作定义下一步。 我们的AI / ML专家团队的联系电子邮件是
MLToolkit@intersystems.com 。