一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

大自动化代码的制作方法

2021-11-05 23:01:00 来源:中国专利 TAG:


1.本发明总体上涉及一种工业自动化过程,并且更具体地涉及一种用于应用人工智能技术、尤其是深度学习技术以改进自动化工程环境的方法和系统。


背景技术:

2.工业自动化目前正在推动所有工业的创新。基于计算机的控制过程目前正在利用人工智能技术、尤其是机器学习,用以从各种资源获得的数据中学习。深度学习则更进一步发展,并且可以被考虑为机器学习的一个子集。深度学习不是使用单层或几层神经网络,而是利用多层神经网络,多层神经网络能够将输入数据转换为更抽象且复合的表示。基于机器学习,控制过程可以在没有人为干预的情况下做出明智的决策。以该方式可以改进自动化控制过程。
3.目前,有数以千计的通用软件项目是开放源代码的,并且因此,在诸如github的互联网上的协作存储库中是公开可用的。例如,github目前托管了多于3800万个的占据数十亿行代码的软件存储库。这些具有大量公开可用的软件的存储库被称为“大代码”。
4.然而,与通用软件不同,自动化代码通常是专有的,并且因此既不是随意获得的,也不是公开可用的。附加地,自动化代码可能使用与“大代码”中的代码文件不同的语言。在没有软件代码示例、即“用于提供学习过程的数据”的情况下,不可能训练深度神经网络和其他的人工智能技术来改进自动化工程过程。


技术实现要素:

5.简而言之,本发明的实施例涉及一种用于应用深度学习技术来改进自动化工程环境的系统和方法。
6.第一实施例提供了一种用于应用深度学习技术来改进自动化工程环境的计算机实现的方法。该方法包括由处理器从公共存储库(public repository)检索大代码编码文件和从专用源(private source)检索自动化编码文件的步骤。处理器将大代码编码文件和自动化编码文件在公共空间中表示为嵌入图形。随后,随着利用存在于处理器中的神经网络从嵌入图形对模式进行学习,开始训练阶段。基于学习到的模式,使用分类器在嵌入图形的嵌入空间上预测自动化中的模式。根据预测的模式创建可执行的自动化代码,以扩充现有的自动化编码文件。
7.第二实施例提供了一种用于应用深度学习技术来改进自动化工程环境的系统。该系统包括从公共存储库检索的以第一软件语言的多个大代码编码文件和从专用源检索的以第二软件语言的多个自动化编码文件。该系统包括处理器,该处理器被耦合用于接收大代码编码文件和自动化编码文件,并且利用神经网络来与编码语言无关地识别编码结构。生成指示编码结构的数字参数,用以预测自动化编码文件中的模式。根据预测的模式,处理器创建可执行的自动化代码,以扩充以第二软件语言的多个输入自动化编码文件。
附图说明
8.图1示出了根据本发明的实施例的从规范模型预测自动化代码的系统的简化的图示,该规范模型利用大代码数据和小自动化代码作为输入;
9.图2示出了根据本发明的实施例的系统部件数据流图;
10.图3示出了根据本发明的实施例的用于应用深度学习技术来改进自动化工程环境的方法的流程图;并且
11.图4示出了根据本发明的实施例的系统架构图。
具体实施方式
12.为便于理解本发明的实施例、原理和特征,以下参照说明性的实施例中的实现对其进行解释。然而,本发明的实施例并不局限于所描述的系统或方法中的使用。
13.以下描述的构成不同的实施例的部件和材料旨在是说明性的而非限制性的。执行与本文描述的材料相同或类似的功能的许多合适的部件和材料旨在包含在本发明的实施例的范围内。
14.在使用自动化工业工作流程的工厂上线之前,人类开发人员必须开发自动化代码以运行工作流程。自动化代码是运行工厂中的工作流程的代码。这些工作流程可能包括例如对机器人、机器和传送带进行控制,以及对工厂内的照明进行控制。软件的开发阶段通常被描述为“工程阶段”,其中,工程师和其他的开发人员利用集成开发环境(ide)软件来编写“代码”、即自动化代码。ide可以定义为程序员和实际运行的代码之间的接口。ide最终会检查、编译开发的软件并且将开发的软件部署到实际运行的自动化代码中。
15.可以在利用以深度学习形式的人工智能技术的情况下,提高自动化软件开发人员的成绩和效率,深度学习已经在大代码存储库中作为开放源代码被编码和提供。这些以深度学习形式的人工智能技术可以应用于集成软件环境,并且可以在软件开发人员编写自动化代码时通过提出建议来帮助他/她。
16.缺乏用于训练高级的自动化工程软件功能的数据常规地通过基于规则的系统来解决。规则概括常见情况,并且因此消除对训练数据的需要。利用基于规则的系统的问题在于它们不能很好地扩展,因为规则必须由领域专家明确编写。还必须对规则之间的复杂的相互依赖关系进行建模。很快,由于必须维持大量规则以涵盖所有情况,因此这种方法变得难以维持。
17.例如,ide中一个非常常见的特征是代码完成。每当用户在编辑器中输入令牌或字符串时,ide都会提供下一个令牌应该是什么的建议列表。使变量“传感器1”成为用户在编辑器中输入的类型“传感器”的对象。ide具有内部规则,其可以扩展类型“传感器”的所有成员,并且将其按字母顺序向用户显示。显然,字母排序并不是在所有情况下都非常有用。如果在for循环中使用“传感器1”,那么更重要的是首先显示可迭代的成员(例如“传感器1.开始”或“传感器1.结束”)。如果ide供应商想要实现该功能,那么该任务可能需要待创建的新的规则,其中根据文本(例如for循环、声明等)执行不同的过程。利用大量数据,深度学习方法允许学习这些规则。不幸的是,大量自动化代码是不可提供的。本发明的目的是,利用“大代码”中的示例创建大量自动化代码。
18.现在参考图1,图1描绘了从规范模型预测自动化代码的系统100的高级图示,该规
范模型利用大代码数据和小自动化代码作为输入。具体来说,该模型将大代码105、小自动化代码110和多标签表115作为输入。如上所述,“大代码”可能包含从公共软件存储库(例如github)中提取的多个代码文件。另一方面,小自动化代码110可以包括专有的公司代码,不一定与大代码105中的编码文件使用相同的语言。多标签表115可以是自动完成的一组可能的预测,其可以包括类函数列表、例如start()、end()、iter()和各种语言的映射。该映射能够使系统在公共空间中产生描绘代码的图形145。来自大代码的信息用于训练规范模型,其随后可以用于小自动化代码110中的预测125。随后可以将这些预测从大代码105转移130到小自动化代码110,并且最终用于创建135个可执行的自动化代码。
19.在某些示例性的实施例中,诸如软件开发者的用户140利用ide 150以小自动化代码的形式提供输入。用户140通过诸如台式电脑或笔记本电脑、平板电脑、智能手机等的用户设备160访问ide 150。备选地,小自动化代码可能已经存储在服务器510或工业控制器490中。
20.图2是系统部件/数据流图,其示出了用于应用深度学习技术来改进自动化工程环境的系统200和方法。系统200包括在利用至少一个处理器的计算机内存储和运行的方面。系统200包括多个模块,其包括代表性的图形提取器模块210、输入到规范编码模块220、多标签分类器模块230和规范到输入解码模块240。
21.在一个实施例中,代表性的图形提取器模块210可以被执行以接收大代码文件105和小自动化代码文件110作为输入。代表性的图形提取器210接收编码文件105、110作为输入,并且利用多标签表115输出编码文件105、110作为描述代码的图形215。以该方式,以不同的语言编码的文件可以在公共空间中表示。不同的语言可以例如包括c、python和java。这种图形表示145的一些示例可以在图1中看到并且包括控制流图、数据流图、调用图和项目结构图。这些不同类型的图形可以说明代码的不同的相关的视图。获得的图形145、215随后可以作为输入馈送到输入到规范编码模块220。
22.多标签表115包括结构定义,使得图形提取器模块210能够与代码的编程语言无关地为在编码文件105、110中找到的结构提供标签。例如,如果图形提取器模块210在代码中遇到诸如包含“ ”符号的“a b”的表述,那么可以将其贴上两个变量的相加的标签。在另一示例中,当代码遇到分支结构时,在任何语言中,它都会被提供“分支”标签。以该方式,不同的语言中的类似的结构可以以共同的方式进行分类。
23.在一个实施例中,输入到规范编码模块220接收图形145、215作为输入。编码模块220可以利用图形嵌入技术从图形中学习模式。例如,模块220中的学习算法可以将数字表示225分配给由特定的图形类型描述的结构。输入到规范编码模块220确保编码文件105、110可以在公共空间中表示并且可以进行比较。数字表示225可以是长向量的形式,从而计算机上的神经网络可以通过对数值进行比较以及根据数值上彼此接近的向量对向量进行分类来学习代码结构的潜在表示。
24.为了学习输入代码的表示,输入到规范编码模块220查看图形以查看所有示例并且为每个具有标签的结构生成数值向量225。向量可以是n维的,其中n在通过用户140训练期间是可配置的。例如,可以在训练期间调整向量的大小直到获得期望的结果。向量的每个维度可以包括浮点数值225。给具有相同的标签的结构分配彼此接近的数值。因此,输入到规范编码模块220通过图形嵌入将结构映射到向量表示。编码模块220随后可以对数值进行
分类,从而使接近的那些数值可以表示相同或类似的标签。
25.在一个实施例中,多标签分类器模块230随后可以利用从编码文件105、110生成的图形145、215的嵌入来预测来自多标签表115的输出标签。该分类器模块230使用的多标签分类器的示例是一对其余(one

vs

rest)逻辑回归。在此,代码图形145、215的学习到的向量表示是输入,而多标签表115中的标签列表是输出。模块230学习嵌入空间和输出标签之间的依赖关系。
26.最后,在一个实施例中,规范到输入解码模块240利用生成的预测来创建以特定的软件语言的、可执行的自动化代码245。特定的软件语言可以是在输入自动化编码文件中找到的自动化语言。自动化代码扩充了现有的多个自动化编码文件。
27.在一个实施例中,在对数值进行分类之后,可以进行验证步骤。以图形形式的多个“测试案例”可以被输入到规范模块220软件用来验证,学习到的模式被贴标签并且分类到期望的级别。
28.在一个实施例中,用户140利用集成开发环境150以自动化代码110的形式提供输入。系统利用学习到的模式来预测用户对自动化代码的下一个代码输入。这些预测的模式随后可以在显示器160上作为建议输出给用户。随后例如,可以提示用户140接受或拒绝用于合并到自动化代码的创建中的建议。备选地,用户可能不在场,从而使系统可以处理现有的自动化编码文件110以及大代码编码文件105的数据库以创建更多的自动化代码。
29.现在参考图3,示出了描绘用于应用深度学习技术来改进自动化工程环境的方法的流程图。处理器首先从公共存储库检索300大代码编码文件105并且从专用源检索现有的自动化编码文件110作为输入。随后,处理器将输入编码文件105、110在公共空间中表示310为图形145、215。处理器使用神经网络来从图形中学习320模式。利用学习到的模式,神经网络随后可以预测330以自动化代码的模式。用户140可以输入自动化代码332或者其可以从数据库331提供。最后,处理器根据预测的模式创建340可执行的自动化代码以扩充现有的自动化编码文件。
30.众所周知,本发明的软件方面实际上可以存储在任何计算机可读的介质上,所述介质包括本地磁盘驱动系统、远程服务器、互联网或基于云的存储位置。此外,可以根据需要将若干方面存储在便携式设备或存储设备上。图4示出了当前描述的系统的计算机架构。计算机400通常包括允许访问软件而不管软件存储在哪里的输入/输出设备、一个或多个处理器410、存储设备430、用户输入设备440和输出设备450、例如显示器460、打印机等。
31.处理器410可以包括标准微处理器或可以包括人工智能加速器或处理器,其专门设计用于执行人工智能应用、例如人工神经网络、机器视觉和机器学习或深度学习。典型的应用包括机器人算法、物联网和其他的数据密集型或传感器驱动的任务。ai加速器通常是多核设计,并且通常专注于低精度算术、新颖的数据流架构或内存计算算力。在其他的应用中,处理器可以包括图形处理单元(gpu)520,其设计用于对图像的处理和对局部图像特性的计算。神经网络和图像处理的数学基础是类似的,导致gpu越来越多地用于机器学习任务。当然,如果需要,可以采用其他的处理器或布置。其他的选项包括但不限于现场可编程门阵列(fpga)、专用集成电路(asic)等。
32.计算机400还包括通信控制器470,其可以允许其他的计算机或计算机网络480之间的通信,以及与其他的设备、例如机床、工作站、致动器、工业控制器490、传感器等的通
信。
33.总之,图4所示的计算机400包括能够进行深度学习的神经网络模型500,其用于基于从图形的学习来创建自动化代码,该图形来源于大代码编码文件和存储的自动化编码文件。使用这些图形来训练神经网络模型500,这些图形描绘了来自公共空间中的多种语言的代码。利用训练,神经网络模型500能够将示例从大代码编码文件105映射到小自动化代码110。
34.本发明解决了缺乏用于训练高级的自动化工程软件的数据的问题。所公开的方法以及相应的系统利用图形嵌入技术唯一地创建规范代码表示。最终,来自大代码的示例被映射到创建可执行的自动化代码的小自动化代码。因此,在此描述的系统和方法产生为了训练高级的自动化工程软件所需的数据,而不用对计算机进行特定的预编程。
35.尽管以示例性的形式公开了本发明的实施例,但对于本领域技术人员而言显而易见的是,在不脱离本发明及其等价说明的精神和范围的情况下,可以在其中进行许多修改、添加和删除,如权利要求书中所述的那样。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献