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

用于修改神经网络的操作的技术的制作方法

2022-03-31 11:26:48 来源:中国专利 TAG:

用于修改神经网络的操作的技术
1.相关申请的交叉引用
2.本技术要求于2019年7月8日提交的美国专利申请序列号16/505,592的权益,其据此通过引用并入本文。


背景技术:
技术领域
3.本发明的实施方案大体涉及计算机科学和人工智能,并且更具体地,涉及用于创建、分析和修改神经网络的技术。
4.现有技术描述
5.在常规神经网络设计过程中,设计者编写程序代码以开发解决特定类型问题的神经网络体系结构。举例来说,设计者可以编写python代码来设计将图像分类成不同类别的一个或多个神经网络层。设计者然后使用训练数据以及当处理该训练数据时神经网络应当产生的目标输出来训练神经网络。举例来说,设计者可以基于图像集来训练神经网络,该图像集显示各种景观以及指示该图像集中示出的景观的类型的标记。
6.在训练过程期间,训练算法更新神经网络的各层中所包括的权重,以提高神经网络生成与目标输出一致的输出的准确度。一旦训练完成,则使用验证数据来确定神经网络的准确度。如果神经网络未产生相对于验证数据足够准确的结果,则可以更新神经网络以提高整体准确度。举例来说,可以使用附加的训练数据来训练神经网络,直到神经网络产生更准确的结果。
7.神经网络可以具有不同范围的网络体系结构。“深度”神经网络通常具有复杂的网络体系结构,该网络体系结构包括许多不同类型的层和不同层当中错综复杂的连接拓扑。一些深度神经网络可以具有十个或更多个层,其中每个层可以包括数百或数千个单独的神经元,并且每个层可以经由数百或数千个单独的连接耦合到一个或多个其他层。因为深度神经网络可以被训练为以高度的准确度执行宽范围的任务,所以在人工智能领域中越来越广泛地采用深度神经网络。然而,在设计深度神经网络时会出现各种问题。
8.首先,通常与深度神经网络相关联的复杂网络体系结构可能使设计和生成深度神经网络变得困难。当设计给定的深度神经网络时,设计者通常必须编写大量的复杂代码,这些代码定义每一层如何运行,指定各层如何耦合在一起,以及描述由不同层执行的各种操作。为了简化该过程,设计者通常依赖于一个或多个程序设计库,这些程序设计库展示有助于深度神经网络设计的各种工具。然而,使用这些类型的程序设计库的一个缺点在于,这些程序设计库通常会使设计者对深度神经网络的设计感到困惑,因而妨碍设计者理解正在设计的深度神经网络实际上是如何运行的。因此,如果需要进行改变,则设计者可能难以修改深度神经网络。
9.第二,通常与深度神经网络相关联的复杂神经网络体系结构可能使得给定的深度神经网络的功能难以被理解。结果,普通设计者可能在分析给定的深度神经网络的行为以
及确定深度神经网络的哪些组成部分负责产生特定的行为或结果方面遇到麻烦。此外,由于通常用于定义和实现给定的深度神经网络的大量代码,普通设计者可能难以定位与深度神经网络的任何给定组成部分相关联的特定代码部分。因此,当给定的深度神经网络未按预期运行时,设计者通常无法确定为何深度神经网络未按预期运行或者如何修复或修改深度神经网络底层的代码。
10.第三,通常与深度神经网络相关联的复杂神经网络体系结构使得针对训练深度神经网络时所使用的训练数据来评估给定深度神经网络的性能相当困难。常规训练算法通常只记录给定的深度神经网络在训练阶段期间生成输出的准确度。此类常规训练算法通常未向设计者提供任何附加数据,这限制了设计者对深度神经网络处理训练数据的程度进行评估的能力。结果,大多数设计者无法确定或解释为何给定的深度神经网络在处理训练数据的给定样本时会生成特定的输出。
11.第四,通常与给定的深度神经网络相关联的复杂神经网络体系结构对于设计者而言可能难以进行表征和描述。因此,普通设计者可能难以向其他人解释给定的深度神经网络如何运行。由于上述原因,设计者通常不理解深度神经网络如何运行,并且因此无法充分表述或解释深度神经网络的各种功能特性。
12.如上所述,本领域所需要的是用于生成、分析和修改神经网络的更有效的技术。


技术实现要素:

13.各种实施方案包括一种用于约束神经网络的行为的计算机实现的方法,该方法包括:使该神经网络基于第一训练数据执行第一推理操作以生成第一输出;基于与该第一训练数据相关联的第一目标输出生成对应于该第一输出的第一规则;确定在执行第二推理操作时该神经网络生成该第一输出;以及执行该第一规则,该第一规则防止该神经网络响应于接收到第一输入而输出该第一输出,而取代地使该神经网络响应于接收到该第一输入而输出该第一目标输出。
14.所公开的技术相对于现有技术的至少一个技术优点在于,所公开的ai设计应用程序自动生成表征给定神经网络如何运行和起作用的自然语言描述。其中,这些描述有助于向设计者解释神经网络的操作,并且使设计者能够向其他人表述和解释神经网络的功能特性。
附图说明
15.为了能够详细地理解各种实施方案的上述特征的方式,可以通过参考各种实施方案来对以上简要概述的发明概念进行更具体的描述,其中一些实施方案在附图中示出。然而,应当注意,附图仅示出发明概念的典型实施方案,因此不应被视为以任何方式限制范围,并且还存在其他等效的实施方案。
16.图1示出了被配置为实现各种实施方案的一个或多个方面的系统;
17.图2是根据各种实施方案的图1的ai设计应用程序的更详细图示;
18.图3是根据各种实施方案的图2的网络生成器的更详细图示;
19.图4是根据各种实施方案的示出图2的网络生成gui如何有助于生成神经网络的屏幕截图;
20.图5是根据各种其他实施方案的示出图2的网络生成gui如何有助于生成ai模型的屏幕截图;
21.图6是根据各种实施方案的与图5的代理之一相关联的各种底层数据的屏幕截图;
22.图7是根据各种实施方案的用于经由图形用户界面生成和修改神经网络的方法步骤的流程图;
23.图8是根据各种实施方案的图2的网络分析器的更详细图示;
24.图9是根据各种实施方案的示出图2的网络分析gui如何有助于检查神经网络的屏幕截图;
25.图10是根据各种实施方案的示出图2的网络分析gui如何展示代理的底层功能性的屏幕截图;
26.图11是根据各种实施方案的示出图2的网络分析gui如何展示用于处理测试输入的代理集的屏幕截图;
27.图12是根据各种实施方案的示出图2的网络分析gui如何应用代理来处理测试输入的屏幕截图;
28.图13是根据各种实施方案的示出图2的网络分析gui如何应用另一代理来处理测试输入的屏幕截图;
29.图14是根据各种其他实施方案的示出图2的网络分析gui如何将不同的代理应用于测试输入的屏幕截图;
30.图15a至图15b根据各种实施方案示出用于经由图形用户界面分析神经网络的方法步骤的流程图;
31.图16是根据各种实施方案的图2的网络评估器的更详细图示;
32.图17是根据各种实施方案的示出图2的网络评估gui如何有助于探索训练数据的屏幕截图;
33.图18是根据各种实施方案的示出图2的网络评估gui如何经由样本图接收输入的屏幕截图;
34.图19是根据各种实施方案的示出图2的网络评估gui如何显示被指派高置信度值的训练数据样本的屏幕截图;
35.图20是根据各种实施方案的示出图2的网络评估gui如何显示被指派低置信度值的训练数据样本的屏幕截图;
36.图21是根据各种实施方案的示出图2的网络评估gui如何显示被标记为过度自信(overconfident)的训练数据样本的屏幕截图;
37.图22是根据各种实施方案的示出图2的网络评估gui如何指示促进所选神经网络输出的训练数据样本的屏幕截图;
38.图23是根据各种实施方案的示出图2的网络评估gui如何显示基于神经网络输出被分类的训练数据样本的屏幕截图;
39.图24是根据各种实施方案的示出图2的网络评估gui如何指示满足特定激活准则的训练数据样本的屏幕截图;
40.图25是根据各种实施方案的示出图2的网络评估gui如何显示基于表达式被分类的训练数据样本的屏幕截图;
41.图26是根据各种实施方案的示出图2的网络评估gui如何显示训练样本的相关部分的屏幕截图;
42.图27a至图27b根据各种实施方案示出用于经由图形用户界面相对于训练数据集来评估神经网络的方法步骤的流程图;
43.图28是根据各种实施方案的图2的网络描述器的更详细图示;
44.图29是根据各种实施方案的示出图2的网络描述gui如何有助于在各种情况下约束神经网络行为的屏幕截图;
45.图30是根据各种实施方案的示出图2的网络描述gui如何表述神经网络行为的屏幕截图;
46.图31是根据各种实施方案的示出图2的网络描述gui如何表示得出的事实的屏幕截图;
47.图32是根据各种实施方案的示出图2的网络描述gui如何描绘与神经网络的训练相关联的性能数据的屏幕截图;
48.图33是根据各种其他实施方案的示出图2的网络描述gui如何描绘与神经网络的训练相关联的其他性能数据的屏幕截图;
49.图34是根据各种实施方案的示出图2的网络描述gui如何显示在执行神经网络时所消耗的内存量的屏幕截图;
50.图35是根据各种实施方案的示出图2的网络描述gui如何表示给定神经网络的不同版本的屏幕截图;
51.图36是根据各种实施方案的示出图2的网络描述gui如何显示与给定神经网络的不同版本相关联的比较性能数据的屏幕截图;
52.图37是根据各种其他实施方案的示出图2的网络描述gui如何显示与给定神经网络的不同版本相关联的其他比较性能数据的屏幕截图;并且
53.图38a至图38b根据各种实施方案示出用于经由图形用户界面来表述和约束神经网络的行为的方法步骤的流程图。
具体实施方式
54.在以下描述中,阐述了许多特定细节以助于更透彻地理解各种实施方案。然而,对于本领域技术人员将明显的是,发明概念可以在没有这些具体细节中的一个或多个具体细节的情况下实践。
55.如上所述,深度神经网络可以具有复杂网络体系结构,该复杂网络体系结构包括许多层和错综复杂的连接拓扑。因此,对于设计者而言可能难以生成深度神经网络。此外,一旦生成深度神经网络,则对于设计者而言可能难以分析和理解与深度神经网络相关联的网络体系结构的复杂性。在分析和理解深度神经网络的能力有限的情况下,设计者可能更难以评估深度神经网络执行预期任务的程度。最后,在缺乏对深度神经网络如何运行的清晰理解的情况下,设计者无法轻松地表征深度神经网络的操作或向其他人描述该操作。
56.为了解决这些问题,各种实施方案包括一种人工智能(ai)设计应用程序,其向用户展示用于生成、分析、评估和描述神经网络的各种工具。所述ai设计应用程序包括网络生成器,所述网络生成器基于用户与网络体系结构的图形描绘的交互来生成和/或更新定义
神经网络的程序代码。所述ai设计应用程序还包括网络分析器,所述网络分析器响应于测试输入而在层水平、神经元水平和权重水平处分析神经网络的行为。所述ai设计应用程序还包括网络评估器,所述网络评估器跨训练数据样本的范围执行对神经网络的综合评估。最后,所述ai设计应用程序包括网络描述器,所述网络描述器用自然语言表述神经网络的行为,并且根据规则集约束所述行为。
57.所公开的技术相对于现有技术的至少一个技术优点在于,所公开的ai设计应用程序可以生成复杂神经网络体系结构,而不需要设计者用户编写大量程序代码或与大量程序代码交互。所公开的技术相对于现有技术的另一技术优点在于,所公开的ai设计应用程序向设计者提供关于给定神经网络体系结构的各个组成部分的底层操作和功能的详细信息。因此,该ai设计应用程序使设计者能够开发神经网络和更好地理解神经网络如何运行。所公开的技术相对于现有技术的另一技术优点在于,所公开的ai设计应用程序对给定神经网络在训练阶段期间如何运行进行详细分析,从而使设计者能够更好地理解为何神经网络基于特定的输入生成特定的输出。所公开的技术相对于现有技术的又另一技术优点在于,所公开的ai设计应用程序自动生成表征给定神经网络如何运行和起作用的自然语言描述。其中,这些描述有助于向设计者解释神经网络的操作,并且使设计者能够向其他人表述和解释神经网络的功能特性。这些技术优点代表了优于现有技术方法的一种或多种技术进步。
58.系统概述
59.图1示出了被配置为实现各种实施方案的一个或多个方面的系统。如图所示,系统100包括经由网络150耦合在一起的客户端110和服务器130。客户端110或服务器130可以是任何技术上可行的类型的计算机系统,包括台式计算机、膝上型计算机、移动装置、计算装置的虚拟化实例、分布式和/或基于云的计算机系统等。网络150可以是任何技术上可行的互连通信链路集,包括局域网(lan)、广域网(wan)、万维网或因特网等。客户端110和服务器130被配置为经由网络150通信。
60.如进一步所示,客户端110包括耦合在一起的处理器112、输入/输出(i/o)装置114和存储器116。处理器112包括被配置为处理数据和执行软件应用程序的任何技术上可行的硬件单元集。举例来说,处理器112可以包括一个或多个中央处理单元(cpu)、一个或多个图形处理单元(gpu)和/或一个或多个并行处理单元(ppu)。i/o装置114包括被配置为执行输入和/或输出操作的任何技术上可行的装置集,包括例如显示装置、键盘和触摸屏等。
61.存储器116包括被配置为存储数据和软件应用程序的任何技术上可行的存储介质,诸如,例如,硬盘、随机存取存储器(ram)模块和只读存储器(rom)。存储器116包括数据库118(0)、人工智能(ai)设计应用程序120(0)、ai模型122(0)和图形用户界面(gui)124(0)。数据库118(0)是存储各种类型的数据的文件系统和/或数据存储应用程序。ai设计应用程序120(0)是这样的软件应用程序,该软件应用程序在由处理器112执行时与在服务器130上执行的对应的软件应用程序交互操作,以生成、分析、评估和描述一个或多个ai模型。ai模型122(0)包括被配置为执行通用或专用的面向人工智能的操作的一个或多个人工神经网络。gui 124(0)允许用户与ai设计应用程序120(0)交流。
62.服务器130包括耦合在一起的处理器132、i/o装置134和存储器136。处理器132包括被配置为处理数据和执行软件应用程序的任何技术上可行的硬件单元集,诸如一个或多个cpu、一个或多个gpu和/或一个或多个ppu。i/o装置134包括被配置为执行输入和/或输出
操作的任何技术上可行的装置集,诸如显示装置、键盘或触摸屏等。
63.存储器136包括被配置为存储数据和软件应用程序的任何技术上可行的存储介质,诸如,例如,硬盘、ram模块和rom。存储器136包括数据库118(1)、ai设计应用程序120(1)、ai模型122(1)和gui 124(1)。数据库118(1)是存储各种类型的数据的类似于数据库118(1)的文件系统和/或数据存储应用程序。ai设计应用程序120(1)是这样的软件应用程序,该软件应用程序在由处理器132执行时与ai设计应用程序120(0)交互操作,以生成、分析、评估和描述一个或多个ai模型。ai模型122(1)包括被配置为执行通用或专用的面向人工智能的操作的一个或多个人工神经网络。gui 124(1)允许用户与ai设计应用程序120(1)交流。
64.一般而言,数据库118(0)和118(1)表示分布式存储实体的单独部分。因此,为了简单起见,在本文中将数据库118(0)和118(1)统称为数据库118。类似地,ai设计应用程序120(0)和120(1)表示分布式软件实体的单独部分,该分布式软件实体被配置为执行本文中所描述的发明性操作中的任何一个操作和全部操作。这样,在下文中将ai设计应用程序120(0)和120(1)统称为ai设计应用程序120。ai模型122(0)和122(1)同样表示包括一个或多个神经网络的分布式ai模型。因此,在本文中将ai模型122(0)和122(1)统称为ai模型122。gui 124(0)和124(1)类似地表示一个或多个gui的分布式部分。在本文中将gui 124(0)和124(1)统称为gui 124。
65.在操作中,ai设计应用程序120基于经由gui 124接收的用户输入来生成ai模型122。gui 124展示设计和分析工具,该等设计和分析工具允许用户创建和编辑ai模型122,探索ai模型122的功能性,相对于训练数据评估ai模型122,以及生成描述和/或约束ai模型122的性能和/或操作的各种数据,以及进行其他操作。下面结合图2更详细地描述ai设计应用程序120内执行上述操作的各种模块。
66.图2是根据各种实施方案的图1的ai设计应用程序的更详细图示。如图所示,ai设计应用程序120包括网络生成器200、网络分析器210、网络评估器230和网络描述器230。还如图所示,ai模型122包括一个或多个代理240,并且gui 124包括网络生成gui 202、网络分析gui 212、网络评估gui 222和网络描述gui 232。
67.在操作中,网络生成器200呈现网络生成gui 202以向用户提供用于设计和连接ai模型122内的代理240的工具。给定代理240可以包括执行各种面向ai的任务的神经网络242。给定代理240还可以包括执行通用任务的其他类型的功能元素。网络生成器200基于训练数据250来训练特定代理240中所包括的神经网络242。训练数据250可以包括用于训练神经网络的任何技术上可行的类型的数据。举例来说,训练数据250可以包括经修改的国家标准与技术研究院(mnist)数字训练集。下面结合图3至图7更详细地描述网络生成器200和网络生成gui 202。
68.当训练完成时,网络分析器210呈现网络分析gui 212,以向用户提供用于分析和理解给定代理240内的神经网络如何运行的工具。特别地,网络分析器210使网络分析gui 212显示给定神经网络242内的各种连接和权重,并且模拟给定神经网络242对各种输入的响应,以及进行其他操作。下面结合图8至图15b更详细地描述网络分析器210和网络分析gui 212。
69.此外,网络评估器220呈现网络评估gui 222,以向用户提供用于相对于训练数据
250评估给定神经网络242的工具。更具体地,网络评估器220经由网络评估gui 222接收指示训练数据250的特定部分的用户输入。网络评估器220然后模拟给定神经网络242如何响应于训练数据250的该部分。网络评估器220还可以使网络评估gui 222过滤训练数据250的特定部分,该特定部分使给定神经网络242生成一定类型的输出。下面结合图16至图27b更详细地描述网络评估器220和网络评估gui 222。
70.结合上述内容,网络描述器230分析与代理240相关联的给定神经网络242,并且生成向用户描述神经网络242的性能的自然语言表达式。网络描述器230还可以向用户提供与神经网络242如何解译训练数据250有关的各种“常识”事实。网络描述器230经由网络描述gui 232将该数据输出给用户。此外,网络描述器230可以经由网络描述gui 232从用户获得基于规则的表达式,然后基于这些表达式约束网络行为。此外,网络描述器230可以生成量化网络性能的各个方面的度量,然后经由网络描述gui 232向用户显示这些度量。下面结合图38至图38b更详细地描述网络描述器230和网络描述器gui 232。
71.大体参考图1至图2,ai设计应用程序120有利地向用户提供用于生成、分析、评估和描述神经网络行为的各种工具。所公开的技术不同于生成神经网络的常规方法,生成神经网络的常规方法通常混淆网络训练和来自用户的后续操作。
72.生成和修改神经网络
73.图3至图7示出当基于训练数据250生成神经网络242并随后修改该神经网络时由图2的网络生成器200实现的各种技术。如在本文中更详细描述的,网络生成器200生成网络生成gui 202以便有助于神经网络的生成和修改。
74.图3是根据各种实施方案的图1的网络生成器的更详细的图示。如图所示,网络生成器200包括编译器引擎300、合成引擎310、训练引擎320和可视化引擎330。
75.在操作中,可视化引擎330生成网络生成gui 202,并且经由网络生成gui 202从用户获得代理定义340。编译器引擎200编译给定代理定义340中所包括的程序代码以生成经编译的代码302。编译器引擎200被配置为解析、编译和/或解译任何技术上可行的编程语言,包括c、c 、python和相关联的框架、javascript和相关联的框架等。合成引擎310基于经编译的代码302和影响该代码如何执行的一个或多个参数来生成初始网络312。初始网络312是未经训练的,并且可能不以高度的准确度执行一个或多个预期操作。
76.训练引擎330基于训练数据250训练初始网络312以生成经训练的网络322。经训练的网络322可以以比初始网络312更高程度的准确度执行该一个或多个预期操作。训练引擎330可以执行任何技术上可行的类型的训练操作,包括反向传播、梯度下降等。可视化引擎330结合上述操作来更新网络生成gui 202,从而以图形方式描绘经由代理定义340定义的网络体系结构,以及示出经训练的网络322的各种性能属性。图4至图6示出网络生成gui 202的各种示例性屏幕截图。
77.图4是根据各种实施方案的示出图2的网络生成gui如何有助于生成神经网络的屏幕截图。如图所示,gui面板400包括模型定义面板410、超参数面板420和描述面板430。gui面板400驻留在网络生成gui 202内。
78.模型定义面板410是从用户获得网络体系结构的描述的文本字段。举例来说,模型定义面板410可以接收定义与神经网络相关联的一个或多个层以及这些层如何耦合在一起的程序代码。替代地,模型定义面板410可以接收以数学方式描述神经网络体系结构的数学
表示。在一个实施方案中,模型定义面板410展示网络的一部分并省略不需要由用户编辑的其他部分,诸如模块导入等。超参数面板420是接收影响如何训练神经网络的各种超参数的文本字段。举例来说,超参数面板420可以从用户接收多个训练时期和/或学习率。描述面板430包括对神经网络的自然语言描述,该自然语言描述是由网络生成器200至少部分地基于模型定义面板410的内容自动产生的。
79.网络生成器200实现上面结合图3描述的技术,以基于从用户获得的对网络体系结构的描述来生成诸如图2所示的神经网络。网络生成器200还更新gui面板400以包括网络体系结构440。网络体系结构440以图形方式描绘神经网络中的层的类型和布置以及与神经网络相关联的任何其他拓扑信息。在示出的示例中,网络体系结构440包括输入层442、两个卷积层442和446、最大池化层448、丢弃层(dropout layer)450和激活层452。
80.网络生成器300被配置为基于用户与网络体系结构440的交互来动态地修改模型定义面板410中所定义的底层神经网络242。举例来说,网络生成器300可以接收指示应当修改网络体系结构440的特定部分的用户输入。作为响应,网络生成器300修改底层神经网络,并且还以对应的方式更新模型定义面板410中所包括的定义。此外,网络生成器300被配置为基于用户与模型定义面板410的交互来动态地修改网络体系结构440。举例来说,gui面板400可以接收指示对模型定义面板410中阐述的描述进行的一个或多个改变的输入。作为响应,网络生成器300修改底层神经网络,并且还更新网络体系结构440以反映这些改变。
81.网络生成器300可以经由网络生成gui 302来实现上述技术,以便创建和修改代理240中所包括的神经网络242。如前所述,网络生成器300还可以定义执行通用操作的其他类型的代理。如下面结合图5更详细描述的,经由网络生成gui 302,网络生成器300获得实现特定ai模型122的代理240的配置。
82.图5是根据各种其他实施方案的示出图2的网络生成gui如何有助于生成ai模型的屏幕截图。如图所示,gui面板500包括代理面板510、设计区域520和训练数据面板530。gui面板500被包括在网络生成gui 202中。结合该示例讨论的ai模型执行与基于汽车的照片来确定牌照信息相关的各种操作。
83.代理面板510包括执行特定任务的一系列可用代理240,包括代理240(0)(“查找汽车”)、代理240(1)(“查找牌照”)、代理240(2)(“读取牌照”)和代理240(3)(“查阅注册”)。代理240(0)至240(2)通常是执行图像处理和标记操作的基于神经网络的代理。相比之下,代理240(3)包括这样的程序代码,该程序代码与外部服务器交流以获得与给定牌照相关联的注册信息。
84.基于用户与网络生成gui 202的交互,网络生成器200布置从代理面板510中选择的各种代理240以在设计区域520内产生ai模型122。在该示例中,ai模型122是神经网络242和其他功能单元的集合,其一经训练就可以分析汽车的照片以提取牌照号,然后获得与这些牌照号相关联的注册信息。在操作中,代理240(0)在输入图像内定位轿车或其他汽车。代理240(1)定位与这些轿车和其他汽车相关联的牌照。代理240(2)从所定位的牌照中提取文本。代理240(3)查询服务器以获得所提取的牌照号的注册信息。
85.网络生成器200基于训练数据250训练ai模型122(0)内的基于神经网络的代理240。在训练数据面板530内显示示例性训练数据。如图所示,训练数据面板530描绘汽车的各种样本照片。在一个实施方案中,可以标记每个汽车的牌照以有助于训练过程。
86.网络生成器200可以响应于用户输入展示与任何代理240相关联的底层数据。举例来说,响应于代理240(3)的用户选择,网络生成器200可以显示程序代码,该程序代码查询服务器以按照先前讨论的方式获得注册信息。网络生成器200可以接收对该程序代码的修改,然后相应地更新ai模型122。响应于用户对基于神经网络的代理240的选择,网络生成器200经由下面结合图6描述的各种gui元素来展示与该代理相关联的底层数据,包括底层神经网络242。
87.图6是根据各种实施方案的与图5的代理之一相关联的各种底层数据的屏幕截图。如图所示,图5的gui面板500包括叠加在gui面板500的其他gui元素上的窗口600。窗口600包括与所选代理相关联的各种底层数据。在示出的示例中,选择代理250(2)(“读取牌照”)。
88.窗口600包括:模型定义面板610,该模型定义面板包括定义代理250(2)的程序代码;超参数面板620,该超参数面板定义在训练相关联的神经网络时所使用的各种超参数;以及描述面板630,该描述面板描述该神经网络的各种属性。窗口600还包括网络体系结构640。以如上结合图4所述的方式,网络生成器200可以基于用户与网络体系结构640的交互来更新模型定义窗口610中所阐述的模型定义。举例来说,响应于指示应当移除网络体系结构640的层的用户输入,网络生成器200可以删除模型定义的对应部分。
89.大体参考图3至图6,上述技术为用户提供用于生成和更新神经网络的便利机制,该神经网络被集成到包括多个代理240的可能复杂的ai模型122中。此外,这些技术允许用户经由与对应的网络体系结构的图形描绘的直接交互来修改定义给定代理240的程序代码。网络生成器200基于经由网络生成gui 202进行的用户交互来执行上述各种操作。所公开的技术为用户提供用于设计神经网络以及与神经网络交互的便利工具,该神经网络向用户展示网络信息,而不是如现有技术中通常所见的那样使该信息保持隐藏。下面结合图7更详细地描述网络生成器200的操作。
90.图7是根据各种实施方案的用于经由图形用户界面生成和修改神经网络的方法步骤的流程图。尽管结合图1至图6的系统来描述方法步骤,但是本领域技术人员将理解,被配置为以任何顺序执行这些方法步骤的任何系统都落入本发明实施方案的范围内。
91.如图所示,方法700开始于步骤702,在该步骤中,图3的设计生成器200生成设计生成gui 202以描绘代理集和训练数据集。给定代理可以包括:执行面向神经网络的操作的神经网络;或在被执行时执行任何技术上可行的操作的程序代码。设计生成gui 202还包括设计区域,在该设计区域中,代理可以被布置并耦合在一起以生成ai模型122。
92.在步骤704处,网络生成器200经由网络生成gui 202接收形成ai模型的代理240的配置。当被耦合在一起时,给定代理的输出可以被提供作为对另一代理的输入,从而形成处理阶段的流水线。在一个实施方案中,设计生成gui 202可以允许用户将代理拖放到设计区域内的不同位置,以及拖动代理的输出和输入之间的连接。
93.在步骤706处,设计生成器200经由用户与设计生成gui 202的交互来接收代理定义。代理定义通常包括程序代码,该程序代码在被执行时执行与ai模型的总体操作相关联的一个或多个操作。本文中所讨论的代理定义对需要基于训练数据被训练的神经网络242进行定义。在一些情况下,如所讨论的,代理定义可以定义在被执行时执行给定操作的特定功能。
94.在步骤708处,网络生成器200编译在步骤706处所接收的代理定义以生成经编译
的代码。经编译的代码实现神经网络242的各层以及这些层之间的各种连接。经编译的代码通常以与执行ai模型的特定计算机系统相关联的底层硬件为目标。
95.在步骤710处,网络生成器200合成经编译的代码以生成网络的初始版本。这样做,网络生成器200利用一个或多个输入参数(包括配置参数以及训练参数)来执行经编译的代码,以实例化网络的实例。网络的初始版本是未经训练的,并且直到训练完成之后才可以准确地执行推理操作。
96.在步骤712处,网络生成器200基于训练数据来训练网络的初始版本,以生成网络的经训练的版本。训练数据通常包括网络要处理的数据样本,并且可能包括指示网络应当产生的正确输出的标记。网络生成器200可以使用反向传播、梯度下降或任何其他技术上可行的训练方法来训练网络。
97.在步骤714处,网络生成器200更新设计生成gui 202以展示与用户选择的代理240相关联的底层数据。举例来说,设计生成器200可以生成包括模型定义面板和超参数面板等的窗口,用户经由该窗口可以修改与代理240相关联的神经网络242。该窗口还可以包括对网络体系结构的图形描绘,用户可以与该图形描述交互以对神经网络施加修改。上面结合图6描述该特定示例。
98.在步骤716处,网络生成器200经由用户与设计生成gui 202的交互来接收对网络体系结构的修改。举例来说,用户可以选择网络生成gui 202中所描绘的网络体系结构的层,然后从网络体系结构中移除该层。在另一示例中,用户可以选择网络体系结构的一部分,然后修改与网络体系结构的该部分相关联的一个或多个参数。
99.在步骤718处,网络生成器200基于在步骤716处所接收的对网络体系结构的修改来更新和重新编译代理定义。举例来说,如果用户经由与设计生成gui 202的交互来移除网络体系结构的层,则网络生成器200可以更新代理定义以移除定义该层的一个或多个对应的代码行。
100.一般而言,上述用于生成和修改神经网络的技术允许用户以比常规方法所容许的速度更快的速度来设计和修改神经网络。其中,网络生成器200提供用于执行与网络生成相关联的复杂任务的简单且直观的工具。另外,网络生成器200方便地允许对神经网络体系结构进行的修改被无缝地传播回对应的代理定义。一旦以所描述的方式训练网络,网络分析器210就执行用于分析网络功能性的各种技术,如下面结合图8至图15b更详细描述的。
101.检查和分析神经网络的组成部分
102.图8至图15b阐述了在分析基于训练数据250被训练的神经网络时由图2的网络分析器210实现的各种技术。如本文中更详细描述的,网络分析器210生成网络分析gui 212以便有助于对神经网络的分析和检查。
103.图8是根据各种实施方案的图2的网络分析器的更详细图示。如图所示,网络分析引擎210包括推理引擎800、近似引擎810、语言引擎820和可视化引擎830。
104.在操作中,推理引擎800通过利用代理240和测试输入804执行推理操作来生成激活数据802。特别地,推理引擎向与代理240相关联的神经网络242提供测试输入804,然后确定该神经网络对测试输入804的响应。激活数据802指示与神经网络的特定层相关联的响应的概率分布。推理引擎800将激活数据802传输至可视化引擎830,用于随后合并到网络分析gui 212中。推理引擎800还将激活数据802传输至近似引擎810和语言引擎820。
105.近似引擎810结合训练数据250分析激活数据802以生成训练样本812。训练样本812包括训练数据250的子集,该训练数据的子集使神经网络242生成与激活数据802基本相似的激活数据。当给定的激活数据与激活数据802之间的数值差小于阈值差值时,给定的激活数据可以被视为与激活数据802“基本相似”。在一个实施方案中,训练数据250可以包括与先前在训练期间所记录的每个样本相关联的激活水平。在另一实施方案中,近似引擎810通过使推理引擎800利用每个样本执行推理操作来生成每个样本的激活水平。近似引擎810将训练样本812传输至可视化引擎830,用于随后合并到网络分析gui 212中。
106.语言引擎820处理激活数据802以便生成描述822。描述822是反映神经网络242相对于测试输入804的操作的各种高水平特性的自然语言表达式。举例来说,描述822可以指示激活数据802强烈建议应当将测试输入804分类到特定类别中。语言引擎820可以通过用对应于不同激活水平的特定字词填充模板表达式来生成自然语言描述。举例来说,给定模板可以采取“{副词}可能是{值}”的形式。语言引擎820可以根据激活数据802用不同的副词填充“副词”字段。语言引擎820还可以填充“值”字段以指示在生成激活数据802时由神经网络242输出的值。语言引擎820将描述822传输至可视化引擎830,用于随后合并到网络分析gui 212中。
107.可视化引擎830生成网络分析gui 212,以便从用户获得各种信息,包括测试输入804和对代理240的选择。举例来说,网络分析gui 212可以接收应当作为测试输入804提供给神经网络242的用户输入。替代地,网络分析gui 212可以基于用户输入来确定应当将训练数据250的特定部分作为测试输入804提供给神经网络242。可视化引擎830还更新网络分析gui 212以合并上述各种数据,包括激活数据802、训练样本812和描述822。可视化引擎830还可以用允许用户检查神经网络242的较深结构的各种其他数据来填充网络分析gui 212,如下面结合图9至图14更详细描述的。
108.图9是根据各种实施方案的示出图2的网络分析gui如何有助于检查神经网络的屏幕截图。如图所示,gui面板900包括通常与上面结合图8讨论的各种数据相关的各种gui元素。特别地,输入元素902是图形字段,推理引擎800经由该图形字段接收测试输入804。选择器904是选择字段,推理引擎800经由该选择字段接收对代理240的选择。图形元素906是显示激活数据802的图形字段。文本元素908是显示描述822的文本字段。网格元素910是在具有可配置单元格和维度的网格内显示训练样本812的图形字段。
109.还如图所示,gui面板900包括描绘与神经网络242相关联的各种数据以及神经网络242相对于测试数据804的性能的其他gui元素。具体地,层元素920指示神经网络242的不同层,并且被配置为接收对特定层的选择。元数据元素930指示描述所选择的层的元数据。权重元素940包括权重网格932。网格932中的每行对应于所选层中的特定神经元,而每列对应于特定输出。利用反映对应权重值的视觉属性来显示给定权重。在示出的示例中,较深色权重具有比较浅色权重更高的权重值。权重元素940被配置为显示对所选权重的自然语言描述,以便帮助用户理解所选权重如何参与转换测试输入804以产生激活数据802。激活面板950指示与所选层相关联的激活水平952。在一些情况下,取决于对层的选择,激活水平952可以类似于激活数据802。
110.网络分析器210结合网络分析gui 212生成上述gui元素,以便向用户展示神经网络242的功能性,并且帮助用户建立关于神经网络242在各种环境下如何运行的直观印象。
该方法不同于不容许以所述方式检查各个层、权重或神经元的常规技术。因此,网络分析器210为用户提供了有助于快速开发高准确度神经网络的强大工具。还可以将这些技术应用于基于代理的ai模型的更广泛背景中,如下面结合图10至图14更详细描述的。
111.图10是根据各种实施方案的示出图2的网络分析gui如何展示代理的底层功能性的屏幕截图。如图所示,窗口1000投影在图5的gui面板500上。窗口1000展示代理240(2)的底层功能性(“读取牌照”)。窗口1000被包括在网络分析gui 212中。
112.响应于用户对代理240(2)的选择,网络分析器210更新网络分析gui 212以包括窗口1000。窗口1000包括网络体系结构1010、权重1020、权重元数据1022、输入激活1030和输出激活1032。网络体系结构1010是定义与所选代理240(2)相关联的神经网络242的各层和各层之间的连接的图形描绘。网络体系结构1010的生成类似于图4的网络体系结构410的生成方式。
113.网络分析器210在窗口1000内生成权重1020,以示出与连接网络体系结构1010中的相邻层的权重相关联的权重值的分布。网络分析器210可以根据用户对不同连接的选择来显示不同的权重。网络分析器210将每个权重显示为具有取决于对应权重值的特定视觉属性(诸如颜色或阴影)的单元格。在示出的示例中,较深色权重具有比较浅色权重更大的值。网络分析器210还生成权重元数据1022以表达权重1020的各种属性,包括这些权重的形状、最小权重值、相关联的偏差的形状、该偏差中所包括的最小值以及与神经网络相关联的权重的任何其他技术上可行的属性。以这种方式显示权重为用户提供了与神经网络的特定单元格如何偏好不同的输出有关的信息,其方式如同上面结合图9的权重元素940所描述的方式。
114.网络分析器210还使窗口1000显示输入激活1030和输出激活1032,以示出神经网络的用户选择的层如何响应于用户选择的输入而运行。特别地,输入激活1030包括以特定视觉属性(诸如颜色或阴影)显示的各个单元格,这些单元格指示当神经网络处理训练数据的所选样本时与所选层的输入连接的激活水平。另外,输出激活1032包括用这样的视觉属性显示的各个单元格,该视觉属性指示来自所选层的输出连接的激活水平。以这种方式显示激活向用户指示了该层如何将输入转换为输出,并且可以帮助用户理解为何神经网络会做出(或未能做出)某些决策。
115.上面结合图9至图10描述的技术可以有利地应用于在若干深度水平处展示神经网络功能性,包括网络水平功能性、权重水平功能性和神经元水平功能性等。经由网络分析gui 212,网络分析器210使得利用常规方法不可用的神经网络的功能细节对于用户而言是可用的。图11至图14示出可应用上述技术来检查和理解神经网络操作的其他情形。
116.图11是根据各种实施方案的示出图2的网络分析gui如何展示用于处理测试输入的代理集的屏幕截图。如图所示,gui面板1100包括工具面板1110、训练数据面板1120和测试输入1122。在示出的示例中,训练数据面板1120包括发票集,该发票集需要被处理以提取各种数据,包括地址数据等。测试输入1122是由用户从训练数据面板1120中选择的样本发票。工具面板1110包括可应用于分析测试输入1122的一系列不同的代理250。如图所示,工具面板1110包括代理250(5)(“识别文本”)、代理250(6)(“识别地址”)、代理250(7)(“选择形状”)、代理250(8)(“翻译语言”)和代理250(9)(“提取字段”)。下面描述网络分析器210可以如何应用这些代理的各种示例。
117.图12是根据各种实施方案的示出图2的网络分析gui如何应用代理来处理测试输入的屏幕截图。如图所示,基于用户对代理250(5)的选择(“识别文本”),网络分析器210更新gui面板1100以强调包括文本的测试输入1122的区域,包括区域1200、1210、1220、1230和1240。一旦以这种方式标识文本,就可以应用附加的代理来执行附加的处理任务,如下面更详细描述的。
118.图13是根据各种实施方案的示出图2的网络分析gui如何应用另一代理来处理测试输入的屏幕截图。如图所示,基于用户对代理250(6)的选择(“识别地址”),网络分析器210更新gui面板1100以强调包括地址的测试输入1122的区域,诸如区域1300。gui面板1100还显示对应区域包括地址的置信水平。在一个实施方案中,可以从与代理250(6)中所包括的神经网络242的给定层相关联的激活水平的差异得出置信水平。在标识了一个或多个地址之后,可以应用另一代理来提取地址数据,如下面更详细描述的。
119.图14是根据各种其他实施方案的示出图2的网络分析gui如何将不同的代理应用于测试输入的屏幕截图。如图所示,基于用户对代理250(9)的选择(“提取字段”),网络分析器210从测试输入1122的区域1300中提取地址,并且将该地址加载到输出文件1400中。在示出的示例中,输出文件1400是需要填充目的地地址字段的提单。
120.大体参考图11至图14,上述示例示出了设计分析gui 212如何允许用户对实际输入数据测试各种代理240以便验证这些代理的恰当功能性。在给定代理240不按预期运行的情况下,设计分析gui 212帮助用户经由上面结合图9至图10描述的技术来分析给定代理内的神经网络242。下面结合图15a至图15b更详细地描述当经由设计分析gui 212与用户交互时由设计分析器210执行的各种操作。
121.图15a至图15b根据各种实施方案示出用于经由图形用户界面来分析神经网络的方法步骤的流程图。尽管结合图1至图2和图8至图14的系统描述了方法步骤,但是本领域技术人员将理解,被配置为以任何顺序执行这些方法步骤的任何系统都落入本发明实施方案的范围内。
122.如图15a所示,方法1500开始于步骤1502,在该步骤中,网络分析器210生成网络分析gui 212以描绘与代理相关联的底层数据。代理包括被训练为执行各种操作的神经网络。网络分析gui 212描绘了与神经网络(包括网络体系结构等)相关联的各种数据。
123.在步骤1504处,网络分析器210接收测试输入以应用于与代理相关联的神经网络。举例来说,网络分析器210可以接收描述测试输入的用户输入,诸如图9所示的手写数字。替代地,网络分析器210可以从训练数据250接收用户对训练样本的选择。网络分析器210通常基于与网络分析gui 212的一个或多个用户交互来接收测试输入。
124.在步骤1506处,网络分析器210基于在步骤1508处所接收的测试输入,利用神经网络执行推理操作来生成激活数据。激活数据可以是例如与神经网络的特定层相关联的激活水平。在一些情况下,激活数据可以指示与神经网络被配置为指派给测试输入的分类集相关联的概率分布。在步骤1508处,网络分析器210更新网络分析gui 212以描绘激活数据。
125.在步骤1510处,网络分析器210处理在步骤1506处生成的激活数据,以生成对神经网络性能的描述。由网络分析器210生成的描述是自然语言表达式,该自然语言表达式响应于测试输入而表征神经网络的至少一个功能或行为方面。举例来说,该描述可以指示:激活数据指示神经网络可以正确分类测试输入的可能性很大。网络分析器可以基于表达式模板
来生成该描述,该表达式模板填充有与不同的激活水平和不同的神经网络输出相对应的不同字词。在步骤1512处,网络分析器210更新网络分析gui 212以描绘该描述。
126.在步骤1514处,基于在步骤1508处生成的激活数据,网络分析器210处理先前用于训练神经网络的训练数据,以标识类似于测试输入的训练样本。举例来说,网络分析器210可以将每个训练样本输入到神经网络中以生成样本激活数据,然后将样本激活数据与在步骤1508处生成的激活数据进行比较。如果样本激活数据与激活数据之间的数值差小于阈值,则网络分析器210将确定训练样本类似于测试输入。熟悉神经网络的人将认识到,激活数据可以包括多个激活水平,并且比较激活数据涉及比较对应的激活水平。在步骤1516处,网络分析器210更新网络分析gui 212以描绘训练样本。方法1500在图15b中继续进行。
127.在步骤1518处,网络分析器210基于用户交互网络分析gui 212来确定与神经网络相关联的权重值集。举例来说,网络分析器210可以经由网络分析gui 212接收用户对神经网络的特定层的选择。网络分析器210然后可以提取与该层相关联的权重值集。该权重值集指示哪些神经元在不同程度上对哪些输出有贡献。在步骤1520处,网络分析器210更新网络分析gui以描绘该权重值集。特别地,网络分析器210生成表示该权重值集的单元格网格,其中每个单元格显示有表示对应权重值的一个或多个视觉属性。
128.在步骤1522处,网络分析gui 212响应于与测试输入相关联的输入而确定神经网络的所选层的输出。举例来说,网络分析器210可以确定与向所选层提供输入的一个或多个神经元相关联的一个或多个激活水平,然后确定与提供来自所选层的输出的一个或多个神经元相关联的一个或多个激活水平。在步骤1524处,网络分析器210更新网络分析gui以描绘输入激活水平和输出激活水平。这样做,网络分析器210使网络分析器212显示不同的单元格网格,其中每个单元格显示有表示对应激活水平的视觉属性。
129.网络分析器210执行方法1500,以便为用户提供关于神经网络的内部工作的详细信息。该信息允许用户做出关于如何修改神经网络以提高性能的知情决策。可以经由网络生成器200以上面结合图3至图7描述的方式修改神经网络。网络评估器220提供用于相对于训练数据评估神经网络的附加工具,如下面结合图16至图27b更详细描述的。
130.探索和分析用于训练神经网络的数据集
131.图16至图27b描述当相对于用于训练神经网络的训练数据评估该神经网络时由图2的网络评估器220实现的各种技术。如本文中更详细描述的,网络评估器220生成网络评估gui 222以便有助于基于神经网络的行为来探索训练数据。
132.图16是根据各种实施方案的图2的网络评估器的更详细图示。如图所示,网络评估器220包括激活引擎1600、置信度引擎1610、分类引擎1620、显著性引擎(saliency engine)1630和可视化引擎1640。
133.在操作中,激活引擎1600接收代理240和训练数据250,然后跨训练数据250中所包括的所有样本用神经网络242执行推理操作,以生成激活数据1602。激活数据1602包括由神经网络242为训练数据250的每个样本生成的激活水平集。给定的激活水平集指示与神经网络可指派给训练数据250的样本的类别集相关联的概率分布。激活引擎1600的运行类似于图8的推理引擎800。激活引擎1600将训练数据250和激活数据1602传输至置信度引擎1610、分类引擎1620和显著性引擎1630,以及传输至可视化引擎1640以合并到网络评估gui 222中。
134.置信度引擎1610基于激活数据1602中阐述的与每个样本相关联的激活水平来生成置信度数据1612。置信度数据1612包括每个样本的不同置信度值,该置信度值反映神经网络242可以对这些样本进行分类的准确度。对于给定的样本和对应的激活水平,置信度引擎1610确定最大激活水平(与应用于该样本的类别神经网络242相对应)与一个或多个其他激活水平(与未应用于该样本的类别神经网络242相对应)之间的差异。因此,指派给给定样本的置信度值指示神经网络242将类别指派给样本的相对强度。在神经网络242将不正确的类别指派给样本的情况下,可以将样本标记为“过度自信”,从而指示神经网络242强烈地指示样本的不正确类别。置信度引擎1610将置信度数据1612传输到分类引擎1620以及可视化引擎1640,以合并到网络评估gui 222中。
135.分类引擎1620基于激活数据1602、置信度数据1612和经由网络评估gui 222接收的用户输入以各种方式对训练数据250的样本进行分类。特别地,分类引擎1620将与激活数据1602中所包括的相似激活水平相关联的训练数据250的样本分组在一起。分类引擎1620在具有反映激活水平的相似性的相对位置的二维图上定位样本组。分类引擎1620还基于置信度数据1612中所包括的对应置信度值来过滤训练数据250的样本。当执行这些各种分类操作时,分类引擎1620生成经分类的样本1622,并且将经分类的样本1622传输至可视化引擎1640,用于合并到网络评估gui 222中。
136.显著性引擎1630处理训练数据250,以针对训练数据250的任何给定样本确定该样本的不同部分影响神经网络242的输出的程度。当处理给定样本时,显著性引擎1630对样本的一个或多个部分应用不同的修改以生成该样本的不同版本。显著性引擎1630然后使神经网络242基于样本的不同版本生成单独的激活水平。显著性引擎1630跨样本的不同版本比较激活水平,以确定对样本的一个或多个部分进行的修改是否引起这些激活水平的变化。显著性引擎1630然后生成显著图,该显著图在视觉上指示样本的各个部分影响神经网络242的输出的程度。显著性引擎1630跨训练数据250的所有样本执行该方法以生成显著性数据1632。显著性引擎1630将显著性数据1632传输至可视化引擎1640,用于合并到网络评估gui 222中。
137.可视化引擎1640接收训练数据250、激活数据1602、置信度数据1612、经分类的样本1622和显著性数据1632,并且基于该数据生成和/或更新网络评估gui 222。如下面结合图17至图27b更详细描述的,网络评估gui 222展示交互工具,经由该交互工具,用户可以相对于神经网络242在处理训练数据250时如何运行来探索该训练数据。
138.图17是根据各种实施方案的示出图2的网络评估gui如何有助于探索训练数据的屏幕截图。如图所示,gui面板1700包括样本图1710、样本视图1730、激活显示1740、代码输入1750和过滤器选择器1760。gui面板1700被包括在网络评估gui 222中。gui面板1700的各种元素是相对于示例性训练数据250来描述的,该示例性训练数据包括描绘手写数字的图像样本,诸如在先前描述的mnist数字训练集中可见的那些。
139.网络评估器220经由上面结合图16描述的分类引擎1610来生成样本图1710。网络评估器220在样本图1710内为每个样本生成不同的位置。任意两个样本的相对位置通常反映该两个样本的相似性。因此,与样本图1710上的邻近位置相关联的样本通常相似,并且样本1710上的具有远距位置的样本通常不同。网络评估器220可以通过以下方式来生成样本图1710:比较不同样本的激活水平,然后将具有相似激活水平的样本定位在样本图1710的
相似区域内,并且将具有不同激活水平的样本定位在样本图1710的不同区域中。网络评估器220还可以直接比较训练数据250的样本以定位这些样本。在一个实施方案中,样本图1710可以是t分布式随机邻域嵌入(t-sne)图。
140.样本图1710包括样本的集群1712、1714、1716、1718和1720。每个集群通常对应于神经网络242的特定输出。因此,对应于与给定集群相关联的样本的激活水平通常彼此相似。此外,在本文中所描述的示例中,给定的集群通常包括描绘特定手写数字的样本。样本在样本图1710中被表示为点或叉。用叉表示的样本以前述方式被标记为“过度自信”。
141.样本视图1730显示经由样本图1710选择的样本1732的图形描绘。如图所示,当光标1702位于集群1712内的某一位置上时,样本视图1730显示与该位置相关联的样本1732的图形描绘。在这种情况下,显示为“4”。激活显示1740描绘与样本1732相关联的激活水平1742。激活水平1742被包括在激活数据1602中并且以上面结合图16描述的方式经由激活引擎1600生成。激活水平1742指示神经网络242提供对样本1732描绘“4”的强指示。如图18所示,当光标1702在样本图1710内移动时,网络评估器220更新样本视图1730和激活显示1740。
142.图18是根据各种实施方案的示出图2的网络评估gui如何经由样本图接收输入的屏幕截图。如图所示,当光标1702位于集群1714内的某一位置上时,样本视图1730显示与该位置相关联的样本1832的图形描绘。在这种情况下,显示为“3”。激活显示1740描绘与样本1832相关联的激活水平1842,该激活水平指示神经网络242提供对样本1832描绘“3”的适度指示。
143.大体参考图17和图18两者,代码输入1750是这样的文本字段,用户可以经由该文本字段编写用于处理和过滤样本图1710的程序代码。示出的示例性代码使网络分析器220在生成样本图1710时向每个样本集群指派不同的颜色。代码输入1750可以预先填充有由网络评估器220生成的程序代码。过滤器选择器1760是这样的输入元素,该输入元素接收指示要应用于样本图1710的特定过滤器的用户输入。每个过滤器通常对应于程序代码的一部分,该程序代码部分在被执行时修改样本图1710。在经由过滤器选择器1760选择给定过滤器时,网络评估器220用对应于该过滤器的程序代码部分填充代码输入1750,从而允许用户定制和执行该程序代码。下面结合图19至图21描述网络评估器220可以如何修改样本图1710的各种示例。
144.图19是根据各种实施方案的示出图2的网络评估gui如何显示被指派高置信度值的训练数据样本的屏幕截图。如图所示,响应于用户对“高置信度”过滤器的选择,网络评估器220将样本图1710更新为仅显示与被指派高置信度值的样本相对应的位置。网络评估器220经由上面结合图16描述的置信度引擎1610向样本指派置信度值。如先前所讨论的,指派给给定样本的置信度值表示与该样本相关联的最高激活水平与一个或多个其他激活水平之间的差异。
145.在示出的示例中,光标1702驻留在与描绘“2”的样本1932相关联的集群1716内的某一位置处。激活水平1942指示神经网络242提供对样本1932描绘“2”的非常强的指示。因为神经网络242未提供任何其他显著的指示,所以样本1932被指派高置信度值,并且因此当样本图1710以所讨论的方式被过滤时该样本被示出。
146.代码输入1750包括这样的程序代码,该程序代码经由网络分析器220被执行以标
识具有高置信度值的样本,然后更新样本图1710以仅显示这些样本。网络分析器220可以接收对代码输入1750中所示出的代码的修改,然后执行该经修改的代码以更新样本图1710。举例来说,网络分析器220可以接收对阈值置信度值的修改,然后使样本图1710显示具有超过该经修改的阈值置信水平的置信度值的样本。如下面结合图20至图21描述的,网络分析器220还可以用其他过滤器过滤样本。
147.图20是根据各种实施方案的示出图2的网络评估gui如何显示被指派低置信度值的训练数据样本的屏幕截图。如图所示,响应于用户对“低置信度”过滤器的选择,网络评估器220更新样本图1710以仅显示与被指派低置信度值的样本相对应的位置。还如图所示,光标1702驻留在与描绘“5”的样本2032相关联的集群1718内的某一位置处。激活水平2042指示神经网络242提供对样本2032描绘“5”的弱指示以及对样本2032描绘“2”的弱指示。因为没有任何指示大大超过其他指示,所以样本2032被指派低置信度值,并且因此当样本图1710以所讨论的方式被过滤时该样本被示出。
148.图21是根据各种实施方案的示出图2的网络评估gui如何显示被标记为过度自信的训练数据样本的屏幕截图。如图所示,响应于用户对“过度自信”过滤器的选择,网络评估器220更新样本图1710以仅显示与被标记为“过度自信”的样本相对应的位置。这些样本可能具有负置信度值。还如图所示,光标1702驻留在与描绘“3”的样本2132相关联的集群1714内的某一位置处。激活水平2142指示神经网络242提供对样本2132描绘“2”的强指示以及对样本2132描绘“3”的弱指示。因为神经网络242相对于样本2132提供不正确输出,所以样本2132被标记为“过度自信”,并且因此当样本图1710以所讨论的方式被过滤时该样本被示出。
149.一般而言,网络评估器220可以基于除了结合图17至图21讨论的示例性训练数据之外的任何技术上可行的训练数据250的集合来执行上述评估技术。图22至图27描绘网络评估器220如何相对于另一示例性训练数据集来执行其他评估技术。
150.图22是根据各种实施方案的示出图2的网络评估gui如何指示促进所选神经网络输出的训练数据样本的屏幕截图。如图所示,图10的窗口1000的更新版本包括输入激活1030和输出激活1032,其中为清楚起见省略了窗口1000的其他元素。如先前所讨论的,输出激活1032包括单元格网格,在处理训练数据面板530中所包括的训练数据250的样本时,这些单元格对应于神经网络的所选层的输出。
151.在选择输出激活1032内的单元格2200时,网络评估器220强调训练数据250内使单元格2200提供升高的输出的特定样本。如图所示,网络评估器220强调样本2202和2204,从而指示当神经网络224处理样本2202和2204时,单元格2200提供升高的输出。该技术的优点在于,用户可以了解神经网络224的特定层内的神经元如何响应训练数据250中所包括的不同类型的样本。网络评估器220还可以基于所选单元格对训练数据250进行分类,下面将结合图23进行更详细的描述。
152.图23是根据各种实施方案的示出图2的网络评估gui如何显示基于神经网络输出被分类的训练数据样本的屏幕截图。如图所示,响应于用户对单元格2200的选择,网络评估器220对训练数据250进行分类,以将促进与单元格2200相关联的神经元的激活的样本放置在训练数据面板530的左侧,并且将不促进与单元格2200相关联的神经元的激活的样本放置在训练数据面板530的右侧。
153.此外,网络评估器220生成包括曲线图2303的激活面板2300。曲线图2302指示经分类的训练数据的不同部分如何有力地促进与单元格2200相关联的神经元的激活。举例来说,曲线图2302在样本2202和2204之上具有升高的水平,但是结合以较小程度促进神经元的激活的样本从左到右逐渐减小。网络评估器220可以相对于与多个神经元的输出相关的表达式执行上面结合图22至图23描述的技术,如下面结合图24至图25更详细描述的。
154.图24是根据各种实施方案的示出图2的网络评估gui如何指示满足特定激活准则的训练数据样本的屏幕截图。如图所示,表达式输入2400包括条件表达式,针对该条件表达式,测试训练数据250中所包括的样本。特别地,对于给定的训练样本,当神经网络224处理该给定的训练样本时,网络评估器220确定该表达式中所包括的每个神经元的激活水平。网络评估器220然后基于所确定的激活水平评估该表达式以输出真值/假值。网络评估器220强调条件表达式评估为逻辑真的特定样本。在示出的示例中,该表达式对样本2402和2404进行肯定评估,并且因此网络评估器220强调这些样本。网络评估器220还可以基于用户生成的表达式对训练数据250的样本进行分类,如下面结合图25描述的。
155.图25是根据各种实施方案的示出图2的网络评估gui如何显示基于表达式被分类的训练数据样本的屏幕截图。如图所示,表达式输入2400包括这样的算术表达式,基于该算术表达式对训练数据250中所包括的样本进行分类。对于给定的训练样本,当神经网络224处理该给定的训练样本时,网络评估器220确定该表达式中所包括的每个神经元的激活水平。网络评估器220基于所确定的激活水平来评估该表达式以生成输出值。网络评估器220然后基于与每个样本相关联的输出值来对训练数据250进行分类。在示出的示例中,样本2402和2404与升高的输出值相关联,并且因此网络评估器220将这些样本分类到训练数据面板530的左侧。网络评估器220还在激活面板2300内生成曲线图2502,以指示与训练数据250的对应样本相关联的输出水平。
156.大体参考图22至图25,网络评估器220经由先前结合图16描述的分类引擎1620来执行所公开的分类技术。图16的显著性引擎1630执行用于确定对神经网络224的输出产生影响的训练数据样本的特定部分的附加技术,如下面结合图26更详细描述的。
157.图26是根据各种实施方案的示出图2的网络评估gui如何显示训练样本的相关部分的屏幕截图。如图所示,显著性显示2600包括所选样本2604的显著图2602。显著图2602指示响应于样本2604而对神经网络224的输出变化产生影响的样本2604的特定部分。网络评估器220通过利用样本2604执行灵敏度分析来生成显著图2602。这样做,网络评估器220生成样本2604的稍经修改的版本,然后确定神经网络224的输出相对于那些稍经修改的版本如何变化。网络评估器220然后将灵敏度值指派给样本2604的每个部分,从而指示该部分影响神经网络224的输出的程度。在示出的示例中,样本2604中所描绘的汽车的前部被加阴影以指示汽车前部的变化引起神经网络224的输出的变化。
158.大体参考图16至图26,所公开的技术为用户提供用于相对于作为训练神经网络的基础的训练数据来评估神经网络的一系列工具。本领域技术人员将理解,可以基于除了用于训练神经网络的训练数据之外的任何数据集应用所公开的技术来评估神经网络。下面结合图27a至图27b更详细地描述迄今所描述的由网络评估器220执行的技术。
159.图27a至图27b根据各种实施方案描述用于经由图形用户界面相对于训练数据集来评估神经网络的方法步骤的流程图。尽管结合图1至图2和图16至图26的系统描述方法步
骤,但是本领域技术人员将理解,被配置为以任何顺序执行这些方法步骤的任何系统都落入本发明实施方案的范围内。
160.如图27a所示,方法2700开始于步骤2702,在该步骤中,网络评估器220获得用于训练神经网络的训练数据样本。在各种实施方案中,网络评估器220还可以获得未用于训练神经网络的训练数据样本,诸如验证集内所包括的样本。网络评估器220执行用于相对于所获得的训练数据来评估神经网络的各种技术。
161.在步骤2704处,网络评估器220生成包括每个样本的激活水平的关于样本的激活数据。举例来说,网络评估器220可以将每个样本输入到神经网络中,然后记录神经网络的特定层(诸如倒数第二层)的输出。给定训练样本的激活水平集指定神经网络指示相关联的样本的每个可能的输出的强度。
162.在步骤2706处,网络评估器220基于对应的激活水平集来生成每个样本的置信度值。对于给定的样本和对应的激活水平,网络评估器220确定最大激活水平与一个或多个其他激活水平之间的差异。概念上,指派给给定样本的置信度值指示神经网络对样本进行分类的相对强度。
163.在步骤2708处,网络评估器220基于在步骤2704处生成的激活水平来对样本进行分组。举例来说,网络评估器220可以比较与两个样本相关联的激活水平,并且将差值指派给该对样本。网络评估器220然后可以将具有低相互差值的样本收集到特定组中。当比较两个激活水平集时,网络评估器220通常比较与相同分类相关联的激活水平。
164.在步骤2710处,网络评估器220生成网络评估gui 222,以显示样本组、激活水平和置信度值。这样做,网络评估器220使网络评估gui 222显示指示在步骤2708处生成的样本组的样本图。图17中描绘了示例性样本图。网络评估器220还使网络评估gui 222显示在步骤2704处生成的激活水平,并且在一些实施方案中显示在步骤2706处生成的置信度值。
165.在步骤2712处,网络评估器220接收对这样的过滤准则的选择,该过滤准则应当用于对与训练数据样本相关联的数据的显示进行过滤。举例来说,给定的过滤准则可以指示应当仅显示被指派升高的置信度值的样本。响应于所选过滤准则,在步骤2714处,网络评估器220更新网络评估gui 222,以基于所指派的置信度值和在步骤2712处接收的过滤准则来修改一个或多个样本组。特别地,网络评估器220使网络评估gui 222仅显示与满足过滤准则的样本相关联的数据。方法2700在图27b中继续进行。
166.在步骤2716处,网络评估器220接收对与神经网络相关联的输出神经元的选择。输出神经元可以驻留在神经网络的任何层中。实际上,网络评估器220从用户接收对给定层的选择,然后网络评估器220接收对与该层相关联的特定输出的选择。
167.在步骤2718处,网络评估器220基于在步骤2704处生成的激活水平并且基于所选神经元的激活水平来对训练数据样本进行分类。特别地,网络评估器220相对于关联于样本的激活水平与关联于所选神经元的激活水平相匹配的密切程度来对样本进行排名,从而指示有力促进所选神经元的激活的特定样本。在步骤2720处,网络评估器220更新网络评估gui 222以显示经分类的样本。这样做,网络评估器220可以生成这样的曲线图,该曲线图指示每个样本促进所选神经元的激活的程度。
168.在步骤2722处,网络评估器220接收与神经元集的激活水平相关的表达式。该表达式可以是评估为真或假的条件表达式,或评估为数值的算术表达式。网络评估器220基于由
神经网络响应于每个样本而产生的激活水平来评估该表达式。网络评估器220将该评估的结果指派给对应的样本。
169.在步骤2724处,网络评估器220基于对表达式的评估来对训练数据样本进行分类。举例来说,网络评估器220可以标识表达式评估为真的特定样本。在步骤2726处,网络评估器220更新网络评估gui222以显示经分类的样本。这样做,网络评估器220可以生成这样的曲线图,该曲线图指示评估每个样本的表达式的结果。
170.在步骤2728处,网络评估器220生成显著图,该显著图指示对神经网络的输出产生影响的所选样本区域。网络评估器220通过利用样本执行灵敏度分析来生成显著图。具体地,网络评估器220生成每个样本的稍经修改的版本,然后确定神经网络的输出相对于那些稍经修改的版本如何变化。在步骤2730处,网络评估器220更新网络评估gui 222以显示显著图。
171.大体参考图16至图27b,网络评估器220有利地提供用于分析和评估神经网络相对于训练数据如何运行的技术,从而允许用户了解如何改进神经网络的操作和获得对如何改进神经网络的操作的直观印象。另外,网络评估gui 222有助于用户基于神经网络如何响应训练数据来分析和探索训练数据,从而帮助用户进一步增强该直观印象。如下面结合图28至图38b更详细描述的,上面结合图2描述的网络描述器230执行可应用于描述和约束神经网络性能的附加操作。
172.表述和约束神经网络的行为
173.图28至图38b描述在分析神经网络的行为时由图2的网络描述器230实现的各种技术。如本文中更详细描述的,网络描述器230生成网络描述gui 232,以表达描述神经网络行为的各种数据并且基于用户输入约束所述行为。
174.图28是根据各种实施方案的图2的网络描述器的更详细图示。如图所示,网络描述器230包括规则引擎2800、表述引擎2810、性能引擎2820和可视化引擎2830。
175.在操作中,规则引擎2802在处理训练数据250时分析神经网络242内的神经元集的行为,并且生成用于修改神经网络242的输出的规则2802。举例来说,规则2802中所包括的给定规则可以指示:神经网络242的给定层中所包括的给定神经元何时输出某一值;神经网络242的输出是不准确的并且应当被替代输出替换。规则引擎2802可以在处理训练数据250时,通过标识当神经网络242产生不正确输出时出现的神经元活动的特定模式,基于神经网络242的性能来自动生成规则。规则引擎2802将这些特定模式标记为“特例”,并且为这些特例生成替代输出。规则引擎2802还可以经由网络描述gui 232接收这样的用户输入,该用户输入指示应当应用于神经网络242或集成到该神经网络中的特定规则。规则引擎2800还可以经由网络描述gui 232向用户展示规则2802以供修改。规则引擎2800将规则2802传输至可视化引擎2830,用于合并到网络描述gui 232中。下面结合图29更详细地描述规则引擎2802的操作。
176.表述引擎2810在处理训练数据250时分析神经网络242的行为,并且生成经由自然语言表达式来描述神经网络242的各种特性的表述的知识2812。举例来说,表述引擎2810可以跨训练数据250的样本范围分析神经网络242的准确度,然后生成自然语言表达式,该自然语言表达式指示神经网络可以最准确地分类的样本的特定类型。表述引擎2810还可以基于存储在知识库2850中的数据来生成表述的知识2812。知识库2850包括这样的逻辑事实:
当处理训练数据250的特定样本时,表述引擎2810映射到神经网络242的各种行为。举例来说,假设神经网络242将训练数据250的样本分类为描绘包括车门的轿车。表述引擎2810可以从知识库2850中提取指示轿车的侧面具有车门的逻辑事实。基于该逻辑事实,表述引擎2810可以生成表述的知识2812,该表述的知识指示训练数据250的样本描绘汽车的侧面。表述引擎2810将表述的知识2812传输至可视化引擎2830,用于合并到网络描述gui 232中。下面结合图30至图31更详细地描述表述引擎2810的操作。
177.性能引擎2820在训练期间以及在随后执行推理操作时分析神经网络242的性能,并且生成量化神经网络242的性能的性能数据2822。特别地,性能数据2822指示:神经网络242收敛到各种准确度水平的速度有多快;神经网络242可以分类不同的输入的速度有多快;以及神经网络242的每一层在执行期间消耗的内存有多少。性能引擎2820还可以生成神经网络242的替代版本,并且对这些替代版本执行比较分析。性能引擎2820将性能数据2822传输至可视化引擎2830,用于合并到网络描述gui 232中。下面结合图32至图37更详细地描述性能引擎2822的操作。
178.可视化引擎2830接收规则2802、表述的知识2812和性能数据2822,并且基于该数据生成和/或更新网络描述gui 232。网络描述gui 232展示交互工具,用户可以经由该交互工具生成和/或修改规则2802、查看表述的知识2812、生成性能2822以及分析神经网络242的替代版本,如下面结合图29至图37更详细描述的。
179.图29是根据各种实施方案的示出图2的网络描述gui如何有助于在各种情况下约束神经网络行为的屏幕截图。如图所示,规则输入2900包括规则2902,该规则指定神经网络242应当生成经修改的输出数据所处的环境。特别地,规则2902包括这样的程序代码,该程序代码指示如果激活数据被视为特例,则应当输出特例输出数据2912而不是输出数据2910。激活数据可以包括,例如,神经网络242的一个或多个层内的一个或多个神经元的输出,或基于那些输出并评估为给定值的表达式。当神经网络242执行推理操作时,执行与规则2902相关联的程序代码,以便标识特例情形并且作为响应修改神经网络242的输出。
180.网络描述器230可以通过以下方式自动生成用于规则2902的程序代码:当生成不正确的输出时分析神经网络242的激活模式,然后将那些激活模式映射到正确的输出。网络描述器230还可以经由规则输入2900从用户接收定义规则2902的程序代码。除了生成约束网络行为的规则之外,网络描述器还可以生成描述网络行为的表达式,如下面结合图30至图31更详细描述的。
181.图30是根据各种实施方案的示出图2的网络描述gui如何表述神经网络行为的屏幕截图。如图所示,表述面板3000包括词汇表3002、定义3004、常识事实3006和得出的事实3008。表述面板3000被包括在网络描述gui 232中。
182.网络描述器230从知识库2850获得词汇表3002、定义3004和常识事实3006。词汇表3002包括与轿车相关联的各种术语。定义3004包括与轿车相关联的术语的定义。常识事实3006包括普遍适用的逻辑事实,以及具体可应用于汽车的其他逻辑事实。当分析训练数据250的样本时,网络描述器230基于神经网络242的行为来生成得出的事实3008。在本文中所描述的示例中,训练数据250的样本是轿车的图像,如分段面板3010、3012、3014和3016所示。
183.分段面板3010、3012、3014和3016描绘神经网络242基于训练数据250的样本生成
的各种分段图。分段面板3010指示与轿车相关联的样本区域。分段面板3012指示与轿车的车轮相关联的样本区域。分段面板3014指示与轿车后部相关联的样本区域。分段面板3016指示与轿车的后方牌照相关联的样本区域。
184.网络描述器230基于为训练数据250的样本生成的分段图,通过在逻辑上组合常识事实3006来生成得出的事实3008。网络描述器230可以揭示用于响应于用户输入而生成每个得出的事实3008的逻辑过程,如下面结合图31描述的。
185.图31是根据各种实施方案的示出图2的网络描述gui如何表示得出的事实的屏幕截图。如图所示,表述面板3000包括解释3100,该解释概述了网络描述器230实现的确定训练数据250的样本中的轿车为背离的逻辑步骤。特别地,网络描述器230确定神经网络242标识训练数据250的样本中的后备箱,如分段面板3014所示。网络描述器230还确定,因为大多数轿车在后部具有后备箱,所以该轿车的后部是可见的。网络描述器230还确定当某事物的后部可见时,则该事物是背离的,如常识事实3006所阐述的。基于这些不同的事实,网络描述器230得出结论:样本中所示的轿车是背离的。
186.大体参考图30至图31,网络描述器230有利地提供自然语言描述和解释,该等自然语言描述和解释表征当处理不同的输入时神经网络242如何执行。基于这些解释,用户可以更好地理解神经网络242如何执行以及神经网络242操作是否适用于各种任务。网络描述器230还生成量化神经网络242在训练和推理期间如何执行的性能数据,如下面结合图32至图37更详细描述的。
187.图32是根据各种实施方案的示出图2的网络描述gui如何描绘与神经网络的训练相关联的性能数据的屏幕截图。如图所示,性能面板3200包括:与图28的神经网络242相关联的网络体系结构3202;以及准确度曲线图3210。网络体系结构3202是这样的交互式gui元素,如前所述,该交互式gui元素被配置为响应于用户输入而修改神经网络242的底层定义。准确度曲线图3210包括曲线3212,该曲线表示在训练期间神经网络242的准确度如何随时间变化。如图所示,神经网络242执行操作的准确度在训练程序期间随时间推移而提高。网络描述器230生成性能面板330以帮助用户评估神经网络242,并且还生成下面更详细描述的其他类型的性能面板。
188.图33是根据各种其他实施方案的示出图2的网络描述gui如何描绘与神经网络的训练相关联的其他性能数据的屏幕截图。如图所示,性能面板3300包括:与图28的神经网络242相关联的网络体系结构3302;以及推理曲线图3310。推理曲线图3310包括曲线3312,该曲线指示分类训练数据的不同样本所需的推理时间。如图所示,神经网络242需要不同的时间量来处理不同的样本3320。
189.大体参考图32至图33,网络描述器230生成结合这些图描述的性能数据,以描述操作期间神经网络242的性能。网络描述器230还捕获这样的数据,该数据指示神经网络242执行时所消耗的计算资源的量,如下面更详细描述的。
190.图34是根据各种实施方案的示出图2的网络描述gui如何显示在执行神经网络时所消耗的内存量的屏幕截图。如图所示,资源面板3400包括网络体系结构3402和内存图3410。内存图3410是这样的条形图,该条形图指示在网络体系结构3402中描述的每一层的执行期间所消耗的内存量。第二卷积层消耗144千字节的最大内存。内存图3410还可以指示在神经网络242执行时所消耗的内存总量。
191.网络描述器230生成上面结合图32至图34描述的各种面板,以向用户提供对神经网络242如何运行的有价值的理解。基于该信息,用户可以决定是否需要修改神经网络242。网络描述器230生成允许用户生成和测试神经网络242的替代版本的附加面板,如下面结合图35至图37描述的。
192.图35是根据各种实施方案的示出图2的网络描述gui如何表示给定神经网络的不同版本的屏幕截图。如图所示,修改面板3500包括网络体系结构3502,用户可以与该网络体系结构交互以生成替代网络体系结构。举例来说,用户可以与修改元素3504交互,以增加或减小网络体系结构3502中所包括的给定层的大小。替代版本面板3510和3520分别描绘基于用户对网络体系结构3502的修改而生成的替代网络体系结构3512和3522。网络描述器230可以对神经网络242的这些不同版本执行比较分析,以生成附加的性能数据,如下面更详细描述的。
193.图36是根据各种实施方案的示出图2的网络描述gui如何显示与给定神经网络的不同版本相关联的比较性能数据的屏幕截图。如图所示,比较性能面板3600包括替代网络体系结构3512和3522以及准确度曲线图3610。准确度曲线图3610包括曲线3612和3622,这些曲线表示训练期间神经网络242的不同版本的准确度。曲线3612对应于网络体系结构3512,而曲线3622对应于网络体系结构3522。如图所示,网络体系结构3512比网络体系结构3522更快地实现了高度的准确度。网络描述器230向用户提供表征神经网络242的替换版本的附加数据,如下面更详细描述的。
194.图37是根据各种其他实施方案的示出图2的网络描述gui如何显示与给定神经网络的不同版本相关联的其他比较性能数据的屏幕截图。如图所示,比较面板3700包括替代网络体系结构3512和3522以及对应于这些网络体系结构的比较面板3712和3722。比较面板3712和3722传送与相应网络体系结构相关联的各种性能数据,从而允许用户评估对神经网络242所做的修改是否提高或降低性能。
195.大体参考图32至图37,网络描述器230利用结合这些图描述的各种面板来生成和/或更新网络描述gui 232,以向用户提供可以帮助该用户改进神经网络242的信息数据。有利地,经由网络描述gui 232展示的各种工具提供了便利的机制,用户可以经由这些便利的机制生成和修改神经网络。
196.网络描述器230通常提供广泛的操作,这些操作用于描述神经网络行为的各个方面、表征和量化神经网络行为以及在特定环境下约束神经网络行为。下面结合图38a至图38b更详细地描述网络描述器230的操作。
197.图38a至图38b根据各种实施方案示出用于经由图形用户界面来表述和约束神经网络的行为的方法步骤的流程图。尽管结合图1至图2和图28至图37的系统描述方法步骤,但是本领域技术人员将理解,被配置为以任何顺序执行这些方法步骤的任何系统都落入本实施方案的范围内。
198.如图38a所示,方法3800开始于步骤3802,在该步骤中,图2的网络描述器230获得用于训练神经网络的训练数据样本。训练数据样本可以包括任何技术上可行的数据集,包括例如手写数字的图像集、汽车的图像集、音频文件集等。
199.在步骤3804处,网络描述器230为训练数据中的样本生成激活数据。举例来说,网络描述器230可以使神经网络利用训练数据样本执行推理操作,以生成该样本的分类。网络
描述器230然后可以分析与神经网络的给定层相关联的神经元集的输出以生成激活数据。
200.在步骤3806处,网络描述器230响应于训练数据样本而确定神经网络的输出。举例来说,网络描述器230可以确定神经网络指派给训练数据样本的分类。输出可能不一定是正确的。然而,网络描述器230可以基于在步骤3804处生成的激活数据来修改神经网络的输出以校正不正确的输出。
201.在步骤3808处,网络描述器230生成基于激活数据修改神经网络的输出的规则。在神经网络呈现与激活数据一致的激活模式的情况下,应用该规则以使神经网络生成经修改的输出。图29包括可应用于修改神经网络的输出的规则的示例。网络描述器230实现上述步骤以便约束神经网络的行为。网络描述器230还实现以下步骤以表述神经网络的行为。
202.在步骤3810处,网络描述器230确定与用于训练神经网络的训练数据相关的领域事实集。可以从包括特别适用于训练数据的逻辑事实的知识库中得出该领域事实集。举例来说,与汽车相关联的领域事实集可以指示大多数轿车具有四个车轮或者轿车的后部通常具有后备箱。
203.在步骤3812处,网络描述器230确定一般知识事实集。可以从这样的知识库中得出该一般知识事实集,该知识库包括在各种各样的背景中可能相关的普遍适用的事实。举例来说,网络描述器230可以确定这样的一般知识事实,该一般知识事实指示如果某事物的后部是可见的,则该事物是背离观察者的。
204.在步骤3814处,网络描述器230将该领域事实集与该一般知识事实集进行比较以生成一个或多个得出的事实。举例来说,网络描述器230可以生成得出的事实,该得出的事实指示特定样本包括背离的汽车,因为轿车的后备箱是可见的,并且一般知识事实指示当某事物的后部可见时,则该事物是背离的。网络描述器230可以将该方法应用于除了与汽车相关联的训练数据之外的任何技术上可行的类型的训练数据。在步骤3816处,网络描述器230更新网络描述gui 232以显示领域实集、一般知识事实集和一个或多个得出的事实。方法3800在图38b中继续进行。
205.在步骤3818处,网络描述器230生成神经网络的一个或多个不同的版本。举例来说,网络描述器230可以经由对与神经网络相关联的网络体系结构的图形描绘来接收用户对神经网络的给定层的修改。以这种方式,网络描述器230允许用户生成和测试神经网络的变型,以便标识改善神经网络性能的变化。
206.在步骤3820处,网络描述器230为神经网络的每个版本生成性能数据。对于神经网络的给定版本,性能数据可以指示:训练期间神经网络的准确度如何变化,神经网络需要多少时间来对训练数据的不同样本执行推理操作,神经网络的每一层消耗多少内存,以及表征神经网络性能的其他数据。还如上面结合图32至图37通过示例的方式描述的,在步骤3822处,网络描述器230更新网络描述gui 232以显示性能数据。
207.经由上述技术,网络描述器330既可以表述表征神经网络行为的自然语言描述,又可以约束所述行为以提高神经网络的准确度。因此,这些技术使用户能够更好地理解神经网络如何运行,将该理解传达给其他人,以及根据需要修改神经网络的输出。
208.总而言之,人工智能(ai)设计应用程序向用户展示用于生成、分析、评估和描述神经网络的各种工具。所述ai设计应用程序包括网络生成器,所述网络生成器基于用户与网络体系结构的图形描绘的交互来生成和/或更新定义神经网络的程序代码。所述ai设计应
用程序还包括网络分析器,所述网络分析器响应于测试输入而在层水平、神经元水平和权重水平处分析神经网络的行为。所述ai设计应用程序还包括网络评估器,所述网络评估器跨训练数据样本的范围执行对神经网络的综合评估。最后,所述ai设计应用程序包括网络描述器,所述网络描述器用自然语言表述神经网络的行为,并且根据规则集约束所述行为。
209.所公开的技术相对于现有技术的至少一个技术优点在于,所公开的ai设计应用程序可以生成复杂神经网络体系结构,而不需要设计者用户编写大量程序代码或与大量程序代码交互。所公开的技术相对于现有技术的另一技术优点在于,所公开的ai设计应用程序向设计者提供关于给定神经网络体系结构的各个组成部分的底层操作和功能的详细信息。因此,该ai设计应用程序使设计者能够开发神经网络和更好地理解神经网络如何运行。所公开的技术相对于现有技术的另一技术优点在于,所公开的ai设计应用程序对给定神经网络在训练阶段期间如何运行进行详细分析,从而使设计者能够更好地理解为何神经网络基于特定的输入生成特定的输出。所公开的技术相对于现有技术的又另一技术优点在于,所公开的ai设计应用程序自动生成表征给定神经网络如何运行和起作用的自然语言描述。其中,这些描述有助于向设计者解释神经网络的操作,并且使设计者能够向其他人表述和解释神经网络的功能特性。这些技术优点代表了优于现有技术方法的一种或多种技术进步。
210.1.一些实施方案包括一种用于约束神经网络的行为的计算机实现的方法,所述方法包括:使所述神经网络基于第一训练数据执行第一推理操作以生成第一输出;基于与所述第一训练数据相关联的第一目标输出生成对应于所述第一输出的第一规则;确定在执行第二推理操作时所述神经网络生成所述第一输出;以及执行所述第一规则,所述第一规则防止所述神经网络响应于接收到第一输入而输出所述第一输出,而取代地使所述神经网络响应于接收到所述第一输入而输出所述第一目标输出。
211.2.如条款1所述的计算机实现的方法,其还包括:基于所述第一输出与目标输出之间的比较而确定所述第一输出是不正确的。
212.3.如条款1至2中任一项所述的计算机实现的方法,其还包括:生成图形用户界面以显示与所述第一规则相关联的程序代码;经由所述图形用户界面接收对所述程序代码的至少一个修改以生成第二规则;以及执行所述第二规则,所述第二规则防止所述神经网络响应于接收到第一输入而输出所述第一输出,而取代地使所述神经网络响应于接收到所述第一输入而输出不同的输出。
213.4.如条款1至3中任一项所述的计算机实现的方法,其还包括:从知识库提取与所述第一训练数据相关的词汇表字词集;以及生成图形用户界面以显示词汇表术语集。
214.5.如条款1至4中任一项所述的计算机实现的方法,其还包括:从知识库提取指示所述第一训练数据的一个或多个逻辑属性的领域事实集;以及生成图形用户界面以显示所述领域事实集。
215.6.如条款1至5中任一项所述的计算机实现的方法,其还包括:基于所述领域事实集和所述第一输出来生成得出的事实,其中所述得出的事实表征所述神经网络在执行所述第一推理操作时的功能属性。
216.7.如条款1至6中任一项所述的计算机实现的方法,其还包括:生成所述神经网络的体系结构表示以经由图形用户界面进行显示;以及基于经由所述图形用户界面接收到的输入来生成所述神经网络的多个不同版本。
217.8.如条款1至7中任一项所述的计算机实现的方法,其还包括:生成所述神经网络的至少一个版本的性能数据,其中所述性能数据表征训练阶段期间所述神经网络的所述至少一个版本的更多个性能特性中的一个性能特性;以及更新所述图形用户界面以显示所述性能数据。
218.9.如条款1至8中任一项所述的计算机实现的方法,其中所述性能数据指示所述神经网络的所述至少一个版本在操作期间生成一个或多个输出的准确度。
219.10.如条款1至9中任一项所述的计算机实现的方法,其中所述性能数据指示所述神经网络的所述至少一个版本生成一个或多个输出所花费的时间量。
220.11.一些实施方案包括一种存储程序指令的非暂时性计算机可读介质,所述程序指令在由处理器执行时使所述处理器通过执行以下步骤来约束神经网络的行为:基于与第一训练数据相关联的第一目标输出来生成对应于第一输出的第一规则,其中所述第一输出产生自所述神经网络使用所述第一训练数据执行的第一推理操作;确定在执行第二推理操作时所述神经网络生成所述第一输出;以及执行所述第一规则,所述第一规则防止所述神经网络响应于接收到第一输入而输出所述第一输出,而取代地使所述神经网络响应于接收到所述第一输入而输出所述第一目标输出。
221.12.如条款11所述的非暂时性计算机可读介质,其还包括以下步骤:基于所述第一输出与目标输出之间的比较而确定所述第一输出是不正确的。
222.13.如条款11至12中任一项所述的非暂时性计算机可读介质,其还包括以下步骤:生成图形用户界面以显示与所述第一规则相关联的程序代码;经由所述图形用户界面接收对所述程序代码的至少一个修改以生成第二规则;以及执行所述第二规则,所述第二规则防止所述神经网络响应于接收到第一输入而输出所述第一输出,而取代地使所述神经网络响应于接收到所述第一输入而输出不同的输出。
223.14.如条款11至13中任一项所述的非暂时性计算机可读介质,其还包括以下步骤:从知识库提取与所述第一训练数据相关的词汇表字词集;以及生成图形用户界面以显示词汇表术语集。
224.15.如条款11至14中任一项所述的非暂时性计算机可读介质,其还包括以下步骤:从知识库提取指示所述第一训练数据的一个或多个逻辑属性的领域事实集;以及生成图形用户界面以显示所述领域事实集。
225.16.如条款11至15中任一项所述的非暂时性计算机可读介质,其还包括以下步骤:基于所述领域事实集和所述第一输出生成得出的事实,其中所述得出的事实指示经由所述第一推理操作处理的第一训练数据样本的至少一个属性。
226.17.如条款11至16中任一项所述的非暂时性计算机可读介质,其还包括以下步骤:生成所述神经网络的至少一个版本的性能数据,其中所述性能数据表征训练阶段期间所述神经网络的所述至少一个版本的更多个性能特性中的一个性能特性;以及更新所述图形用户界面以显示所述性能数据。
227.18.如条款11至17中任一项所述的非暂时性计算机可读介质,其中所述性能数据指示当所述神经网络的所述至少一个版本在操作期间生成一个或多个输出时所消耗的内存量。
228.19.如条款11至18中任一项所述的非暂时性计算机可读介质,其中所述性能数据
指示当所述神经网络的所述至少一个版本中所包括的神经网络层在操作期间处理一个或多个输入时所消耗的内存量。
229.20.一些实施方案包括一种系统,其包括存储软件应用程序的存储器以及处理器,所述处理器在执行所述软件应用程序时被配置为执行以下步骤:使神经网络基于第一训练数据执行第一推理操作以生成第一输出;基于与所述第一训练数据相关联的第一目标输出生成对应于所述第一输出的第一规则;确定在执行第二推理操作时所述神经网络生成所述第一输出;以及执行所述第一规则,所述第一规则防止所述神经网络响应于接收到第一输入而输出所述第一输出,而取代地使所述神经网络响应于接收到所述第一输入而输出所述第一目标输出。
230.在任何权利要求中引用的任何权利要求要素和/或在本技术中描述的任何要素的任何方式的任何和所有组合落入本发明和保护的预期范围内。
231.已呈现各种实施方案的描述以用于说明目的,但并非意在详列或限于公开的实施方案。在不背离所描述实施方案的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说将是明显的。
232.本实施方案的各方面可实施为系统、方法或计算机程序产品。因此,本公开的各方面可以采取完全硬件实施方案、完全软件实施方案(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施方案的形式,这些实施方案在本文中通常都被称为“模块”、“系统”或“计算机”。此外,本公开的各方面可以采取在其上体现计算机可读程序代码的一个或多个计算机可读介质中体现的计算机程序产品的形式。
233.可利用一个或多个计算机可读介质的任何组合。计算机可读介质可为计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或装置或前述介质的任何合适组合。计算机可读存储介质的更具体实例(非详尽列表)将包括以下介质:具有一个或多个导线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述介质的任何合适组合。在本文档的语境中,计算机可读存储介质可以是可含有或存储供指令执行系统、设备或装置使用或与其联用的程序的任何有形介质。
234.参照根据本公开的实施方案的方法、设备(系统)和计算机程序产品的流程图图解和/或方框图来描述本公开的各方面。应理解,流程图图解和/或方框图的每一个方框以及流程图图解和/或方框图的方框组合可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器。当经由计算机或其他可编程数据处理设备的处理器执行这些指令时,这些指令能够实现在流程图和/或框图的一个或多个框中指定的功能/动作。这样的处理器可以是但不限于通用处理器、专用处理器、特殊应用处理器或现场可编程门阵列。
235.附图中的流程图和框图示出根据本公开的各种实施方案的系统、方法和计算机程序产品的可能实现方式的体系结构、功能性和操作。在这个方面,流程图或框图中的每个框可以表示代码的模块、区段或部分,所述代码包括用于实现所指定的一个或多个逻辑功能的一个或多个可执行指令。还应当指出的是,在一些替代实现方式中,框中提到的功能可以不按附图中提到的顺序出现。举例来说,连续展示的两个框实际上可以大体上同时执行,或
者这些框有时可以按相反的顺序执行,这取决于所涉及的功能性。还应当指出的是,框图和/或流程图图解的每个框以及框图和/或流程图图解中的框的组合可以由执行规定的功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现。
236.尽管前述内容针对本公开的实施方案,但是可在不背离其基本范围的情况下设计出本公开的其他和更多实施方案,且所述基本范围由所附权利要求确定。
再多了解一些

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

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

相关文献