首页 / 专利库 / 人工智能 / 人工神经网络 / 前馈神经网络 / 具有学习教练的异步代理以及在不降低性能的情况下在结构上修改深度神经网络

具有学习教练的异步代理以及在不降低性能的情况下在结构上修改深度神经网络

阅读:71发布:2020-05-15

专利汇可以提供具有学习教练的异步代理以及在不降低性能的情况下在结构上修改深度神经网络专利检索,专利查询,专利分析的服务。并且方法和 计算机系统 通过以下方式来改善经训练的 基础 深度神经网络 ,即通过在结构上改变所述基础深度神经网络以创建更新的深度神经网络,使得相对于所述基础深度神经网络,所述更新的深度神经网络在 训练数据 上未产生性能下降。所述更新的深度神经网络随后进行训练。同时,用于在 机器学习 系统中使用的异步代理包括第二机器学习系统ML2,其将被训练以执行某些机器学习任务。所述异步代理进一步包括学习教练LC和任选的数据选择器机器学习系统DS。所述数据选择机器学习系统DS的目的是使所述第二级机器学习系统ML2在其学习过程中效率更高(通过选择一组较小但足够的训练数据)和/或更有效(通过选择一组集中于某项重要任务的训练数据)。所述学习教练LC是协助所述DS和所述ML2学习的机器学习系统。多个异步代理也可以彼此通信,每个异步代理在其各自的学习教练的指导下进行异步训练和增长以执行不同的任务。,下面是具有学习教练的异步代理以及在不降低性能的情况下在结构上修改深度神经网络专利的具体信息内容。

1.一种用于改善深度神经网络的方法,包括:
训练数据基础深度神经网络训练到期望的性能标准,其中:
所述基础深度神经网络包括输入层输出层以及位于所述输入层和所述输出层之间的第一隐藏层
所述第一隐藏层包括第一节点;以及
所述第一节点包括第一入弧和第一出弧;
在结构上改变所述基础深度神经网络以创建更新的深度神经网络,其中相对于所述基础深度神经网络,所述更新的深度神经网络在所述训练数据上未产生性能下降;以及随后训练所述更新的深度神经网络。
2.根据权利要求1所述的方法,其中在结构上改变所述基础网络包括:在相对于所述基础神经网络未降低所述更新的神经网络的性能的情况下,向所述第一节点添加新的入弧。
3.根据权利要求2所述的方法,其中在随后训练所述更新的深度神经网络之前,将所述新的入弧的权重初始设置为零。
4.根据权利要求1所述的方法,其中在结构上改变所述基础网络包括:在相对于所述基础神经网络未降低所述更新的神经网络的性能的情况下,向所述第一节点添加新的出弧。
5.根据权利要求2所述的方法,其中在随后训练所述更新的深度神经网络之前,将所述新的出弧的权重初始设置为零。
6.根据权利要求1所述的方法,其中在结构上改变所述基础网络包括:在相对于所述基础神经网络未降低所述更新的神经网络的性能的情况下,向所述第一隐藏层添加第二节点。
7.根据权利要求6所述的方法,其中:
所述第二节点具有至少一个入弧和至少一个出弧;以及
在随后训练所述更新的深度神经网络之前,将所述第二节点的所述至少一个出弧中的每一个的权重初始设置为零。
8.根据权利要求6所述的方法,其中所述第二节点的激活并非由所述基础深度神经网络中的其它节点确定。
9.根据权利要求6所述的方法,其中所述第二节点具有针对到所述第二节点的输入数据值的每个向量的指定目标值。
10.根据权利要求1所述的方法,其中在结构上改变所述基础网络包括:在相对于所述基础神经网络未降低所述更新的神经网络的性能的情况下,向所述基础神经网络添加第二隐藏层,其中所述第二隐藏层位于所述输入层和所述输出层之间并且不同于所述第一隐藏层。
11.根据权利要求10所述的方法,其中:
所述第二隐藏层位于所述第一隐藏层和所述输出层之间;
所述第二隐藏层包括多个节点;
所述第二隐藏层的所述多个节点包括第一组一个或多个节点和第二组一个或多个节点;
所述第二隐藏层中的所述第二组一个或多个节点中的节点的数量等于所述第一隐藏层中的节点的数量,使得所述第二层中的所述第二组一个或多个节点中的每个节点在所述第一隐藏层中都具有对应节点;
所述第二隐藏层中的所述第一组一个或多个节点中的每个节点包括入弧和出弧;
所述第二隐藏层中的所述第二组一个或多个节点中的每个节点包括与所述第一隐藏层中的其对应节点相同数量的入弧和出弧,从而使得所述层中的所述第二组一个或多个节点中的每个节点具有与所述第一隐藏层中其对应节点相同数量的入弧和出弧;
在随后训练所述更新的深度神经网络之前,将所述第二隐藏层的所述第一组节点中的所述一个或多个节点的每个出弧的权重初始设置为零;以及
将所述第二隐藏层的所述第二组节点中的所述一个或多个节点的每个入弧的权重初始设置为值一。
12.根据权利要求10所述的方法,其中:
所述第二隐藏层位于所述第一隐藏层和所述输出层之间;
所述第二隐藏层包括一个或多个节点;
所述第二隐藏层中的所述一个或多个节点中的每一个包括入弧和出弧;
在随后训练所述更新的深度神经网络之前,将所述第二隐藏层中的所述一个或多个节点的每个出弧的权重初始设置为零;以及
在随后训练所述更新的深度神经网络之前,来自所述第一隐藏层的出弧跳过所述第二隐藏层。
13.根据权利要求11所述的方法,其中在结构上改变所述基础网络包括用复合节点替换所述隐藏层中的所述第一节点。
14.根据权利要求13所述的方法,其中所述复合节点包括检测器节点和拒绝器节点。
15.根据权利要求14所述的方法,其中:
所述基础神经网络包括:
包括所述输出层的上子神经网络;以及
包括所述输入层的下子神经网络,使得所述隐藏层位于所述上子神经网络和所述下子神经网络之间;以及
在结构上改变所述基础网络进一步包括复制所述下子神经网络,使得至少存在第一下子神经网络和第二下子神经网络;所述隐藏层中的所述复合网络的所述检测器节点连接至所述上子神经网络和所述第一下子神经网络;以及
所述隐藏层中的所述复合网络的所述拒绝器节点连接至所述上子神经网络和所述第二下子神经网络。
16.根据权利要求14所述的方法,其中:
所述复合节点包括第三节点;
在结构上改变所述基础网络进一步包括复制所述下子神经网络,使得存在第三下子神经网络;以及
所述隐藏层中的所述复合网络的所述第三节点连接至所述上子神经网络和所述第三下子神经网络。
17.根据权利要求1至16中任一项所述的方法,进一步包括:
在结构上改变所述基础深度神经网络之后,用验证数据对所述更新的深度神经网络进行验证;以及
在检测到相对于所述基础深度神经网络,所述更新的深度神经网络在所述验证数据上产生性能下降时:
通过机器学习学习教练学习针对所述更新的深度神经网络的特征改变,以纠正相对于所述基础深度神经网络,所述更新的深度神经网络在所述验证数据上的性能下降;
以及在所述更新的深度神经网络中实现所述特征改变。
18.根据权利要求17所述的方法,其中所述基础深度神经网络包括深度前馈神经网络
19.根据权利要求17所述的方法,其中所述基础深度神经网络包括深度递归神经网络
20.根据权利要求1至16中任一项所述的方法,其中所述基础深度神经网络包括深度前馈神经网络。
21.根据权利要求1至16中任一项所述的方法,其中所述基础深度神经网络包括深度递归神经网络。
22.根据权利要求1至16中任一项所述的方法,其中所述期望的性能标准是用于所述基础深度神经网络的反向传播训练算法中的驻点。
23.一种用于改善深度神经网络的计算机系统,所述计算机系统包括:
第一组一个或多个处理器,以用于用训练数据将基础深度神经网络训练到期望的性能标准,其中:
所述基础深度神经网络包括输入层、输出层以及位于所述输入层和所述输出层之间的第一隐藏层;
所述第一隐藏层包括第一节点;以及
所述第一节点包括第一入弧和第一出弧;第二组一个或多个处理器,以用于:
在结构上改变所述基础深度神经网络以创建更新的深度神经网络,其中相对于所述基础深度神经网络,所述更新的深度神经网络在所述训练数据上未产生性能下降;以及随后训练所述更新的深度神经网络。
24.根据权利要求23所述的计算机系统,其中所述第二组一个或多个处理器通过在相对于所述基础神经网络未降低所述更新的神经网络的性能的情况下,向所述第一节点添加新的入弧来在结构上改变所述基础网络。
25.根据权利要求24所述的计算机系统,其中在随后训练所述更新的深度神经网络之前,将所述新的入弧的权重初始设置为零。
26.根据权利要求23所述的计算机系统,其中所述第二组一个或多个处理器通过在相对于所述基础神经网络未降低所述更新的神经网络的性能的情况下,向所述第一节点添加新的出弧来在结构上改变所述基础网络。
27.根据权利要求24所述的计算机系统,其中在随后训练所述更新的深度神经网络之前,将所述新的出弧的权重初始设置为零。
28.根据权利要求23所述的计算机系统,其中所述第二组一个或多个处理器通过在相对于所述基础神经网络未降低所述更新的神经网络的性能的情况下,向所述第一隐藏层添加第二节点来在结构上改变所述基础网络。
29.根据权利要求28所述的计算机系统,其中:
所述第二节点具有至少一个入弧和至少一个出弧;以及
在随后训练所述更新的深度神经网络之前,将所述第二节点的所述至少一个出弧中的每一个的权重初始设置为零。
30.根据权利要求28所述的计算机系统,其中所述第二节点的激活并非由所述基础深度神经网络中的其它节点确定。
31.根据权利要求28所述的计算机系统,其中所述第二节点具有针对到所述第二节点的输入数据值的每个向量的指定目标值。
32.根据权利要求23所述的计算机系统,其中所述第二组一个或多个处理器通过在相对于所述基础神经网络未降低所述更新的神经网络的性能的情况下,向所述基础神经网络添加第二隐藏层来在结构上改变所述基础网络,其中所述第二隐藏层位于所述输入层和所述输出层之间并且不同于所述第一隐藏层。
33.根据权利要求32所述的计算机系统,其中:
所述第二隐藏层位于所述第一隐藏层和所述输出层之间;
所述第二隐藏层包括多个节点;
所述第二隐藏层的所述多个节点包括第一组一个或多个节点和第二组一个或多个节点;
所述第二隐藏层中的所述第二组一个或多个节点中的节点的数量等于所述第一隐藏层中的节点的数量,使得所述第二层中的所述第二组一个或多个节点中的每个节点在所述第一隐藏层中都具有对应节点;
所述第二隐藏层中的所述第一组一个或多个节点中的每个节点包括入弧和出弧;
所述第二隐藏层中的所述第二组一个或多个节点中的每个节点包括与所述第一隐藏层中的其对应节点相同数量的入弧和出弧,使得所述层中的所述第二组一个或多个节点中的每个节点具有与所述第一隐藏层中的其对应节点相同数量的入弧和出弧;
在随后训练所述更新的深度神经网络之前,将所述第二隐藏层的所述第一组节点中的所述一个或多个节点的每个出弧的权重初始设置为零;以及
将所述第二隐藏层的所述第二组节点中的所述一个或多个节点的每个入弧的权重初始设置为值一。
34.根据权利要求32所述的计算机系统,其中:
所述第二隐藏层位于所述第一隐藏层和所述输出层之间;
所述第二隐藏层包括一个或多个节点;
所述第二隐藏层中的所述一个或多个节点中的每一个包括入弧和出弧;
在随后训练所述更新的深度神经网络之前,将所述第二隐藏层中的所述一个或多个节点的每个出弧的权重初始设置为零;以及
在随后训练所述更新的深度神经网络之前,来自所述第一隐藏层的出弧跳过所述第二隐藏层。
35.根据权利要求23至34中任一项所述的计算机系统,进一步包括:
由第三组一个或多个处理器实现的机器学习学习教练,其中所述机器学习学习教练用于在检测到相对于所述基础深度神经网络,所述更新的深度神经网络在验证数据上产生性能下降时:
学习针对所述更新的深度神经网络的特征改变,以纠正相对于所述基础神经网络,所述更新的神经网络在所述验证数据上的性能下降;以及
在所述更新的深度神经网络中实现所述特征改变。
36.根据权利要求35所述的计算机系统,其中所述基础深度神经网络包括深度前馈神经网络。
37.根据权利要求35所述的方法,其中所述基础深度神经网络包括深度递归神经网络。
38.根据权利要求23至34中任一项所述的方法,其中所述基础深度神经网络包括深度前馈神经网络。
39.根据权利要求23至34中任一项所述的方法,其中所述基础深度神经网络包括深度递归神经网络。
40.根据权利要求23至34中任一项所述的方法,其中所述期望的性能标准是用于所述基础深度神经网络的反向传播训练算法中的驻点。
41.一种自动编码器,包括:
下子网络,其包括编码器网络;
低带宽特征向量,其用作所述自动编码器的瓶颈层;以及
上子网络,使得所述低带宽特征向量位于所述下子网络和所述上子网络之间,其中所述上子网络包括机器学习分类器网络和用于所述下子网络的所述编码器网络的解码器网络,其中通过由所述解码器网络和所述机器学习分类器网络的梯度下降反向传播来训练所述低带宽特征向量和所述编码器网络。
42.根据权利要求41所述的自动编码器,其中所述自动编码器通过监督训练进行训练。
43.根据权利要求41所述的自动编码器,其中所述自动编码器通过半监督训练进行训练。
44.根据权利要求41所述的自动编码器,其中:
除所述编码器网络之外,所述下子网络包括第一子神经网络;
除所述机器学习分类器网络和所述解码器网络之外,所述上子网络包括第二子神经网络。
45.一种用于训练机器学习系统的方法,其中所述机器学习系统包括用于将输入分类成一组目标类别TC的机器学习分类器ML2,所述方法包括:
[a]在第一训练数据集T1上训练数据选择机器学习系统DS,其中T1是S的子集,其中S是一组标记的训练示例,并且其中T1≠S;
[b]在T1上训练之后,用所述数据选择机器学习系统DS将第二训练数据集T2分类成两个或更多个目标类别TC,其中T2是S的子集,并且其中T2≠T1≠S;
[c]为训练ML2选择所述第二训练数据集T2的子集T2',其中所述子集T2'基于误差参数进行选择,使得如果由DS对T2的训练示例的分类的分数不正确并且在正确分类的分数的所述误差参数内,则将所述训练示例包含在所述子集T2'中;
[d]在T2'上训练ML2;以及
使所述机器学习系统的方面逐渐增长直到满足停止标准为止,其中以所述机器学习系统的逐渐增长的方面来重复步骤[a]至[d],直到满足所述停止标准为止。
46.根据权利要求45所述的方法,其中所述逐渐增长的方面包括对ML2的结构改变。
47.根据权利要求46所述的方法,其中ML2包括深度神经网络。
48.根据权利要求47所述的方法,其中所述结构改变包括以下中的至少一项:
向ML2添加新的节点;
向ML2添加新的弧;
向ML2添加新的层。
49.根据权利要求46所述的方法,其中:
Ml2包括机器学习分类器的集成;以及
所述结构改变包括向ML2添加新的集成成员。
50.根据权利要求45所述的方法,其中所述逐渐增长的方面包括对DS的结构改变。
51.根据权利要求50所述的方法,其中D2包括深度神经网络。
52.根据权利要求51所述的方法,其中所述结构改变包括以下中的至少一项:
向DS添加新的节点;
向DS添加新的弧;
向DS添加新的层。
53.根据权利要求51所述的方法,其中所述逐渐增长的方面包括:增加针对ML2的所述一组目标类别TC。
54.根据权利要求45所述的方法,其中所述逐渐增长的方面包括:改变所述一组标记的训练示例S。
55.根据权利要求45所述的方法,其中在T2'上训练ML2包括使用随机梯度下降在T2'上训练ML2。
56.根据权利要求55所述的方法,其中在T1上训练DS包括使用随机梯度下降在T1上训练DS。
57.根据权利要求45所述的方法,其中:
所述机器学习系统包括学习教练;以及
所述方法进一步包括由所述学习教练系统为步骤[a]至[d]的每次迭代指定所述误差参数。
58.根据权利要求57所述的方法,其中所述学习教练系统包括机器学习系统。
59.根据权利要求57所述的方法,其中:
所述机器学习系统包括智能代理;以及
所述方法进一步包括由所述智能代理设置所述停止标准的步骤。
60.一种生成分类器的集成的方法,所述方法包括:
训练多个机器学习分类器ML2,其中每个ML2通过以下训练:
[a]在第一训练数据集T1上训练数据选择机器学习系统DS,其中T1是S的子集,其中S是一组标记的训练示例,并且其中T1≠S;
[b]在T1上训练之后,用所述数据选择机器学习系统DS将第二训练数据集T2分类成两个或更多个目标类别TC,其中T2是S的子集,并且其中T2≠T1≠S;
[c]为训练ML2选择所述第二训练数据集T2的子集T2',其中所述子集T2'基于误差参数进行选择,使得如果由DS对T2的训练示例的分类的分数不正确并且在正确分类的分数的所述误差参数内,则将所述训练示例包含在所述子集T2'中;
[d]在T2'上训练ML2;以及
使所述机器学习系统的方面逐渐增长直到满足停止标准为止,其中以所述机器学习系统的逐渐增长的方面来重复步骤[a]至[d],直到满足所述停止标准为止;
将所述ML2分类器合并为集成;以及
针对所述ML2分类器中的每一个在T2的并集上训练所述集成。
61.根据权利要求60所述的方法,其中:
所述ML2分类器的集成是较大的神经网络的一部分;以及
所述较大的神经网络包括:
级别高于所述ML2分类器的所述集成的子神经网络;以及
位于所述ML2分类器的所述集成与所述较大的神经网络之间的层,其中所述层包括一个或多个模式,其中所述一个或多个模式中的至少一个由所述集成中的所述ML2分类器的输出来计算综合分数。
62.一种机器学习系统,包括:
机器学习分类器ML2;
数据选择机器学习系统D2,其选择用于训练ML2的训练示例,使得ML2在不产生分类性能下降的情况下增长。
63.根据权利要求62所述的机器学习系统,其中:
ML2具有一组学习参数,其可调整以最小化表示ML2分类误差的代价的目标函数;以及所述机器学习系统进一步包括机器学习学习教练LC,所述机器学习学习教练LC:
被训练以识别机器学习过程的观察中的模式;
基于对ML2训练的观察,根据所述LC的目标函数的目标设置ML2的所述学习参数中的一个或多个。
64.根据权利要求63所述的机器学习系统,其中所述LC具有与ML2和DS不同的目标函数。
65.根据权利要求63所述的机器学习系统,其中ML2的所述学习参数中的所述一个或多个包括ML2的一个或多个超参数。
66.根据权利要求63所述的机器学习系统,进一步包括与所述LC通信的智能代理,其中所述智能代理将所述目标发送到所述LC。
67.根据权利要求63所述的机器学习系统,其中:
DS具有一组学习参数,其可调整以最小化表示DS分类误差的代价的目标函数;以及基于对ML2训练的观察,所述LC根据所述DS的目标设置所述DS的所述学习参数中的一个或多个。
68.根据权利要求63所述的机器学习系统,其中DS的所述学习参数中的所述一个或多个包括DS的一个或多个超参数。
69.根据权利要求62所述的机器学习系统,其中:
ML2包括机器学习分类器的集成;以及
ML2通过向ML2添加新的集成成员来增长。
70.根据权利要求62所述的机器学习系统,进一步包括机器学习学习教练LC,其被训练以识别机器学习过程的观察中的模式,其中所述LC确定如何使ML2在不降低分类性能的情况下增长。
71.根据权利要求70所述的机器学习系统,其中所述LC还确定如何使DS在不降低分类性能的情况下增长。
72.根据权利要求70所述的机器学习系统,其中:
ML2包括神经网络;以及
基于来自ML2的观察,所述LC确定如何使ML2增长。
73.根据权利要求72所述的机器学习系统,其中,所述LC确定对ML2的结构改变以使ML2增长,其中所述结构改变包括以下中的至少一项:
向ML2添加新的节点;
向ML2添加新的弧;
向ML2添加新的层。
74.一种机器学习系统,包括:
用于实现机器学习分类器ML2的第一组一个或多个处理器;以及
用于实现数据选择机器学习系统D2的第二组一个或多个处理器,所述数据选择机器学习系统D2选择用于训练ML2的训练示例,使得ML2在不降低分类性能的情况下增长。
75.根据权利要求74所述的机器学习系统,进一步包括用于实现机器学习学习教练LC的第三组一个或多个处理器,所述机器学习学习教练LC被训练以识别机器学习过程的观察中的模式,其中实现所述LC的所述第三组一个或多个处理器确定如何使ML2在不降低分类性能的情况下增长。
76.根据权利要求75所述的机器学习系统,其中:
ML2包括神经网络;以及
基于来自ML2的观察,实现所述LC的所述第三组一个或多个处理器通过确定对ML2的结构改变来确定如何使ML2在不降低分类性能的情况下增长;以及
所述结构改变包括以下中的至少一项:
向ML2添加新的节点;
向ML2添加新的弧;
向ML2添加新的层。
77.一种包括多个联网异步代理的机器学习系统,其中:
每个异步代理包括:
机器学习分类器ML2;数据选择机器学习系统D2,其选择用于训练ML2的训练示例,使得ML2在不降低分类性能的情况下增长;以及
训练每个分类器ML2以进行单独的分类。
78.根据权利要求77所述的机器学习系统,其中每个分类器ML2是分类器集成中的集成成员。
79.根据权利要求78所述的机器学习系统,进一步包括
级别高于所述ML2分类器的所述集成的子神经网络;以及
位于所述ML2分类器的所述集成与较大的神经网络之间的层,其中所述层包括一个或多个模式,其中所述一个或多个模式中的至少一个由所述集成中的所述ML2分类器的输出来计算综合分数。
80.根据权利要求77所述的机器学习系统,其中所述分类器ML2中的至少两个具有不同的机器学习结构。
81.根据权利要求77所述的机器学习系统,其中所述多个联网异步代理中的至少一个进一步包括机器学习学习教练LC,所述机器学习学习教练LC被训练以识别机器学习过程的观察中的模式,其中所述LC根据所述LC的目标函数的目标确定如何使所述至少一个异步代理的所述分类器ML2在不降低分类性能的情况下增长。
82.根据权利要求81所述的机器学习系统,其中所述多个联网异步代理中的所述至少一个进一步包括机器学习智能代理IA,所述机器学习智能代理IA被训练为设置所述LC的所述目标以使所述一个或多个分类器ML2增长。
83.根据权利要求77所述的机器学习系统,其中所述多个网络异步代理中的每一个进一步包括:
机器学习学习教练LC,所述机器学习学习教练LC被训练以识别机器学习过程的观察中的模式,其中所述LC根据所述LC的目标函数的目标确定如何使所述异步代理的所述分类器ML2在不降低分类性能的情况下增长;以及
机器学习智能代理IA,所述机器学习智能代理IA被训练为设置所述LC的所述目标以使所述异步代理的所述ML2增长,其中所述多个异步代理的所述IA彼此进行通信。
84.根据权利要求83所述的机器学习系统,进一步包括与所述多个网络异步代理中的每一个通信的机器学习管理代理,其中所述管理代理控制所述多个网络异步代理中的哪些在给定时间处于活动状态或非活动状态。
85.根据权利要求84所述的机器学习系统,其中:
所述分类器ML2中的至少两个具有不同的机器学习结构;以及
所述IA使用由所述管理代理存储的参考对象彼此进行通信。
86.根据权利要求85所述的学习系统,其中所述参考对象包括由输入数据项产生的来自参考网络的输出值的特征向量。
87.根据权利要求81所述的机器学习系统,其中:
所述机器学习系统是语音识别系统;以及
所述多个异步代理的第一子集中的每个成员分析可听语音的不同频段;以及所述多个异步代理的第二子集中的每个成员分析整个频率范围。

说明书全文

具有学习教练的异步代理以及在不降低性能的情况下在结构

修改深度神经网络

[0001] 优先权
[0002] 本申请要求2017年6月5日提交的标题为“具有学习教练的异步代理”的美国临时申请序列第62/515,142号的优先权,其具有与上述申请相同的发明人,并且其全部内容通
过引用整体并入本文。
[0003] 相关申请的交叉引用
[0004] 本申请涉及以下申请,所有这些申请的全部内容被并入本文:标题为“用于机器学习系统的学习教练”的PCT申请第PCT/US17/52037号;以及标题为“用于机器学习系统的学习教练”的PCT申请第PCT/US18/20887号。

背景技术

[0005] 机器学习系统,特别是深度神经网络,近年来已经取得了巨大的成功。特别地,机器学习系统在处理大量数据的问题时可以很好地缩放。实际上,机器学习系统趋于满足“越大总是越好”的特性。也就是说,针对给定问题可用的数据越多,机器学习分类器或预测器的性能就越好。对于深度神经网络,网络越大且学习的参数越多,就越好,直到达到数据量的限制。作为数据集大小的一个示例,行业标准基准ImageNet拥有超过1400万张图像,其中超过一百万张已被注释并配有边框。
[0006] 然而,诸如深度神经网络的机器学习系统中的较大的数据集和大量参数也存在问题。例如,训练深度神经网络所需的计算量往往与数据集的大小乘以神经网络的大小成比
例地增长。另外,具有多个隐藏层的大型神经网络很难解释。还难以以任何细化的方式来控制学习过程。
[0007] 对于非常大的网络存在的另一个问题是计算需要在多个计算机之间进行分配。然而,当网络训练在通过有限带宽的数据通道相互通信的多个计算机之间分配时,数据带宽
可能成为计算速度的限制因素。这种数据瓶颈可能限制最大实际网络的大小,即使使用更
多的计算机。
[0008] 随着深度神经网络的大小变得越来越大,最终还会出现其它问题,尤其是在向已经被训练成高性能的网络添加额外的层时。尽管从理论上讲,更深的网络应该总是比层较
少的网络性能更好,至少在训练数据上,但也已经观察到相反的现象。也就是说最终,随着添加更多层,性能不仅下降,而且急剧下降。在出现此问题之前,某些较新的架构已能够显著地增加层的数量,但是这些较新的架构并未消除该问题。
[0009] 对于深度神经网络存在的另一个问题是,在多层的情况下,梯度趋于“消失”,即,梯度的幅度趋于收敛为零。当梯度的幅度接近零时,基于梯度下降的算法中的学习将变得非常缓慢。
[0010] 其中“越大总是越好”的另一方面是机器学习系统的集成的使用。对于几乎所有基准测试,机器学习系统的集成均击败了最佳单一系统的性能。此外,随着将更多成员添加到集成中,性能往往会逐渐提高。然而,通过向集成添加另外的成员而实现的逐渐提高的量迅速下降。一个重要的问题是,在训练和操作中,对于集成的计算量往往与集成中的成员数量成比例。因此,增加大型集成的大小并不划算。

发明内容

[0011] 在一个总体方面,本发明涉及用于改善基础深度神经网络的方法和计算机系统。所述方法包括用训练数据将基础深度神经网络训练到期望的性能标准,例如达到或接近收
敛或驻点(的阈值范围内)。基础深度神经网络包括输入层输出层以及位于输入层和输出
层之间的第一隐藏层。第一隐藏层包括第一节点,所述第一节点继而包括第一入弧和第一
出弧。所述方法进一步包括在结构上改变基础深度神经网络以创建更新的深度神经网络,
使得相对于基础深度神经网络,更新的深度神经网络在训练数据上未产生性能下降。所述
方法进一步包括随后训练更新的深度神经网络。
[0012] 在各种实施方式中,在结构上改变基础网络可以包括在相对于基础神经网络未降低更新的神经网络的性能的情况下,向第一节点添加新的弧。新的弧可以是新节点的入弧,或者是新节点的出弧。对基础网络的结构改变还可以包括向第一隐藏层添加第二节点或向
基础神经网络添加第二隐藏层。更进一步地,在结构上改变基础网络可以包括用包括例如
检测器节点和拒绝器节点的复合节点替换隐藏层中的第一节点。在各种实施方式中,基础
神经网络包括上子神经网络和下子神经网络,上子神经网络包括输出层,下子神经网络包
括输入层,使得隐藏层位于上子神经网络和下子神经网络之间。在该情况下,在结构上改变基础网络可以进一步包括复制下子神经网络,使得至少存在第一下子神经网络和第二下子
神经网络,使得隐藏层中的复合网络的检测器节点连接至上子神经网络和第一下子神经网
络,且隐藏层中的复合网络的拒绝器节点连接至上子神经网络和第二下子神经网络。复合
节点可以进一步包括第三节点,在这种情况下,在结构上改变基础网络可以进一步包括复
制下子神经网络,使得存在第三下子神经网络,并且使得隐藏层中的复合网络的第三节点
连接至上子神经网络和第三下子神经网络。
[0013] 在另一方面,本发明涉及一种用于在机器学习系统中使用的异步代理。异步代理包括第二机器学习系统ML2,其将被训练以执行某些机器学习任务。异步代理进一步包括学习教练LC和任选的数据选择器机器学习系统DS。数据选择机器学习系统DS的目的是使第二
级机器学习系统ML2在其学习过程中效率更高(通过选择一组较小但足够的训练数据)和/
或更有效(通过选择一组集中于某项重要任务的训练数据)。学习教练LC是协助DS和ML2学
习的机器学习系统。由于异步代理包括一个或多个学习教练LC,因此在本文中有时将其称
为具有学习教练或“AALC”的异步代理。
[0014] 本申请描述了如何利用来自学习教练LC和/或数据选择机器学习系统DS的输入来对第二级机器学习系统ML2进行逐渐训练和增长。第二级机器学习系统ML2增长的一种方
式,特别是当其包括深度神经网络时,是在节点之间添加新的弧、在网络的现有层中添加新的节点、在网络中添加新的层、添加复合节点和/或新的输入或输出节点。本文描述了至少在关于训练数据方面不降低网络性能的情况下以这种方式使网络增长的各种技术。
[0015] 在其它方面,本发明涉及一种包括多个AALC的系统,所述多个AALC通过例如管理单元进行通信。每个AALC在各自的学习教练的指导下进行异步训练和增长,以执行不同的
任务。在此类系统中,AALC可能已经在不同的数据上进行了训练和/或可能具有不同的网络架构。本申请描述了用于AALC以有效方式关于内部状态进行通信的方式。
[0016] 通过以下描述,本发明的实施例的这些和其它益处将变得显而易见。附图说明
[0017] 结合以下附图,通过示例的形式对本发明的各种实施例进行描述,其中:
[0018] 图1是根据本发明的各种实施例的AALC的框图
[0019] 图2和图12是根据本发明的各种实施例的具有多个AALC的系统的框图;
[0020] 图3是根据本发明的各种实施例的用于AALC的逐渐学习和增长的过程的流程图
[0021] 图4是示出根据本发明的各种实施例的用于将集成组合到单个深度神经网络中的技术的示意图;
[0022] 图5是示出根据本发明的各种实施例的在不降低网络性能的情况下向深度神经网络添加弧的技术的示意图;
[0023] 图6是示出根据本发明的各种实施例的在不降低网络性能的情况下向深度神经网络的现有层添加节点的技术的示意图;
[0024] 图7和图8是示出根据本发明的各种实施例的在不降低网络性能的情况下向深度神经网络的现有层添加新的节点层的技术的示意图;
[0025] 图9是复合节点的示意图;
[0026] 图10是示出根据本发明的各种实施例的在不降低网络性能的情况下向深度神经网络的现有层添加输入节点的技术的示意图;
[0027] 图11是示出根据本发明的各种实施例的在不降低网络性能的情况下向深度神经网络的现有层添加输出节点的技术的示意图;
[0028] 图13是示出根据本发明的各种实施例的用于具有稀疏特征向量的自动编码器的监督训练的技术的示意图;
[0029] 图14是示出根据本发明的各种实施例的用于稳定插入到深度神经网络中的特征向量的技术的图;
[0030] 图15是示出根据本发明的各种实施例的用作检测器和拒绝器的复合节点的示意图;
[0031] 图16是根据本发明的各种实施例的具有多个检测器和拒绝器的输出节点的示意图;以及
[0032] 图17和图18是根据本发明的各种实施例的多级学习系统的示意图。

具体实施方式

[0033] 本发明的说明性实施例是一种机器学习系统,其基于一组标记的训练示例S={,其中y(m)=f(x(m)),m=1,...,M}学习近似从输入空间x∈X到输出空间y∈Y的
映射y=f(x),其中M是S的大小。输入空间X称为“全局”输入空间;Y称为“全局”输出空间;集合S是总训练集。本发明的说明性实施例具有一个或多个异步代理,每个异步代理具有学习教练。具有学习教练(AALC)的每个单独的异步代理都可以具有不同于全局输入空间的单独
输入空间。在多个实施例中,任务是模式识别或分类问题。输出空间Y是分类类别的有限集。
每个单独的AALC可以具有一个不同于Y的单独输出空间。例如,其可以是Y的一组不相交的
子集,其表示其中忽略一些区别的简化的分类问题。
[0034] 整个系统的描述(图1和图2):图1示出了智能AALC的说明性实施例。本发明的实施例还涉及一种包括多个此类智能AALC的网络或系统,如图2所示。在图1所示的示例中,AALC包括集合S的至少三个不相交的子集,即训练集T、第二级训练集T2和验证集V。AALC也可以包括第四集合D2,该第四集合D2可以是稍后将讨论的开发集。智能AALC还包括至少两个主
要的机器学习系统:数据选择器机器学习系统DS和第二级机器学习系统ML2。智能AALC还包括至少一个学习教练LC。学习教练LC是用于数据选择机器学习系统DS和机器学习系统ML2
的学习教练。在一些实施例中,存在用于数据选择机器学习系统DS的学习教练LC,以及用于机器学习系统ML2的独立学习教练LC2。一些实施例具有单个学习教练LC,其执行由两个学
习教练LC和LC2完成的所有功能。在不失一般性的情况下,可以将说明性实施例描述为存在单个学习教练LC的情况。学习教练LC本身可以是帮助数据选择机器学习系统DS和/或机器
学习系统ML2学习其系统的机器学习系统,如下文所进一步描述的。关于此类学习教练的更多细节在James K.Baker于2017年3月24日提交的标题为“用于机器学习系统的学习教练”
的美国临时专利申请序列第62/476,280号中进行了描述,其通过引用整体并入本文(以下
称为“学习教练临时申请”)。
[0035] AALC还包括分类任务规范TS。任务规范TS指定用于机器学习系统DS和ML2的目标类别。在本发明的一些说明性实施例中,由TS指定的类别是全局输出空间Y的元素或子集。
AALC的说明性实施例实现增量学习策略,在该策略中首先学习较小、较容易的分类任务,然后以在较容易任务中学习的知识为基础,学习较难的任务。在此进程中,AALC的元素以几种方式增长:机器学习系统DS和ML2的大小和复杂性不断增长;训练和验证数据集中的数据量不断增长;以及任务规范的复杂性不断增长。也就是说,指定了具有更多类别和更细微区别的任务。
[0036] AALC还包括输入特征向量规范IFV。通常,用于回归问题的分类的全局输入空间X是一个n元组的数字或类别值的空间,其形式为。n元组中的每个位置称为
“特征”,n元组称为“特征向量”。但是,名称“特征向量”仅表示空间X包含n个元组。不一定能够像在正式向量空间中那样将两个特征向量加在一起来获得第三个特征向量。单个AALC可
以具有全局输入空间X的子空间作为其输入空间。也就是说,单个AALC可以具有m元组g2,...,gm>的空间作为其输入空间,其中每个gj等于fi中的一个。在一些实施例中,gj可以是衍生特征。也就是说,它们可以是一个或多个全局特征fi的函数,或者它们可以是由另一机器学习系统计算的输出值。针对特定AALC的输入特征向量规范IFV为特定AALC的输入特征
向量的每个特征指定如何从全局输入特征向量中计算出该输入特征。
[0037] 图1还示出了AALC可以进一步包括智能代理IA。智能代理IA同样是机器学习系统,其控制与其它AALC的交互(参见图2),并选择策略来指导学习教练LC的学习策略。可以通过强化学习和/或从先前的经验来训练智能代理IA。在一些实施例中,学习教练LC和智能代理IA可以组合成单个机器学习系统。
[0038] 图1示出了根据本发明各种实施例的单个AALC。通常,存在相互通信的多个AALC作为AALC网络或系统的一部分,如图2所示。任何AALC都可以生成另外的AALC,因此,即使学习过程是从单个AALC开始的,系统也可以增长为具有多个AALC。
[0039] 图1所示的示例性AALC可以用计算机硬件软件来实现。例如,AALC可以是具有多个处理CPU核心的集成计算机系统(例如,服务器或服务器的网络)的一部分。一组核心可以执行用于智能代理IA、学习教练LC、数据选择机器学习系统DS和第二级学习系统ML2的程序指令。程序指令可以存储在可以由处理核心访问的计算机存储器中,例如RAM、ROM、处理器寄存器或者处理器高速缓存。在其它实施例中,智能代理IA、学习教练LC、数据选择机器学习系统DS和第二级学习系统ML2中的一些或全部可以在图形处理器单元(GPU)核心上执行,
例如通用GPU(GPGPU)流线,和/或在一个或多个AI加速器上执行。GPU核心并行地操作并
且由此通常可以更有效地处理数据,即一系列的CPU核心,但是所有的核心同时执行同一代码。因此,如果智能代理IA、学习教练LC、数据选择机器学习系统DS或第二级学习系统ML2是通过GPGPU流水线实现的,则GPU核心将需要轮流执行每个系统的代码。AI加速器是被设计
用于加速人工神经网络的一类微处理器,并且包含多个使用相对低精度的算法(例如8位)
的处理元件(例如50,000个或更多个处理元件)。
[0040] 在其它实施例中,智能代理IA、学习教练LC、数据选择机器学习系统DS和第二级学习系统ML2中的一些或全部可以是分布式计算机系统的一部分。例如,实现智能代理IA、学习教练LC、数据选择机器学习系统DS和/或第二级学习系统ML2的计算机设备(例如,服务器)可以彼此远离并利用合适的有线和/或无线数据通信链路通过数据网络进行互连,例如
LAN、WAN、因特网等。数据可以利用合适的数据链路在各种系统之间共享,例如数据总线(优选地为高速数据总线)或者网络链路(例如,以太网)。
[0041] 任务规范TS和输入特征向量规范IFV可以存储在例如存储在AALC的主计算机存储器和/或辅助计算机存储器中的文件中。主计算机存储器可以是RAM和ROM,而辅助计算机存储器可以是处理器无法直接寻址的存储设备,例如HDD或闪存。
[0042] 除多个AALC之外,AALC的网络或系统还可以包括管理单元,该管理单元包括管理代理AA、优先级队列PQ、一组存储库RP、归档AR和辅助存储装置SS,如图2所示。管理代理是一种机器学习系统,其管理与AALC的通信以及管理单元中的资源。管理单元可以由一个或
多个联网计算机系统来实现,并且不一定是单个中央单元。管理代理可以使用多个CPU或
GPU核心,其中用于管理代理的程序指令存储在可以由处理核心访问的计算机存储器中,例如RAM、ROM、处理器寄存器或者处理器高速缓存。这些资源可以在分布式系统上实现和/或可以存在多个管理单元。功能是相同的,因此在不失一般性的情况下,说明性实施例的讨论将依据单个管理单元进行。
[0043] 优先级队列PQ包含系统中AALC的优先级列表,并且可以存储在管理代理的主存储器和/或辅助存储器中所存储的文件中。以下描述确定优先级列表的机制。存储库包含系统中活动和非活动AALC的副本,以及由AALC使用并在AALC之间共享的其它资源。例如,存储库可以将关于活动和非活动AALC的层、节点、权重和学习历史的数据存储在管理代理的非易
失性主存储器和/或辅助存储器(例如,ROM或HDD)中的数据库中。这些AALC的副本优选地包含足够的信息以从制作副本时的状态恢复AALC的学习过程。该归档包含AALC在其学习过程
的各个阶段的永久记录以及它们使用的资源。通常,归档AR存储在辅助存储装置(例如,HDD或磁盘阵列)中。如上所述,优先级队列PQ的一部分和存储库也可以存储在辅助存储装置
中。
[0044] □说明性示例:私人购物顾问。当前,许多网站都使用机器学习来向在线购物的购物者提出个性化建议。这种能的增强版本是诸如本发明的一些实施例的分布式学习系统的自然应用。作为个人推荐规则受卖方控制的替代,基于AALC的私人购物顾问可以从多个
卖方收集信息,同时在每个购物者的控制下个性化推荐。
[0045] DS、ML2、LC、IA和AA的说明性色。DS、ML2、LC、IA和AA系统中的每一个都包括一个或多个机器学习系统。在一些实施例中,它们中的任何一个都可以学习完成由它们中的另一个在不同的说明性实施例中完成的任务。所描述的实施例是出于说明的目的,而非进行
限制。出于本发明的目的,合并两个或更多个这些组件或以不同方式分配其角色的其它实
施例是等效的。
[0046] 这些智能子系统可以在整个学习任务中合作。出于讨论的目的,它们具有如下重叠但不同的角色。数据选择机器学习系统DS和第二级机器学习系统ML2是主要的模式识别
系统,也称为分类系统。它们学习将输入值的向量映射到针对一组目标类别中每一个的分
数。也就是说,它们每个都试图在其资源范围内执行与整个系统正在执行的相同的任务,或者可能是基于输入特征的子集和/或目标类别的缩减集执行该任务按比例缩小的版本。优
选地,其它机器学习系统LC、IA或AA中没有一个执行该模式识别任务。
[0047] □机器学习系统DS和ML2:数据选择机器学习系统DS优选地为第二级机器学习系统ML2预先选择训练数据,并且对于AALC是任选的。数据选择机器学习系统DS的目的是使第二级机器学习系统ML2在其学习过程中效率更高(通过选择一组较小但足够的训练数据)
和/或更有效(通过选择一组集中于某项重要任务的训练数据)。在不失一般性的情况下,本文的AALC的说明性实施例的大部分描述将AALC描述为具有数据选择机器学习系统DS。然
而,应当理解,本发明的范围包括没有数据选择机器学习系统DS的相同系统。例如,始终选择所有T2以便T2'=T2的数据选择系统DS是一种可允许的数据选择系统(其中T2'表示由DS
选择的T2的一部分)。AALC中的一些或全部可能不具有DS部件,但是替代地在当前一轮中可以使ML2在向AALC提供的所有训练数据T2上训练。另外,在一些实施例中,机器学习系统DS和/或机器学习系统ML2可以包括机器学习系统的集成。
[0048] □学习教练LC:数据选择机器学习系统DS和第二级机器学习系统ML2是主要的机器学习系统。它们各自具有一组学习的参数,这些参数可以调整以最小化表示分类过程中
误差代价的目标函数。另一方面,学习教练LC优选地并不尝试自己执行这种分类。其作用是引导和控制系统DS和ML2,以帮助它们更快地学习和/或帮助它们学习产生较低误差代价的
参数值。除其它方面外,学习教练LC可以设置控制参数的值,这些控制参数控制DS或ML2的学习过程和/或出现在描述DS或ML2的学习过程中的计算的方程式中。为了将LC设置的参数
与DA或ML2所学习的参数区分开,LC设置的控制参数被称为“超参数”。有关超参数的更多详细信息在“学习教练临时申请”中进行了描述。学习教练LC可以从其它学习任务的先前经验中学习,也可以从当前学习任务期间的实验中学习。
[0049] □说明性示例:用学习教练训练深度神经网络:下面的伪代码说明了使用随机梯度下降训练深度神经网络,其中以小批量完成更新。超参数由学习教练LC控制和定义,并且还有一些其它创新。在本说明性示例中,输出节点激活是以温度作为超参数的柔性最大值
传输函数(softmax)。每个内部节点都是一个具有温度超参数的S型函数(sigmoid)σ(χ;T)=1/(1+exp(-x/T))。存在逐层梯度归一化。
[0050] 具有梯度归一化和学习教练控制的随机梯度下降的伪代码
[0051] 1.对于每个纪元,直到满足停止标准为止
[0052] a.αl-1,0(m)=1,其为常数,因此wl,0,j是第l层中节点j的偏差
[0053] b.输入一组(小批量数t)训练示例
[0054] 1.对于每个训练示例m,设置a0,i(m)并执行以下步骤:
[0055] 1.前馈(softmax输出):对于每个l=1,2,...,L-1
[0056] 计算
[0057] σ(zl,j(m);Tl,j,t);
[0058] 2.Softmax输出:
[0059] 3.输出误差梯度(m):
[0060]
[0061] 4.反向传播误差梯度:对于每个l=L-1,L-2,...,2,1计算
[0062]
[0063] 2.计算小批量的梯度:
[0064]
[0065] 3.计算动量:
[0066] vl,i,j→v′l,i,j=μl,i,jvl,i,j-ηl,i,jΔl-1,i
[0067] 4.计算层的范数:
[0068] Sl=Maxi|Δl,i|
[0069] 5.梯度下降:对于每个l=L-1,L-2,...,2,1更新权重
[0070] wl,i,j→w′l.i.j=wl,i,j(1-λl,i,j)-v′l,i,j
[0071] 在该伪代码中示出了对现有技术的一些创新。首先,超参数由学习代码LC控制。对于超参数中的多个,对于每个学习的参数可以有一个自定义值。也就是说,对于每个弧权重,超参数ηl,i,j,λl,i,j,和μl,i,j都可以具有不同的值。另外,存在一个超参数,温度Tl-1,i,t,其对于每个节点而言可以不同。该温度可以由学习教练使用,例如,用来消除由于S形激活函数饱和而导致的梯度消失。可以针对每个节点进行调整,以防止该节点饱和。另一个创新是梯度归一化。逐层比例因子Sl防止因偏导数通过非常深的神经网络的多层反向传播而导
致的梯度消失或爆炸的现象。
[0072] 学习教练LC的另一方面是,其可以改变机器学习系统DS和ML2的结构或架构。此类改变可以影响由DS或ML2完成的计算量。学习教练LC可以具有与DS和ML2的目标函数不同的
目标函数。例如,学习教练的目标函数可包括反映DS或ML2所需的计算成本的部件,作为其架构改变的函数。
[0073] 尽管以上的伪代码特定于训练深度神经网络的说明性示例,但是多种机器学习算法的实施例都具有用于控制训练过程的超参数。在这些实施例的任一个中,学习教练LC可
以以类似于该伪代码的方式来自定义超参数。学习教练LC本身就是机器学习系统。作为机
器学习系统,其可以进行初始化,以实现无需学习教练即可完成的任何超参数值和值改变
规则。然后,从指导其它初级机器学习系统的先前经验中,学习教练LC可以学会识别学习过程中可以观察到的变量中的模式,并且从这些模式中学习教练LC可以学习何时可以对超参
数进行改变或自定义以获得更好的学习性能。学习教练LC从模式到动作的映射集合称为学
习“策略”。
[0074] 学习教练LC可以具有策略的集合。例如,其可以具有更激进的策略,以帮助机器学习系统DS和ML2更快地学习,险是该学习过程使它们进入性能较差的状态。学习教练LC还可以具有其它更保守的策略,风险较小但学习速度较慢。学习教练LC还可以具有在DS或ML2的结构上进行改变的倾向不同的策略,或进行不同类型的改变的策略。如下所述,可以由智能代理IA选择策略。
[0075] □智能代理IA:智能代理IA的作用之一是设置选择由学习教练LC使用的策略的政策。在说明性实施例中,智能代理IA通过强化学习来学习。例如,在异步评估强化学习中,智能代理IA学习评估处于特定状态的折现未来价值的价值函数和确定过渡到下一状态的概
率分布的政策函数。优先级队列PQ中AALC的相对等级可以部分通过这种估计的折现未来价
值来确定。在本发明的说明性实施例中,状态转换包括对系统DS或ML2或其超参数的改变,并且该政策包括智能代理IA用来指导学习教练LC的策略的政策。
[0076] 智能代理IA还具有彼此通信、交换知识和信息的作用。例如,如稍后所讨论的,系统DS和系统ML2内的正则化包括对在多个AALC上的潜在变量和学习的参数的正则化。作为另一个示例,AALC之间的通信可以包括从一个机器学习系统DS或ML2复制并插入另一个
AALC的机器学习系统中的元素或子系统。智能代理IA还可以管理这些通信以及与存储库之
间的数据传输。
[0077] □管理代理AA:在各种实施例中,管理代理AA控制优先级队列PQ,该优先级队列PQ控制哪些AALC处于活动状态。管理代理还可以控制对要传输到存储库中或从存储库中传输出的数据以及要传输到归档中的数据的选择。其也可以通过强化学习来训练。然而,在一些实施例中,管理代理AA可以具有一组固定的政策,并且可能仅需要识别要采取预定义动作
的情形。
[0078] 优先级队列PQ可以包括处于活动状态或可以使其处于活动状态的AALC的优先列表。优先级由AA的政策确定。例如,政策可以优先考虑包含较小的第二级机器学习系统ML2的AALC,并优先考虑智能代理政策以使这些较小的系统增长。作为不同的示例,政策可以优先考虑具有较小ML2的AALC,但是对于导致AALC倾向于产生并创建具有较小ML2的其它AALC
的IA政策,其目的是稍后将这些ML2或其AALC合并为集成。作为另一示例,一项政策可以优先考虑包含具有多个层的深度神经网络的AALC,而IA政策则增加了额外的层以使其更深。
在管理代理未指定最重要的优先级差异的AALC中,相对优先级由AALC智能代理的折现未来
价值估计来确定。在一些实施例中,管理代理AA可以不指定任何最重要的优先级,而将优先级留给通过估计的折现未来价值来确定。管理代理AA还可以根据可用的计算资源来控制活
动AALC的数量。
[0079] 增量学习和增长;本发明的说明性实施例开始于小的、易于训练的神经网络,其执行简单的分类任务,并将网络逐渐增长到较大的网络,并且集成来做更为困难的分类任务。如图2所示,系统可以包含多个AALC。然而,增量学习和增长过程可以开始于单个AALC。此外,顾名思义,由于AALC是异步运行的,因此,说明性实施例的大部分描述都是从单个AALC的角度出发,控制其内部部件并与其它AALC进行交互。
[0080] 在本发明的另一方面的各种实施例中,结合图3和其它图描述的增量学习和增长的方法被应用于构建和训练单个神经网络或其它机器学习系统或机器学习系统的单个集
成。在此类实施例中,图3中所示的增量学习和增长过程可以直接进行控制或由学习教练来控制。任选地,也可以使用代理,但是不需要多个异步代理。
[0081] 在图1所示的说明性实施例中,任务是分类;Y是有限集,并且AALC还具有一组目标类别TC={C1,C2,...CN}。在多个实施例中,每个目标类别是Y的子集。在一些实施例中,目标类别均是不相交的子集。在一些实施例中,子集C1,C2,...CN-1中的每一个包含单个元素,CN包含Y的其余元素,即所谓的“全方位”类别。
[0082] 根据本发明的各种实施例的训练AALC的示例性过程在图3中示出。该过程开始于选择架构并初始化机器学习系统DS和ML2的参数(框301)。然后,选择训练数据集T和T2以及验证集V(框302)。稍后将讨论开发集D2。
[0083] 接下来,指定分类任务。例如,可以指定输入特征向量和输出分类类别的集合(框303)。在本说明性实施例中,随着AALC从简单问题发展到更困难的问题,机器学习系统DS和ML,数据集T、T2和V,甚至目标分类类别的选择以及输入特征向量中特征的数量都发生变化并增长。框303处的选择还可以包括对分类类别的初始集合和输入特征向量的选择。这些类别中的某些类别可以是基本类别Y集合的子集。这意味着用于该任务的机器学习系统无需
在基本类别之间进行区分,而只需识别要分类的项目是该集合的成员即可。
[0084] 作为训练AALC的说明性示例,考虑图像分类任务。例如,ImageNet是一个测试基准,包含数百万个图像,其中超过一百万个图像带有标题注释。在本说明性示例中,令AALC初始化以区分猫的图像和狗的图像。也就是说,令TC={{“猫”},{“狗”},CN=Y-{“猫”}-{“狗”}}。令T为随机选择的Y的子集,其中包含50张猫的图像,50张狗的图像以及50张其它图像。令T2和V为随机选择的S的子集,这些子集彼此之间以及与T不相交。
[0085] 作为另一个说明性示例,令任务为医疗诊断。在此示例中,初始类别可以是是否存在某种特定疾病,例如糖尿病:TC={{“有糖尿病”},{“没有糖尿病”}}。
[0086] 一旦指定了机器学习系统、数据集和分类任务,该过程就开始以框304开始的迭代训练和增长周期。
[0087] □迭代学习和增长周期:在本说明性示例中,AALC的训练从使用训练数据T对DS进行监督训练开始(框304)。可以使用多种众所周知的用于机器学习系统的监督训练的方法
中的任一种。例如,DS可以是使用随机梯度下降训练的深度神经网络,其具有通过反向传播估计的偏导数,并以小批量完成更新。超参数可以由学习教练LC控制,并且针对神经网络中的每个权重可以存在自定义的超参数,如上面所示的示例性伪代码所示。如果第二级机器
学习系统ML2也是深度神经网络,则伪代码是框304和框307的说明性实施例。其它类型的机器学习系统具有类似的监督训练算法,这些训练算法对于机器学习领域的技术人员来说是
众所周知的,并且可以用于训练DS和/或ML2。
[0088] □由DS进行的数据选择:继续图像识别的说明性示例,使用训练集T训练第一数据选择机器学习系统DS以将“猫”与“狗”区分开(框303)。然后,数据选择机器学习系统DS被用来对第二级训练集T2进行分类(框305)。基于DS在集合T2上的分类结果,选择T2的子集T2'。
例如,在学习教练LC设定的控制下,DS可以选择所有错误或关闭调用(框306)。也就是说,其中DS错误分类以及“猫”或“狗”的图像或DS错误地分类为“猫”或“狗”的任何其它图像的任何实例将被选择到在T2'中。此外,也将接近导致错误的任何实例选择到在T2'中。在多个实施例中,机器学习系统DS可以比机器学习系统ML2小得多并且使用更少的计算。对于机器学习系统DS来说,具有比ML2更高的错误率是完全可以接受的,并且在一些实施例中甚至是期望的。
[0089] 优选地,由学习教练LC控制用于选择实例作为关闭调用的标准。例如,学习教练LC可以设置超参数ε,使得如果某个错误答案的得分大于正确答案的得分减去ε,则选择该实例。学习教练LC将基于指导其它系统的经验,通过训练来学习ε的适当值或用于选择近关闭调用的任何其它标准。
[0090] □训练ML2:一旦选择了数据集T2',则根据本发明的各种实施例,在T2'上训练第二级机器学习系统ML2。任选地,在设定时间或有时在学习教练员LC的控制下,可以在所有数据集T2上测试机器学习系统ML2。然后,可以将由ML2造成的错误和关闭调用添加到T2'。
通常,集合T2'比T2小得多,因此训练时间大大减少。
[0091] □增长任务、数据集和机器学习系统:根据本发明的各种实施例,一旦机器学习系统ML2在训练数据集T2'上进行了训练,则根据智能代理IA的策略和政策,使AALC的某些元素逐渐增长(框308、309、310和312)。
[0092] 在框308处任选地增长或替换数据选择机器学习系统DS。在说明性实施例中,DS增长或由较大的机器学习系统(例如较大的决策树或较大的神经网络)替换,目的是使较大的
机器学习系统在选择错误和关闭当前分类任务的调用方面更准确和更有选择性。在一个说
明性实施例中,DS由机器学习系统ML2或DS和ML2的组合替换。本说明性实施例在训练过程
中增加了效率,因为ML2是已经接受训练的更大的机器学习系统。在另一说明性实施例中,数据选择机器学习系统DS由来自其它AALC中的一个的或来自储存库RP的机器学习系统替
换。在另一说明性实施例中,数据选择系统DS是一集成,并且通过向该集成添加一个或多个额外部件来增长。在一些实施例中,在从若干已经受过训练的机器学习系统中选择DS的替
换时,学习教练LC可以在保留的开发集D2上测试其性能。
[0093] 在一些说明性实施例中,在框309处增加分类任务中的类别的数量。在这些实施例中,即使DS的架构没有改变,数据选择机器学习系统DS也被重新训练。
[0094] 在框309处任选地增长分类任务中类别的数量。例如,可以从全方位类别或具有多个元素的某些其它类别中去除一个或多个单个元素。例如,在说明性图像识别任务中,可以添加其它类型的动物,例如{“大象”}和{“长颈鹿”}。在医疗诊断示例中,可以添加其它疾病。作为另一示例,可以将一个或多个多元素类别划分为两个或更多个子集。例如,可以将{“猫”}分为{“家猫”}和{“野猫”}。在医疗诊断示例中,可以区分1型和2型糖尿病。
[0095] 框310处使第二级机器学习系统ML2增长。如果其它系统部件中的至少一个已被改变,则机器学习系统ML2的增长是任选的。在一个说明性实施例中,ML2增长或由较大的机器学习系统(例如较大的决策树或较大的神经网络)替换,目的是使较大的机器学习系统更准
确。在另一说明性实施例中,第二级机器学习系统ML2由来自其它AALC中的一个的或来自储存库RP的机器学习系统替换。在另一说明性实施例中,机器学习系统ML2是一集成,并且通过向该集成添加一个或多个额外部件来增长。在一些说明性实施例中,在框309处增加分类任务中的类别的数量。在这些实施例中,即使ML2的架构没有改变,第二级机器学习系统ML2也被重新训练。
[0096] 在框311处任选地改变输入特征的集合。最初能够选择输入特征的子集可以节省计算量,并增强系统在具有学习教练的异步代理AALC之间创建多样性的能力。在特殊情况
下能够减少输入特征集也有助于这些属性。另一方面,稍后能够增加输入特征集对于能够
构建可以在整个特征空间上包含整个分类任务的机器学习系统ML2至关重要。
[0097] 可以单独使用选择性增长训练数据集的方法(框304至框308),而无需使用任何其它增长方法(框309至311)。类似地,可以在迭代增长过程中使用(1)增长输出类别的数量
(框309)、(2)增长机器学习系统的大小或复杂性(框310)或(3)增长输入特征的数量(框
311)的任何一种增长方法,在该迭代增长过程中,新的机器学习系统被初始化为与增长步
骤之前的系统执行相同的功能,并随后被训练以提高先前的性能。这四种增长方法中的任
何一种都可以用于任何AALC中、独立系统中或集成的一个或多个成员中。
[0098] □说明性示例:语音识别中的频段:在语音中,可从限于特定频率范围的音频信号中获得更多信息。例如,在低于3000Hz的频率下可获得将一个元音与另一个元音区分开的大多数信息。另一方面,/s/的大部分能量都高于4000Hz。将频率范围划分为由不同AALC分析的若干频段减少了计算量,并在AALC之间形成可观的多样性。另一方面,语音识别的最新性能要求机器学习系统ML2中的一些在整个频率范围内查看整个图像。
[0099] 返回图3,在框312处任选地改变训练数据集T和T2和/或验证集V。在稍后将讨论的一些实施例中,将开发集D2用于开发。其在框312处不必进行改变,但是可以根据其使用在适当的时间改变。在一些实施例中,在框312处对集合T、T2和V中的每一个进行添加,或将其替换为更大的集合。在这些实施例的一些中,策略是首先在较小的训练集上训练机器学习
系统DS和ML2,这花费更少的时间,然后通过从框304到框313的循环在后续周期中,使用较大的训练集对该训练进行微调。在一些实施例中,集合T和T2被改变以在机器学习系统DS和ML2的训练中获得多样性。在一些实施例中,改变T、T2和V以反映在框309处进行的任务类别的改变。在一些实施例中,改变验证集V,使得V正确地表示之前未使用过的新数据,从而集合V上的性能是对可操作数据的性能的无偏估计。
[0100] 在框313处检查是否满足停止标准。在本说明性实施例中,停止标准将取决于智能代理IA的最终目标。例如,智能代理IA可能正在尝试构建可以识别所有基本类别(即集合Y
中所有值的集合)的ML2系统。但是,作为另一个示例,智能代理IA可能替代地正在尝试构建用作集成的成员的机器学习系统。然后,智能代理IA的目标可能是使机器学习系统专业化
并补充集合中的其它成员。如果未满足停止标准,则过程返回到框304以进行另一轮学习和增长。
[0101] □说明性示例:自动驾驶汽车:自动驾驶汽车是具有多个AALC的系统的自然应用。每辆车具有一个或多个AALC,每辆车中的系统将持续增长和学习。每辆车都是半自主的,这对于具有可变数据连接速率的移动性至关重要。另一方面,知识的广泛异步共享使每辆车
中的系统都能从每辆其它车的经验和学习中受益。终生学习和一次性学习(以下将要讨论
的主题)使AALC的集体知识能够适应不断变化的条件,例如道路建设。
[0102] 关于学习和增长过程的其它细节:在说明性实施例中,图3所示的增量增长使系统能够无限期地持续学习和增长,包括在操作使用期间。这种能力称为“终生”学习。
[0103] 在某些操作使用期间,数据中的一些被显式或隐式标记。可以将其显式标记为应用任务中误差矫正的副作用,也可以标记为用户或辅助人员的额外动作。可以通过允许用
户选择校正应用中的误差的方式来隐式地确认数据,从而可以隐式地确认未矫正的任何输
出。例如,如图3的框304至308所示,本发明中支持增长数据的任何实施例都可以按照与图3所示的监督训练相同的方式来实现对标记操作数据的终生学习。
[0104] 在其它操作使用期间,大多数据可以不进行标记。在一些实施例中,可以将接受非监督或半监督训练的稀疏特征向量添加到第二级机器学习系统ML2中,甚至可以增强具有学习教练的不同异步代理中机器学习系统ML2彼此通信的能力。因此,不断增长的系统可以充分利用未标记的数据。除其它方面之外,将结合图6、图13和图14更详细地讨论稀疏特征向量及其可被添加到不断增长的神经网络的方式。
[0105] 需注意,如果机器学习系统DS的识别相当准确,则所选集合T2'将比集合T2小得多。在多种机器学习训练算法中,包括用于神经网络的随机梯度下降,训练所需的计算量大致与训练数据量成正比。因此,在集合T2'上训练机器学习系统ML所花费的时间比在集合T2上训练所花费的时间少得多。此外,集中于误差和关闭调用可能会加快迭代训练的收敛速
度,甚至可能导致更好的性能。
[0106] 机器学习的一般原理是拥有更多的训练数据几乎总是可以提高性能。本发明的一些实施例在一些或全部AALC中省略了DS,并且从一开始就使用最大的可用训练集。一些实
施例总是以小的训练集开始,以节省对较容易任务的初步训练的时间。一些实施例中的一
些AALC遵循这些策略中的一个,而其它AALC遵循另一种策略。在这些情况的每一种情况下,对于任何AALC都能够以较小的训练集开始以使该训练集逐渐增长达到最大可用训练集。
[0107] □智能代理IA的政策:优选地,AALC的所有部件和设计元素都是动态的。它们中的任何一个都可以增长、可以进行更改,或者甚至可以被替换。数据集可以增长或被替换;机器学习系统可以在新数据上进行训练;机器学习系统的架构可以通过其相应的学习教练来改变;目标类别的集合可以改变;输入特征的选定集合可以改变;以及数据选择机器学习系统DS和/或第二级机器学习系统ML2可以是机器学习系统的集成,从而使得可以添加或去除
集成成员。尽管这些单独动作中的每一个都可以由学习教练来完成,但是在说明性实施例
中,要采取这些动作中的哪一个基于由智能代理IA控制的策略和政策来决定。所有这些改
变都会影响AALC之间的多样性的量。在此类实施例中,学习教练LC仅负责机器学习系统DS
和ML2在其各自的AALC中的学习性能,且智能代理IA和管理代理AA负责AALC之间的通信和
协调。在本说明性实施例中,智能代理IA不仅可以决定对其AALC的部件中的一些进行改变,还可以创建新的AALC。在可以对AALC的任何元素进行的任何改变中,智能代理IA可以决定
让当前的AALC(AALC原始)生成其自身的副本(AALC副本),并至少对两个版本中的至少一个
进行改变。随后,顾名思义,这两个AALC可以彼此独立(或“异步”)进行。两个AALC中的每一个都可以在其相关联的机器学习系统DS和ML2以及其数据集T、T2和V中进行改变。智能代理可以共同探索AALC配置的状态空间,从而在整个集合S上以及在操作使用中寻求更好识别
的最终目标。
[0108] □数据集和数据选择系统DS的替换:如果数据集T2大于数据集T,并且机器学习系统ML2比机器学习系统DS更大且更复杂,则可以预期机器学习系统ML2的性能将优于机器学
习系统DS。在本发明的说明性实施例中,在第二级机器学习系统ML2已经在T2'上训练之后,选择新的更大的数据集来替换数据集T。学习教练LC随后测试机器学习系统DS和机器学习
系统ML2在新数据集T上的性能。任选地,学习教练LC还测试DS和ML2的集成的性能。如果DS碰巧能够在这些选项中发挥最佳性能,则不会替换DS,而是替代地通过将在以下描述的一
种或多种其它方法来对DS和ML2进行实验性修改。另一方面,如果如预期的那样,ML2或集成表现最佳,则在本说明性实施例中,机器学习系统DS被替换。
[0109] 在另一个说明性实施例中,用从存储库RP或从归档AR复制的机器学习来替换DS。在另一个说明性实施例中,DS通过将在以下描述的用于增长第二级机器学习系统ML2的方
法来逐渐增长。在另一个实施例中,DS由具有从头开始训练的新架构的新的更大的机器学
习系统替换。
[0110] 任选地,旧数据集T和/或旧数据T2也包括在新数据集T中。但是,优选地将旧数据集T2完全替换为新的随机选择的数据集,该数据集任选地显著大于以前的数据集T2。
[0111] □ML2的改变和增长:在一些实施例中,机器学习系统最终增长为成为多级分类系统,如将结合图17和图18所讨论的。
[0112] 在一些实施例中,最终目标是构建最终的机器学习系统或机器学习系统的集成,该机器学习系统或机器学习系统的集成在可用训练数据的完整集合S上进行训练,并将输
入分类为最精细的类别集合,也就是说,其中对于集合Y中的每个元素都有单独的类别。在某些实施例中,该最终目标是通过在AALC中的一个中使机器学习系统ML2最终增长为该最
终的机器学习系统或大量机器学习系统ML2成为最终集成的成员来实现的。在这些实施例
中,机器学习系统可以在大小和复杂性上逐步增长,并可以在难度越来越大的分类任务上
逐步训练。
[0113] 在这些实施例中,机器学习系统ML2的增长是该过程的核心。在这些实施例的一些中,最终训练数据集T2包括可用训练数据的全部或大部分。在这些实施例的一些中,不存在数据选择系统DS,或者从数据集T2到T2'的减少很少或没有减少。随着数据集T2接近训练数据的填充大小,并且随着机器学习系统ML2的性能接近其极限,能够以至少保持其当前性能和保留其迄今为止已经学习的知识的方式逐步增长机器学习系统ML2变得越来越重要。因
此,下面将结合图5至图11详细讨论可以在不降低性能的情况下增长机器学习系统ML2的说
明性实施例。
[0114] 然而,一些说明性实施例遵循不同的策略。对于这些说明性实施例,以下列表说明了可用于增长机器学习系统ML2的一些替代方法:
[0115] 1)通过替换为较大的机器学习系统来增长
[0116] 2)通过添加部件并从头开始重新训练来增长
[0117] 3)通过在不降低性能的情况下添加部件、保留现有的弧参数来增长
[0118] 4)通过添加部件、保留现有的弧参数而不管性能如何来增长
[0119] 5)通过向集成添加一个或多个成员来增长
[0120] 6)构建多级分类系统
[0121] 在方法(1)中,较大的机器学习系统可以是从头开始训练的新架构,也可以是从存储库RP或另一AALC复制的机器学习系统。弧权重或其它学习的参数可以被复制为替换机器
学习系统ML2的初始值,或者可以在学习教练LC或智能代理IA的控制下从头开始训练网络。
此方法适用于任何形式的机器学习系统。
[0122] 在方法(2)中,向机器学习系统ML2添加额外的部件。示例包括向混合概率模型(例如高斯混合模型)添加更多的部件混合、向决策树添加额外的分支节点、向决策森林添加额外的树、向神经网络添加额外的弧和节点、向深度神经网络添加一个或多个额外的层,等
等。在这种方法中,学习的参数的现有值被丢弃,并且系统将从头开始进行重新训练。
[0123] 在方法(3)中,额外的部件以以下方式添加,即使得学习的参数的现有值可以与新的较大的机器学习系统保持在一起,该新的较大的机器学习系统至少与在数据上进行训练
的较小系统的性能相匹配。然后,通过诸如随机梯度下降之类的算法进行进一步的训练,该算法进一步提高了性能,除了由于随机性能估计中的采样误差会导致一些不确定性之外。
出于说明的目的,以下描述了向深度神经网络添加额外部件的方式的示例,尽管应当认识
到,本发明并不限于深度神经网络,并且在其它实施例中,可以将额外的部件添加到其它类型的机器学习中。
[0124] 在方法(4)中,保留现有的学习参数并添加额外的部件,而无需考虑替换机器学习系统是否可以初始化为与要被替换的较小系统的性能相匹配的状态。在该方法的说明性实
施例中,尽管事实是最初扩展的系统的性能可能比较小系统的先前性能更差,但是训练从
现有参数的保留值和新参数的一些初始化继续进行。该方法的说明性实施例可以使用任何
形式的机器学习系统。
[0125] 需注意,一些说明性实施例甚至可以对方法(3)可用的机器学习系统(例如神经网络)使用方法(2)或(4)。例如,管理代理可以使用方法(2)或方法(4)在AALC之间形成多样
性。一些说明性实施例可以使用该策略,使得当以后合并成集成时,不同的AALC将彼此更加互补。一些说明性实施例可以增强AALC之间的多样性,作为增强学习探索策略的一部分。一些说明性实施例可以作为一种策略这样做以避免在误差代价函数中停留在局部最小值。
[0126] 方法(5)向集成添加成员,这也可以用任何形式的机器学习系统来完成。在一些说明性实施例中,在集成的成员之间甚至可能存在多种类型的机器学习系统。
[0127] 如上所述,在一些实施例中,可以改变ML2的架构。这些改变是在学习教练LC和智能代理IA的控制下完成的。例如,如果ML2是决策树或随机森林,则可以改变其超参数以使其增长地更大。如果是集成,则可以允许其具有额外的成员。如果是神经网络,则可以添加额外的节点和弧。甚至可以添加额外的层以使神经网络更深。如果机器学习系统ML2并非
(尚未成为)集成,则可以将其克隆并修改一个副本以创建两个成员的集成。基于与智能代
理IA所选择的政策一致的学习教练的决策,可以进行所有这些改变以及多种其它改变。可
以通过增强学习领域的技术人员所熟知的学习算法来训练智能代理IA,例如通过评估,例
如按照可从OpenAI和Google获得的A3C。稍后将更详细讨论用于增长神经网络的技术。
[0128] □目标类别的改变:目标类别集也可以改变。例如,一个或多个单元素集可以从“全方位”类别CN中提取。任选地,类别CN或任何其它多元素类别(如果有的话)可以分为两个或更多个多元素类别。在一个神经网络的实施例中,新类别与输出层中的新节点相关联,并且新节点中的每一个完全连接到输出下方层中的所有节点。可以在其它形式的机器学习系
统中对目标类别进行类似的改变。
[0129] 在各种实施例中,除上述改变之外或作为上述改变的替代,验证集V也可以用新的随机数据集来替换。
[0130] 利用针对T、T2和V的新数据集,利用新的机器学习系统DS,以及利用对ML2的架构和目标类别集进行的任何更改,重复该循环。也就是说,重复在数据集T上训练机器学习系统DS、利用训练的系统DS来对数据集T2分类、选择具有误差和关闭调用的集合T2'和在数据集T2'上训练机器学习系统ML2的过程。整个过程可能会重复很多次,最终使T2和V增长为涵盖集合S的全部(旁边集合除外),并且使目标类别的集合增长为针对Y的每个元素的单个元
素集。因此,每个AALC或其衍生物在S中可用的所有训练数据上训练后,将增长为一个完整的机器学习系统,用于对Y的所有元素进行分类。
[0131] 在一些图像识别任务中,类别的数量可以是数以万计。在语音识别、机器翻译自然语言处理中,分类类别的数量可以等于词汇量,词汇量也可能是成千上万。然而,在另一说明性实施例中,可以将单个AALC的目标类别的数量保持为较小。在本实施例中,不是通过每个单独的机器学习系统ML2来完成对整个类别集的识别,而是通过集成来完成。如果AALC的目标类别数量相对于类别总数而言较小,则可以有意地对“全方位”类别进行欠采样,其代表性样本要比完整的S集小得多。对于已经描述过的说明性实施例的前几轮而言也是如此。
[0132] 在不降低性能的情况下增长ML2和DS:尽管一些说明性实施例可以在不考虑性能是否暂时下降的情况下有意增长机器学习系统DS和ML2,但对于一些说明性实施例,重要的是能够在至少保持先前已经实现的性能的同时增长机器学习系统DS和ML2。以下讨论介绍
了可以实现这种结果的说明性实施例。
[0133] □增长集合;在不降低其当前性能的情况下对机器学习系统进行添加的一种方式是创建集成或对集成进行添加。在说明性实施例中,增长第二级机器学习系统ML2或数据选择机器学习系统DS的第一步是创建新的机器学习系统NewML。如果现有的机器学习系统ML2
或DS尚未成为集成,则可以创建包含两个成员的集成,即现有机器学习系统和新的机器学
习系统NewML。如果现有的机器学习系统已经是集成,则将新的机器学习系统NewML添加到
该集成中。
[0134] 关于如何创建新的机器学习系统以与现有的数据选择机器学习系统DS或现有的第二级机器学习系统ML2一体添加到集成存在一些示例性实例。下面列出了一些示例。
[0135] 1)从另一AALC或从存储库RP复制系统
[0136] 2)建立新的、更大的系统并从头开始进行训练
[0137] 3)选择LC指导的结构改变并实施两种替代方案
[0138] 4)进行数据分割以增长多级系统或对集成中的成员进行不同的训练
[0139] 示例(1)和示例(2)已经作为可以用来以更大的机器学习系统替换机器学习系统DS或ML2的方法进行了讨论。它们也可以用于创建要添加到集成中的新部件。
[0140] 示例(3)使用了本文尚未讨论的学习教练LC的能力中的一种。学习教练是一种机器学习系统,其学习以指导主题机器学习系统的学习。其无需学习识别由主题机器学习系
统识别的模式,而是从指导其它主题机器学习系统的先前经验中学习。学习教练学习在学
习过程的观察中识别模式,并学习将这些模式与在学习过程中进行改变的需求或时机进行
关联。例如,学习教练可以学习优化控制主题机器学习系统学习过程的超参数。
[0141] 作为另一示例,学习教练LC可以学习在主题机器学习系统(例如,DS或ML2)中进行结构改变。例如,在神经网络中添加或删除弧和节点。在说明性实施例中,当学习教练LC在其对主题机器学习系统的学习过程的观察中识别出指示主题机器学习系统可能正在收敛
到其能够随着其结构改变而逃脱的局部最小的模式时做出此类改变。在本说明性实施例
中,此类改变是推测性的和实验性的。新系统可能会或可能不会比旧系统表现的更好。本示例是上述示例(3)的时机的说明性示例。学习教练LC可以保留旧系统的副本,同时还可以创建新系统,并让两者都成为集成的成员。
[0142] 示例(4)的说明性实施例是获得任何机器学习系统作为数据分割系统(ML_split),该系统将当前输入特征空间分为两个或更多个类别。为ML_split的每个输出类别
制作机器学习系统ML2的副本。ML2的每个单独副本都针对其自身的类别利用监督训练进行
训练,但每个副本仅针对ML_split的输出类别中的一个在数据上进行训练。ML2的副本随后形成集成。随后开始训练数据分配系统、接着重新训练到ML2副本、接着重新训练数据分配的迭代过程,这将结合图17和图18进行更详细地讨论。仅作为说明性示例,给出了选择任意分类器ML_split。大多数实施例将具有一些选择学习教练认为将使ML2的副本在每个所分
配的数据上多样化并专化的ML_split的方法。结合图17和图18,将描述迭代过程的实施
例,其从集成开始并避免选择ML_split。
[0143] 尽管扩展集成很简单,并且适用于任何种类的机器学习系统,但是由于某些原因,管理代理AA和智能代理IA可能还希望使用单个机器学习系统DS和ML2的增量增长,而不是仅依靠对集成进行添加作为一种增长手段。其中一些原因如下列出:
[0144] 1)为了战略的多样性和AALC之间的多样性
[0145] 2)为了增长非常深的网络
[0146] 3)为了插入有助于知识交流的部件
[0147] 4)为了插入有助于正则化的部件
[0148] 原因(1),多样性,适用于所有类型的机器学习系统,并且已经在其它上下文中进行了讨论。同样的原因也适用于此。
[0149] 其它原因尤其适用于基于深度神经网络的说明性实施例。例如,存在深度分类问题,其中任何具有少于一些最小数量层的网络都需要指数数量的节点来执行分类任务,但
是如果存在至少最小数量的层,则不需要指数数量的节点。更广泛地说,存在其中深度神经网络比较浅网络有效得多的示例。在其它示例中,非常深的神经网络在多种行业标准基准
上都击败了较浅网络的先前记录性能。出于所有这些原因,智能代理程序IA可能希望增长
更深的神经网络,而不是简单地对集成进行添加。
[0150] 能够增长神经网络的另一个原因是插入在多个AALC之间共享的节点或弧的集合。在本说明性示例中,共享的目的在于,通过共享结构,AALC具有用于通信的公共参考对象,并且可以共享他们在后续训练中学习的一些知识。如将在以下详细讨论的,在本说明性示
例中的“共享”仅在共享结构的实例之间使用松散耦合,而不是严格的步复制和同步。如此,其不需要高数据带宽来维持这种松散耦合。
[0151] 共享内部结构的另一个有益效果是共享的结构可用于正则化。通过保持共享结构彼此相似,正则化增强了AALC共享知识的能力。其还具有限制共享AALC中的任何一个将其
参数过拟合于其训练数据的能力。在一些实施例中,这种正则化是用于维持上述松散耦合
的机制。其不需要高数据带宽。
[0152] 考虑到这些目标,以下讨论介绍了其它方法,通过这些方法可以在不降低性能的情况下逐渐增长深度神经网络。
[0153] □在不降低性能情况下增长的其它方法:已经提到,机器学习系统ML2和DS可以在学习教练LC的控制下增长和以其它方式进行修改。在连续多轮中,随着在越来越多的数据
上进行训练,让它们逐渐增长是有意义的。在机器学习系统是神经网络的实施例中,以网络能够共享知识的方式来增长网络也是有意义的。
[0154] 本发明另一方面的说明性实施例允许将新的元素添加到神经网络,同时避免在训练数据上的性能下降。本说明性实施例适用于深度前馈和深度递归神经网络。其甚至允许
将一个全新的层添加到网络,而不会降低在训练数据上的性能。如果在验证数据上有性能
下降,则学习教练LC会监测并尝试解决这种情况,例如通过增加正则化量。如果失败,则智能代理IA使系统返回到较早的状态并探索其它策略。
[0155] 图4示出了本发明的一个方面,其中,集成被组合到单个系统中。本发明的各种实施例可以构建和训练集成。例如,(i)每个AALC可以构建集成,(ii)有或没有学习教练和代理的单个系统可以构建集成,或者(iii)集成可以通过组合由两个或更多个AALC所构建的
系统来创建。图4是用于将任何集成组合成单个机器学习系统的方法的说明性实施例,该单个机器学习系统随后可以进一步进行训练以改善代表以前集成成员的组合子网络或子系
统的联合性能。
[0156] 框401是神经网络,其被初始化以仿真用于计算来自集成的输出的得分合并或投票规则。如果集成所使用的计算是函数402、403或404中的任何一个,则将集成成员411至
413的连接分别设置为权重1或零,以选择针对该函数的节点,而不选择其它节点,然后将神经网络401初始化为恒等式。如果需要在仿真中计算某些其它函数,则可以由节点405直接
计算,或者将节点405设置为线性激活函数,并初始化神经网络410以计算仿真函数。
[0157] 可以存在任何数量的集成成员,由框411、412和413表示。在初始化以匹配集成的先前性能之后,进一步训练图4所示的系统以优化组合网络的联合性能。该训练可以通过随机梯度下降来完成,因此图4所示的组合系统的训练性能是对集成的性能的改善。神经网络
401可以通过网络401向后传播误差代价函数,然后向下传播到子系统(集成成员)411、412
和413。集成成员411、412、413不一定是神经网络。它们可以是可以通过梯度下降由偏导数从框401通过节点402、403、404和405传播回来进行训练的任何类型的机器学习系统。迭代地应用基于梯度下降或基于小批量的随机梯度下降,直到收敛或满足停止标准为止。在
2017年6月26日提交的标题为“针对去相关误差的选择性训练”的美国临时专利申请序列第
62/524,686号中进一步详细描述了使用神经网络构建将集成的成员组合到单个系统中的
过程的更多细节,其全部内容通过引用并入本文。
[0158] 图5至图11示出了用于在不损失性能的情况下将元素添加到深度神经网络的各种机制。图5示出了单个新弧的添加。弧权重被初始化为零,因此激活不会立即发生变化,因此性能也不会发生变化。尽管权重已初始化为零,但一般而言,偏导数将为非零。因此,在下一次更新时,权重将沿梯度下降指示的方向改变。也就是说,它将朝着减少误差代价的方向改变。
[0159] 可能的是,尽管在更新期间进行的改变是朝着梯度下降的方向进行的,但是误差代价可能会增加,例如,如果步长大小过大的话。如果发生这种情况,可以采取与采取任何梯度下降步骤相同的方式采取补救措施。在本说明性实施例中,在网络中的任何实验性改
变之前或在可能使性能变差的任何更新之前,对网络进行快照。如果性能较差,则撤消更
新,并进行更保守的更新。即,降低学习速率以使步长大小更小,和/或收集更大的小批量。
根据梯度的定义,如果梯度不为零,则总是存在足够小的步长大小,使得至少在小批次上进行测试时,性能会有所改善。在最小批量大小限制为整个训练集的情况下,将改善在整个训练集上的性能。
[0160] □处理驻点的策略:当学习过程接近驻点时,梯度接近于零,学习变慢。如果驻点是误差代价目标函数的期望最优值,则对大多数学习参数进行较慢的学习是合适的。然而,将元素添加到现有网络的主要原因是为了增加其表示能力,从而创建新的更好的最优值,因此需要更快的学习速度。然而,如果将权重等于零的弧添加到相对于反向传播计算处于
驻点的现有网络,则误差代价函数的偏导数相对于每个学习的参数必须为零。因此,相对于等于相关联节点的偏导数的每个偏差,偏导数必须为零。因此,在小批量上平均的误差代价函数相对于节点激活的偏导数也为零。由于每个添加的弧上的权重也为零,因此弧的目标
节点的激活不会改变。因此,恰在驻点上将没有学习,而在驻点附近,学习将很慢。换句话说,如果将权重初始化为零的弧添加到处于驻点的网络,则新的扩展网络也将处于驻点。然而,希望能够添加元素并增长当前处于或接近驻点的网络。例如,期望能够为已经被训练为收敛的网络添加层,而不是必须为具有所增加的层的网络从头开始进行重新训练。
[0161] 有几种策略可用于处理在驻点附近的缓慢学习或恰在驻点处学习的缺乏,这些策略可用于本发明的各种实施例中。
[0162] 策略1:等待--如果驻点是特定于当前小批量的局部最大值、鞍点或局部最小值,则合理的策略是仅等待下一个或稍后的小批量驻点,因此对于已添加到网络的新参数,其
它小批量将具有更快的学习速度。
[0163] 策略2:将学习备份到较早的状态--如果学习已收敛到全局最小值或非常好的局部最小值,则策略是在学习过程中备份到较早的状态。该较早的状态应当被选择为性能接
近收敛性能但梯度尚未太接近零的点。这种策略要求学习过程的频繁状态快照已经在或放
到存储库或存档中。
[0164] 策略3:调整偏差--另一种说明性策略是让学习教练进行干预并任意更改作为新弧的目标节点的节点的偏差。在本说明性策略中,学习教练LC在实验的基础上进行了这些
偏差改变。偏差改变将更改变受影响节点的激活值,而不会改变网络中的其它任何内容。节点激活级别的改变不仅会为偏差创建非零偏导数,还会为引向受影响节点的弧上的所有权
重(包括新添加的弧)创建非零偏导数。在新弧上权重非零的情况下,梯度下降将导致新的
偏差值,该值将调整新弧对其目标节点的激活做出的贡献。因为具有非零权重的新弧的网
络可以代表不具有新弧的网络所代表的函数的超集,所以学习过程应导致误差代价函数的
新的更好的最小值。如果具有调整后的偏差的学习过程导致参数值具有更差的误差代价
值,则学习教练LC可以生成一组新的随机偏差并重试。在使用该策略失败多次之后,其可以切换到一不同的策略。
[0165] 策略4:尝试对网络进行不同的改变--如果策略3或策略4中的过程始终收敛到代价函数的相同最小值,即所有新弧的权重都收敛到零,则学习教练可以尝试对网络的不同
添加。例如,其可以尝试其中改变更多元素的改变,以便有更多可用参数,从而增加梯度空间的维度,并为误差代价函数中非零斜率提供更多方向。
[0166] 策略5:将某些普通节点改变成复合节点--作为另一个示例,添加的节点可以是复合节点,例如下面将要讨论的那些节点。相对权重尚未接受训练以收敛的新复合节点通常
将导致现有的最小值成为鞍点,从而导致不稳定的驻点。这种改变应能使策略1或策略4成
功。
[0167] □添加节点:继续讨论对网络的添加,在图6中示出了根据本发明的各种实施例的用于向现有层添加额外节点的示例性技术。其所有的出弧的权重都被初始化为零,因此在
性能上最初没有变化。在这种情况下,对弧的下一次更新的梯度下降的讨论同样适用。
[0168] □添加子网络:根据本发明的各种实施例,对网络安全地进行添加的另一种方式是添加返回到输入层的自包含子网络,以使得新的子网络不会阻挡任何现有的层。在其任
何层中,该新的子网络都可以具有到子网络外部节点的连接,且连接初始化为零。此类子网络的有用资源是在其它AALC的训练中已经发现的子网络或已被训练为独立网络的子网络。
作为独立网络的监督训练意味着子网络顶层中的节点将具有外部有意义的标记。子网络中
或稀疏特征向量中的节点还可以通过主动学习或转移学习,并在某种程度上通过半监督学
习来获取外部有意义的标记。
[0169] □添加额外的层:添加额外的层更加复杂。无论在何处添加新层,它都会将其下的层与其上的层分开。之前互相连接的这两层不再直接连接。图7示出了根据本发明实施例的用于添加额外层的若干技术之一。所示示例中的新层包括中间层中的六个节点。在本说明性示例中,初始化新层中的一部分节点(图7左侧的三个),就像将节点添加到现有层一样。
初始化新层节点的另一部分(图7右侧的三个)以精确复制下面层的激活。换句话说,下层和新层的该部分节点(即,图7中右手侧的3个节点)之间的连接被初始化为单位矩阵。新层右
手侧节点的激活函数具有线性或分段线性激活,其偏置已调整,使得对于给定的输入值,来自下层的激活仅通过乘以1。就像在现有层中添加的节点一样,在图7的左侧的新节点将在
下一次和以后的更新中进行训练。初始化为单位矩阵的连接也将基于梯度下降进行训练,
以实现可能的进一步改进。
[0170] □梯度归一化:避免梯度消失和爆炸:在本发明的说明性实施例中,可以通过一次递增地添加一层来增长非常深的神经网络。在此类实施例中,先前的网络被训练为收敛,使得新的网络将处于驻点,并且可以采用以上所讨论的策略。此外,网络最终将增长为具有多个层,这导致了另一个问题。具有多个层的深度神经网络趋向于表现出所谓的梯度“消失”或“爆炸”现象。当偏导数通过连续的层反向传播时,这种现象会逐渐恶化。随着偏导数在各层中的传播,对于每个层偏导数的平均大小往往会乘以一个大致恒定的数字。如果该常数大于1,则偏导数的平均大小将呈指数增长。如果该常数小于1,则偏导数的平均大小以指数速率收敛为零。
[0171] 当按时间反向传播递归神经网络时,这个问题甚至更加严重。对于每个时间层,都使用相同的网络,因此,从一层到下一层的乘法值从一个时间到下一时间上的变化甚至比从一个常规层到下一常规层的变化要小。因此,时间的反向传播甚至更容易受到梯度爆炸
或消失的影响。其为常数。因此,在大多数现有技术中,在时间上反向传播的时间层的数量非常有限。
[0172] 诸如残差网络和信息高速公路之类的特殊网络架构通过使有效的乘法准常数具有更接近一的平均值来减少该问题。在梯度消失或爆炸问题变得严重之前,这些架构实现
了更深的神经网络。
[0173] 在本发明的一方面,梯度归一化基本上消除了对于具有多个层的网络所存在的梯度爆炸或消失的问题。深度前馈神经网络中的逐层梯度归一化已在上面的伪代码中示出。
如在伪代码中的说明性实施例所示,通过上一层中偏导数的平均大小对每层中的偏导数进
行归一化:
[0174]
[0175] 然后计算当前层的范数:
[0176] Sl=Maxi|Δl,i|
[0177] 其它说明性实施例可以使用其它范数,例如L2范数。另外的其它实施例可以使用平均范数而不是最大值。另一个说明性实施例为当前层的未归一化的偏导数计算最大或平
均范数,然后对该层进行归一化,以通过该层的导数的额外循环为代价。优选地,归一化是逐层完成的。如果对整个网络进行反向传播,然后计算归一化因子,则某些层的总归一化可能会导致浮点上溢或下溢。
[0178] 对于递归神经网络的时间反向传播,可以对网络的每个时间副本执行类似但独立的梯度归一化。在说明性实施例中,为顶层计算基于时间的归一化,逐时间步长地,随着导数的反向传播在时间上向后进行。在每个时间步长内,为每个常规层计算归一化,而独立于在其它时间为该层计算的归一化。归一化的偏导数每次都向后传播通过层,并向后传播通
过时间。这种双重归一化可以在任意长的时间间隔内实现任意深度的神经网络的反向传
播。
[0179] 本发明的实施例使得这些在层和时间上较深的网络,能够被增量地增长和训练。
[0180] 图8示出了另外的说明性实施例,本实施例避免了在添加新层时性能下降并且减少了所需的归一化量。在本示例中,从下面的层到上面的层的先前的直接连接保持不变,即使有新添加的层,这些连接现在都跳过了一层。在已经为时间反向传播展开的前馈神经网
络和递归神经网络中,没有理由说前馈连接不能跳过层。不存在额外的循环或递归。激活计算和反向传播计算就像没有跳过层的网络一样进行。此外,添加跳过层的连接减少了梯度
消失的问题。
[0181] □说明性示例:会话语音识别:识别自然的会话语音是一项非常难的任务,其已经成为主要的机器学习基准,数十年来性能不断提高,最终导致性能接近或可能超过人类听众的表现。这种最先进的性能要求能够增长具有超过100层的深度神经网络。本发明的实施例促进了构建和训练此类深度网络并使其增长更深的能力。
[0182] □添加稀疏特征向量:作为本发明的另一个说明性实施例,如上所述,稀疏特征向量可以通过监督或半监督学习来创建,然后在多个AALC之间共享。这种共享的优点是,如果共享特征向量的AALC中的任一个学习了一个特征的标记,则该标记可以被使用该特征向量的所有其它AALC所共享。共享特征标记对于k值低的k(n)特征向量特别有用,因为每个特征都有重要作用。下面将讨论对具有稀疏特征向量的自动编码器的监督和半监督训练方法。
[0183] 具有标记的特征向量使得能够在所有使用该特征向量的网络上进行正则化。该正则化的一个说明性实施例是具有一种存储库(参见图2),该存储库记录计算特征向量的子
网络实例和(例如输入数据)特征向量的激活实例。可以从多个不同的AALC收集子网络和数
据的这些示例。该存储库不必是单个中央存储库。其可以由多个子存储库组成,这些子存储库异步收集示例并不定期地交换数据。
[0184] □说明性示例:自然语言处理:在自然语言处理中,可以由书面文本中轻松确定单词。然而,单词之间的关系取决于它们的句法和语义特性。这些特性可以从互联网上现在可用的大量文本中学习。使用本文所述的技术,可以将这些句法和语义特性编码为特征向量,并且可以在AALC之间共享有关语言的知识。在分布式系统上实施后,可以在数百万最终用户使用的大众市场应用中部署此知识。
[0185] 复合节点:图9示出了另一个说明性实施例,本实施例在将层添加到处于驻点的受训练系统时有用,并且还可以用于以其它方式逐渐增长神经网络。如图所示,新层中的每个节点将由复合节点替换,该复合节点将简单节点与若干类型的激活功能结合在一起。对于
新层中的节点,简单节点中的一个是可以被初始化为恒等式的线性或分段线性激活。在本
示例中,另一个简单节点具有S型激活函数σ(χ)=1/(1+exp(-x))。也可以使用多种其它类型的激活功能。例如,包括S型激活和线性激活的复合节点避免了由于S型激活接近零或一
而导致的梯度消失的问题。复合节点也可以用于学习较低级特征的高阶非线性函数。
[0186] 复合节点的该说明性实施例还可以用作在将节点添加到现有层或替换现有节点时逐渐地增加机器学习系统DS和ML2的大小和能力的手段。在这种使用中,简单节点的其它激活类型可以提高网络对复杂非线性网络建模的能力。
[0187] 复合节点中的简单节点可以具有用于常规独立节点的任何激活功能,例如:S型、整流线性单元(ReLU)、参数整流线性单元(pReLU)、双曲正切、S型的分段线性近似、输入和内部参数之间差的绝对值,该差的平方或输入的任何其它半微分函数。复合节点中的简单
节点也可以直接连接到入弧,而不是直接连接到这些弧的值之和,例如,简单节点可以计算输入的乘积,或者输入的最大值或最小值或任何其它半微分函数。
[0188] 复合节点在神经网络学习过程中具有主要优势。它们增加了定义和计算梯度的空间的维度。例如,这种特性意味着它们在正常偏导数接近零的情况下提供了额外的移动方
向。例如,具有线性节点和S型节点的复合节点可避免当S型函数在接近零或一的激活处饱
和时发生的“导数消失”。当小批量中的所有激活导致激活(和导数)为零时,整流线性单元和线性单元的组合可避免节点“死亡”。
[0189] 如果需要,可以对复合节点进行严格正则化。也就是说,除一之外,所有权重都可以被正则化以将其绝对值之和或它们的平方之和或两者都逼近零。在这种情况下,复合节点将具有与其主导节点相似的行为。然而,在需要不同行为的情况下,如果该需求比正则化更强,则该行为将可用。另一方面,在一些实施例中,可以允许组合权重自由地训练,从而提供更多的函数表示能力,这甚至可以导致较低的误差代价。
[0190] □归一化入权重:在根据本发明的其它实施例中,到组合节点的入权重被限制为非负的并且总和为一。通过使用用于节点的softmax激活的表示,可以隐式地强制执行此限制,而不必以约束显式地处理。即,每个权重wi可以与不受约束的基础学习参数xi相关联。然后wi可以由wi=exp(xi)/∑jexp(xj)定义。这种限制将促使复合节点对其组成简单节点的插值建模。从另一种角度看,复合节点可以例如对概率混合分布进行建模。例如,其中每个简单节点都有一个平均值和一个标准偏差作为学习的内部参数的复合节点可以对具有对角
协方差的高斯混合建模。
[0191] 在另一个说明性实施例中,权重归一化应用于任何节点的入权重的子集。在本实施例中,归一化将诸如L1范数(指定的权重集的绝对值的和)或L2范数(指定的权重集的平
方的和)的范数约束为等于指定常数。在本实施例中,任选地,将到节点的入权重的总集合划分为子集,每个子集被分别归一化。
[0192] 归一化还可以在各种实施例中应用于离开给定节点的弧上的出权重的集合,具有类似的有益效果。
[0193] □具有特殊函数的复合节点:具有特殊函数(例如高斯核和单项式)的复合节点可以对高维特征空间进行建模,例如在基于核的机器学习系统(例如支持向量机)中常用的高
维特征空间,但在神经网络中通常不使用。由于所得到的连接的数量,直接将这些高维特征空间建模为神经网络的输入在计算上过于昂贵。然而,根据本发明的各种实施例,在复合节点中选择性地使用它们需要更少的计算。
[0194] 在任何层中插入输入和输出节点:在另一说明性实施例中,可以对图6所示的技术稍加修改,将充当输入节点的节点或充当输出节点的节点添加到深度神经网络的任何层。
图10示出了用于添加输入节点的实施例。需注意,此“输入”节点可以添加到深度神经网络的任何层,而不仅仅是普通输入层。出于本实施例的目的,输入节点是其激活被强制为由某些外部装置指定的量的节点。也就是说,激活不是由来自神经网络较低层中节点的输入确
定的。然而,新节点确实参与了网络更高层中节点的激活。其出弧上的权重按照通常方式通过反向传播进行训练。
[0195] 需注意,这种形式的输入节点可以使其激活为常规输入层中节点的副本。换句话说,在本说明性实施例中,输入节点可以出现在神经网络的任何层中。将输入节点复制到深度神经网络中的较高层中,有助于已经从具有较少层的网络增长的深度神经网络保留在训
练深度较低的网络时学习的知识。这是使本发明的实施例能够在不降低性能的情况下使具
有额外层的深度神经网络增长的技术之一。
[0196] 图11示出了用于向深度神经网络的任何层添加一个或多个额外节点的实施例。也就是说,新的输出节点中的每一个都有针对输入数据值的每个向量的指定目标值,如图11
中所指示的。可以像在普通监督训练中一样,由外部监督来提供此指定目标值。或者,其可以是由参考网络计算的输出值,如在转移学习中一样。作为特殊情况,其可以是该节点正被添加到其内部层的同一网络中常规输出节点中的一个的目标输出。在本说明性实施例中,
来自这些添加节点的反向传播乘以相对重要性,该相对重要性被初始化为任意小的值ε。
[0197] 在内部层中创建输出节点,无论是外部指定的还是从常规输出节点复制的目标,都有助于稳定中间层中的训练。通常,具有多个目标具有正则化效果,并使训练更具鲁棒
性。具有稳定的目标(例如最终输出目标)作为目标的不变组成部分,有助于随着网络在顶
部增加更多的层而增长来稳定较低的层。稳定中间层还有助于在具有学习教练的多个异步
代理上对节点集进行正则化,如下所述。
[0198] AALC之间的通信:节点集的正则化:智能代理IA在AALC中的作用之一是与其它AALC进行通信。然而,不同的AALC具有不同的机器学习系统,这些机器学习系统已在不同的数据上进行了训练,甚至可能具有不同的网络架构。为了能够就其内部状态彼此进行通信,AALC需要共同的参考对象。图12示出了提供此类参考对象的说明性实施例。
[0199] 图12与图2类似,除了管理单元的存储库RP已经被扩展为显示更多细节之外。如果有必要,可以使用AALC快照AS在其训练的较早阶段重新启动具有学习教练的异步代理。学
习历史LH包含一些更完整的学习历史记录示例,用于将数据用于增强学习或科学研究等目
的。参考系统Ref用于提供参考对象,以便AALC可以彼此进行通信。AS、LH和Ref可以存储在管理单元计算机系统的主存储器和/或辅助存储器中。
[0200] 在本说明性实施例中,从一个AALC到另一AALC的通信包括将由一个或多个参考网络将输入数据项与由输入向量产生的输出值的向量相关联的信息。这样的输出值的向量将
被称为“定义明确的”。形容词“定义明确的”不是领域的现有术语,也不仅是短语“定义明确的”的一般用法。这是专门为了讨论该值向量而引入的一个短语,作为AALC之间这种通信形式的基础。
[0201] 例如,对于此类向量的通信有用的重要属性是发送者和接收者对哪个特征对应于向量中的哪个位置具有共同的理解。如果两个AALC计算同一组特征的估计,但不知道彼此
在向量中列出这些特征的顺序,则通信将无效。因此,优选地,构建学习过程以创建在本文使用的意义上的“定义明确的”向量。例如,如果两个深度学习网络学习对相同的类别集进行分类,但是从不同的初始网络开始或使用不同的学习策略,则无法保证来自网络某些中
间层的节点向量将代表两个网络中的相同特征,更不用说它们采用相同的次序。在本说明
性实施例中,即使两个深度神经网络具有不同的架构,该两个深度神经网络也可以传送和
定义明确的特征向量有关的信息。
[0202] 在本文使用的意义上,“定义明确的”特征向量的示例是由利用监督训练进行训练的机器学习系统的输出节点形成的向量。优选地,机器学习系统已经被训练为收敛,并且优选地其已经在具有足够大小的数据集上进行了训练,使得在新数据上的性能可与在训练数据上的性能相当。如果输出类别具有人类可解释的标记,则定义明确的输出向量将进一步
被指定为“带有标记的定义明确的特征向量”。本示例说明了一种机制,通过该机制可以创建定义明确的特征向量。如在下面的讨论中将看到的,还有其它机制可以用来创建定义明
确的特征向量。
[0203] 在机器学习系统是深度神经网络的情况下,如果存储库包含足够的信息来计算新数据上向量中节点的激活值,并且如果有足够的信息来测试由一些其它网络计算出的节点
激活是否足够接近参考向量的激活值,则定义明确的特征向量RFV可以用作通信的参考对
象。
[0204] 对于本示例,如图12中存储库中的数据结构中所示,参考特征向量RFV包括定义明确的特征向量中的值的向量。参考数据RData是存储库中输入数据向量的副本到计算定义
明确的特征向量的机器学习系统的索引。参考机器学习系统RML是存储库或归档内到计算
定义明确的特征向量的机器学习系统的副本的索引。此副本包含足够的信息来重建该参考
系统,该参考系统与计算参考特征向量时完全相同地进行保存。
[0205] 需注意,多个机器学习系统中的每一个可能有多个副本,因此这些副本可以存储在归档AR中并位于辅助存储装置中,而不是在活动存储库中。在本说明性实施例中,优选的是,通信过程能够由在创建原始的定义明确的特征向量时可能尚未观察到的新数据来计算
定义明确的特征向量RFV中的值。因此,优选地是保留生成定义明确的特征向量RFV的机器
学习系统RML的副本。如果最初生成定义明确的特征向量RFV的参考机器学习系统RML是
AALC的组成部分,那么它可能已经通过后续训练进行改变,并且可能已增长为更大的网络。
归档AR优选地在这些后续改变之前存储RML的副本。
[0206] □从接受训练的网络中复制节点集:来自任何接受训练的人工神经网络(ExampleANN)的任何节点集(NodeSet)都可以用作创建定义明确的特征向量RFV的基础。在
一个说明性实施例中,节点集及其整个子网络被复制到存储库RP作为参考机器学习系统
RML。在本说明性实施例中,要复制的子网络由NodeSet中的所有节点和ExampleANN中直接
或间接激活NodeSet中的任何节点的所有节点组成。子网络架构与子网络中弧上权重的训
练值一起被复制。复制的弧包括源节点和目标节点均在子网络中的所有弧。在一些实施例
中,优选地,NodeSet中的所有节点都在ExampleANN的同一层中。
[0207] 在另一个说明性实施例中,不复制NodeSet的子网络。替代地,将新网络训练为参考网络RML。此训练使用一组参考数据RData,指定到ExampleANN的一组输入示例以及
NodeSet中节点的对应激活值。在本说明性实施例中,NodeSet中的节点的激活值用作训练
新网络RML的目标输出。因此,通过转移学习来训练网络RML。
[0208] 尽管任何NodeSet都可以用作创建定义明确的特征向量RFV的基础,但是某些节点集将比其它节点集好得多。在下面将要讨论的方式中,学习教练LC、智能代理IA和管理代理进行选择和设置政策,以选择更有效的节点集成为参考定义明确的特征向量。
[0209] □低维和稀疏特征向量:一些实施例更偏好低带宽特征向量,也就是可以用相对较少的位数表示激活值的特征向量。此类特征向量的示例包括:(1)具有相对少量元素的特征向量;(2)被称为“稀疏特征向量”的特征向量,其中只有相对少量的元素为非零;以及(3)其中激活是相互关联并由相对较少的参数确定的特征向量。在稀疏特征向量中,稀疏性可
以通过以稀疏性正则化将特征向量训练为相对稀疏或通过强制稀疏性约束来实现。此外,
具有多个非零但接近零的激活的特征向量可能会将其所有接近零的激活都截断为零。在一
个说明性实施例中,在具有n个节点的节点集中,除具有最高激活的k个节点之外的所有节
点的激活被设置为0。这种过程导致具有k(n)特征的稀疏特征向量。
[0210] □自动编码器的监督和半监督训练:这些低带宽特征向量除了需要较少的通信位数外,还具有其它优点。例如,可以将它们训练为自动编码器中的瓶颈层。自动编码器是一种神经网络,其被训练为将其输入编码为低带宽表示并且随后尽可能接近地再现原始的高
带宽表示之后再现其输入。自动编码器可以不受监督地训练,因为其提供了自己的输出规
范,即复制输入。
[0211] 图13示出了根据本发明的各种实施例的用于具有稀疏特征向量的自动编码器的监督或半监督训练的机制。特征向量和编码器网络从两个目标(匹配输入的自动编码目标
和分类目标)接收梯度下降反向传播。在监督训练下,自动编码器学习由相同类别的实例共享的特征,并学习不同的特征值以区分不同的类别。来自两个目标的反向传播具有正则化
效应和稳定化效应。因此,图13中所示的训练不太可能过拟合训练数据。稳定化还将趋向于使在单独的AALC中训练的特征向量不会偏移。
[0212] 如果某些数据未标记或被视为未标记,则进行半监督训练。对于未标记或被视为未标记的数据,仅从自动编码目标发生反向传播。在存在大量未标记数据的情况下,半监督学习非常有用。例如,行业标准的图像识别测试平台ImageNet具有超过一百万个带注释的
图像。然而,据估计,截止到2014年,人们每天将大约18亿张图像上传到互联网。自动编码器的半监督学习还有助于防止对标记的训练数据的过拟合,因此即使标记可用,本发明的一
些实施例也可以将某些数据视为未标记。
[0213] 在另一个说明性实施例中,作为包含一个或多个低带宽特征向量的深度网络的常规监督训练的一部分,在深度神经网络的内层中训练定义明确的低带宽特征向量。如图14
所示,本实施例具有一些用于稳定特征向量的额外部件,这将在下面讨论。在本实施例中,置于存储库RP中的参考机器学习系统RML至少包括激活低带宽特征向量的子网络。任选地,其也可以包括具有由低带宽特征向量激活的更高层的子网络。任选地,其可以包括包含低
带宽特征向量的整个网络。
[0214] 低带宽特征向量还有其它潜在优势。例如,一旦低带宽特征向量已经接受训练,其通常更容易获得向量位置和表示的特征之间的关系,以在持续训练下保持一致。
[0215] □聚类:在各种实施例中,还可以使用机器学习中多种众所周知的聚类算法中的任何一种来对特征向量进行聚类。在一些说明性应用中,未标记数据的数量比标记数据的
数量大得多。聚类可以利用这种未标记的数据,因为可以使用无监督或半监督学习来完成。
在一个说明性实施例中,一组特征向量的初始聚类是通过无监督的k均值聚类完成的。然
后,对网络进行训练以计算与每个特征向量相关联的聚类,其中网络训练由k均值聚类给出的聚类分配监督。然后,在用一组类别C标记的一组数据上,训练网络以根据C中的目标类别对特征向量进行分类。将特征向量映射到k均值聚类的网络作为子网络包含在内。作为将分类训练为C中类别的一部分,对k均值聚类网络和计算特征向量激活的子网络进行微调。
[0216] □将特征向量插入到现有网络中:可以使用图5、图6、图7和图8中所示的技术将特征向量插入到现有网络中。在一些实施例中,当特征向量被插入到现有网络中时,其激活子网络也被插入。在一些说明性实施例中,它们可以作为如图10所示的额外输入节点或如图11所示的额外输出节点插入。
[0217] 在说明性实施例中,其中在存储库RP中表示的定义明确的特征向量被插入AALC中的新网络中,向量中的位置与有意义的特征之间的关联通过若干种方法中的任何一种来稳
定。例如,在给定相同的输入数据的情况下,对特征向量中节点的激活进行正则化,以使其与存储库和/或其它AALC中的对应特征向量的激活一致。作为另一个示例,可以降低特征向量中节点的学习速率,以防止其在跨代理正则化实例之间变化太快。
[0218] 特征向量稳定的另一个说明性示例,也适用于未正则化到存储库的插入特征向量,是向要向其添加特征向量的网络添加额外的稳定结构,如图14的示例中所示。例如,除激活子网络之外,任何已经被训练作为自动编码器中瓶颈层的稀疏特征向量都可以添加其
解码器,并将自动编码器的输出作为额外输出节点添加到接收网络,如上所述。此外,如果将新特征向量添加到在其上具有多个层的内层,则可以将网络的输出层的副本添加到要添
加新特征向量的层之上的层。与任何新插入的节点一样,这些额外的、局部的、稳定的输出目标将有助于稳定特征向量,使其免受由于额外训练和在添加了特征向量的层之上的层的
增长而引起的变化的影响。
[0219] □网络架构中的稀疏节点集:根据本发明的其它实施例,稀疏特征向量可以从一开始就被包括在深度神经网络的架构中,而不是在以后被添加。在本说明性实施例中,不存在避免在已接受训练的网络中性能下降的问题。在本说明性实施例中的另一个示例是神经
网络,其中在该神经网络上添加了稀疏特征向量,或者对架构进行了其它实质性改变,从而从头开始训练所得扩展网络。例如,从头重新训练可能是学习教练LC和智能代理IA更加全
面地探索学习空间的策略,或者可能是管理代理创建新网络的政策,该网络将具有不同的
特征来补充集成。
[0220] □通信的目的:本发明的实施例可以出于多个目的使用AALC之间的通信。这些目的可能与AALC向存储库RP传递网络元素和从存储库RP传递网络元素的目的重叠。通信的各
种目的在下面进行描述。
[0221] 1)为了保持特征向量一致:用于将特征向量中的节点的激活从一个AALC传递到另一个AALC或到存储库的一个目的是正则化节点激活,并使向量位置和特征之间的关联保持
一致。
[0222] 2)为了提供特征向量以解决问题:在说明性实施例中,用于将特征向量从一个AALC复制到另一个AALC的目的是解决在训练接收方网络时遇到的问题。在本说明性实施例
中,每当网络具有试图纠正多个错误中的一个错误而产生相等或更多数量的相反类型的错
误的情况时,智能代理IA可以声明网络的训练存在“问题”。当试图进一步降低已经受过良好训练的机器学习系统中的错误率时,通常会发生这种情况。
[0223] 在本说明性实施例中,该问题的特征在于用于待校正误差的示例数据加上通过尝试修复原始误差而创建的新误差的示例数据,以及目标分类类别。当智能代理IA如此表征
此类问题时,它可能会发布该问题或向一个或多个其它AALC发送消息并寻求帮助。在本说
明性实施例中,帮助将采用特征向量和支持子网络的形式,其比网络寻求帮助更好地执行
期望的区分。该特征向量被插入AALC的网络中,在实验的基础上寻求帮助。也就是说,对新的特征向量进行测试以查看其是否提高了接收网络的性能。对未包括在接收网络或提供特
征向量的网络的训练中的开发数据D2评估性能。
[0224] 3)为了提供特征向量以增长网络:在一些说明性实施例中,如图3的框308和310所示,将特征向量作为网络增长的常规部分添加到网络。
[0225] 4)为了提供特征向量用于一般目的:在一些说明性实施例中,可以出于各种目的将特征向量添加到网络,例如,作为学习教练LC的学习策略的一部分。作为另一个示例,其可以是学习教练LC或智能代理IA的策略的一部分,以增加集成的多样性。
[0226] 5)为了发送特征向量以进行测试:在一个说明性实施例中,AALC可以将特征向量和支持子网络的副本发送到存储库RP(参见图2和图12)或发送到另一个AALC,以便在与其
中对其进行开发的环境不同的环境中测试特征向量的性能。采用此策略不仅可以减少对特
定训练数据集的过拟合,而且可以发现对于具有学习教练的多个异步代理的整个系统而言
最有用的特征向量。
[0227] 6)更好的可解释性:稀疏特征向量不仅有助于在AALC之间共享知识,其还有助于人类用户对机器学习系统的内部知识进行解释。此外,在AALC之间共享此知识的行为进一
步利于人们对其的使用。稀疏特征向量中的特征可以在使用系统时通过主动学习进行标
记,尤其是其在交互式应用中被使用时。在一些实施例中,即使在被动使用中也可以获取这些标记。例如,可以在半监督训练下将标记暂时分配给稀疏特征向量的组成部分。例如,可以通过在交互式应用中使用它们的系统来确认这些标记,在该交互式应用中,用户可以校
正错误使用的术语。缺少此类校正可隐式确认标记已被正确使用。在稀疏特征向量在多个
AALC之间共享的实施例中,如果一个AALC学习了标记,则其可以与所有其它AALC进行共享。
[0228] 性能上的改善:本发明的实施例可以改善机器学习系统的性能,包括以下描述的改善。
[0229] 1)测量和校正过拟合:在具有大量参数的任何机器学习系统中,潜在的问题是参数学习以不推广到新数据或操作用途的方式拟合训练数据的机会特征的能力。本发明的说
明性实施例的设计的多种要素被设计为减少该问题。此外,本发明的说明性实施例可以进
行测量以检测训练数据的此类过拟合,并且可以提出纠正措施以解决过拟合(如果发生的
话)。
[0230] 本说明性实施例使用图1中的开发集D2。对于本说明性实施例,获得额外的开发数据以用作开发验证集V2,或者将D2的一部分留作V2。在本实施例中,D2用于测量机器学习系统ML2在其训练数据T2上的性能与其在开发集D2上的性能之间的差异。如果在学习教练LC
和智能代理IA的政策下认为性能差异很大,则可以对超参数作出改变以增加正则化的数量
并减少对训练数据T2的过拟合。在本说明性实施例中,超参数不仅可以包括常规的正则化
超参数,例如用于L1和L2正则化的参数,而且可以包括在本发明中引入的具有正则化效果
的新颖参数,无论这是否是其主要目的。
[0231] 例如,在多个AALC上的特征向量的正则化主要是保持特征属性到特征向量中位置的分配一致。然而,其对共享特征向量的每个机器学习系统也有正则化效应。作为另一个示例,用于稳定特征向量和对网络的其它添加的多个目标具有正则化效应。因此,除最终输出节点的分类性能以外,赋予目标的相对权重是正则化超参数。添加的输出节点,甚至是到最终输出目标的较低层中的副本,都具有正则化效应。稀疏特征向量的自动编码和聚类目标
具有正则化效应。在以下取决于温度的S型函数, 的定义中升高温度T
具有正则化效应。在说明性实施例中,当这些超参数控制机器学习系统ML2在训练集T2上的训练时,通过梯度下降将所有这些和其它可能影响过拟合程度的超参数优化成能够在开发
集D2上优化性能的一组值。
[0232] 尽管开发集D2未用于训练示例,但对超参数的调整以优化D2上的性能意味着D2上的性能不再是对验证数据或操作使用中的性能的有效估计。因此,在本说明性实施例中,在开发数据D2已被用于调整正则化超参数之后,预留数据V2被用于估计验证数据上的性能。
保存原始验证集V以用于最终验证。
[0233] 2)在无限制下增长网络深度:在本发明的说明性实施例中,如图3的框310所示,AALC可以增长其相关的机器学习系统DS和ML2。如果机器学习系统是深度神经网络,则可以通过添加整个新层来增长神经网络,例如通过图7和图8中所示的方法。在一个说明性实施
例中,这种深度的增长可以基本上无限制地进行。在中间层中插入输入节点的副本(参见图
10)可以减少由于具有多个层而产生的任何不良影响,就像将输出节点插入中间层一样(参
见图11)。线性节点或包含线性节点的复合节点允许将任何节点或节点集从任何层复制到
任何更高的层,从而再次减少额外层产生不良副作用的可能性。最后,使用梯度归一化可消除最常见的不良副作用,即梯度消失或爆炸。
[0234] 然而,即使可以在没有性能下降的情况下将深度神经网络增长到任意深度,但性能可能会在某个深度达到饱和,此后,性能的增量提高将很小。当仅增加深度的过程似乎饱和时,本发明的各种实施例可以采取多种特殊动作来进一步改善性能。
[0235] 3)分割检测器(分为检测器、拒绝器和无关位):神经网络中的任何节点都可以视为激活模式超过特定阈值的检测器,尤其是具有S型或softmax激活函数的节点。输出节点
和特征向量中的节点明确地是指定分类类别或特征的检测器。然而,在任何检测中,既有表明类别或特征存在的肯定证据,也有表明类别或特征可能不存在的否定证据。在神经网络
中,单个非复合节点将正负信息加在一起作为其激活函数的输入。
[0236] 在本发明的说明性实施例中,复合节点特征检测器可以表示和学习更细微的决策过程,如图15所示。在一些实施例中,省略了背景模型节点。该具有第三节点作为背景模型的说明性实施例被特别设计为替换具有两个以上输出类别的分类器中的输出节点,或者替
换稀疏特征向量中的节点。单个节点只能代表一种或任一种情况。该复合节点中的第一
(左)节点表示存在明显有利于检测的证据的事实。第二(中间)节点表示存在明显证据反对
检测的事实。第三(右)节点表示任何一种方式都不存在有力的证据。三个节点中的每个节
点都训练自己的子网络。在一个说明性实施例中,这三个子网络是激活被替换的单个节点
的子网络的副本,该单个节点被以相同的权重初始化,然后被训练为每个节点各自的目标。
三个节点中的每一个都连接到原始单个节点所连接到的下一层中的所有节点,其中连接权
重如图所示进行初始化(例如,w1=l,w2=-1,w3=0)。在一些实施例中,三个节点中的每一个的激活被独立地计算。例如,每个都可以是S型函数。在其它实施例中,三个节点被激活为softmax。
[0237] 4)模板节点:在一些实施例中,某些类型的节点可以用于创建模板。在这些实施例中,模板可以是单个节点或建模单个数据项的一组节点。在一些实施例中,模板首先对单个数据项建模,然后被训练以识别相似项的聚类或原始项是示例的类别。其中每个节点都将其输入与一组存储的特征值进行匹配的任何节点集都可以作为模板。例如,计算径向基函
数或高斯核的节点可以作为模板。内部存储值向量并计算该内部向量与输入值之间的差的
任何向量范数的任何节点都可以作为模板。计算其入弧的权重与这些弧的源节点的激活之
间的角度的余弦的任何节点都可以作为模板。如果激活和权重是归一化的,比如说它们的
平方和为1,则权重乘以入激活的乘积的范数和就等于余弦。除入权重和相应激活的归一化外,这是一个普通节点且其不需要内部存储。
[0238] 任何一组模板节点都能够一次性学习。也就是说,一个模板节点或一组模板节点可以由新类别的单个实例创建模型。本发明的实施例可以在常规训练期间或在操作使用中
的终生学习期间使用一次性学习。一次性学习在操作使用期间特别有价值,因为其可以在
遇到新情况时立即提供校正性学习,如果再次发生,则可以立即提供处理相同情况的方法。
一次性学习与终生学习相结合,使系统能够不受限制地不断学习新事物。在说明性实施例
中,终生学习包括无监督、半监督或主动学习,当机器学习系统在使用中时,这种学习将持续进行。当遇到不符合任何现有类别的新事物时,可以使用一次性学习。在交互式应用的操作使用中,可以通过提供用户校正误差的方法来实现部分监督的隐式学习。由此隐式地确
认了未校正的不确定输出。
[0239] 5)通过多个检测/拒绝网络来增强输出节点:在图16所示的说明性实施例中,每个原始输出节点连接到接受训练以检测由输出节点表示的类别的多个检测节点,并且还连接
到接受训练以在有充分证据表明该假设错误时拒绝该假设的多个拒绝器节点。在本说明性
实施例中,检测器和拒绝器均被训练为稀疏激活。在本实施例中,假设存在多种输出类别,并且在少部分时间每种类别都是真的。
[0240] 两个组合节点可以在其反向传播到其输入节点的目标函数中具有特殊的额外项。即,当两个或更多个输入节点被错误激活时,它们可以反向传播大量额外的惩罚。由于检测器都在检测同一事件,并且预期在大多数时间是正确的,因此预期它们的激活高度相关。然而,额外的惩罚往往会训练它们使其误差有条件地不被纠正,甚至可能是负相关的。也就是说,可以在以下意义上将它们相关联,即在它们正确时大多都适用,但在错误时它们中没有两个适用。拒绝器的处理方式类似于检测器。
[0241] 在此概念的其它实施例中,针对该额外惩罚可能存在不同的触发阈值。例如,当检测器的集成较大并且各个检测器的错误率较高时,在施加额外的惩罚之前可能会有较高的阈值。
[0242] 在某些情况下,输出节点或一对输出节点必须在两个易混淆的类别之间做出决定。根据本发明的各种实施例,在这种情况下,拒绝器由用于类别中一个(例如第二类别)的检测器替换。在本实施例中,由于类别是易混淆的,所以个体误差率可能更高。在这种情况下,答案可以由两组检测器中的每组激活的检测器的数量或一些相关度量(例如其激活级
别的总和)来确定。在此类实施例中,当正确和不正确的度量之间的差小于某个指定的余量时,可以施加额外的惩罚。
[0243] 6)将特征向量子网络的权重绑定在一起:在各种实施例中,本发明可以在分布式系统上运行。在此类实施例中,AALC之间的通信信道优选地具有相对较低的数据带宽。如上所述,这可以实现是因为稀疏特征向量需要相对较少的位来表征,并且正则化信息的通信
仅是偶然的。然而,在一些实施例中,单个系统上可能有多个AALC,而无需系统间通信。
[0244] 在说明性实施例中,某些特征向量及其子网络相比于仅通过正则化被更紧密地绑定。事实上,所有权重被绑定为彼此相同。例如,单个神经网络中相同特征向量的所有副本,或者单个AALC中集成中网络中的所有副本可以使其权重被绑定为相同。将权重绑在一起的
决策将在学习教练LC的控制之下。在另一个实施例中,学习教练LC可以进行混合,从而调整正则化参数的频率和大小,直到相关子网络几乎相同,并且可能将其混合以迫使它们相同。
强迫它们相同可能是一个可逆的决定,因为这种关系可能会在将来的任何时间被打破并且
权重可能会发生偏移。例如,如果要将两个绑定的网络复制到将在物理上分离并且需要通
过有限带宽的通信通道进行通信的系统,则可以采取此措施。
[0245] 7)合并网络并创建集成:在本发明的说明性实施例中,多个AALC异步运行,并且每个AALC逐渐获得独特的知识体系。本发明的说明性实施例允许对由两个或更多个AALC获得的独特知识进行组合。在一个实施例中,两个或更多个AALC的ML2分类器被简单地组装成集成分类器。随后在T2训练集的联合中对所有训练数据进行重新训练。如果被组合的所有
AALC具有相同的分类类别集,或者与之足够接近,以使得可以将异常视为缺失投票,则本实施例可能是适当的。
[0246] 在另一实施例中,该集成可以被组合成类似于图4所示的单个神经网络。在本实施例中,特殊组合节点可以包括处理作为基本类别集合的类别的节点。特殊节点将创建联合
和相交以及各个分类器的类别的其它理论函数集,并计算各种形式的组合得分。集成上方
的神经网络将学习如何从特殊函数中选择得分并进行组合。
[0247] 在本实施例中,对于打算供以后合并的AALC中的机器学习系统,类别和训练集的集合可以保持较小。将这些系统及其训练集保持较小将减少所需的计算总量,同时允许大
多数初步学习在分布式系统上异步进行。
[0248] 8)低级别特征:在另一个说明性实施例中,低级别特征的有效数量从一个AALC到另一个AALC有所不同。一方面,智能代理IA和学习教练LC可以选择输入节点中要激活的子
集。进行此选择是为了减少计算量并增加集成中机器学习系统之间的多样性,该集成可以
是单个AALC内的集成,也可以是将来通过组合多个AALC的部件而创建的集成。
[0249] 为了增加学习和表示非线性函数的能力以及增加多样性,可以在仅输入层的上方或另一低层中添加计算特殊激活函数的额外节点。这些节点可以计算特殊函数,例如两个
输入的乘积或径向基函数或输入节点向量周围的高斯核,或由其它低级节点计算这些函
数。然而,为了限制复杂度和计算量,本说明性实施例仅选择所有这些函数的较小集合。例如,可能仅选择所有输入节点对中的较小子集,以让特殊节点计算该对的乘积。学习教练LC可以随机选择对,或者可以在上一轮训练期间首先观察输入节点的激活,并选择具有显著
正相关或负相关的对,或者可以选择由智能代理IA指定的对。智能代理IA可以出于探索的
目的指定对的选择,即通过反复试验找出哪些对有助于提高性能,或者智能代理IA可以基
于其它具有学习教练的异步代理中的机器学习系统中对的性能挑选要选择的对。另外,学
习教练LC和智能代理IA均可以基于其它机器学习任务的先前经验来制定其自身规范。
[0250] 对于网络架构中的任何额外节点的添加或其它改变,例如,先前系统的快照可以被存档在管理单元的归档AR中,改变之后的系统的频繁快照也可以被存档以便有足够的时
间来评估改变的性能。如果该改变被评估为会降低性能,则系统将还原到改变之前的系统
快照。如果改变被评估为显著的改善,则可以记录该改变并将其推荐给其它AALC。因此,在探索性设计过程中,一组AALC可以共同探索较高功率函数的空间,与此同时在探索涉及过
程期间在任一个机器学习系统中这些函数的较小集合处于活动状态。
[0251] 增强集成的性能:再次参考图1,数据选择机器学习系统DS或第二级机器学习系统ML2可以是集成而非单个分类系统,尤其是当分类任务接近最终目标并且机器学习系统ML2
达到其最佳性能时。在本发明的说明性实施例中,集成机器学习系统ML2具有在通用集成的训练和操作中不可用的一些优点。例如,如已经关于上述若干说明性示例所提到的,管理代理AA和智能代理IA可以具有在AALC集合上增强机器学习系统LM2的集体多样性的政策。这
种多样性将趋向于导致更多的互补集成成员和更好的集成性能。此外,定义明确的稀疏特
征向量使机器学习系统ML2能够相互学习,从而有助于提高单独和联合的性能。
[0252] 作为本发明的说明性实施例,经由正则化特征向量的知识共享可以应用于任何集成神经网络机器学习系统,而不仅应用于基于增量增长和AALC的系统。
[0253] 多级机器学习系统:图17和图18示出了多级机器学习系统的实施例。在美国临时专利申请序列第62/486,650号中进一步详细描述了多级机器学习系统,该申请通过引用整
体并入本文。本发明实施例中的AALC包括任选的数据选择系统DS和第二级机器学习系统
ML2。然而,数据选择系统DS和第二级机器学习系统ML2的组合不能构成完整的多阶段机器
学习系统。
[0254] 如图17所示,在一个完整的多级机器学习系统中,存在多个末级机器学习系统,并且数据分配系统将每一项数据分配给至少一个末级机器学习系统。相比而言,在AALC中,第二级机器学习系统ML2可以是单个系统,而非集成,并且如果存在数据选择系统并进行任何重大选择,则数据选择系统将仅选择数据T2中适当子集T2'。
[0255] 然而,如已经描述的,机器学习系统ML2可以是集成。任何集成都可以构建到多级机器学习系统中,如图17和图18所示。此类过程的一个说明性实施例如下。本说明性过程使用监督学习,但在某种程度上也是自组织的。
[0256] 首先,获得一组标记的训练数据。尽管不是必需的,但是优选的是,该训练数据是已经被保留并且未在集成的原始训练中使用的数据。集成的成员成为初始的末级机器学习系统1704a至1704e。使用标记的训练数据测量集成中每个成员的性能。然后,基于这些性能测量,通过监督学习来训练数据分配机器学习系统(1701和1702),以尝试将训练数据的每
一项分配给最有可能对该数据项进行正确分类的末级机器学习系统1704。在这种监督训练
中,数据分配机器学习系统不会被告知正确的分类,而只会告知被分配的末级机器学习系
统1704的性能测量。需注意,可以对这些性能测量进行平滑和正则化,使得它们不仅仅反映分配的末级机器学习系统的答案正确还是错误。
[0257] 一旦数据分配系统1701和1702接受训练,就将角色互换随后,每个末级机器学习系统1704通过监督训练仅使用已由数据分配系统分配给其的数据进行训练。在一些实施例
中,图17中的多级学习教练和数据管理系统1705可以将分配的数据复制给一个以上的末级
机器学习系统。学习教练和数据管理系统1705还可以添加噪声,即,对数据分配系统所做的分配的改变。由学习教练和数据管理系统1705进行的这些干预是为了使对末级机器学习系
统1704的训练进行正则化,并且使其对噪声更具鲁棒性。
[0258] 图18示出了其中将数据源物理地分布的多级机器学习系统。例如,具有数百万最终用户的大众市场产品可能会将第一级数据采集作为在每个最终用户本地系统上运行的
应用程序的一部分进行,该本地系统可以是计算机、平板电脑、智能手机、智能手表,或简单的嵌入式设备。末级机器学习系统也可以是物理分布的。末级机器学习系统的数量也可以
等于最终用户的数量,或者至少与最终用户的数量成比例。因为由一组n个末级机器学习系统中每个末级机器学习系统处理的数据量仅与总数据的1/n成比例,所以每个末级机器学
习系统的处理量保持恒定。因此,最终用户的总数量和末级机器学习系统的成比例数量可
以不受限制地增长。
[0259] 因为机器学习系统共享知识,所以整个系统不仅仅是一个集成。AALC的说明性实施例可以利用图18中所有分布式处理系统的总计算能力。AALC和大型多级机器学习系统已
经非常出色的独立能力可以在结合时相互大大增强。
[0260] 在各种应用中,本发明的实施例可以用于改善多种不同类型的机器学习系统,包括深度神经网络。例如,本发明的实施例可以改善推荐器系统、语音识别系统和分类系统,包括图像和诊断分类系统,仅举几个例子来说。
[0261] 因此,在一个总体方面,本发明涉及一种用于改善基础深度神经网络的方法和计算机系统。该方法包括用训练数据将基础深度神经网络训练到期望的性能标准,例如达到
或接近收敛或驻点(的阈值范围内)。基础深度神经网络包括输入层、输出层以及位于输入
层和输出层之间的第一隐藏层。第一隐藏层包括第一节点,该第一节点继而包括第一入弧
和第一出弧。该方法还包括在结构上改变基础深度神经网络以创建更新的深度神经网络,
使得相对于基础深度神经网络,更新的深度神经网络在训练数据上的性能没有下降。该方
法还包括随后训练更新的深度神经网络。
[0262] 在各种实施例中,计算机系统可以包括第一组一个或多个处理器,其用于利用训练数据来将基础深度神经网络训练到期望的性能标准。该计算机系统还可以包括第二组处
理器,该第二组处理器用于(i)在结构上改变基础深度神经网络以创建更新的深度神经网
络,其中相对于基础深度神经网络,更新的深度神经网络在训练数据上的性能没有下降;以及(ii)随后训练更新的深度神经网络。
[0263] 在各种实施方式中,在结构上改变基础网络包括在相对于基础神经网络未降低更新的神经网络的性能的情况下,向第一节点添加新的弧,如图5所示。新的弧可以是新节点的入弧,或者是新节点的出弧。在随后训练更新的深度神经网络之前,将新的入弧的权重初始设置为零。在随后训练更新的深度神经网络之前,将新的出弧的权重初始设置为零。对基础网络的结构改变还可以包括在相对于基础神经网络未降低更新的神经网络的性能的情
况下,向第一隐藏层添加第二节点,如图6所示。第二节点可以具有至少一个入弧和至少一个出弧,在随后训练更新的深度神经网络之前,可以将第二节点的至少一个出弧中的每一
个的权重初始设置为零。另选地,第二节点的激活并不由基础深度神经网络中的其它节点
(例如,输入节点)确定。在其它实施例中,第二节点具有针对到第二节点(例如,输出节点)的输入数据值的每个向量的指定目标值。
[0264] 在其它实施例中,在结构上改变基础网络可以包括在相对于基础神经网络未降低更新的神经网络的性能的情况下,向基础神经网络添加第二隐藏层,使得第二隐藏层位于
输入层和输出层之间并且不同于第一隐藏层,如图7所示。在各种实施方式中,第二隐藏层位于第一隐藏层和输出层之间;第二隐藏层包括多个节点;第二隐藏层的多个节点包括第
一组一个或多个节点和第二组一个或多个节点;第二隐藏层中的第二组一个或多个节点中
的节点的数量等于第一隐藏层中的节点的数量,使得第二层中的第二组一个或多个节点中
的每个节点在第一隐藏层中都具有对应节点;第二隐藏层中的第一组一个或多个节点中的
每个节点包括入弧和出弧;第二隐藏层中的第二组一个或多个节点中的每个节点包括与第
一隐藏层中的其对应节点相同数量的入弧和出弧,从而使得层中的第二组一个或多个节点
中的每个节点具有与第一隐藏层中其对应节点相同数量的入弧和出弧;在随后训练更新的
深度神经网络之前,将第二隐藏层的第一组节点中的一个或多个节点的每个出弧的权重初
始设置为零;以及将第二隐藏层的第二组节点中的一个或多个节点的每个入弧的权重初始
设置为值一。在其它实施方式中,第二隐藏层位于第一隐藏层和输出层之间;第二隐藏层包括一个或多个节点;第二隐藏层中的一个或多个节点中的每一个包括入弧和出弧;在随后
训练更新的深度神经网络之前,将第二隐藏层中的一个或多个节点的每个出弧的权重初始
设置为零;以及在随后训练更新的深度神经网络之前,来自第一隐藏层的出弧跳过第二隐
藏层。
[0265] 更进一步,在结构上改变基础网络可以包括用复合节点替换隐藏层中的第一节点。复合节点可以包括检测器节点和拒绝器节点。在各种实施方式中,基础神经网络包括上子神经网络和下子神经网络,上子神经网络包括输出层,下子神经网络包括输入层,使得隐藏层位于上子神经网络和下子神经网络之间。在该情况下,在结构上改变基础网络可以进
一步包括复制下子神经网络,使得至少存在第一下子神经网络和第二下子神经网络,使得
隐藏层中的复合网络的检测器节点连接至上子神经网络和第一下子神经网络,且隐藏层中
的复合网络的拒绝器节点连接至上子神经网络和第二下子神经网络,如图9所示。复合节点可以进一步包括第三节点,在这种情况下,在结构上改变基础网络可以进一步包括复制下
子神经网络,使得存在第三下子神经网络,并且使得隐藏层中的复合网络的第三节点连接
至上子神经网络和第三下子神经网络。
[0266] 在各种实施方式中,本发明的方法可以进一步包括,在结构上改变基础深度神经网络之后,用验证数据来验证更新的深度神经网络。在检测到相对于基础深度神经网络,更新的深度神经网络在验证数据上的性能下降时,该方法可以进一步包括:通过机器学习教
练学习针对更新的深度神经网络的特征改变,以纠正相对于基础深度神经网络,更新的深
度神经网络在验证数据上的性能下降;以及在更新的深度神经网络中实现该特征改变。
[0267] 基础深度神经网络可以是例如深度前馈神经网络或深度递归神经网络。
[0268] 在另一个总体方面,本发明涉及一种自动编码器,包括:下子网络,其包括编码器网络;低带宽特征向量,其作为自动编码器的瓶颈层;以及上子网络,使得低带宽特征向量位于下子网络和上子网络之间。上子网络包括机器学习分类器网络和用于下子网络的编码器网络的解码器网络。另外,低带宽特征向量和编码器网络通过由解码器网络和机器学习
分类器网络的梯度下降反向传播进行训练。
[0269] 在各种实施方式中,自动编码器可以通过监督训练或通过半监督训练进行训练。此外,除编码器网络之外,下子网络可以包括第一子神经网络,并且除机器学习分类器网络和解码器网络之外,上子网络可以包括第二子神经网络。
[0270] 在另一个总体方面,本发明涉及一种训练机器学习系统的方法,其中机器学习系统包括用于将输入分类成一组目标类别TC的机器学习分类器ML2。根据各种实施例,该方法包括以下步骤:[a]在第一训练数据集T1上训练数据选择机器学习系统DS,其中T1是S的子
集,其中S是一组标记的训练示例,并且其中T1≠S;[b]在T1上训练之后,用数据选择机器学习系统DS将第二训练数据集T2分类成两个或更多个目标类别TC,其中T2是S的子集,并且其中T2≠T1≠S;[c]为训练ML2选择第二训练数据集T2的子集T2',其中该子集T2'基于误差参数进行选择,使得如果由DS对T2的训练示例的分类的分数不正确并且在正确分类的分数的
误差参数内,则将该训练示例包含在子集T2'中;以及[d]在T2'上训练ML2。该方法还包括以下步骤:逐渐地增长机器学习系统的方面直到满足停止标准为止,其中以机器学习系统的
逐渐增长的方面来重复步骤[a]至[d],直到满足停止标准为止。
[0271] 根据各种实施方式,逐渐增长的方面包括对ML2和/或DS的结构改变。例如,在ML2或DS包括深度神经网络的情况下,视情况而定,结构改变可以包括向ML2或D2添加新的节
点、添加新的弧和/或添加新的层。作为另一个示例,ML2可以包括机器学习分类器的集成,并且结构改变可以包括向ML2添加新的集成成员。同样,逐渐增长的方面可以包括增大针对ML2的目标类别TC的集合或改变标记的训练示例的集合S。
[0272] 根据其它实施方式,机器学习系统包括学习教练LC,并且该方法进一步包括由学习教练系统为为以上步骤[a]至[d]的每次迭代指定误差参数。学习教练LC本身可以是机器
学习系统。机器学习系统还可以包括执行设置停止标准的步骤的智能代理。
[0273] 在另一个总体方面,本发明涉及一种系统,该系统包括机器学习分类器ML2和数据选择机器学习系统D2,该数据选择机器学习系统选择用于训练ML2的训练示例,使得ML2在
不降低分类性能的情况下增长。
[0274] ML2和DS均可以具有各自的学习参数集,这些参数可调整以最小化分别表示ML2和DS分类误差的代价的目标函数。在此类实施方式中,机器学习系统可以进一步包括机器学
习学习教练LC,该机器学习学习教练LC:(i)被训练以识别机器学习过程的观察中的模式;
(ii)基于训练ML2和/或DS中的观察,根据LC的目标函数的目标设置ML2和/或DS的一个或多
个学习参数(例如ML2和/或DS的一个或多个超参数)。就此而言,LC优选地具有与ML2和DS不同的目标函数。机器学习系统可以进一步包括与LC通信的智能代理,该智能代理将目标发
送到LC。此外,学习教练LC可以确定如何使ML2和/或DS在不降低分析性能的情况下增长。
[0275] 分类器ML2、数据选择系统DS和学习教练LC各自可以用一个或多个处理器(例如GPU和/或AI加速器)实现,以用于实现其各自的机器学习功能。
[0276] 在另一个总体方面,机器学习系统包括多个联网异步代理,其中每个异步代理包括机器学习分类器ML2和选择用于训练ML2的训练示例的数据选择机器学习系统D2。在此类
实施方式中,分类器ML2中的至少两个具有不同的机器学习结构(例如,不同的深度神经网
络)。而且,多个联网异步代理中的至少一个还包括机器学习学习教练LC和机器学习智能代理IA。该系统可以进一步包括与多个网络异步代理中的每一个通信的机器学习管理代理,
其中管理代理控制多个网络异步代理中的哪些在给定时间处于活动状态或非活动状态。
[0277] 在另一个总体方面,本发明涉及用于机器学习系统的增量开发的系统和方法,该机器学习系统并不限于具有多个异步代理的系统。增量开发可以用在任何可以动态的增长
其网络的机器学习系统中。新颖的方面是重复地逐渐增加系统或训练过程的一些属性,同
时关于改变是否获得了改善来测试每个增量改变。增量改变可以是以下中的任一个:(1)机器学习系统的大小和复杂性,例如层数量、节点数量或神经网络中的弧数量,(2)训练数据的量,(3)在每个数据项中输入特征的数量,(3)正进行区分的类别的数量,(4)集成中成员的数量,(5)限制正在进行训练的机器学习系统类型的任何其它属性。即使在训练单个系统时,也可以完成这些增量开发步骤中的任一个。
[0278] 在另一个总体方面,本发明涉及用于将集成组合到单个网络中的系统和方法,例如以上结合图4所描述的。一个新颖的方面包括使用神经网络来将集成组合到单个大型网
络中,随后训练该组合系统以优化其联合性能。由于缺乏此类组合网络,用于构建和训练集成的现有技术方法不能直接测量或优化联合节性能。充其量是它们使用了替代,当新成员
添加到集成中时,这些替代趋于提高性能,但不会共同重新训练所有集成成员。可以将组合网络初始化为与未合并的集成进行相同的计算。随后的梯度下降训练可以改善性能,从而
使大型单个网络的性能优于集成的性能。
[0279] 在另一个总体方面,本发明涉及用于自动编码器的监督训练的系统和方法,例如以上结合图13所描述的。一个新颖的方面包括使用多个目标训练自动编码器。与自动编码
器的常规训练相比,具有多个目标可实现两项改进:(1)减少自由度的数量,以获得正则化效果;以及(2)稳定对特征向量的训练,从而更容易使代表相同特征的多个特征向量保持同步,无论该多个特征向量是在同一网络中还是在可能与不同异步代理相关联的不同网络
中。
[0280] 在另一个总体方面,本发明涉及用于稳定特征向量的系统和方法,如以上结合图14所描述的。图14至少有两个方面是新颖的。第一个是构建和训练低带宽知识表示(例如特征节点的向量),并使用该低带宽知识表示在分布式机器学习系统的子系统之间交流和共
享知识。第二个是稳定对一组节点的训练以同时满足多个目标。
[0281] 在另一个总体方面,本发明涉及利用检测器/拒绝器复合节点的系统和方法,例如以上结合图15和图16所描述的。此类节点将检测与拒绝分开,而不仅仅是将检测的缺乏解
释为拒绝。例如,可以将检测建模为三种选择之间的区分:(1)检测,(2)拒绝或(3)无决策或背景情况。检测器和拒绝器均可以被训练为稀疏激活。
[0282] 在另一个总体方面,本发明涉及向内层添加输入节点和输出节点的系统和方法,例如以上结合图10和图11所描述的。
[0283] 在另一个总体方面,本发明涉及实现本文所述的迭代学习和增长周期的系统和方法。机器学习系统(例如AALC、单个机器学习系统或集成的成员)可以使用以下增长技术中
的一个或两个或更多个的组合来增长:(i)通过选择误差和关闭调用来选择性地增长数据
集(例如,参见图3的框304至308);(ii)增加输出类别的数量(例如,参见框309);(iii)增加网络的大小(例如,参见框310);和/或(iv)添加额外的输入特征(例如,参见框311)。通过使用这些技术中的任何一种,都可以初始化新系统以使其与以前的性能匹配,而不必从头开
始进行重新训练。在另一个总体方面,本发明涉及用于归一化节点的入弧上的权重的系统
和方法。入权重可以例如通过以下方式归一化:(i)使权重之和为常数,例如1;(ii)调整权重以使L1范数为1;和/或(iii)调整权重以使L2范数为1。替代地或附加地,可以归一化来自节点的出弧上的权重。
[0284] 在另一个总体方面,本发明涉及本文所述的终生学习和一次性学习技术,其可以应用于单个机器学习系统/网络和应用于集成的成员。本发明的各方面还涉及改进多级机
器学习系统,例如结合图17和图18所描述的。
[0285] 本文所述的系统,包括AALC和管理单元,可以用计算机硬件和软件来实现。例如,它们可以是具有多个处理CPU核心的集成计算机系统(例如,服务器或服务器的网络)的一部分。例如,在AALC的情况下,一组核心可以执行用于ML2的程序指令,另一组用于学习教练LC,等等。程序指令可以存储在可以由处理核心访问的计算机存储器中,例如RAM、ROM、处理器寄存器或者处理器高速缓存。在其它实施例中,系统中的一些或全部可以在图形处理单
元(GPU)核心上执行,例如通用GPU(GPGPU)流水线。GPU核心并行地操作并且由此通常可以
更有效地处理数据,即一系列的CPU核心,但是所有的核心同时执行同一代码。在其它实施例中,各个AALC中的一些或全部可以作为分布式计算机系统的一部分。数据可以利用合适
的数据链路在各种系统之间共享,例如数据总线(优选地为高速数据总线)或者网络链路
(例如,以太网)。
[0286] 用于本文中所述的各种机器学习系统的软件以及本文中所述的其它计算机函数可以利用任何合适的计算机编程语言(例如,.NET、C、C++、Python)并利用常规的、功能性的或者面向对象的技术来在计算机软件中实现。用于计算机软件和其它由计算机实现的指令
的编程语言可以在执行之前通过编译器或汇编程序翻译成机器语言,和/或可以在运行时
由解释器直接进行翻译。汇编语言的示例包括ARM、MIPS以及x86;高级语言的示例包括Ada、BASIC、C、C++、C#、COBOL、Fortran、Java、Lisp、Pascal、Object Pascal、Haskell、ML;脚本语言的示例包括Bourne script、JavaScript、Python、Ruby、Lua、PHP以及Perl。
[0287] 本文中所给出的示例旨在例示说明本发明的可能和具体实施方式。可以意识到,示例主要旨在用于为本领域技术人员例示说明本发明的目的。示例的特定方面或多个方面
未必旨在限制本发明的范围。而且,应当理解的是,本发明的附图和描述已经进行了简化,以例示说明用于清楚地理解本发明相关的元件,与此同时为简洁起见消除了其它元件。尽
管本文中已经描述了各种实施例,但是应当显而易见的是,在实现所述优点中的一些的前
提下本领域技术人员可以想到对这些实施例的各种修改、改变和调整。在不脱离本文中所
阐述实施例的范围的前提下所公开的实施例因此旨在包括此类修改、改变和调整。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈