在低功率控制器上执行遗传算法的制作方法

文档序号:24689356发布日期:2021-04-16 10:08阅读:83来源:国知局
在低功率控制器上执行遗传算法的制作方法

1.本发明涉及遗传算法,特定来说,涉及低功率控制器上的遗传算法。


背景技术:

2.计算机通常用于解决复杂的定量及定性问题。对于涉及较大数据集的问题,通常会雇用经过专门训练的专业人员,被称数据科学家。数据科学家解译数据集并构造可由计算机处理以解决问题的模型。然而,对许多组织来说,雇用数据科学家的成本过高。
3.对于某些类型的问题,先进的计算技术(例如遗传算法或反向传播)可用于开发一模型(例如神经网络),其在准确性方面比得上可由数据科学家创建的模型。然而,遗传算法可采用大量迭代来收敛于可接受的神经网络,且当对较大数据集建模时或当神经网络包含大量节点、连接或层时反向传播可能较慢。
4.在真实世界应用中,神经网络通常必须基于大量数据进行训练。处理此大量数据可能超过了某些控制器或处理器(例如“低功率”控制器或处理器)的能力。能够处理用于神经网络训练的大量数据的专用处理器可为昂贵的且耗电量较大。


技术实现要素:

5.本申请案描述自动化模型建立系统及方法,其利用遗传算法及选择性反向传播生成神经网络且以与功率及存储器约束降低的低功率硬件(例如通常并入于传感器中的类型的控制器/处理器)可兼容的方式训练神经网络。所描述的自动化模型建立技术可使普遍方法能够生成可适用于回归、分类及强化学习问题的神经网络。如本文描述那样组合遗传算法与选择性反向传播可使得能够生成神经网络,所述神经网络在可接受准确度下及在比单独使用遗传算法或反向传播少的时间内对特定数据集建模。
6.揭示用以实现在低功率硬件上执行的各种调适。举例来说,存储器使用情况及功耗可通过筛选输入数据(例如从传感器接收的数据及/或在传感器处测量的数据)及使用经筛选数据(而非全部数据)作为训练数据来训练神经网络或其它模型而降低。为了说明,可选择性地丢弃相对类似于已在训练数据集中的数据点的数据点(例如输入数据点)。输入数据可进行分批处理(例如实时或近实时)以在神经网络训练期间减小最大瞬时存储器占据面积。反向传播(或其它优化过程)可通过选择性地更新具有相对较大误差比重的神经网络节点的连接权重更快地执行(例如,借此降低功耗)。在反向传播期间可能发生的问题(例如局部极小值及不收敛的权重向量)可通过监测改进率并且在检测到低改进率的情况下选择性地“回滚(rolling back)”一些反向传播迭代而最小化或避免。
7.作为连同优化使用遗传算法的说明性非限制性实例,考虑具有分别周期性地收集客厅(l)、餐厅(d)、主卧(m)及客卧(g)的温度读数的四个温度传感器的住宅。在此实例中,数据集可包含四个列,其中每一列对应于来自特定房间中的特定传感器的温度读数,且其中每一行对应于四个传感器获取温度读数的特定时间。在一些实例中,数据集的每一行对应于向量空间中的数据点。可能有意思的是,在给定另外三个房间(例如d、m及g)中的温度
的情况下预测房间中的一个房间(例如l)中的温度。神经网络可适于此问题,其中神经网络将d、m及/或g的温度作为输入节点且将l的温度作为输出节点。举例来说,给定d、m及/或g的温度的输入值,在90%准确度下预测l的温度的输出值的神经网络可为可接受的解。
8.根据所描述的技术,遗传算法与优化算法(例如反向传播、无导数优化器(dfo)、极限学习机(elm)或类似优化器)的组合可用于生成神经网络且接着训练神经网络。此外,在一些实例中,所揭示的低功率调适可实现在低功率控制器或处理器(例如在温度传感器本身中的低功率控制器或处理器)处而非在较高功率个人计算机或其它类似装置处执行的神经网络的生成及训练。应理解,将方法步骤的任何系统组件特性化为“优化器”或“优化训练器”及在本文中使用此术语不应解译为需要此类组件或步骤以生成达到极限(例如,100%预测或分类准确度)的最优结果。确切来说,此类术语的使用将被解译为指示试图生成相对于输入以某一方式改进的输出。举例来说,接收可训练模型作为输入且输出经训练模型的优化训练器可试图通过修改可训练模型的一或多个属性以生成经训练模型来改进可训练模型的预测或分类准确度。
9.遗传算法是受到生物自然选择启发的迭代自适应搜索启发法。遗传算法可以各自定义具有不同拓扑、权重及激活函数的神经网络的一群随机模型开始。在数个时期(也称为世代)的进程中,模型可使用受生物学启发的繁殖操作演进,例如交杂(例如,组合两个神经网络的特性)、突变(例如,随机地修改神经网络的特性)、停滞/灭绝(例如,移除其准确度在几个时期内都未改进的神经网络)及选择(例如,经由测试识别表现最好的神经网络)。另外,一个时期的表现最好的模型可经选择用于繁殖以生成可训练模型。可训练模型可使用反向传播训练以生成经训练模型。当经训练模型可用时,经训练模型可重新插入到遗传算法以继续演进。训练通过繁殖一个时期的表现最好的群体成员生成的模型可用于加强所要“遗传性状”(例如,神经网络拓扑、激活函数、连接权重等),且将经训练模型引入回到遗传算法可导致遗传算法更快收敛于可接受的准确解(例如神经网络),例如,这是因为所要“遗传性状”可在遗传算法的以后的时期中得到继承。
10.在各种实例中,经配置以生成及训练神经网络的系统(或装置)可包含存储训练数据集及多个数据结构的存储器。举例来说,每一数据结构可为对训练数据集建模的神经网络的模型。所述系统还可包含经配置以执行递归搜索的至少一个处理器(或控制器)。举例来说,递归搜索可为生成对训练数据集最佳建模的神经网络的遗传算法。在递归搜索的第一迭代期间,处理器可基于训练数据集的至少一子集确定数据结构(例如神经网络模型)中的每一者的适应度值。所述处理器还可基于数据结构子集的相应适应度值选择数据结构子集,且可关于所述子集的至少一个数据结构执行交杂操作或突变操作中的至少一者以生成可训练数据结构。所述处理器可进一步将可训练数据结构提供到优化训练器,所述优化训练器经配置以基于训练数据集的一部分训练可训练数据结构以生成经训练结构,且将所述经训练数据结构作为输入提供到第一迭代之后的递归搜索的第二迭代。
11.优化训练器经配置以通过执行反向传播训练可训练数据结构。在一些实例中,优化训练器确定神经网络的节点(或神经元)的误差测量,且通过调整与具有较高误差测量的节点相关联的连接权重执行反向传播。调整所选择的连接权重导致较低功耗下的更快反向传播。在一些实例中,优化训练器经配置以使用优化搜索以执行反向传播。举例来说,优化训练器确定与反向传播的第一组迭代相关联的改进率。如果改进率过低,那么优化训练器
可恢复成先前可训练数据结构(例如,在应用反向传播的第一组迭代之前),且通过以与先前更新(例如,在第一组迭代期间)不同的方式更新权重来训练所述先前可训练数据结构。优化搜索通过使优化训练器能够避免局部最小值且避免不收敛的权重向量达成更快优化(及较低功耗)。
12.根据本文中揭示的低功率调适,在一些实例中,系统(或装置)经配置以从较大输入数据集选择训练数据集。作为实例,输入数据集可包含分类数据。系统确定代表对应于分类器结果且已被添加到训练数据集的数据点的参考点(例如平均值)。系统基于确定新数据点与参考点足够不同(例如,大于向量空间中的阈值距离)将输入数据集的新数据点添加到训练数据集。系统可忽视输入数据集中在向量空间中离已在训练数据集中的数据点不够远的新数据点。在一些实例中,系统基于由数据点指示的变量的值选择训练数据集。为了说明,如果训练数据集已经包含第一数据点且输入数据集包含具有与已经在训练数据集中的第一数据点的参考(例如平均)值不同的变量的值的许多第二数据点,那么系统将第二数据点中的至少一些添加到训练数据集。
13.在一些方面中,系统分批处理输入数据集。举例来说,系统可确定在第一批输入数据集中有多少数据点指示与参考值不同的变量的值。如果此计数较高(例如,高于阈值),那么系统可将促成计数的数据点添加到训练数据集。分批处理输入数据集可降低存储器消耗,这是因为系统可一次将一或多批的输入数据集存储于存储器中而非必须将整个数据集存储于存储器中。使用此类经筛选训练数据可减少训练时间及存储器消耗,这是因为输入训练数据的剩余数据点不必必须被处理且可被丢弃。
附图说明
14.图1a说明可操作以支持在低功率控制器上执行遗传算法的系统的特定实例;
15.图1b说明可操作以支持在低功率控制器上执行遗传算法的系统的另一实例;
16.图2说明包含代表神经网络的数据的模型的特定实例;
17.图3说明图1的系统处的第一及第二操作阶段的特定实例;
18.图4说明图1的系统处的第三及第四操作阶段的特定实例;
19.图5说明图1的系统处的第五操作阶段的特定实例;
20.图6说明图1的系统处的第六操作阶段的特定实例;
21.图7说明图1的系统处的第七操作阶段的特定实例;
22.图8a及8b共同说明在低功率控制器上执行遗传算法的方法的特定实例;及
23.图9说明可由反向传播训练器执行的优化搜索的特定实例。
具体实施方式
24.参考图1a,展示系统100的特定说明性实例。系统100或其部分可使用一或多个计算装置(例如膝上型计算机、桌面计算机、移动装置、服务器及物联网装置及利用嵌入式处理器及固件或操作等的其它装置)实施(例如,由所述一或多个计算装置执行)。在所说明的实例中,系统100包含遗传算法110及反向传播训练器180。反向传播训练器180是优化训练器的实例,且可结合所描述的技术使用的优化训练器的其它实例包含(但不限于)无导数优化器(dfo)、极限学习机(elm)等。在特定方面中,遗传算法110在与反向传播训练器180不同
的装置、处理器(例如中央处理器单元(cpu)、图形处理单元(gpu)或其它类型的处理器)、处理器核心及/或线程(例如硬件或软件线程)上执行。遗传算法110与反向传播训练器180可协作以自动生成特定数据集的神经网络模型,例如说明性训练数据集102。
25.在一些实施方案中,系统100包含训练数据集选择104。执行训练数据集选择104以从输入数据集106选择(例如,通过对输入数据集106进行筛选)训练数据集102。在特定方面中,训练数据集选择104在与遗传算法110、反向传播训练器180或遗传算法110及反向传播训练器180两者不同的装置、处理器(例如中央处理器单元(cpu)、图形处理单元(gpu)或其它类型的处理器)、处理器核心及/或线程(例如硬件或软件线程)上执行。替代地,训练数据集选择104、遗传算法110及反向传播训练器180可在相同装置(例如单个装置)上执行,在一些实例中其可为低功率控制器或处理器,如本文中进一步描述。在图1b中说明的实例中,系统101包含传感器115a、传感器115b、传感器115c及传感器115d。应理解,包含四个传感器的系统101作为说明性实例提供,在其它实例中,系统101可包含少于四个传感器或多于四个传感器。传感器115a包含耦合到存储器119(例如板上存储器)的处理器117(例如低功率控制器或处理器)。在特定方面中,存储器119的大小小于图1的输入数据集106的大小。举例来说,存储器119经配置以在任何给定时间存储数批输入数据集106而非全部输入数据集106。处理器117经配置以执行训练数据集选择104、遗传算法110、反向传播训练器180或其组合。在特定方面中,传感器115a、115b、115c及115d中的每一者经配置以独立地训练模型。在另一方面中,传感器115a经配置以将经训练模型182提供到传感器115b、115c或115d中的一或多者。
26.系统101可包含一或多个额外装置191。在一些方面中,额外装置191包含比处理器117更多的计算资源(例如存储器、处理速度等)。在特定方面中,处理器117经配置以执行训练数据集选择104、遗传算法110或反向传播训练器180中的一或多者,且额外装置191经配置以执行训练数据集选择104、遗传算法110或反向传播训练器180中的剩余者。在特定实施方案中,处理器117经配置以对数批输入数据集106执行训练数据集选择104、对训练数据集102执行遗传算法110及将训练数据集102及可训练模型122提供到额外装置191。额外装置191经配置以对可训练模型122执行反向传播训练器180及在一些时间之后将经训练模型182作为输入提供到处理器117的遗传算法110。额外装置191可因此使处理器117能够卸载与模型训练相关联的部分计算工作。
27.返回到图1a,系统100可提供使甚至是无经验的用户也能够基于指定数据集迅速且容易地建立高度准确的模型的自动化模型建立过程。另外,系统100简化神经网络模型以避免过度适应且减少运行所述模型所需的计算资源。
28.训练数据集选择104用于从输入数据集106选择训练数据集102。在特定方面中,输入数据集106对应于从一或多个数据源接收的数据流,在说明性非限制性实例中,所述数据源可包含传感器。为了说明,输入数据集106可包含从机器人臂上的传感器接收的数据。在特定实施方案中,输入数据集106包含分类数据。
29.在一些实例中,输入数据集106包含与分类器结果相关联的数据点。在分类实例中,训练数据集选择104可按照分类器结果执行。为了说明,考虑二进制分类实例的输入数据表。表的每一行对应于特定时间的传感器读数。每一行包含数据是被分类为“a”还是“b”的指示。此分类器结果可被存储于单个列(其具有可能值“a”或“b”)中或可被独热编码地存
储于多个行(例如,具有值“0”或“1”的“a”列及具有值“0”或“1”的“b”列)中。在此实例中,训练数据集选择104可包含比较输入数据集106中具有“a”分类器结果的行与对应于“a”(例如,相同分类器结果)的参考点。可比较每一行与参考点之间的差值(例如,向量空间中的距离)与阈值(例如训练阈值)。如果行的距离超过阈值,那么所述行很可能会显著影响模型训练,且所述行因此可被添加到训练数据集102。在一些实例中,当添加一行时,对应分类器结果的参考点也可在确定后续距离之前更新。如果行的距离未超过阈值,那么所述行不太可能会显著影响模型训练,且所述行因此可被滤除,即,不会被添加到训练数据集102。也可使用“b”行的不同参考点对“b”行执行此过程。
30.在特定实施方案中,训练数据集选择104是基于对应于多个变量的参考数据。为了说明,考虑其中输入数据集106的行具有三个变量—x、y及z的值的实例。x、y及z的参考值(例如ref_x、ref_y及ref_z)可基于已经包含于训练数据集中的数据点(行)确定。在特定方面中,当训练数据集102为空时,参考值经初始化到默认值(例如,0、-1或999999)。可维持变量中的每一者的计数,例如count_x、count_y及count_z。count_x可响应于确定特定行(例如row_i)中的x的值与ref_x之间的差值大于变量差值阈值(例如,thresh_x)而累加(例如,累加1)。参考数据可经更新以指示促成第一计数的row_i。行可促成一个以上变量的计数。在一个实例中,训练数据集选择104包含响应于确定变量的计数大于计数阈值(例如thresh_count)将促成计数的输入数据集106的行添加到训练数据集102。在另一实例中,训练数据集选择104包含将导致累加的输入数据集106的行添加到多于变量的阈值数目(例如thresh_incrementedvariables)的计数。
31.在特定方面中,分批处理输入数据集106。举例来说,响应于接收第一批输入数据集106,更新参考数据以指示对应于第一批输入数据集106的第一计数。促成高于阈值计数的数据点(即,行)从第一批选择且被添加到训练数据集102。丢弃第一批中的剩余数据点(例如,经标记以删除)。可以类似方式处理额外批次。在特定方面中,通过遗传算法110分批处理训练数据集102。
32.就存储器使用情况及处理循环而言,存储及处理大量输入数据可为昂贵的。通过训练数据集选择104提供的低功率调适可例如通过从输入数据集106选择训练数据集102及丢弃输入数据集106中被预测为不会显著影响模型训练及模型生成的剩余部分来减少资源利用。此外,分批处理输入数据集106、训练数据集102或两者而非一次性处理输入数据集106、训练数据集102或两者可在任何给定时间减少瞬时存储器消耗。
33.现在描述遗传算法110的操作。遗传算法110包含适应度函数140、停滞准则150、交杂操作160及突变操作170或以其它方式与适应度函数140、停滞准则150、交杂操作160及突变操作170相关联。如上文描述,遗传算法110可表示递归搜索过程。因此,搜索过程的每一迭代(也称为遗传算法的时期或世代)可具有输入集(或群体)120及输出集(或群体)130。遗传算法110的初始时期的输入集120可随机或伪随机地生成。在那之后,一个时期的输出集130可为下一(非初始)时期的输入集120,如本文中进一步描述。
34.输入集120及输出集130可各自包含多个模型,其中每一模型包含代表神经网络的数据。举例来说,每一模型可通过至少一神经网络拓扑、一系列激活函数及连接权重指定神经网络。神经网络的拓扑可包含神经网络的节点的配置及此类节点之间的连接。模型还可经指定以包含其它参数,包含(但不限于)偏差值/函数及聚合函数。
35.参考图2进一步描述神经网络模型的额外实例。特定来说,如图2中展示,模型200可为包含节点数据210及连接数据220的数据结构。在所说明的实例中,神经网络的每一节点的节点数据210可包含激活函数、聚合函数或偏差(例如,常数偏差值或偏差函数)中的至少一者。节点的激活函数可为阶梯函数、正弦函数、连续或分段线性函数、s型函数、双曲正切函数或表示在其处激活节点的阈值的其它类型的数学函数。节点激活的生物学类比是神经元的放电。聚合函数可为将输入信号组合(例如,和、积等)到节点的数学函数。聚合函数的输出可用作到激活函数的输入。偏差可为由聚合函数及/或激活函数用于使节点更可能或不太可能被激活的常数值或函数。
36.神经网络中的每一连接的连接数据220可包含节点对或连接权重中的至少一者。举例来说,如果神经网络包含从节点n1到节点n2的连接,那么那个连接的连接数据220可包含节点对<n1,n2>。连接权重可为影响在n2处被输入之前是否修改n1的输出及/或如何修改n1的输出的数值数量。在递归网络的实例中,节点可具有到其本身的连接(例如,连接数据220可包含节点对<n1,n1>)。
37.模型200还可包含物种标识符(id)230及适应度数据240。物种id 230可指示模型200被分类为多个物种中的哪一者,如参考图3进一步描述。适应度数据240可指示模型200对训练数据集102建模的良好程度。举例来说,适应度数据240可包含基于关于模型200评估适应度函数140而确定的适应度值,如本文中进一步描述。
38.返回到图1a,适应度函数140可为可用于比较输入集120的模型的目标函数。在一些实例中,适应度函数140是基于通过测试关于训练数据集102的模型产生的误差的频率及/或量值。作为简单实例,假设训练数据集102包含十行,其中训练数据集102包含标示为a及b的两个列,且其中图1a中说明的模型表示在给定输入值a的情况下输出b的预测值的神经网络。在此实例中,测试模型可包含输入来自训练数据集102的a的十个值中的每一者、比较b的预测值与来自训练数据集102的b的对应实际值及确定b的两个预测值与实际值是否不同及/或b的两个预测值与实际值有多不同。为了说明,如果特定神经网络准确地预测了十行中的九行的b的值,那么相对简单的适应度函数140可向对应模型指派适应度值9/10=0.9。应理解,先前实例仅是为了说明且不应被认为具限制性。在一些方面中,适应度函数140可基于与误差频率或误差率不相关的因素,例如输入节点、节点层、隐藏层、连接的数目、计算复杂度等。
39.在特定方面中,可并行执行模型的适应度评估。为了说明,系统100可包含除了执行遗传算法110及反向传播训练器180的装置、处理器、核心及/或线程190之外的额外装置、处理器、核心及/或线程190。这些额外装置、处理器、核心及/或线程190可基于训练数据集102并行测试模型适应度且可将所得适应度值提供到遗传算法110。
40.在特定方面中,遗传算法110可经配置以执行物种形成。举例来说,遗传算法110可经配置以基于模型之间的“遗传距离”使输入集120的模型聚类(分组)为物种。因为每一模型表示一神经网络,所以两个模型之间的遗传距离可基于两个模型的节点、激活函数、聚合函数、连接、连接权重等的差值。在说明性实例中,遗传算法110可经配置以将模型序列化成位串。在此实例中,模型之间的遗传距离可由对应于模型的位串中的不同位的数目表示。对应于模型的位串可称为模型的“编码”。参考图3进一步描述物种形成。
41.因为遗传算法110经配置以模仿生物演进及自然选择原理,所以模型的物种有可
能“灭绝”。停滞准则150可用于确定物种应何时灭绝,例如,应何时从遗传算法110移除物种中的模型。参考图4进一步描述停滞。
42.交杂操作160及突变操作170在某些约束及针对模型建立优化的一组定义的概率下是高度随机的,这会产生可用于从输入集120生成输出集130或其至少一部分的繁殖操作。在特定方面中,在生成输出集130时,遗传算法110利用种内繁殖而非种间繁殖。包含种内繁殖且排除种间繁殖可为基于以下假设:因为其共享更多遗传性状,所以物种的模型更有可能协作且将因此更迅速地收敛于足够准确的神经网络。在一些实例中,可使用种间繁殖作为种内繁殖的补充或替代来生成输出集130。参考图6进一步描述交杂及突变。
43.不干涉且给定执行足够时期的时间,遗传算法110可能够生成满足所要准确度要求的模型(且通过扩展,生成神经网络)。然而,因为遗传算法利用随机化选择,遗传算法到达可接受神经网络可能是过度耗时的。为了“帮助”遗传算法110更快地得到解,模型可偶尔从遗传算法110发送到反向传播训练器180以用于训练。此模型在本文中称为可训练模型122。特定来说,可训练模型122可基于使输入集120的最适应模型交杂及/或突变,如参考图5进一步描述。因此,可训练模型122可能不仅仅是通过遗传算法110产生的与遗传有关的“经训练”文件。确切来说,可训练模型122可表示关于输入集120的最适应模型的进步。
44.如同训练数据集选择104,反向传播训练器180可体现使图1a的组件的全部或一部分能够由低功率处理器或控制器实施的一或多个低功率调适。举例来说,反向传播训练器180可包含权重调整184。反向传播训练器180可利用训练数据集102的一部分而非全部来训练数据集102来训练可训练模型122的连接权重,借此生成经训练模型182。举例来说,可将训练数据集102的部分输入到可训练模型122中,这又可生成输出数据。训练数据集102及输出数据可用于确定误差值或误差测量,且所述误差值/测量可用于修改模型的连接权重,例如通过使用梯度下降或另一函数。
45.反向传播可通常涉及在存在非零误差值(即,输出数据与预期输出数据不匹配)的任何及所有时间调整连接权重。作为低功率调适,在一些实施方案中,权重调整184包含选择性地(而非在非零误差值的案例中经常地)更新可训练模型122的连接的连接权重。举例来说,训练数据集102及输出数据可用于确定可训练模型122的节点的节点误差测量。特定节点的节点误差测量可指示那个节点对整体误差的相对贡献。在一些实例中,仅具有大于节点误差阈值(例如非零误差阈值)的节点误差测量的节点可更新连接权重。替代地或另外,只有在整体误差测量(其可通过以数学方式聚合节点特定误差测量确定)大于整体误差阈值(例如非零误差阈值)时才可更新连接权重。
46.权重调整184可因此不同于典型的反向传播,其包含更新与所有节点(或具有对误差值的任何贡献的至少所有节点)相关联的连接的连接权重。在一些实例中,大量节点可对误差值做出相对较小贡献。更新大量节点的连接权重消耗资源(例如时间及处理循环)同时对改进误差值且因此对整个模型具有相对较小影响。在特定实例中,可训练模型122的单个层包含多个节点。在一些此类实例中,层特定而非节点特定误差测量可用于确定是否更新层中的节点的连接权重,其中层特定误差测量是基于以数学方法聚合层中的节点的节点误差测量,且与层误差阈值(例如非零误差阈值)作比较。
47.在特定方面中,误差测量还用于确定反向传播训练器180的学习率。为了说明,节点/层/整体误差测量与节点/层/整体误差阈值之间的差值可用于确定学习率,且经调整的
一或多个连接权重可按至少部分基于学习率的量进行调整。在特定实例中,比较的误差测量与误差阈值之间的较高差值导致使用较高学习率,这又对应于较大连接权重调整。选择性地更新对输出误差具有较大贡献的节点的连接权重可通过减小优化范围(如与更新所有节点的连接权重相比)加速反向传播。此外,更快反向传播会导致较低功耗。
48.在一些实例中,反向传播训练器180使用训练数据集102的一部分而非全部训练数据集102进行训练以减轻过度适应问题及/或缩短训练时间。反向传播训练器180可使可训练模型122中除了连接权重之外的方面(例如神经网络拓扑、激活函数等)不变。通过可训练模型122反向传播训练数据集102的一部分可用于正向强化输入集120中用于生成可训练模型122的最适应模型的“遗传性状”。在其中反向传播训练器180在与遗传算法110不同的装置、处理器、核心及/或线程上执行的情形中,遗传算法110可在可训练模型122的连接权重被训练时继续执行额外时期。当训练完成时,可将经训练模型182输入回到遗传算法110(遗传算法110的后一时期),使得经训练模型182的经正向强化的“遗传性状”可用于由遗传算法110中的其它模型继承。
49.在特定实施方案中,反向传播训练器180包含优化搜索186。优化搜索186,例如a*(“a星”)搜索经执行以基于改进率收敛于模型。举例来说,反向传播训练器180可在第一时间保持(例如,存储于存储器中)第一可训练模型(例如可训练模型122)。反向传播训练器180可执行一组反向传播迭代。举例来说,在初始反向传播迭代期间,反向传播训练器180通过训练第一可训练模型生成第一经训练模型。遗传算法110接收第一经训练模型作为输入且最终输出第二可训练模型。在第二反向传播迭代期间,反向传播训练器180通过训练第二可训练模型生成第二经训练模型。反向传播训练器180基于对应于第一经训练模型及第二经训练模型的误差值的比较确定第一改进。类似地,反向传播训练器180基于对应于第二经训练模型及第三经训练模型(在第三反向传播迭代期间生成)的误差值的比较确定第二改进。反向传播训练器180确定与一组经施加反向传播迭代相关联的改进率,例如通过比较第一、第二或第三改进中的两者或两者以上。
50.通过跟踪由反向传播作出的改进及存储旧的经训练模型,在反向传播未能充分地改进模型性能的情况下启用优化搜索186以“恢复”到较旧的经训练模型。为了说明,如果第二改进并不比第一改进好至少一阈值量,那么优化搜索186可通过恢复到第一经训练模型“回滚”反向传播迭代(例如,从而在反向传播迭代结束时生成较旧的经训练模型)。在一些实例中,恢复到较旧模型包含对较旧模型而非最近接收到的可训练模型执行反向传播。基于改进率选择性地回滚反向传播迭代使反向传播训练器180能够避免局部最小值且避免不收敛或花费太长时间收敛的权重向量。
51.现参考图3到7描述(一般来说)系统100的另一操作,且特定来说,描述遗传算法110的另一操作。然而,应理解,在替代实施方案中,某些操作可按与所描述的不同的顺序执行。此外,描述为循序的操作可代替地至少部分同时执行,且描述为至少部分同时执行的操作可代替地循序地执行。
52.在操作的配置阶段期间,用户可指定输入数据集106且可指定要建模的输入数据集106中的特定数据字段或一组数据字段。要建模的数据字段可对应于将由系统100生成的神经网络的输出节点。举例来说,如果用户指示将建模特定数据字段的值(例如,以基于数据集的其它数据预测值),那么模型可由系统100生成以包含生成对应于特定数据字段的经
建模值的输出值的输出节点。在特定实施方案中,用户还可配置模型的其它方面。举例来说,用户可提供输入以指示将包含于模型中的数据集的特定数据字段或将从模型省略的数据集的特定数据字段。作为另一实例,用户可提供输入以约束所允许的模型拓扑。为了说明,模型可经约束以包含不超过特定数目个输入节点、不超过特定数目个隐藏层或不包含反复循环。
53.此外,在特定实施方案中,用户可配置遗传算法110的方面。举例来说,用户可提供输入以限制将由遗传算法110执行的时期的数目。替代地,用户可指定指示遗传算法110必须生成模型的时间量的时间限制,且遗传算法110可确定将基于指定时间限制执行的时期的数目。为了说明,可对遗传算法110的初始时期进行计时(例如,在执行遗传算法110的计算装置处使用硬件或软件计时器),且可因此确定在指定时间限制内将执行的时期的总数目。作为另一实例,用户可约束在每一时期中评估的模型的数目,例如通过约束输入集120及/或输出集130的大小。作为又另一实例,用户可定义将由反向传播训练器180训练且反馈回到遗传算法110中作为经训练模型182的可训练模型122的数目。用户可配置本文中描述的各种阈值及默认值。
54.在特定方面中,遗传算法110的配置还包含基于输入数据集106执行预处理步骤。举例来说,系统100可基于输入数据集106及/或用户输入确定是否将针对回归问题、分类问题、强化学习问题等生成神经网络。作为另一实例,输入数据集106可经“清理”以去除明显误差、填入于数据“空白区”中等。作为另一实例,输入数据集106中的值可按比例缩放(例如,缩放到0与1之间的值)。作为又另一实例,非数值数据(例如类别分类数或布尔数据)可转换成数值数据。在特定方面中,预处理步骤包含执行训练数据集选择104以从输入数据集106选择训练数据集102。在特定方面中,输入数据集106在配置阶段期间不可用。在此方面中,实时或近实时地生成及处理输入数据集106的至少一部分。
55.在上述配置阶段之后,遗传算法110可基于训练数据集102、指示(或可用于确定)要解决的问题的类型的接收到的用户输入等自动生成一组初始模型(例如,该组初始模型是数据驱动的)。如图2中说明,每一模型可由至少一神经网络拓扑、激活函数及链接权重指定。神经网络拓扑可指示节点(例如神经元)的布置。举例来说,神经网络拓扑可指示输入节点的数目、隐藏层的数目、每隐藏层节点的数目及输出节点的数目。神经网络拓扑还可指示节点之间的互连(例如轴突或链接)。
56.该组初始模型可经输入到遗传算法110的初始时期中作为输入集120,且在初始时期结束时,在初始时期期间生成的输出集130可变成遗传算法110的下一时期的输入集120。在一些实例中,输入集120可具有指定数目个模型。举例来说,如图3中的第一操作阶段300中展示,输入集可包含200个模型。应理解,替代实例可包含输入集120及/或数据集130中的不同数目个模型。
57.针对遗传算法110的初始时期,输入集120中的模型的拓扑可在由任何先前输入配置设置指定的约束内随机或伪随机地生成。因此,数据集120可包含具有多个不同拓扑的模型。举例来说,第一模型可具有第一拓扑,其包含与第一组数据参数相关联的第一数目个输入节点、包含第一数目个隐藏节点及隐藏节点的布置的第一数目个隐藏层、一或多个输出节点及节点之间的第一组互连。在此实例中,时期的第二模型可具有第二拓扑,其包含与第二组数据参数相关联的第二数目个输入节点、包含第二数目个隐藏节点及隐藏节点的布置
的第二数目个隐藏层、一或多个输出节点及节点之间的第二组互连。由于第一模型及第二模型两者都试图对相同数据字段建模,所以第一及第二模型具有相同输出节点。
58.遗传算法110可将激活函数、聚合函数、偏差、连接权重等自动指派到初始时期的输入集120的每一模型。在一些方面中,随机或伪随机地指派连接权重。在一些实施方案中,针对特定模型的每一节点使用单个激活函数。举例来说,s型函数可用作特定模型的每一节点的激活函数。单个激活函数可基于配置数据进行选择。举例来说,配置数据可指示将使用双曲正切激活函数或将使用s型激活函数。替代地,激活函数可从一组所允许的激活函数随机或伪随机地选择,且模型的不同节点可具有不同类型的激活函数。在其它实施方案中,针对特定模型的每一节点,指派到每一节点的激活函数可(从一组所允许的激活函数)随机或伪随机地选择。针对初始时期的输入集120中的模型,聚合函数可类似地随机或伪随机地指派。因此,初始时期的输入集120的模型可具有不同拓扑(其在如果数据集包含许多数据字段的情况下可包含对应于不同输入数据字段的不同输入节点)及不同连接权重。此外,初始时期的输入集120的模型可包含具有不同激活函数、聚合函数及/或偏差值/函数的节点。
59.继续到第二操作阶段350,输入集120的每一模型可基于训练数据集102测试以确定模型适应度。举例来说,训练数据集102可提供为到每一模型的输入数据,其处理训练数据集(根据相应模型的网络拓扑、连接权重、激活函数等)以生成输出数据。每一模型的输出数据可使用适应度函数140进行评估以确定模型对训练数据集102建模的良好程度。举例来说,在回归问题的案例中,输出数据可通过比较输出数据中的预测值与训练数据集102中的实际值来评估。作为另一实例,在分类问题的案例中,由输出数据指示的分类器结果可与相关联于训练数据集102的分类进行比较以确定分类器结果是否匹配训练数据集102中的分类。作为又另一实例,在强化学习问题的案例中,回报可基于环境的评估确定(例如计算),其可包含一或多个变量、函数等。在强化学习问题中,适应度函数140可与回报函数相同或可为基于回报函数。模型的适应度可基于模型的性能(例如准确度)、模型的复杂度(或稀疏性)或其组合进行评估。作为简单实例,在回归问题或强化学习问题的案例中,适应度值可分别基于与那个模型的输出数据相关联的误差值或基于回报函数的值指派到特定模型。作为另一实例,在分类问题的案例中,适应度值可基于由特定模型确定的分类是否是正确分类或有多少正确或不正确分类由模型确定来指派。
60.在更复杂的实例中,适应度值可基于预测/分类准确度或回报优化以及模型的复杂度(或稀疏性)两者指派到特定模型。作为说明性实例,第一模型可使用五个输入节点(对应于五个输入数据字段)对数据集良好地建模(例如,可在相对较小误差情况下生成输出数据或输出分类,或可生成较大的正回报函数值),而第二潜在模型也可使用两个输入节点(对应于两个输入数据字段)对数据集良好地建模。在此说明性实例中,第二模型可能较稀疏(取决于每一网络模型的隐藏节点的配置),且因此可被指派比第一模型更高的适应度值。
61.如图3中展示,第二阶段350可包含基于遗传距离使模型聚类到物种中。在特定方面中,模型中的每一者的物种id 230可被设置到对应于模型已被聚类到其中的物种的值。
62.继续到图4,在第三操作阶段400及第四操作阶段450期间,可确定物种中的每一者的物种适应度。物种的物种适应度可为物种中的个别模型中的一或多者的适应度的函数。作为简单的说明性实例,物种的物种适应度可为物种中的个别模型的适应度的平均值。作
为另一实例,物种的物种适应度可等于物种中的最适应或最不适应个别模型的适应度。在替代性实例中,其它数学函数可用于确定物种适应度。遗传算法110可维持跟踪每一物种跨多个时期的适应度的数据结构。基于物种适应度,遗传算法110可识别“最适应”物种,在图4中阴影化且标示为“精英”物种。尽管在图4中展示三个精英物种410、420及430,但应理解,在替代实例中,可识别不同数目个精英物种。
63.在特定方面中,遗传算法110使用物种适应度以确定物种是否已停滞的且因此将灭绝。作为说明性非限制性实例,如果物种的适应度在特定数目(例如5)个时期内保持在特定范围(例如,+/-5%)内,那么停滞准则150可指示那个物种已停滞。如果物种满足停滞准则,那么物种及所有底层模型都可从遗传算法110移除。在所说明的实例中,移除图3的物种360,如在第三阶段400中通过使用虚线展示。
64.继续到第四阶段450,可识别每一“精英物种”的最适应模型。也可识别整体最适应模型。在所说明的实例中,每一“精英物种”的三个最适应模型标示为“精英成员”,且使用阴影图案展示。因此,模型470是“精英物种”420的“精英成员”。三个整体最适应模型标示为“整体精英”且使用黑色圆圈展示。因此,在所说明的实例中,模型460、462及464是“整体精英”。如图4中关于模型460展示,“整体精英”无需是“精英成员”,例如,可来自非精英物种。在替代实施方案中,可识别每物种不同数目个“精英成员”及/或不同数目个“整体精英”。
65.现参考图5,在第五操作阶段500期间,“整体精英”模型460、462及464可以遗传方式经组合以生成可训练模型122。举例来说,以遗传方式组合模型可包含其中一个模型的一部分被添加到另一模型的一部分的交杂操作,如图6中进一步说明。作为另一实例,可对“整体精英”模型460、462、464及/或可训练模型122中的一或多者的一部分执行随机突变。可将可训练模型122发送到反向传播训练器180,如参考图1a描述。反向传播训练器180可执行权重调整184以基于训练数据集102的一部分训练可训练模型122的连接权重。在特定方面中,反向传播训练器180可通过确定改进率及在所述改进率较低的情况下选择性地恢复到先前可训练模型(例如,在前一时期期间生成)执行优化搜索186。在此方面中,反向传播训练器180可通过训练先前可训练模型生成经训练模型182。当训练完成时,可从反向传播训练器180接收所得经训练模型182且可将所得经训练模型182输入到遗传算法110的后一时期中。
66.继续到图6,在反向传播训练器180训练可训练模型182时,时期的输出集130可在第六操作阶段600中生成。在所说明的实例中,输出集130包含与输入集120数目相同的模型,例如200个模型。输出集130可包含“整体精英”模型460到464中的每一者。输出集130还可包含“精英成员”模型中的每一者,包含模型470。将“整体精英”及“精英成员”模型传播到下一时期可保存引起此类模型被指派高适应度值的所得“遗传性状”。
67.输出集130的剩余部分可使用交杂操作160及/或突变操作170通过随机种内繁殖滤除。在所说明的实例中,输出集130包含10个“整体精英”及“精英成员”模型,所以剩余190个模型可使用交杂操作160及/或突变操作170基于种内繁殖随机地生成。在输出集130生成之后,输出集130可被提供为遗传算法110的下一时期的输入集120。
68.在交杂操作160期间,一个模型的一部分可与另一模型的一部分组合,其中相应部分的大小可相等或可不相等。为了参考关于图1a描述的模型“编码”进行说明,交杂操作160可包含连接一个位串的位0到p与另一位串的位p+1到q,其中p及q是整数且p+q等于表示由交杂操作160产生的模型的位串的总大小。当解码时,交杂操作160之后的所得位串产生神
经网络,其在拓扑、激活函数、聚合函数、偏差值/函数、链接权重或其任何组合方面不同于其“父”神经网络中的每一者。
69.因此,交杂操作160可为随机或伪随机生物运算子,其通过组合输入集120的第一模型的方面与输入集120的一或多个其它模型的方面来生成输出集130的模型。举例来说,交杂操作160可保持输入集120的第一模型的隐藏节点的拓扑,但将输入集的第二模型的输入节点连接到隐藏节点。作为另一实例,交杂操作160可保持输入集120的第一模型的拓扑,但使用输入集120的第二模型的一或多个激活函数。在一些方面中,交杂操作160可在通过输入集120的一或多个模型的突变生成的一模型(或多个模型)上执行,而非在输入集120的模型上操作。举例来说,突变操作170可在输入集120的第一模型上执行以生成中间模型,且交杂操作160可经执行以组合中间模型的方面与输入集120的第二模型的方面以生成输出集130的模型。
70.在突变操作170期间,可随机地修改模型的一部分。突变的频率可为基于突变概率度量,其可为用户定义的或随机选择/调整的。为了参考关于图1a描述的模型“编码”进行说明,突变操作170可包含随机地“翻转”位串的一或多个位。
71.突变操作170可因此为随机或伪随机生物运算子,其通过使输入集120的模型的任何方面突变而生成或促成输出集130的模型。举例来说,突变操作170可通过添加或省略一或多个输入节点、通过添加或省略一或多个连接、通过添加或省略一或多个隐藏节点或其组合导致输入集的特定模型的拓扑被修改。作为另一实例,突变操作170可导致一或多个激活函数、聚合函数、偏差值/函数及/或连接权重被修改。在一些方面中,突变操作170可在通过交杂操作160生成的模型上执行,而非在输入集的模型上操作。举例来说,交杂操作160可组合输入集120的两个模型的方面以生成中间模型,且突变操作170可在中间模型上执行以生成输出集130的模型。
72.遗传算法110可以上文描述的方式继续通过多个时期。当遗传算法110接收经训练模型182时,经训练模型182可被提供为下一时期的输入集120的部分,如图7的第七阶段700中展示。举例来说,经训练模型182可取代输入集120中的其它200个模型中的一者,或可为输入集的第201个模型(例如,在一些时期中,可处理超过200个模型)。在由反向传播训练器180训练期间,遗传算法110可能已前进一或多个时期。因此,当接收经训练模型182时,经训练模型182可作为输入被插入到在其期间对应可训练模型122被提供到反向传播训练器180的时期之后的时期中。为了说明,如果可训练模型122在时期n期间被提供到反向传播训练器180,那么经训练模型182可输入到时期n+x,其中x是大于零的整数。
73.在图5及7的实例中,单个可训练模型122被提供到反向传播训练器180,且单个经训练模型182从反向传播训练器180接收。当接收到经训练模型182时,反向传播训练器180变得可用以训练另一可训练模型。因此,因为训练耗费一个以上时期,所以经训练模型182可零星地(而非初始时期之后的每个时期)被输入到遗传算法110中。在一些实施方案中,反向传播训练器180可具有等待训练的可训练模型122的队列或堆叠。遗传算法110可在生成可训练模型122时将其添加到队列或堆叠,且反向传播训练器180可在训练循环开始时从队列或堆叠移除可训练模型122。在一些实施方案中,系统100包含多个反向传播训练器180(例如,在不同装置、处理器、核心或线程上执行)。反向传播训练器180中的每一者可经配置以同时训练不同可训练模型122以生成不同经训练模型182。在此类实例中,在一时期期间
可生成一个以上可训练模型122,且一个以上经训练模型182可经输入到一时期中。
74.系统100处的操作可迭代地继续直到满足指定终止准则,例如时间限制、时期的数目或(整体最适应模型的)阈值适应度值。当满足终止准则时,最后执行的时期的整体最适应模型可经选择且输出为表示对训练数据集102最佳建模的神经网络。在一些实例中,整体最适应模型在被输出之前可经受最后训练操作(例如,通过反向传播训练器180)。
75.尽管参考反向传播训练描述了各个方面,但应理解,在替代实施方案中,不同类型的训练也可用于系统100中。举例来说,模型可使用遗传算法训练过程进行训练。在此实例中,当模型的所有方面(除了连接权重之外)都保持恒定时,执行类似于上文描述的遗传操作的遗传操作。
76.执行遗传操作的资源密集度可低于评估模型的适应度及使用反向传播训练模型。举例来说,评估模型的适应度及训练模型两者包含将训练数据集102或其至少一部分提供到模型、计算神经网络的节点及连接的结果以生成输出数据及比较所述输出数据与训练数据集102以确定误差的存在及/或量值。相比之下,遗传操作不对训练数据集102操作而是仅修改一或多个模型的特性。然而,如上文描述,遗传算法110的一个迭代可包含遗传操作及评估每个模型及物种的适应度两者。训练通过繁殖一个时期的最适应模型生成的可训练模型可改进经训练模型的适应度而无需训练一个时期的每个模型。此外,后续时期的模型的适应度可归因于基于经训练模型的遗传操作从经训练模型的经改进适应度获益。因此,训练最适应模型实现在比单独使用遗传操作更少的时期中生成具有特定误差率的模型。因此,较少处理资源可用于基于指定训练数据集102建立高度准确的模型。
77.图1a的系统100可因此支持遗传算法与反向传播训练器在低功率控制器上的协作数据驱动执行以自动到达输入数据集的输出神经网络模型。图1a的系统可比单独使用遗传算法或反向传播更快地到达输出神经网络模型且成本与雇用数据科学家相比有所降低。在一些案例中,由系统100输出的神经网络模型也可比可单独通过遗传算法或反向传播生成的模型更准确。系统100还可提供问题不可知能力以生成神经网络。举例来说,系统100可表示能够针对至少回归问题、分类问题及强化学习问题生成神经网络的单个自动化模型建立框架。此外,系统100可实现生成表现出对前所未有的条件的经改进适应性的广义神经网络。为了说明,神经网络可减轻或避免对输入数据集的过度拟合而可在性质方面更为通用。因此,由系统100生成的神经网络可能够在较不用担心生成不正确的预测的情况下部署。
78.应了解,本发明的系统及方法可适用于各种案例、基础设施及数据环境中。作为说明性非限制性实例,输入数据集106可包含来自分布在风力发电场周围的较大传感器阵列的带时间戳记的数据,且还可包含个别风力涡轮机的带时间戳记的正常运行时间/停机时间数据。系统100可生成经配置以预测风力涡轮机发生故障的可能性的神经网络模型。在特定实例中,神经网络模型使故障前置时间从3到5天增加到30到40天,这会导致减少的停机时间且帮助风力发电场的经营者节省开支。系统100可能够自动建立预测物联网(iot)、公用设施及油/气基础设施的数值或状态(例如故障)的类似种类的模型。
79.作为另一说明性非限制性实例,输入数据集106可包含健康数据,且系统100可自动建立一模型以预测展现某些健康状况的患者是否很可能具有特定疾病。作为另一说明性非限制性实例,输入数据集106可包含财务数据,且系统100可自动建立一模型以预测市场情况。作为另一说明性非限制性实例,输入数据集106可包含网络安全、网络日志及/或恶意
软件数据,且系统100可自动建立一模型以实施防火墙过滤规则、端点反恶意软件检测、僵尸/僵尸网络检测器等。
80.作为另一说明性非限制性实例,系统100可生成神经网络以基于强化学习输出飞机自动驾驶仪操作(例如风门、转向、襟翼等)。在此实例中,通过神经网络优化的回报函数可涉及飞机高度、飞机行进的距离等。作为又另一实例,系统100可生成神经网络以预测油/气工业修井事件(例如,导致钻机或井上的主要维修或补救操作的事件,其会导致损失相当大的生产时间及产生相当大的费用)。
81.可由用本文中描述的系统生成的神经网络解决的问题集的又另一实例是数据融合。在此案例中,从各种类型的大量传感器(包含相同类型的多个传感器)聚合的数据被收集且用于识别无法用传感器中的任一者或较小子集完全检测到的对象、动作或现象。举例来说,潜艇的检测可基于从将输入提供到所生成的神经网络的多个声纳浮标接收到的输入执行。另一实例可为基于音频签名及视觉视图(其可被部分隐藏或为低分辨率)两者识别特定类型的飞机。
82.图8a及8b描绘在低功率控制器上执行遗传算法的方法800的特定实例。在说明性实例中,方法800可在图1a的系统100、图1b的系统101处执行或在两者处执行。
83.方法800可在802处开始,且可包含在803处从输入集选择训练数据集。举例来说,训练数据集102是从输入数据集106选择,如参考图1a描述。
84.方法800可包含在804处基于训练数据集生成模型的随机化输入群体。每一模型可包含代表神经网络的数据。举例来说,每一模型可包含至少一个节点数据及连接数据,如参考图1a及2描述。此外,模型中的每一者可为图1a的输入集120的部分,且可对图1a的训练数据集102建模。
85.方法800还可包含在806处基于适应度函数及训练数据集确定输入群体的每一模型的适应度值。举例来说,可确定输入集120的每一模型的适应度,如参考图1a及3描述。
86.方法800可进一步包含在808处基于模型的子集的相应适应度值确定模型的子集。模型的子集可为输入群体的最适应模型,例如“整体精英”。举例来说,可确定“整体精英”,如参考图1a及4描述。
87.方法800可包含至少部分同时地执行多组操作。继续到826(在图8b中),方法800可包含关于子集的至少一个模型执行至少一个遗传操作以生成可训练模型。举例来说,交杂操作160及/或突变操作170可关于“整体精英”执行以生成可训练模型122,如参考图1a、4及5描述。
88.方法800还可包含在828处将可训练模型发送到反向传播训练器(或其它优化训练器)以用于基于训练数据集的一部分进行训练。举例来说,图1a的反向传播训练器180可基于训练数据集102的一部分训练可训练模型122以生成经训练模型182,如参考图1a及5描述。为了说明,反向传播训练器180可执行图1a的权重调整184、优化搜索186或两者。
89.遗传算法可在反向传播训练发生时继续。举例来说,方法800可包含在810处基于遗传距离将模型的输入群体分组为物种,及在812处确定每一物种的物种适应度。为了说明,可将输入集120的模型分组为物种且可评估物种适应度,如参考图1a、3及4描述。
90.继续到814,可移除满足停滞准则的物种。举例来说,可移除满足停滞准则150的物种,如参考图1a及4描述。在816处,方法800可包含基于物种的子集的相应适应度值识别物
种的子集及基于子集中的每一物种的模型的相应模型适应度值识别子集中的每一物种的模型。物种的子集可为输入群体的最适应物种,例如“精英物种”,且“精英物种”的经识别模型可为那些物种的最适应成员,例如“精英成员”。举例来说,可确定物种适应度值、“精英物种”及“精英成员”,如参考图1a及4描述。
91.方法800可包含在818处确定包含每一“精英成员”、“整体精英”及基于种内繁殖生成的至少一个模型的输出群体。举例来说,可确定图1a的输出集130的模型,其中输出集130包含整体精英模型460-464、精英成员(包含精英成员模型470)及基于种内繁殖使用交杂操作160及/或突变操作170生成的至少一个模型,如参考图1a及6描述。
92.方法800可包含在820处确定是否满足终止准则。作为说明性非限制性实例,终止准则可包含时间限制、时期的数目或整体最适应模型的阈值适应度值。如果不满足终止准则,那么方法800返回到806且执行遗传算法的下一时期,其中在818处确定的输出群体是下一时期的输入群体。
93.如上文描述,当遗传算法正在进行中时,反向传播训练器可训练可训练模型以生成经训练模型。当训练完成时,方法800可包含在830(在图8中)处从反向传播训练器(或其它优化训练器)接收经训练模型。可将经训练模型添加到遗传算法的时期的输入集,如图8b中展示。
94.当在820处满足终止准则时,方法800可包含在822处选择及输出最适应模型,且方法800可在824处结束。在一些实施方案中,所选择的模型可在输出之前经受例如由反向传播训练器或由另一训练器进行的最后训练操作。
95.应理解,图8a及8b中的步骤的划分及顺序仅是为了说明性目的,且不应认为是具限制性的。在替代实施方案中,某些步骤可组合,且其它步骤可被细分成多个步骤。此外,步骤的顺序可改变。举例来说,可在808处确定“整体精英”之后而非在818处确定输出群体之后评估终止准则。
96.图9描绘优化搜索186的特定实例。在特定方面中,优化搜索186由图1a的反向传播训练器180执行。
97.优化搜索186包含在904处接收可训练模型以基于训练数据集的一部分进行训练。举例来说,图1a的反向传播训练器180接收可训练模型122以基于训练数据集102的一部分进行训练,如参考图1a描述。
98.优化搜索186还包含在906处在特定反向传播迭代期间确定与多个先前反向传播迭代相关联的改进率。举例来说,图1a的反向传播训练器180在特定反向传播迭代期间确定由那个反向传播迭代引起的改进。通过跟踪每迭代改进,可确定与多个反向传播迭代(例如,当前迭代及一或多个先前执行的迭代)相关联的改进率,如参考图1a描述。
99.优化搜索186进一步包含在908处基于改进率选择可训练模型或先前可训练模型中的一者作为所选择的可训练模型。举例来说,图1a的反向传播训练器180基于改进率选择可训练模型122或先前可训练模型中的一者,如参考图1a描述。先前可训练模型先前在第一反向传播迭代的第一反向传播迭代期间经训练。
100.优化搜索186还包含在910处在特定反向传播迭代期间通过训练所选择的可训练模型生成经训练模型。举例来说,图1a的反向传播训练器180在特定反向传播迭代期间通过训练所选择的可训练模型生成经训练模型182,如参考图1a描述。
101.优化搜索186进一步包含在912处提供经训练模型作为到遗传算法的输入。举例来说,图1a的反向传播训练器180提供经训练模型182作为到遗传算法110的输入,如参考图1a描述。
102.选择先前可训练模型进行训练的“回滚”第一反向传播迭代。优化搜索186可通过选择性地回滚反向传播迭代以避免局部最小值且避免不收敛或不够快地收敛的权重向量来降低功耗。
103.连同所描述的方面,一种计算机系统包含存储器、处理器及优化训练器。所述存储器经配置以存储训练数据集及多个数据结构。所述多个数据结构中的每一者包含代表神经网络的数据。所述处理器经配置以执行递归搜索。执行所述递归搜索包含在所述递归搜索的第一迭代期间:基于所述训练数据集的至少一子集确定所述多个数据结构中的每一者的适应度值;基于数据结构的子集的所述适应度值从所述多个数据结构选择所述数据结构的子集;关于所述子集的至少一个数据结构执行交杂操作或突变操作中的至少一者以生成可训练数据结构;及将所述可训练数据结构提供到优化训练器。所述优化训练器经配置以在特定反向传播迭代期间:确定与多个先前反向传播迭代相关联的改进率,所述先前反向传播迭代在所述特定反向传播迭代之前执行;基于所述改进率选择所述可训练数据结构或先前可训练数据结构中的一者作为所选择的可训练数据结构,所述先前可训练数据结构先前在所述先前反向传播迭代的第一反向传播迭代期间训练;通过基于所述训练数据集的一部分训练所述所选择的可训练数据结构生成经训练数据结构;及将所述经训练数据结构提供作为输入到所述递归搜索的所述第一迭代之后的所述递归搜索的第二迭代。
104.连同所描述的方面,一种方法包含:基于适应度函数,由计算装置的处理器从多个模型选择模型的子集。所述多个模型基于遗传算法生成且对应于所述遗传算法的第一时期。所述多个模型中的每一者包含代表神经网络的数据。所述方法还包含关于所述子集的至少一个模型执行所述遗传算法的至少一个遗传操作以生成可训练模型。所述方法还包含在特定反向传播迭代期间确定与多个先前反向传播迭代相关联的改进率。所述先前反向传播迭代在所述特定反向传播迭代之前执行。所述方法还包含基于所述改进率选择所述可训练模型或先前可训练模型中的一者作为所选择的可训练模型。所述先前可训练模型先前在所述先前反向传播迭代的第一反向传播迭代期间训练。所述方法还包含在所述特定反向传播迭代期间通过训练所述所选择的可训练模型生成所述经训练模型。所述方法还包含将经训练模型作为输入添加到所述第一时期之后的所述遗传算法的第二时期。
105.连同所描述的方面,一种计算机可读存储装置存储指令,所述指令在被执行时致使计算机执行包括以下操作的操作:基于适应度函数,从多个模型选择模型的子集。所述多个模型基于遗传算法生成且对应于所述遗传算法的第一时期。所述多个模型中的每一者包含代表神经网络的数据。所述操作还包含关于所述子集的至少一个模型执行所述遗传算法的至少一个遗传操作以生成可训练模型。所述操作进一步包含将所述可训练模型发送到反向传播训练器以生成经训练模型。所述反向传播训练器通过基于与多个先前反向传播迭代相关联的改进率训练所述可训练模型或先前可训练模型中的一者生成所述经训练模型。所述先前可训练模型先前在所述先前反向传播迭代的第一反向传播迭代期间训练。所述操作还进一步包含将从所述反向传播训练器接收的所述经训练模型作为输入提供到所述第一时期之后的所述遗传算法的第二时期。
106.可依据功能块组件、屏幕截图、任选选择及各个处理步骤描述本文中说明的系统及方法。应了解,此类功能块可由经配置以执行指定功能的任何数目个硬件及/或软件组件实现。举例来说,系统可采用可在一或多个微处理器或其它控制装置的控制下实施各种功能的各种集成电路组件,例如存储器元件、处理元件、逻辑元件、查找表及类似物。类似地,系统的软件元件可用任何编程或脚本语言(例如c、c++、c#、java、javascript、vbscript、宏媒体冷融合、cobol、微软动态服务器页面、汇编、perl、php、awk、python、visual basic、sql存储程序、pl/sql、任何unix外壳脚本及可扩展标记语言(xml),其中各种算法用数据结构、对象、过程、例程或其它编程元件的任何组合实施。此外,应注意,系统可采用任何数目种技术来进行数据传输、信号传送、数据处理、网络控制及类似物。
107.本发明的系统及方法可体现为现存系统、附加产品、执行升级软件的处理设备、独立系统、分布式系统、方法、数据处理系统、用于数据处理的装置及/或计算机程序产品的定制。因此,系统或模块的任何部分可采用执行代码的处理设备、基于因特网(例如云计算)的实施例、完全硬件实施例或组合因特网、软件及硬件的方面的实施例的形式。此外,系统可呈计算机可读存储媒体或装置上的计算机程序产品的形式,所述计算机可读存储媒体或装置在所述存储媒体或装置中体现或存储有计算机可读程序代码(例如指令)。可利用任何合适的计算机可读存储媒体或装置,包含硬盘、cd-rom、光学存储装置、磁性存储装置及/或其它存储媒体。计算机可读存储媒体或装置不是信号。
108.在本文中可参考根据各种方面的方法、设备(例如系统)及计算机媒体的屏幕截图、框图及流程图说明描述系统及方法。应理解,框图及流程图说明中的每一功能块及框图及流程图说明中的功能块的组合分别可由计算机程序指令实施。
109.计算机程序指令可被加载到计算机或其它可编程数据处理设备上以产生一机器,使得在计算机或其它可编程数据处理设备上执行的所述指令创建用于实施在一或多个流程图框中指定的功能的构件。这些计算机程序指令也可存储于可指示计算机或其它可编程数据处理设备以特定方式起作用的计算机可读存储器或装置中,使得存储于计算机可读存储器中的指令产生包含实施在一或多个流程图框中指定的功能的指令构件的制品。计算机程序指令还可被加载到计算机或其它可编程数据处理设备上以导致一系列操作步骤将在计算机或其它可编程设备上执行以产生计算机实施的过程,使得在计算机或其它可编程设备上执行的指令提供用于实施在一或多个流程图框中指定的功能的步骤。
110.因此,框图及流程图说明的功能块支持用于执行指定功能的构件的组合、用于执行指定功能的步骤的组合及用于执行指定功能的程序指令构件。还应理解,框图及流程图说明中的每一功能块及框图及流程图说明中的功能块的组合可由执行指定功能或步骤的专用的基于硬件的计算机系统或专用硬件与计算机指令的合适的组合实施。
111.尽管本发明可包含一种方法,但应预期,其可体现为有形计算机可读媒体(例如磁性或光学存储器或磁盘或光盘/磁碟或光碟)上的计算机程序指令。所属领域的一般技术人员所知的上述示范性实施例的元件的所有结构、化学及功能等效物通过引用明确并入本文中,且意在由本权利要求书涵盖。此外,装置或方法不必解决试图通过本发明解决的每一及每个问题,因为其将由本权利要求书涵盖。此外,无论在权利要求书中是否明确陈述本发明中的元件、组件或方法步骤,所述元件、组件或方法步骤都不希望专用于公众。如本文中使用,术语“包括(comprise/comprising)”或其任何其它变型希望覆盖非排他性包含,使得包
括一列表元件的过程、方法、物品或设备不但包含那些元件而且可包含未明确列出或此过程、方法、物品或设备固有的其它元件。
112.可在不背离本发明的范围的情况下对所揭示的实施例作出改变及修改。这些及其它改变或修改意在包含于如在所附权利要求书中表达的本发明的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1