CN114365158A - 视觉创建和监控机器学习模型 - Google Patents

视觉创建和监控机器学习模型 Download PDF

Info

Publication number
CN114365158A
CN114365158A CN202080063420.8A CN202080063420A CN114365158A CN 114365158 A CN114365158 A CN 114365158A CN 202080063420 A CN202080063420 A CN 202080063420A CN 114365158 A CN114365158 A CN 114365158A
Authority
CN
China
Prior art keywords
machine learning
learning model
user interface
training
source code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080063420.8A
Other languages
English (en)
Inventor
维沙尔·因德·西卡
丹尼尔·詹姆士·阿美朗
凯文·弗雷德里克·邓内尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vianet Systems
Original Assignee
Vianet Systems
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vianet Systems filed Critical Vianet Systems
Publication of CN114365158A publication Critical patent/CN114365158A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明的一个实施方案阐述了一种用于创建机器学习模型的技术。该技术包括生成包括用于视觉生成机器学习模型的一个或多个组件的用户界面。该技术还包括基于通过用户界面接收的用户输入来修改指定定义机器学习模型的多个数学表达式的源代码。该技术还包括将源代码编译成编译代码,该编译代码在被执行时使机器学习模型的一个或多个参数在机器学习模型的训练期间被学习。

Description

视觉创建和监控机器学习模型
相关申请的交叉引用
本申请要求于2019年9月12日提交的且标题为:“用于定义和评估神经网络体系结构和相应训练数据的技术(TECHNIQUES FOR DEFINING AND EVALUATING NEURAL NETWORKARCHITECTURES AND CORRESPONDING TRAINING DATA)”序列号为62/899,264的美国临时专利申请的优先权,并要求于2020年9月10日提交的且标题为:“视觉创建和监控机器学习模型(VISUALLY CREATING AND MONITORING MACHINE LEARNING MODELS)”、序列号为17/017,594的美国专利申请的优先权。这些相关申请的主题通过引用并入本文。
背景技术
技术领域
本公开的实施方案总体上涉及机器学习,并且更具体地,涉及用于视觉创建和监控机器学习模型的技术。
现有技术描述
机器学习可用于发现与复杂、互连和/或多维数据的大集合相关的趋势、模式、关系和/或其他属性。为了从大型数据集中收集见解,可以使用数据中的输入-输出对训练回归模型、人工神经网络、支持向量机、决策树、朴素贝叶斯分类器和/或其他类型的机器学习模型。反过来,发现的信息可用于指导决策和/或执行与数据相关的动作。例如,机器学习模型的输出可用于指导营销决策、评估风险、检测欺诈、预测行为、控制自主车辆和/或定制或优化应用或网站的使用。
在机器学习中,可以训练神经网络以高程度的准确度执行各种任务。因此,神经网络在人工智能领域被广泛采用。神经网络可以具有不同范围的网络体系结构。在更复杂的场景中,用于神经网络的网络体系结构可以包括带有不同层当中错综复杂的连接拓扑的许多不同类型的层。例如,一些神经网络可以具有十个或更多个层,其中每个层可以包括数百或数千个神经元,并且每个层可以经由数百或数千个单独的连接耦合到一个或多个其他层。
在神经网络开发过程中,设计者编写程序代码以创建解决特定类型问题的神经网络体系结构。设计者然后使用训练数据和当处理该训练数据时神经网络应当产生的目标输出来训练神经网络。例如,设计者可以基于图像集来训练神经网络,该图像集显示各种景观以及指示该图像集中示出的景观的类型的标记。
在为神经网络编写程序代码时,设计者通常依赖一个或多个编程库,这些编程库公开了各种工具,以促进神经网络设计和整个编码过程。使用这些类型的编程库的一个缺点是通常必须安装和执行难以理解和掌握的复杂软件堆栈才能使用编程库。例如,要定义神经网络,开发人员可能必须安装多个库,其中每个库都有数千行代码,即使这些库公开的大部分功能在定义、训练和/或执行神经网络时不使用。因此,熟练神经网络开发人员池限于在使用相关复杂软件堆栈方面已达到必要专业知识水平的一小部分开发人员。这些复杂的软件堆栈还需要大量的计算和存储器资源才能正确执行。因此,神经网络开发人员池进一步限于那些能够访问满足这些计算和存储器要求的更复杂硬件的人。
在设计神经网络时使用常规编程库的另一个缺点是这些编程库通常允许设计者仅控制有限数量的神经网络特征。特别是,编程库通常包括层定义函数,其是严格的且对可以定义的神经网络层的类型和参数施加限制。例如,一些常规的编程库要求设计者明确指定在训练阶段期间学习神经网络给定层中的哪些变量,或者具有硬编码规则,只允许在训练阶段期间学习层的权重参数。这些类型的约束会阻止开发人员在设计神经网络时发挥创造力并探索各种配置。
作为使用常规编程库的替代方案,设计者可以使用传统编程语言(诸如Python、C、C++或Java)为神经网络编写代码。然而,传统的编程语言框架并不适合轻松定义和实现基于数学的运算,例如在神经网络体系结构的核心处的运算。因此,设计者通常必须编写大量的复杂代码,这些代码定义神经网络中的每一层如何操作、指定各层如何耦合在一起、以及描述由不同层执行的各种操作。此外,在编译神经网络的代码时,不会分配在训练阶段期间学习的变量。当在编译期间遇到未分配的变量时,传统编程语言的常规编译器会出现错误。为了解决这些类型的错误,开发人员必须为未分配的变量分配随机值,这可能会在训练阶段引入内置偏差,并对训练过程和/或训练的神经网络的准确性产生负面影响。
如上所述,本领域所需要的是用于定义神经网络和/或其他类型的机器学习模型的更有效的技术。
发明内容
本发明的一个实施方案阐述了一种用于创建机器学习模型的技术。该技术包括生成包括用于视觉生成机器学习模型的一个或多个组件的用户界面。该技术还包括基于通过用户界面接收的用户输入来修改指定定义机器学习模型的多个数学表达式的源代码。该技术还包括将源代码编译成编译代码,该编译代码在被执行时使机器学习模型的一个或多个参数在机器学习模型的训练期间被学习。
所公开技术的至少一个技术优势包括相对于涉及以下项的常规技术的减少的开销:用以执行机器学习模型的多轮代码编写、调试和编译的额外处理时间和/或资源消耗;手动定义和执行用于训练、测试和验证机器学习模型的工作流和流水线;跟踪机器学习模型、数据集和/或实验的不同版本。机器学习模型、数据集和相关联的性能度量的视觉表示可以另外提高对机器学习模型的理解、对影响机器学习模型性能的特征或其他属性的识别、和/或性能度量与更高水平的目标和目的的对齐。反过来,使用AI应用和用户界面创建的机器学习模型可能比使用常规工具创建的机器学习模型具有更好的性能和/或更快的收敛。因此,所公开的技术提供了对用于设计、训练、评估和/或选择机器学习模型的应用、工具和/或计算机系统的技术改进。
附图说明
为了能够详细地理解各种实施方案的上述特征的方式,可以通过参考各种实施方案来对以上简要概述的发明概念进行更具体的描述,其中一些实施方案在附图中示出。然而,应当注意,附图仅示出发明概念的典型实施方案,因此不应被视为以任何方式限制范围,并且还存在其他等效的实施方案。
专利或申请文件包含至少一幅彩色附图。专利局将根据要求并在支付必要费用的情况下提供带有彩色附图的本专利或专利申请公布的副本。
图1示出了被配置为实现各种实施方案的一个或多个方面的系统;
图2是根据各种实施方案的图1的AI设计应用的更详细图示;
图3是根据各种实施方案的图2的网络生成器的更详细图示;
图4是根据各种实施方案的图3的编译器引擎和合成引擎的更详细图示;
图5A是根据各种实施方案的图1的图形用户界面(GUI)的示例屏幕截图;
图5B是根据各种实施方案的图1的GUI的示例屏幕截图;
图5C是根据各种实施方案的图1的GUI的示例屏幕截图;
图5D是根据各种实施方案的图1的GUI的示例屏幕截图;
图5E是根据各种实施方案的图1的GUI的示例屏幕截图;
图5F是根据各种实施方案的图1的GUI的示例屏幕截图;
图5G是根据各种实施方案的图1的GUI的示例屏幕截图;
图6是根据各种实施方案的用于创建机器学习模型的方法步骤的流程图。
具体实施方式
在以下描述中,阐述了许多具体细节以助于更透彻地理解各种实施方案。然而,对于本领域技术人员将明显的是,发明概念可以在没有这些具体细节中的一个或多个的情况下实践。
系统概述
图1示出了被配置为实现各种实施方案的一个或多个方面的系统。如图所示,系统100包括经由网络150耦合在一起的客户端110和服务器130。客户端110或服务器130可以是任何技术上可行的类型的计算机系统,包括台式计算机、膝上型计算机、移动设备、计算设备的虚拟化实例、分布式和/或基于云的计算机系统等。网络150可以是任何技术上可行的互连通信链路集,包括局域网(LAN)、广域网(WAN)、万维网或因特网等。客户端110和服务器130被配置为经由网络150通信。
如进一步所示,客户端110包括耦合在一起的处理器112、输入/输出(I/O)设备114和存储器116。处理器112包括被配置为处理数据和执行软件应用的任何技术上可行的硬件单元集。举例来说,处理器112可以包括一个或多个中央处理单元(CPU)、一个或多个图形处理单元(GPU)和/或一个或多个并行处理单元(PPU)。I/O装置114包括被配置为执行输入和/或输出操作的任何技术上可行的装置集,包括例如显示装置、键盘和触摸屏等。
存储器116包括被配置为存储数据和软件应用的任何技术上可行的存储介质,诸如,例如,硬盘、随机存取存储器(RAM)模块和只读存储器(ROM)。存储器116包括数据库118(0)、人工智能(AI)设计应用120(0)、机器学习模型122(0)和图形用户界面(GUI)124(0)。数据库118(0)是存储各种类型的数据的文件系统和/或数据存储应用。AI设计应用120(0)是这样的软件应用,该软件应用在由处理器112执行时与在服务器130上执行的对应的软件应用交互操作,以生成、分析、评估和描述一个或多个机器学习模型。机器学习模型122(0)包括一个或多个人工神经网络、支持向量机、回归模型、基于树的模型、分层模型、集成模型和/或配置为执行通用或专用人工智能导向的操作的其他类型的模型。GUI 124(0)允许用户与AI设计应用120(0)交互。
服务器130包括耦合在一起的处理器132、I/O设备134和存储器136。处理器132包括被配置为处理数据和执行软件应用的任何技术上可行的硬件单元集,诸如一个或多个CPU、一个或多个GPU和/或一个或多个PPU。I/O装置134包括被配置为执行输入和/或输出操作的任何技术上可行的装置集,诸如显示装置、键盘或触摸屏等。
存储器136包括被配置为存储数据和软件应用的任何技术上可行的存储介质,诸如,例如,硬盘、RAM模块和ROM。存储器136包括数据库118(1)、AI设计应用120(1)、机器学习模型122(1)和GUI124(1)。数据库118(1)是存储各种类型的数据的类似于数据库118(1)的文件系统和/或数据存储应用。AI设计应用120(1)是这样的软件应用,该软件应用在由处理器132执行时与AI设计应用120(0)交互操作,以生成、分析、评估和描述一个或多个机器学习模型。机器学习模型122(1)包括一个或多个人工神经网络、支持向量机、回归模型、基于树的模型、分层模型、集成模型和/或配置为执行通用或专用人工智能导向的操作的其他类型的模型。GUI 124(1)允许用户与AI设计应用120(1)交互。
一般而言,数据库118(0)和118(1)表示分布式存储实体的单独部分。因此,为了简单起见,在本文中将数据库118(0)和118(1)统称为数据库118。类似地,AI设计应用120(0)和120(1)表示分布式软件实体的单独部分,该分布式软件实体被配置为执行本文中所描述的发明性操作中的任何一个操作和全部操作。这样,在下文中将AI设计应用120(0)和120(1)统称为AI设计应用120。机器学习模型122(0)和122(1)同样代表分布式机器学习模型并且在本文中统称为机器学习模型122。GUI 124(0)和124(1)类似地代表一个或多个GUI的分布式部分并且在本文中统称为GUI 124。
在操作中,AI设计应用120基于经由GUI 124接收的用户输入生成机器学习模型122。GUI 124展示设计和分析工具,该设计和分析工具允许用户创建和编辑机器学习模型122、探索机器学习模型122的功能性、相对于训练数据评估机器学习模型122、和生成描述和/或约束机器学习模型122的性能和/或操作的各种数据、以及进行其他操作。下面结合图2更详细地描述AI设计应用120内执行上述操作的各种模块。
图2是根据各种实施方案的图1的AI设计应用120的更详细图示。如图所示,AI设计应用120包括网络生成器200、网络分析器210、网络评估器220和网络描述器230;机器学习模型122包括一个或多个代理240;并且GUI 124包括概述GUI 206、特征工程GUI 204、网络生成GUI 202、网络分析GUI 212、网络评估GUI 222和网络描述GUI 232。
在操作中,网络生成器200呈现网络生成GUI 202以向用户提供用于设计和连接机器学习模型122内的代理240的工具。给定代理240可以包括执行各种面向AI的任务的神经网络242(或另一类型的机器学习模型)。给定代理240还可以包括执行通用任务的其他类型的功能元素。网络生成器200基于训练数据250来训练特定代理240中所包括的神经网络242。训练数据250可以包括用于训练神经网络的任何技术上可行的类型的数据。举例来说,训练数据250可以包括经修改的国家标准与技术研究院(MNIST)数字训练集。
当训练完成时,网络分析器210呈现网络分析GUI 212,以向用户提供用于分析和理解给定代理240内的神经网络(或另一类型的机器学习模型122)如何操作的工具。特别地,网络分析器210使网络分析GUI 212显示给定神经网络242内的各种连接和权重,并且模拟给定神经网络242对各种输入的响应,以及进行其他操作。
此外,网络评估器220呈现网络评估GUI 222,以向用户提供用于相对于训练数据250评估给定神经网络242的工具。更具体地,网络评估器220经由网络评估GUI 222接收指示训练数据250的特定部分的用户输入。网络评估器220然后模拟给定神经网络242如何响应于训练数据250的该部分。网络评估器220还可以使网络评估GUI 222过滤训练数据250的特定部分,该特定部分使给定神经网络242生成一定类型的输出。
结合上述内容,网络描述器230分析与代理240相关联的给定神经网络242,并且生成向用户描述神经网络242的性能的自然语言表达式。网络描述器230还可以向用户提供与神经网络242如何解译训练数据250有关的各种“常识”事实。网络描述器230经由网络描述GUI 232将该数据输出给用户。此外,网络描述器230可以经由网络描述GUI 232从用户获得基于规则的表达式,然后基于这些表达式约束网络行为。此外,网络描述器230可以生成量化网络性能的各个方面的度量,然后经由网络描述GUI 232向用户显示这些度量。
如图所示,GUI 124另外包括概述GUI 206和特征工程GUI 204,它们可以由AI设计应用120和/或系统的另一组件呈现。概述GUI 206包括一个或多个用户界面元素,用于查看、设置和/或以其他方式管理与涉及神经网络242和/或其他机器学习模型122的项目或实验相关联的目的。特征工程GUI 204包括一个或多个用户界面元素,用于查看、组织、创建和/或以其他方式管理输入到神经网络242和/或其他机器学习模型122中的特征。将在下文中参考图5A-图5G来进一步详细描述GUI 124。
大体参考图1至图2,AI设计应用120有利地向用户提供用于生成、分析、评估和描述神经网络行为的各种工具。所公开的技术不同于生成神经网络的常规方法,生成神经网络的常规方法通常混淆网络训练和来自用户的后续操作。
图3是根据各种实施方案的图1的网络生成器的更详细的图示。如图所示,网络生成器200包括编译器引擎300、合成引擎310、训练引擎320和可视化引擎330。
在操作中,可视化引擎330生成网络生成GUI 202,并且经由网络生成GUI 202从用户获得代理定义340。编译器引擎300编译给定代理定义340中所包括的程序代码以生成经编译的代码302。编译器引擎300被配置为解析、编译和/或解译任何技术上可行的编程语言,包括C、C++、Python和相关联的框架、JavaScript和相关联的框架等。合成引擎310基于经编译的代码302和影响该代码如何执行的一个或多个参数来生成初始网络312。初始网络312是未经训练的,并且可能缺乏以高程度的准确度执行一个或多个预期操作的能力。
训练引擎320基于训练数据250训练初始网络312以生成经训练的网络322。经训练的网络322可以以比初始网络312更高程度的准确度执行该一个或多个预期操作。训练引擎320可以执行任何技术上可行的类型的训练操作,包括反向传播、梯度下降等。可视化引擎330结合上述操作来更新网络生成GUI 202,从而以图形方式描绘经由代理定义340定义的网络体系结构,以及示出经训练的网络322的各种性能属性。
神经网络代理的基于数学的编程和执行
如上所述,为了定义和执行神经网络体系结构,开发人员通常使用难以掌握的繁琐工具和库,并且经常混淆底层网络体系结构的许多细节。因此,神经网络只能由具有各种工具和库的专业知识的少数开发人员创建。此外,由于网络体系结构的底层细节深深嵌套在工具和库的框架中,开发人员可能不了解体系结构如何起作用或如何更改或改进体系结构。为了解决神经网络定义范式中的这些和其他缺陷,下面讨论用于定义神经网络体系结构的基于数学的编程和执行框架。
在各种实施方案中,基于数学的编程语言中的神经网络代理定义的源代码是链接的数学表达式的流水线。源代码无需任何中间库即可编译成机器代码,其中机器代码代表可训练和可执行的神经网络。对于要在源代码中被定义为一系列数学表达式的神经网络体系结构,基于数学的编程语言公开了几个构建块。这些包括用于指定神经网络层的层符号、用于指定神经网络的两个或更多个层或两个或更多个神经网络之间的链接的链接符号、用于指定变量源的变量分配符号(=)、以及各种数学运算符号,诸如和(+)、除(/)、求和(∑)、开闭括号(())、矩阵定义、集合隶属(∈)等。
神经网络的每一层在基于数学的编程语言中被定义为使用上述构建块的一个或多个数学表达式。例如,可以使用以下包括一组数学表达式的源代码来定义卷积层:
Figure BDA0003538034920000111
其中
Figure BDA0003538034920000112
Figure BDA0003538034920000113
Figure BDA0003538034920000114
Figure BDA0003538034920000115
c=s(i-1)-z+t
d=s(j-1)-z+u
Figure BDA0003538034920000116
在上面的例子中,源代码的第一行表示源代码的后续行与具有输入X和输出Y的CONVOLUTION操作相关。源代码的后续行包括定义对输入X执行的数学运算以生成输出Y的一系列的数学表达式。每个数学表达式包括右手侧部分和左手侧部分。左手侧部分指定在评估由右手侧部分指定的数学运算时确定的值。例如,在上文所示的数学表达式“c=s(i–1)–z+t”中,“c”是左手侧部分,并指定变量c被分配给当评估右手侧部分“s(i–1)–z+t”时生成的值。
包括在神经网络代理的源代码中的变量的值要么在神经网络被实例化时被分配,要么在神经网络训练期间被学习。与其他神经网络定义范式不同,使用基于数学的编程语言定义的神经网络代理的开发人员可以控制在训练期间要学习哪些变量(在本文中称为“学习变量”)。此外,即使在实例化神经网络时,要在训练期间学习的变量也可以保持未初始化(,未分配值或值源)。下面结合图4至图6详细讨论在神经网络的编译和训练期间处理这些学习变量的技术。
图4是根据各种实施方案的图3的编译器引擎300和合成引擎310的更详细图示。如图所示,编译器引擎300包括语法树生成器406、实例化器408和编译代码302。合成引擎310包括网络构建器412和初始网络312,该初始网络包括学习变量410。
编译器引擎300和合成引擎310的操作结合给定代理定义402进行描述。代理定义402的源代码包括多个层规范,其中每个层规范包括使用基于数学的编程语言定义的一个或多个数学表达式404(单独称为数学表达式404)。如上所述,每个数学表达式404包括左手侧部分,其指定在评估由右手侧部分指定的数学运算时确定的值。数学表达式404可以被分组,使得每个组对应于神经网络体系结构的不同层。代理定义402的源代码指定了不同组的数学表达式404之间的链接。
编译器引擎300将代理定义402的源代码编译成编译代码302。为了生成编译代码302,编译器引擎300包括语法树生成器406和实例化器408。语法树生成器406解析代理定义402的源代码并生成源代码的抽象语法树(AST)表示。在各种实施方案中,AST表示包括节点的树结构,其中常量和变量是包括运算符或语句的父节点的子节点。AST封装了源代码的句法结构,,语句、数学表达式、变量以及源代码中包含的那些之间的关系。
实例化器408处理AST以生成编译代码302。在操作中,实例化器408对AST执行语义分析、生成代码的中间表示、执行优化并且生成包括编译代码302的机器代码。对于语义分析,实例化器408检查源代码的语义正确性。在各种实施方案中,语义检查确定包括在AST中的变量和类型是否被正确声明,以及运算符和对象的类型匹配。为了执行语义分析,实例化器408实例化包含在源代码中的给定对象或函数类型的所有实例。此外,实例化器408生成表示所有命名对象——类、变量和函数——的符号表,并使用该符号表对源代码执行语义检查。
实例化器408对符号表中的每个变量执行映射操作以确定变量的值是否被分配给源代码中标识的源。实例化器408将没有指定源的变量标记为潜在的学习变量,,在训练过程期间要学习的变量。在各种实施方案中,这些变量不具有指示变量是学习变量的特殊类型。此外,源代码没有明确指示变量是学习变量。实例化器408自动将那些变量识别为将通过那些未分配给源的变量来学习的潜在变量。因此,实例化器408的运行与传统编译器和解释器不同,传统编译器和解释器不允许变量未分配、未声明或以其他方式未定义并在编译过程期间引发错误。
实例化器408将编译代码302和潜在学习变量列表传输到合成引擎310。如上所述,合成引擎310基于编译代码302和影响编译代码302如何执行的一个或多个参数来生成初始网络312。特别地,网络构建器412分析编译代码302的结构以确定神经网络体系结构的不同层以及给定层的输出如何链接到一个或多个后续层的输入。在各种实施方案中,网络构建器412还例如经由用户输入接收编译代码302中包括的某些变量的值。
包括在网络构建器412中的学习变量识别器414识别初始网络312内的学习变量410。在操作中,学习变量识别器414根据由网络构建器412确定的神经网络体系结构的层的结构和由网络构建器412接收的变量的任何值来分析从实例化器408接收的潜在学习变量列表。对于每个潜在的学习变量,学习变量识别器414确定神经网络体系结构的给定层中的潜在学习变量的源是否是来自神经网络体系结构的先前层的输出。如果存在这样的源,则潜在的学习变量不是在神经网络训练期间要学习的变量。类似地,学习变量识别器414确定潜在学习变量的值是否已明确提供给网络构建器412。如果已经提供了这样的值,则潜在的学习变量不是在神经网络训练期间要学习的变量。以这种方式,学习变量识别器414处理每个潜在学习变量以确定潜在学习变量是否真的是要在训练期间学习的变量。一旦已经处理了所有的潜在学习变量,学习变量识别器414识别没有确定其源的任何潜在学习变量。这些变量构成初始网络312的学习变量410。
在各种实施方案中,学习变量识别器414使网络生成GUI 202显示由学习变量识别器414识别的学习变量410。然后,学习变量410可以由GUI 202的用户(诸如神经网络体系结构的开发人员)确认或以其他方式修改。
如上所述,训练引擎320基于训练数据250训练初始网络312以生成训练网络322。训练网络322包括在训练过程期间学习的学习变量410的值。经训练的网络322可以以比初始网络312更高程度的准确度执行该一个或多个预期操作。训练引擎320可以执行任何技术上可行的类型的训练操作,包括反向传播、梯度下降、超参数调优等。
视觉创建和监控机器学习模型
如上所述,GUI 124包括允许用户与AI设计应用120交互的组件。这些组件包括但不限于概述GUI 206、特征工程GUI 204、网络生成GUI 202、网络分析GUI 212、网络评估GUI222、网络描述GUI 232。如下文进一步详细描述的,这些组件可以简化用于创建、训练、评估和/或以其他方式监控机器学习模型(例如,机器学习模型122)和/或涉及机器学习模型的项目的操作的过程和技术。
图5A是根据各种实施方案的图1的GUI 124的示例屏幕截图。更具体地,图5A包括示例概述GUI 206的屏幕截图,其包括用于审查、设置和/或管理与涉及一个或多个机器学习模型122的项目相关的目标的多个组件502-508。
组件502包括提供与项目相关的高层信息的“项目概述”部分。此信息包括“预测哪些客户可能在下个月取消其会员资格”的既定目标、具有多个阶段的时间表以及参与该项目的团队成员。
组件504用于查看和/或修改与项目相关的“成功标准”。特别地,组件504识别将由机器学习模型预测的“会员资格取消”标签;该标签的值是从用于训练和评估机器学习模型的数据集中的“将取消”列中获得的。组件504还为机器学习模型的精度指定了70%的最小阈值,并且为机器学习模型的召回指定了90%的最小阈值。组件504另外指示在训练和/或优化机器学习模型中精度将优先于召回。
在组件504内,用户可以与文本的高亮部分和/或下拉菜单交互以查看与成功标准相关的附加信息和/或修改成功标准。例如,用户可以点击“会员资格取消”一词来查看该词的定义。在另一个示例中,用户可以从当前显示“将取消”的下拉菜单中选择要预测的不同标签。在第三示例中,用户可以通过与对应的滑块交互来调整精度和召回阈值。在第四示例中,用户可以从当前显示“精度”的下拉菜单中选择要优先排序的不同性能度量。
组件506显示将“2019年8月会员资格记录”数据集划分为机器学习模型的70%训练、15%验证和15%测试。用户可以通过与表示比例的条进行交互来更改在训练、验证和/或测试中使用的数据集的比例。
组件508显示与数据集相关的信息。特别地,组件508包括与数据集相关的一个或多个配方,以及数据集中的行和列的表。该表包括在组件504中选择的“将取消”标签,以及可用于预测标签的附加列。组件508另外包括“绘图”部分,其可用于查看数据集中数据的各种绘图。例如,用户可以与“绘图”部分交互以查看条形图、小提琴图、饼图、马赛克图、直方图、相关矩阵和/或数据集的列之间或之中的相关性或其他关系的其他可视化。在组件508中,用户可以点击“+”按钮以将用户定义的视觉添加到“绘图”部分。可以使用各种编程语言和/或数据可视化库来构建这种用户定义的视觉。
图5B是根据各种实施方案的图1的GUI 124的示例屏幕截图。更具体地,图5B示出了图5A的示例概述GUI 206的不同屏幕。该屏幕包括用于审查和/或管理与和图5A的屏幕相关的机器学习模型或项目相关联的多个实验的多个组件510-518。
组件510在多个精度-召回曲线中显示了实验的聚合结果,并且组件514-518中的每一个组件都显示了与对应实验相关的高层信息。特别地,组件514-518中的信息被组织成多个列520-526。列520包括参与实验的数据科学家和/或其他用户的注释,列522包括输入到每个实验的机器学习模型中的特征列表,列524包括在每个实验中使用的机器学习模型的模型名称和/或类型(由图形图标表示),并且列526包括每个实验的状态(例如,已经被运行的实验的精度、召回和/或其他性能度量的值)。
用户可以点击由特定行和列标识的单元格以导航到GUI 124的不同屏幕以查看与该单元格相关的更详细信息。例如,用户可以点击列520中的一个单元格来查看对应实验的所有注释。在另一示例中,用户可以点击列522中的单元格以导航到特征工程GUI 204中的一个或多个屏幕,这将在下文相对于图5C和图5D进一步详细描述。在第三示例中,用户可以点击列524中的单元格以导航到网络生成GUI 202、网络分析GUI 212和/或网络描述GUI232中的一个或多个屏幕,这在下面相对于图5E至图5F进一步详细描述。在第四示例中,用户可以点击列526中的单元格以导航到网络评估GUI 222中的一个或多个屏幕,这将在下文相对于图5G进一步详细描述。
用户可以与组件512中的用户界面元素交互以排序、过滤和/或以其他方式组织或访问与组件512下方所示的组件514-518中的与实验相关的信息。例如,用户可以将搜索项输入到组件512左侧的文本字段中,以检索与搜索项匹配的实验列表。在另一个示例中,用户可以点击文本字段右侧的三个不同图标以访问实验的不同“视图”(例如,图5B中所示的列表视图、网格视图、树视图等)。在第三示例中,用户可以点击图标右侧的两个按钮以在实验的“最近”排序(例如,从最近到最不接近的实验排序)和“最佳”排序(例如,从最佳表现到最差表现的实验排序)之间切换。在第四示例中,用户可以点击沿着组件512右侧的“+”按钮以向项目添加新实验。
在一个或多个实施方案中,每个实验被分配一个版本号,该版本号表示实验的列520-524中的信息的唯一组合。此外,一个或多个列520-524中的单元格与不同的版本号相关联。如图所示,由组件514-518表示的三个实验包括相同的名称“客户保留”和不同的版本号(例如,“v3”、“v4”、“v5”)。每个实验包括不同特征集、“2019年8月会员资格记录”数据集的不同版本(例如,“v2”或“v3”)、不同的机器学习模型(例如,“FF-Net”或“LGBM”)和/或给定机器学习模型的不同模型版本(例如,“v1”或“v2”)。
当对与实验相关联的一个或多个列520-524做出改变时,对应元素的版本号与实验的版本号一起递增。例如,对机器学习模型的任何修改都可能触发机器学习模型版本号的增加,以及修改机器学习模型的当前实验的新版本(连同对应的新版本号)的创建。对当前实验的附加更改可能会包含在此版本中,直到机器学习模型的下一次训练,这标志着实验的“完成”。在另一个示例中,对数据集的任何修改都可能触发数据集版本号的增加、任何使用修改后的数据集的机器学习模型(例如,在机器学习模型使用修改的数据集重新训练后)的版本号的增加、和/或任何使用修改后的数据集的实验的版本号的增加。在第三示例中,机器学习模型使用的特征的任何更改都可能触发机器学习模型版本号的增加(例如,在机器学习模型使用特征重新训练后)和/或任何使用机器学习模型的实验的版本号的增加。或者,当输入到机器学习模型中的特征集发生变化而特征数量不变时,机器学习模型的体系结构可以保持不变,从而机器学习模型的版本号可以保持不变。反过来,实验版本号的递增可能对应于由递增的版本号标识的新实验的创建,并导致在图5B的屏幕中包含实验的新行。
图5C是根据各种实施方案的图1的GUI 124的示例屏幕截图。更具体地说,图5C示出了特征工程GUI 204的屏幕,其可以通过(例如)点击图5B的屏幕的列522下的单元格和/或点击GUI 124中的“2019年8月会员资格记录”数据集的标签而实现。
图5C的示例屏幕包括用于查看、选择、创建和/或以其他方式管理输入到机器学习模型中的数据集的多个组件528-536。组件530示出了数据集中作为特征输入到机器学习模型中的列的列表,并且组件532示出了数据集中的行和列的表。组件534示出了要包括在绘图中的一个或多个列,并且组件536示出了组件534中指定的列的绘图。组件536另外包括多个图标,可以选择这些图标来查看与组件534中指定的列相关的不同类型的绘图。
如图所示,组件532中的“加入日期”列被选择,这使组件532的表内的该列高亮,列名称作为建议特征被包含在组件530中,并且列名称作为建议绘图元素被包含在组件534中。用户可以点击组件530中的列名称以确认将特征添加到机器学习模型。用户还可以点击组件534中的列名称以用列中的数据更新组件536中的绘图。
组件528包括数据集的配方列表。在一些实施方案中,组件528中所示的每个配方包括一个或多个操作或修改的历史,这些操作或修改已被应用以生成数据集的给定版本(例如,组件532的表中所示的数据集的版本)。用户可以与给定的配方交互以“逐步”通过对应的更改历史。例如,用户可以点击配方中的操作以“撤消”操作并将组件532中所示的表恢复到操作之前的数据集的状态。
组件528还包括一个“过滤”按钮和一个“添加”按钮,表示可以添加到给定配方的两种类型的操作。可以选择“过滤”按钮从数据集中移除行,和可以选择“添加”按钮将列添加到数据集中(例如,使用指定如何创建或导入列中的数据的代码)。组件528也可以通过用于指定可以与配方一起使用的其他类型的操作的用户界面元素更新。
图5D是根据各种实施方案的图1的GUI 124的示例屏幕截图。特别地,图5D示出了在选择组件528中的“添加”按钮之后图5C的屏幕。如图所示,图5D的屏幕包括新组件538,该组件包括文本框,其中输入了用于生成名为“一月加入”的新列的代码。此“添加”操作生成二进制值,其当数据集中的记录的“加入日期”列等于2019年1月时设置为“是”,否则设置为“否”。
在“添加”操作完成之后,用户可以点击组件538中的“完成”按钮以将列添加到数据集中。一旦列在数据集中,用户就可以与组件530-532交互以将列添加为机器学习模型的特征和/或与组件534-536交互以查看包含列中数据的一个或多个绘图。
图5E是根据各种实施方案的图1的GUI 124的示例屏幕截图。更具体地说,图5E示出了网络生成GUI 202中的示例屏幕。如图所示,屏幕包括用于视觉创建机器学习模型的组件540。组件540包括说明输入到机器学习模型中的特征的第一部分544。例如,部分544可以示出“2019年8月会员资格记录”数据集中的列的列名称,这些列已被添加为机器学习模型的特征。
组件540还包括以图形方式描绘机器学习模型的第二部分546。部分546包括表示神经网络层的多个水平六边形条。每个条后跟着一个不同颜色的矩形条,表示对应层的激活函数。
在部分546内,当前选择了表示神经网络的第一层的六边形条,这使得用户界面元素550显示在条的右侧。用户界面元素550指示该层是一个完全连接层,其宽度(神经元的数量)设置为25。用户可以与当前在用户界面元素550中示出“完全连接”的下拉菜单进行交互,以选择不同类型的层(例如,卷积、最大池化、均值池化、长短期记忆(LSTM)、残差、定制等)。用户还可以与当前在用户界面元素550中示出“n=25”的文本字段交互,以选择层的不同宽度。用户也可以,或者相反,点击并拖动六边形条的一侧来改变层的宽度。
组件540另外包括说明机器学习模型的输出的第三部分548。该输出包括在图5A的屏幕截图的“成功标准”组件504中指定的“将取消”标签。
图5E的屏幕还包括用于查看和/或修改源代码的组件542,该源代码包括用于定义机器学习模型的数学表达式。在图5E的屏幕截图中,组件542示出了与在部分546中选择的全连接层相关的多个数学表达式。第一数学表达式指定了进入该层的输入“x”的域以及该层的输出“y”的范围。第二数学表达式包括用于从输入计算输出的公式。第三数学表达式指定在由第二数学表达式表示的公式中使用的值的类型。用户可以选择组件542中的单独的数学表达式来编辑数学表达式(例如,在屏幕中显示为覆盖物的文本字段内)。当在用户界面元素550的下拉菜单中选择定制层时,用户可以使用组件542来指定定义定制层的一个或多个数学表达式。
图5F是根据各种实施方案的图1的GUI 124的示例屏幕截图。更具体地,图5F示出了在表示神经网络的第一层的激活函数的矩形条被选择之后图5E的示例网络生成GUI202。响应于该选择,部分546在条的右侧示出用户界面元素552。用户界面元素552将激活函数标识为“ReLU”,并包括可用于为层选择不同激活函数的下拉菜单。
在图5F的屏幕中,组件542也被更新以示出与激活函数相关的数学表达式。这些数学表达式包括进入激活函数的输入“x”的域和激活函数的输出“y”的范围,以及“ReLU”激活函数的公式。与图5E的屏幕一样,用户可以点击组件542中的单独数学表达式以访问包含数学表达式的文本字段和/或编辑文本字段内的数学表达式。
图5G是根据各种实施方案的图1的GUI 124的示例屏幕截图。更具体地说,图5G示出了网络评估GUI 222的示例屏幕。如图所示,屏幕包括用于审查和/或分析与机器学习模型相关联的训练结果的多个组件554-566。
组件554示出与机器学习模型的“训练进度”相关的信息。此信息包括作为训练时期函数的机器学习模型损失图、用于计算损失的损失函数类型以及用于训练机器学习模型的批量大小。
组件556示出了将训练的机器学习模型的性能与图5A的屏幕的组件504中指定的“成功标准”进行比较的信息。该信息指示机器学习模型满足70%的精度阈值,但不满足90%的召回阈值。
组件558示出与机器学习模型的性能度量相关的信息。在一些实施方案中,组件558显示出反映组件504中指定的成功标准的可视化。在图5G的示例屏幕中,这些可视化包括精度-召回曲线和与精度-召回曲线中的点相对应的混淆矩阵。组件556和558中的信息可用于确定可以通过减少机器学习模型产生的假阴性的数量来满足90%的召回阈值。
组件560示出与输入到机器学习模型中的数据集相关的配方,并且组件562示出被标识为对机器学习模型的输出重要(即,对机器学习模型的输出具有显着影响)的特征。组件564示出了来自用于机器学习模型的测试数据集的带有行和列的表(如组件506中所示的分区中所指定的),并且组件566可用于查看与数据集相关的一个或多个绘图。用户可以通过与其他组件554-558交互来过滤表和/或绘图中的数据。例如,用户可以点击组件558的混淆矩阵中的单独单元格以查看数据集中与组件564中的那些单元格有关的和/或与组件566中的记录相关的绘图有关的记录的子集(即,真阳性、假阳性、假阴性、真阴性)。用户可以使用过滤后的数据来识别可以提高机器学习模型的性能的模式或相关性(例如,确定“加入日期”列被设置为一月以获得大量的假阴性)。因此,组件554-566可以允许用户评估机器学习模型在给定实验中的性能,并将性能与在图5A的屏幕中标识的高级目标或成功标准相关。
图6是根据各种实施方案的用于创建机器学习模型的方法步骤的流程图。尽管结合图1至图3的系统来描述方法步骤,但是本领域技术人员将理解,被配置为以任何顺序执行所述方法步骤的任何系统都在本发明的范围内。
如图所示,AI设计应用120生成602用户界面(例如,GUI 124),该用户界面包括用于视觉生成机器学习模型的一个或多个组件。例如,AI设计应用120在GUI 124内呈现表示神经元、层、层类型、连接、激活函数、输入、输出和/或神经网络的其他组件的图形对象。在另一个示例中,AI设计应用120在GUI 124内生成表示决策树、随机森林、梯度提升树和/或另一类型的基于树的模型的节点、边、输入、输出、条件和/或其他组件的图形对象。在第三示例中,AI设计应用120生成用于识别和/或选择机器学习模型的模型类型的用户界面元素。在第四示例中,AI设计应用120提供一个或多个文本框和/或其他类型的用户界面元素用于指定用于定义机器学习模型的一些或全部源代码。该源代码包括描述机器学习模型行为的数学表达式,如上所述。用户可以与图形对象交互和/或输入与图形对象和/或源代码相关的文本,以在GUI 124内以视觉方式创建机器学习模型。
AI设计应用120还在用户界面中输出604用于管理与机器学习模型相关联的目标、管理与机器学习模型相关联的实验和/或与训练机器学习模型的训练结果交互的附加组件。例如,AI设计应用120可以在GUI 124中呈现一个或多个屏幕,所述屏幕可用于查看、修改和/或以其他方式管理项目时间表、要预测的标签、与标签相关联的性能度量的阈值和/或机器学习模型的训练数据源;实验版本、数据集版本、机器学习模型的模型版本和/或包括机器学习模型的每个实验的实验状态;和/或精度-召回曲线、混淆矩阵、机器学习模型的训练数据集和/或与和机器学习模型相关联的每个训练结果的训练数据集相关联的过滤器。
AI设计应用120基于通过用户界面接收的用户输入更新606用户界面中机器学习模型的视觉表示和指定定义机器学习模型的数学表达式的源代码。例如,AI设计应用120可以响应用户输入改变机器学习模型的层、激活函数、输入、输出和/或另一个组件的颜色、形状、大小和/或文本描述。在另一个示例中,AI设计应用120可以响应于用户输入添加或移除机器学习模型的层、激活函数、输入、输出和/或另一个组件。在第三示例中,AI设计应用120可以基于用户对组件的选择和/或用于指定或修改数学表达式的用户文本输入来显示定义机器学习模型的组件的一个或多个数学表达式。
AI设计应用120可以继续执行操作602-606,同时确定机器学习模型的生成是否完成608。例如,AI设计应用120可以继续生成用户界面的屏幕并修改机器学习模型的视觉表示和源代码,同时用户与用户界面交互以视觉创建机器学习模型。AI设计应用120可以在用户选择请求训练机器学习模型的用户界面元素和/或经由用户界面提供指示机器学习模型的创建完成的其他输入之后确定机器学习模型的生成完成。
在机器学习模型的生成完成之后,AI设计应用120将源代码编译610成编译代码,该编译代码在执行时使机器学习模型的一个或多个参数在机器学习模型的训练期间被学习。更具体地说,AI设计应用120可以生成源代码的AST表示。这种AST表示包括树结构,树结构中的子节点表示常量和变量,而树结构中的父节点表示运算符或语句。AI设计应用120然后基于AST表示生成编译代码并确定机器学习模型中的参数将基于源代码的结构来学习。例如,AI设计应用120可以检查源代码的语义正确性并将源代码中的变量映射到一个或多个分配的源。AI设计应用120然后可以将不具有分配源的任何变量识别为要学习的变量(即,机器学习模型参数)。
最后,AI设计应用120递增612与机器学习模型相关联的一个或多个版本以及包括机器学习模型的一个或多个实验。例如,只要机器学习模型被“重新编译”或用新体系结构、特征集和/或训练数据集重新训练,AI设计应用120可以自动递增机器学习模型的模型版本。当机器学习模型的模型版本递增时,AI设计应用120可以自动递增涉及机器学习模型的任何实验的版本,以确保机器学习模型的不同模型版本在不同的实验版本中被跟踪。
总之,所公开的技术提供了用于视觉创建和监控一个或多个机器学习模型的AI设计应用和用户界面。AI设计应用和用户界面包括用于视觉生成机器学习模型、管理与机器学习模型相关联的一个或多个目标、管理与机器学习模型相关联的一个或多个实验、和/或审查训练机器学习模型的训练结果或与之交互的组件。用户可以与用户界面交互以指定机器学习模型的体系结构和/或用于定义机器学习模型的数学表达式,而不是手动编写用于创建机器学习模型的代码。当用户已经经由用户界面完成机器学习模型的创建时,AI设计应用将包括数学表达式的源代码转换为编译的机器代码,可以执行该代码以在数据集上训练机器学习模型和/或评估训练的机器学习模型的性能。
通过提供用于视觉生成机器学习模型以及在用户指定的数据集上训练、测试和验证机器学习模型的用户界面组件,AI设计应用允许参与创建和使用机器学习模型的数据科学家和/或其他用户避免在机器学习模型的创建和评估期间出现复杂的代码、软件堆栈和/或操作。因此,AI设计应用减少了相对于涉及以下各项的常规技术的开销:用以执行机器学习模型的多轮代码编写、调试和编译的额外处理时间和/或资源消耗;手动定义和执行用于训练、测试和验证机器学习模型的工作流和流水线;和跟踪机器学习模型、数据集和/或实验的不同版本。机器学习模型、数据集和相关联的性能度量的视觉表示可以另外提高对机器学习模型的理解、对影响机器学习模型性能的特征或其他属性的识别、和/或性能度量与更高水平的目标和目的的对齐。反过来,使用AI应用和用户界面创建的机器学习模型可能比使用常规工具创建的机器学习模型具有更好的性能和/或更快的收敛。因此,所公开的技术提供了对设计、训练、评估和/或选择机器学习模型的技术改进。
1.在一些实施方案中,一种用于创建机器学习模型的方法包括生成包括用于视觉生成所述机器学习模型的一个或多个组件的用户界面;基于通过所述用户界面接收的用户输入来修改指定定义所述机器学习模型的多个数学表达式的源代码;以及将所述源代码编译成编译代码,所述编译代码在被执行时使所述机器学习模型的一个或多个参数在所述机器学习模型的训练期间被学习。
2.根据条款1所述的方法,其还包括基于所述用户输入在所述用户界面中修改所述机器学习模型的视觉表示。
3.根据条款1-2中任一项所述的方法,其中所述视觉表示包括所述机器学习模型的一个或多个层、在所述一个或多个层中的一个或多个神经元、输入到所述机器学习模型中的一个或多个特征、以及所述机器学习模型的一个或多个输出。
4.根据条款1-3中任一项所述的方法,其中所述视觉表示还包括与所述一个或多个层相关联的层类型、与所述一个或多个层相关联的激活函数、以及所述机器学习模型的模型类型。
5.根据条款1-4中任一项所述的方法,其还包括在所述用户界面中输出用于管理与所述机器学习模型相关联的一个或多个目标的一个或多个附加组件。
6.根据条款1-5中任一项所述的方法,其中所述一个或多个目标包括项目时间表、要预测的标签、与所述标签相关联的性能度量的阈值、以及用于所述机器学习模型的训练数据源中的至少一者。
7.根据条款1-6中任一项所述的方法,其还包括在所述用户界面中输出用于管理与所述机器学习模型相关联的一个或多个实验的一个或多个附加组件。
8.根据条款1-7中任一项所述的方法,其中所述一个或多个附加组件包括实验版本、数据集版本、所述机器学习模型的模型版本、以及实验状态。
9.根据条款1-8中任一项所述的方法,其还包括在所述用户界面中输出用于与训练所述机器学习模型的训练结果交互的一个或多个附加组件。
10.根据条款1-9中任一项所述的方法,其中所述一个或多个附加组件包括精度-召回曲线、混淆矩阵、所述机器学习模型的训练数据集和与所述训练数据集相关联的过滤器中的至少一者。
11.根据条款1-10中任一项所述的方法,其中将所述源代码编译成所述编译代码包括生成所述源代码的抽象语法树(AST)表示;基于所述AST表示生成所述编译代码;以及基于所述源代码的结构确定所述机器学习模型中的所述一个或多个参数将被学习。
12.根据条款1-11中任一项所述的方法,其中所述一个或多个组件包括用于指定用于定义所述机器学习模型的所述源代码的至少一部分的组件。
13.根据条款1-12中任一项所述的方法,其还包括在生成所述编译代码时,递增与所述机器学习模型和包括所述机器学习模型的实验相关联的一个或多个版本。
14.在一些实施方案中,一种非暂时性计算机可读介质存储指令,所述指令在由处理器执行时使所述处理器执行以下步骤:生成包括用于视觉生成机器学习模型的一个或多个组件的用户界面;基于通过所述用户界面接收的用户输入来修改指定定义所述机器学习模型的多个数学表达式的源代码;基于所述用户输入,在所述用户界面中修改所述机器学习模型的视觉表示;以及将所述源代码编译成编译代码,所述编译代码在被执行时使所述机器学习模型的一个或多个参数在所述机器学习模型的训练期间被学习。
15.根据条款14所述的非暂时性计算机可读介质,其中所述步骤还包括在所述用户界面中输出一个或多个附加组件,所述一个或多个附加组件用于管理(i)与所述机器学习模型相关联的一个或多个目标和(ii)与所述机器学习模型相关联的一个或多个实验。
16.根据条款14-15中任一项所述的非暂时性计算机可读介质,其中所述一个或多个附加组件包括实验版本、数据集版本、所述机器学习模型的模型版本、以及实验状态。
17.根据条款14-16中任一项所述的非暂时性计算机可读介质,其中所述步骤还包括在所述用户界面中输出用于与训练所述机器学习模型的训练结果交互的一个或多个附加组件。
18.根据条款14-17中任一项所述的非暂时性计算机可读介质,其中所述一个或多个附加组件包括精度-召回曲线、混淆矩阵、所述机器学习模型的训练数据集和与所述训练数据集相关联的过滤器中的至少一者。
19.根据条款14-18中任一项所述的非暂时性计算机可读介质,其中所述视觉表示包括所述机器学习模型的一个或多个层、所述一个或多个层中的一个或多个神经元、输入到所述机器学习模型中的一个或多个特征、所述机器学习模型的一个或多个输出、与所述一个或多个层相关联的层类型、与所述一个或多个层相关联的激活函数、或所述机器学习模型的模型类型。
20.在一些实施方案中,一种系统包括存储指令的存储器和耦合到所述存储器的处理器,并且所述处理器在执行所述指令时被配置为生成包括用于视觉生成机器学习模型的一个或多个组件的用户界面;基于通过所述用户界面接收的用户输入来修改指定定义所述机器学习模型的多个数学表达式的源代码;基于所述用户输入,在所述用户界面中修改所述机器学习模型的视觉表示;将所述源代码编译成编译代码,所述编译代码在被执行时使所述机器学习模型的一个或多个参数在所述机器学习模型的训练期间被学习;以及在生成所述编译代码时,递增与所述机器学习模型和包括所述机器学习模型的实验相关联的一个或多个版本。
在任何权利要求中引用的任何权利要求要素和/或在本申请中描述的任何要素的任何方式的任何和所有组合落入本发明和保护的预期范围内。
已呈现各种实施方案的描述以用于说明目的,但并非意在详列或限于公开的实施方案。在不背离所描述实施方案的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说将是明显的。
本实施方案的各方面可实施为系统、方法或计算机程序产品。因此,本公开的各方面可以采取完全硬件实施方案、完全软件实施方案(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施方案的形式,这些实施方案在本文中通常都被称为“模块”、“系统”或“计算机”。此外,本公开中描述的任何硬件和/或软件技术、过程、函数、组件、引擎、模块或系统可以被实现为电路或一组电路。此外,本公开的各方面可以采取在其上体现计算机可读程序代码的一个或多个计算机可读介质中体现的计算机程序产品的形式。
可利用一个或多个计算机可读介质的任何组合。计算机可读介质可为计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、装置或设备或前述介质的任何合适组合。计算机可读存储介质的更具体实例(非详尽列表)将包括以下介质:具有一根或多根导线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述介质的任何合适组合。在本文档的语境中,计算机可读存储介质可以是可含有或存储供指令执行系统、装置或设备使用或与其联用的程序的任何有形介质。
参照根据本公开的实施方案的方法、装置(系统)和计算机程序产品的流程图图解和/或方框图来描述本公开的各方面。应理解,流程图图解和/或方框图的每一个方框以及流程图图解和/或方框图的方框组合可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器。当经由计算机或其他可编程数据处理装置的处理器执行这些指令时,这些指令能够实现在流程图和/或框图的一个或多个框中指定的功能/动作。这样的处理器可以是但不限于通用处理器、专用处理器、特殊应用处理器或现场可编程门阵列。
附图中的流程图和框图示出根据本公开的各种实施方案的系统、方法和计算机程序产品的可能实现方式的体系结构、功能性和操作。在这个方面,流程图或框图中的每个框可以表示代码的模块、区段或部分,所述代码包括用于实现所指定的一个或多个逻辑功能的一个或多个可执行指令。还应当指出的是,在一些替代实现方式中,框中提到的功能可以不按附图中提到的顺序出现。举例来说,连续展示的两个框实际上可以大体上同时执行,或者这些框有时可以按相反的顺序执行,这取决于所涉及的功能性。还应当指出的是,框图和/或流程图图解的每个框以及框图和/或流程图图解中的框的组合可以由执行规定的功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现。
尽管前述内容针对本公开的实施方案,但是可在不背离其基本范围的情况下设计出本公开的其他和更多实施方案,且所述基本范围由所附权利要求确定。

Claims (20)

1.一种用于创建机器学习模型的方法,其包括:
生成包括用于视觉生成所述机器学习模型的一个或多个组件的用户界面;
基于通过所述用户界面接收的用户输入来修改指定定义所述机器学习模型的多个数学表达式的源代码;以及
将所述源代码编译成编译代码,所述编译代码在被执行时使所述机器学习模型的一个或多个参数在所述机器学习模型的训练期间被学习。
2.根据权利要求1所述的方法,其还包括基于所述用户输入在所述用户界面中修改所述机器学习模型的视觉表示。
3.根据权利要求2所述的方法,其中所述视觉表示包括所述机器学习模型的一个或多个层、在所述一个或多个层中的一个或多个神经元、输入到所述机器学习模型中的一个或多个特征、以及所述机器学习模型的一个或多个输出。
4.根据权利要求3所述的方法,其中所述视觉表示还包括与所述一个或多个层相关联的层类型、与所述一个或多个层相关联的激活函数、以及所述机器学习模型的模型类型。
5.根据权利要求1所述的方法,其还包括在所述用户界面中输出用于管理与所述机器学习模型相关联的一个或多个目标的一个或多个附加组件。
6.根据权利要求5所述的方法,其中所述一个或多个目标包括项目时间表、要预测的标签、与所述标签相关联的性能度量的阈值、以及用于所述机器学习模型的训练数据源中的至少一者。
7.根据权利要求1所述的方法,其还包括在所述用户界面中输出用于管理与所述机器学习模型相关联的一个或多个实验的一个或多个附加组件。
8.根据权利要求7所述的方法,其中所述一个或多个附加组件包括实验版本、数据集版本、所述机器学习模型的模型版本、以及实验状态。
9.根据权利要求1所述的方法,其还包括在所述用户界面中输出用于与训练所述机器学习模型的训练结果交互的一个或多个附加组件。
10.根据权利要求9所述的方法,其中所述一个或多个附加组件包括精度-召回曲线、混淆矩阵、所述机器学习模型的训练数据集和与所述训练数据集相关联的过滤器中的至少一者。
11.根据权利要求1所述的方法,其中将所述源代码编译成所述编译代码包括:
生成所述源代码的抽象语法树(AST)表示;
基于所述AST表示生成所述编译代码;以及
基于所述源代码的结构确定所述机器学习模型中的所述一个或多个参数将被学习。
12.根据权利要求1所述的方法,其中所述一个或多个组件包括用于指定用于定义所述机器学习模型的所述源代码的至少一部分的组件。
13.根据权利要求1所述的方法,其还包括在生成所述编译代码时,递增与所述机器学习模型和包括所述机器学习模型的实验相关联的一个或多个版本。
14.一种存储指令的非暂时性计算机可读介质,所述指令在由处理器执行时使所述处理器执行以下步骤:
生成包括用于视觉生成机器学习模型的一个或多个组件的用户界面;
基于通过所述用户界面接收的用户输入来修改指定定义所述机器学习模型的多个数学表达式的源代码;
基于所述用户输入,在所述用户界面中修改所述机器学习模型的视觉表示;以及
将所述源代码编译成编译代码,所述编译代码在被执行时使所述机器学习模型的一个或多个参数在所述机器学习模型的训练期间被学习。
15.根据权利要求14所述的非暂时性计算机可读介质,其中所述步骤还包括在所述用户界面中输出一个或多个附加组件,所述一个或多个附加组件用于管理(i)与所述机器学习模型相关联的一个或多个目标和(ii)与所述机器学习模型相关联的一个或多个实验。
16.根据权利要求15所述的非暂时性计算机可读介质,其中所述一个或多个附加组件包括实验版本、数据集版本、所述机器学习模型的模型版本、以及实验状态。
17.根据权利要求14所述的非暂时性计算机可读介质,其中所述步骤还包括在所述用户界面中输出用于与训练所述机器学习模型的训练结果交互的一个或多个附加组件。
18.根据权利要求17所述的非暂时性计算机可读介质,其中所述一个或多个附加组件包括精度-召回曲线、混淆矩阵、所述机器学习模型的训练数据集和与所述训练数据集相关联的过滤器中的至少一者。
19.根据权利要求14所述的非暂时性计算机可读介质,其中所述视觉表示包括所述机器学习模型的一个或多个层、所述一个或多个层中的一个或多个神经元、输入到所述机器学习模型中的一个或多个特征、所述机器学习模型的一个或多个输出、与所述一个或多个层相关联的层类型、与所述一个或多个层相关联的激活函数、或所述机器学习模型的模型类型。
20.一种系统,其包括:
存储指令的存储器,以及
耦合到所述存储器的处理器,并且所述处理器在执行所述指令时,被配置为:
生成包括用于视觉生成机器学习模型的一个或多个组件的用户界面;
基于通过所述用户界面接收的用户输入来修改指定定义所述机器学习模型的多个数学表达式的源代码;
基于所述用户输入,在所述用户界面中修改所述机器学习模型的视觉表示;
将所述源代码编译成编译代码,所述编译代码在被执行时使所述机器学习模型的一个或多个参数在所述机器学习模型的训练期间被学习;以及
在生成所述编译代码时,递增与所述机器学习模型和包括所述机器学习模型的实验相关联的一个或多个版本。
CN202080063420.8A 2019-09-12 2020-09-11 视觉创建和监控机器学习模型 Pending CN114365158A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962899264P 2019-09-12 2019-09-12
US62/899,264 2019-09-12
US17/017,594 2020-09-10
US17/017,594 US20210081841A1 (en) 2019-09-12 2020-09-10 Visually creating and monitoring machine learning models
PCT/US2020/050569 WO2021051006A1 (en) 2019-09-12 2020-09-11 Visually creating and monitoring machine learning models

Publications (1)

Publication Number Publication Date
CN114365158A true CN114365158A (zh) 2022-04-15

Family

ID=72645001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080063420.8A Pending CN114365158A (zh) 2019-09-12 2020-09-11 视觉创建和监控机器学习模型

Country Status (6)

Country Link
US (1) US20210081841A1 (zh)
EP (1) EP4028960A1 (zh)
JP (1) JP7439242B2 (zh)
CN (1) CN114365158A (zh)
CA (1) CA3153937A1 (zh)
WO (1) WO2021051006A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114821178A (zh) * 2022-05-05 2022-07-29 中国科学院水生生物研究所 一种基于深度学习的模块化图像识别分类系统的处理方法
CN115080924A (zh) * 2022-07-25 2022-09-20 南开大学 一种基于自然语言理解的软件许可证条款抽取方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481676B2 (en) 2019-08-27 2022-10-25 Sap Se Sensitivity in supervised machine learning with experience data
US20220019936A1 (en) * 2020-07-17 2022-01-20 Servicenow, Inc. Machine learning feature recommendation
US11861470B2 (en) 2020-08-13 2024-01-02 State Farm Mutual Automobile Insurance Company Simplistic machine learning model generation tool for predictive data analytics
US11693632B2 (en) * 2021-01-25 2023-07-04 Cisco Technology, Inc. Collaborative visual programming environment with cumulative learning using a deep fusion reasoning engine
JP2022162454A (ja) * 2021-04-12 2022-10-24 株式会社東芝 評価装置、評価方法、およびプログラム
US11847436B2 (en) * 2022-01-25 2023-12-19 Hewlett Packard Enterprise Development Lp Machine learning (ML) model-based compiler

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3276542A4 (en) * 2015-04-17 2018-04-11 Cocoro SB Corp. Processing system and program
JP6007430B2 (ja) * 2015-05-20 2016-10-12 大澤 昇平 機械学習モデル設計支援装置、機械学習モデル設計支援方法、機械学習モデル設計支援装置用プログラム
EP3416105A4 (en) * 2016-02-12 2019-02-20 Sony Corporation INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING DEVICE
JP6603182B2 (ja) * 2016-07-22 2019-11-06 ファナック株式会社 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体
US11681943B2 (en) * 2016-09-27 2023-06-20 Clarifai, Inc. Artificial intelligence development via user-selectable/connectable model representations
US9959498B1 (en) * 2016-10-27 2018-05-01 Google Llc Neural network instruction set architecture
US11734584B2 (en) * 2017-04-19 2023-08-22 International Business Machines Corporation Multi-modal construction of deep learning networks
US10719301B1 (en) * 2018-10-26 2020-07-21 Amazon Technologies, Inc. Development environment for machine learning media models
US20210012209A1 (en) * 2019-07-08 2021-01-14 Vian Systems, Inc. Techniques for modifying neural network definitions
US11610134B2 (en) * 2019-07-08 2023-03-21 Vianai Systems, Inc. Techniques for defining and executing program code specifying neural network architectures
US20210055915A1 (en) * 2019-08-23 2021-02-25 Google Llc No-coding machine learning pipeline

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114821178A (zh) * 2022-05-05 2022-07-29 中国科学院水生生物研究所 一种基于深度学习的模块化图像识别分类系统的处理方法
CN115080924A (zh) * 2022-07-25 2022-09-20 南开大学 一种基于自然语言理解的软件许可证条款抽取方法

Also Published As

Publication number Publication date
JP2022547668A (ja) 2022-11-15
CA3153937A1 (en) 2021-03-18
US20210081841A1 (en) 2021-03-18
EP4028960A1 (en) 2022-07-20
JP7439242B2 (ja) 2024-02-27
WO2021051006A1 (en) 2021-03-18

Similar Documents

Publication Publication Date Title
JP7439242B2 (ja) 機械学習モデルの視覚的作成及び監視
US11681925B2 (en) Techniques for creating, analyzing, and modifying neural networks
Ciaburro et al. Neural Networks with R: Smart models using CNN, RNN, deep learning, and artificial intelligence principles
JP7329127B2 (ja) ニューラルネットワークの動作を視覚化するための手法
JP7233600B2 (ja) ニューラルネットワークアーキテクチャを指定するプログラムコードを定義及び実行する技術
US20210012209A1 (en) Techniques for modifying neural network definitions
TW201802709A (zh) 引導分析系統和方法
JP7301210B2 (ja) ニューラルネットワークの動作を変更するための手法
Batarseh et al. The application of artificial intelligence in software engineering: a review challenging conventional wisdom
Sahin et al. Archive-based multi-criteria Artificial Bee Colony algorithm for whole test suite generation
Nicolas Scala for machine learning: data processing, ML algorithms, smart analytics, and more
Ardimento et al. Just-in-time software defect prediction using deep temporal convolutional networks
Kιran et al. Supplier selection with machine learning algorithms
Saheb-Nassagh et al. A probabilistic-based approach for automatic identification and refactoring of software code smells
Boopathi et al. Test data generation using flocking of fireflies in software testing
Voit et al. Method to interpret algorithms and design workflows in the complex computer-aided design development
Tamizharasi et al. A Novel Framework For Optimal Test Case Generation and Prioritization Using Ent-LSOA And IMTRNN Techniques
Rauf Coverage Analysis for GUI Testing
Padilla-Rascon et al. SDRDPy: An application to graphically visualize the knowledge obtained with supervised descriptive rule algorithms
van den Wildenberg et al. Easy Spark.
Pandi Artificial intelligence in software and service lifecycle
Shen et al. A Novel Analytics-as-a-Service System for Fuzzy Big Data
Triguero et al. Comparison of KEEL versus open source Data Mining tools: Knime and Weka software
Nordfors Prediction of code lifetime

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination