具有减少的参数计数的深度神经网络的制作方法

文档序号:31838632发布日期:2022-10-18 22:00阅读:82来源:国知局
具有减少的参数计数的深度神经网络的制作方法

1.本公开涉及机器学习领域,尤其涉及深度神经网络(dnn)。


背景技术:

2.dnn是一种类型的机器学习,它使用根据人脑中神经元连接建模的连接集合来从示例中学习。dnn被表示为类似于连接到其他节点的神经元的节点的层级(分层)组织。输入是要被分类对象的基元,并输出目标的类的集合。隐藏层中的每个节点接收来自前一层中的节点的输入,经由非线性函数组合来自前一层中的节点的信号,并将其输出传递到下一层中的节点。连续层的两个节点之间的连接具有关联的权重,该权重定义了输入对针对下一个节点生成其输出的节点中的非线性函数的影响。在dnn的训练期间,训练数据(什么输入产生什么输出)被馈送到dnn,并且连接的权重被更新或优化,直到dnn具有期望的精度。例如,如果dnn正在被训练用于对象识别,则大量标记的图像可以被馈送到dnn,直到dnn能够在训练数据集上产生足够精确的图像分类。
3.dnn可以被用于执行复杂的任务,诸如机器视觉、对象识别、疾病诊断、生物信息学、药物设计、自然语言处理、机器翻译等。现代计算能力允许dnn在具有数百万可调整参数(即,权重)的情况下变得更深更大。然而,具有大参数计数的dnn可能需要系统具有大的存储和计算资源。


技术实现要素:

4.本文描述了一种从dnn提取子网络的系统和关联方法。如上所述,全连接的dnn包括按层布置的多个节点,在连续层中的节点之间具有全连接。本文描述的系统从dnn选择最小的连接集合(即,未屏蔽的连接),并屏蔽剩余的连接。未屏蔽连接的最小集合预期具有低于精度阈值的训练精度。该系统从最小的未屏蔽连接集合建立,以发现具有期望的训练精度但具有比dnn小得多的参数计数的子网络。该系统还可以修剪子网络以进一步减少参数计数。一个技术优势是,由此产生的子网络具有比完整的dnn低得多的存储和处理要求,因此可以在资源有限的设备中应用,诸如移动电话或机器人。
5.一个实施例包括用于dnn的子网络发现系统,dnn包括多个节点,在节点之间具有连接。子网络发现系统包括至少一个处理器和存储器。处理器使子网络发现系统通过将初始值指派给与连接相关联的权重来初始化dnn,并且标识从dnn随机选择的连接的初始子集。利用训练数据集训练后的初始子集具有低于精度阈值的训练精度。处理器通过将来自dnn的附加连接添加到初始子集来使子网络发现系统执行增长过程,以生成连接的合格子集。利用训练数据集训练后的连接的合格子集具有达到精度阈值的训练精度。
6.在另一实施例中,处理器使子网络发现系统执行修剪过程以从合格子集移除连接的一部分,以生成连接的修剪子集。利用训练数据集训练后的修剪子集具有达到精度阈值的训练精度。
7.在另一实施例中,针对修剪过程,处理器使子网络发现系统将合格子集中的连接
的权重重置为初始值,基于训练数据集优化合格子集中的连接的权重,并基于修剪百分比从合格子集移除连接的一部分。
8.在另一实施例中,处理器使子网络发现系统执行修剪过程的多次迭代。
9.在另一实施例中,初始子集包含dnn中的初始百分比的连接,而合格子集包含dnn的目标百分比的连接。针对增长过程,处理器使子网络发现系统使用二值搜索来标识用于合格子集的目标百分比。
10.在另一实施例中,针对二值搜索,处理器使子网络发现系统:
11.(a)将初始百分比标识为针对二值搜索的搜索间隔的下限;
12.(b)选择针对二值搜索的搜索间隔的上限作为大于初始百分比的上限百分比;
13.(c)选择针对搜索间隔的中间百分比;
14.(d)基于中间百分比将来自dnn的附加连接添加到初始子集,以形成连接的候选子集;
15.(e)将候选子集中的连接的权重重置为初始值;
16.(f)基于训练数据集来优化候选子集中的连接的权重;
17.(g)确定候选子集的训练精度;
18.(h)当训练精度低于精度阈值时,将搜索间隔缩小到搜索间隔的上半部分;以及
19.(i)当训练精度满足精度阈值时,将搜索间隔缩小到搜索间隔的下半部分;以及
20.重复(c)-(i)以收敛于目标百分比。
21.在另一实施例中,针对增长过程,处理器使子网络发现系统选择增长百分比,基于增长百分比将附加连接添加到初始子集以形成连接的候选子集,将候选子集中的连接的权重重置为初始值,基于训练数据集优化候选子集中的连接的权重,确定候选子集的训练精度,当训练精度达到精度阈值时将候选子集标识为合格子集,并且当训练精度低于精度阈值时发起增长过程的另一迭代。
22.在另一实施例中,初始子集包含dnn中的初始百分比的连接。处理器使子网络发现系统基于训练数据集的大小和dnn中权重的总数的比率来选择初始百分比。
23.另一实施例包括一种处理dnn的方法,dnn包括多个节点,在节点之间具有连接。该方法包括通过将初始值指派给与连接相关联的权重来初始化dnn,以及标识从dnn中随机选择的连接的初始子集。利用训练数据集训练后的初始子集具有低于精度阈值的训练精度。该方法还包括通过将来自dnn的附加连接添加到初始子集来执行增长过程,以生成连接的合格子集。利用训练数据集训练后的连接的合格子集具有达到精度阈值的训练精度。
24.在另一实施例中,该方法还包括执行修剪过程以从合格子集移除连接的一部分,以生成连接的修剪子集。利用训练数据集训练后的修剪子集具有达到精度阈值的训练精度。
25.在另一实施例中,针对修剪过程,该方法还包括将合格子集中的连接的权重重置为初始值,基于训练数据集优化合格子集中的连接的权重,以及基于修剪百分比从合格子集移除连接的一部分。
26.在另一实施例中,该方法还包括执行修剪过程的多次迭代。
27.在另一实施例中,初始子集包含dnn中的初始百分比的连接,而合格子集包含dnn的目标百分比的连接。针对增长过程,该方法使用二值搜索来标识用于合格子集的目标百
分比。
28.在另一实施例中,针对二值搜索,该方法还包括:
29.(a)将初始百分比标识为针对二值搜索的搜索间隔的下限;
30.(b)选择针对二值搜索的搜索间隔的上限作为大于初始百分比的上限百分比;
31.(c)选择针对搜索间隔的中间百分比;
32.(d)基于中间百分比将来自dnn的附加连接添加到初始子集,以形成连接的候选子集;
33.(e)将候选子集中的连接的权重重置为初始值;
34.(f)基于训练数据集来优化候选子集中的连接的权重;
35.(g)确定候选子集的训练精度;
36.(h)当训练精度低于精度阈值时,将搜索间隔缩小到搜索间隔的上半部分;以及
37.(i)当训练精度满足精度阈值时,将搜索间隔缩小到搜索间隔的下半部分;以及
38.重复(c)-(i)以收敛于目标百分比。
39.在另一实施例中,针对增长过程,该方法还包括:选择增长百分比;基于增长百分比将附加连接添加到初始子集以形成连接的候选子集;将候选子集中的连接的权重重置为初始值;基于训练数据集优化候选子集中的连接的权重;确定候选子集的训练精度;当训练精度达到精度阈值时,将候选子集标识为合格子集;以及当训练精度低于精度阈值时,发起增长过程的另一迭代。
40.在另一实施例中,初始子集包含dnn中的初始百分比的连接,并且该方法还包括基于训练数据集的大小和dnn中的权重的总数的比率来选择初始百分比。
41.另一实施例包括用于处理dnn的系统,dnn包括多个节点,在节点之间具有连接。该系统包括用于通过将初始值指派给与连接相关联的权重来初始化dnn的部件。该系统还包括用于标识从dnn随机选择的连接的初始子集的部件。利用训练数据集训练后的初始子集具有低于精度阈值的训练精度。该系统还包括用于通过将来自dnn的附加连接添加到初始子集以生成连接的合格子集来执行增长过程的部件。利用训练数据集训练后的合格连接子集具有达到精度阈值的训练精度。该系统还可以包括用于执行修剪过程以从合格子集移除连接的一部分以生成连接的修剪子集的部件。利用训练数据集训练后的修剪子集具有达到精度阈值的训练精度。
42.其他实施例可以包括如下所述的计算机可读介质、其他系统或其他方法。
43.以上发明内容提供了对说明书的某些方面的基本理解。本发明内容并不是对说明书的全面概述。其目的既不是为了标识说明书的关键或必要元素,也不是为了描绘说明书的特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化的形式呈现本说明书的一些概念,作为稍后给出的更详细描述的前序。
附图说明
44.现在仅通过示例并参考附图来描述本发明的一些实施例。在所有附图上,相同的附图标记表示相同的元件或相同类型的元件。
45.图1图示了dnn。
46.图2图示了dnn的节点。
47.图3是图示在说明性实施例中发现dnn中的可训练子网络的框图。
48.图4是在说明性实施例中的子网络发现系统的框图。
49.图5是图示在说明性实施例中从dnn发现可训练子网络的方法的流程图。
50.图6是图示在说明性实施例中在dnn上操作的子网络发现系统的框图。
51.图7是图示在说明性实施例中的增长过程的流程图。
52.图8是图示在说明性实施例中的增长过程的流程图。
53.图9是图示在说明性实施例中的修剪过程的流程图。
具体实施方式
54.附图和下面的描述说明了具体的示例性实施例。因此,应当理解,本领域的技术人员将能够设计出各种布置,尽管在此未明确描述或示出,但这些布置体现了实施例的原理,并且包括在实施例的范围内。此外,这里描述的任何示例旨在帮助理解实施例的原理,并且将被解释为不限于这些特别列举的示例和条件。因此,(多个)发明概念不限于下面描述的特定实施例或示例,而是由权利要求及其等同形式所限制。
55.图1图示了dnn 100。在一个示例中,dnn 100可以包括完全连接的前馈dnn。dnn 100(也称为人工神经网络(ann))是包括数百或数千个节点110的计算模型。节点110是计算单元,松散地模仿人脑中的神经元,当它遇到足够多的刺激时就会触发。节点110被布置在包括输入层120、一个或多个隐藏层130和输出层140的一系列层中。来自一层的输出是对从输入层120开始、穿过一个或多个隐藏层130并在输出层140结束的后续层的输入。输入层120包括将来自外部世界的输入数据122接收到dnn 100的节点110(也称为输入节点)。输入层120中的节点110通常不执行计算,而是将输入数据122传递给相邻的隐藏层130。隐藏层130包括节点110(也称为隐藏节点),其从前一层(即,输入层120或前一隐藏层)中的节点110接收输入、执行计算并生成输出。由于隐藏层130中的节点110与外部世界没有直接连接,因此它们被称为“隐藏的”。输出层140包括从前一隐藏层130中的节点110接收输入、执行计算并生成输出的节点110(也称为输出节点)。输出层140中节点110的输出表示从dnn 100到外部世界的最终输出142。最终输出142可以是分类、预测等。
56.来自相邻层的节点110在它们之间具有连接112或边。dnn 100可以是全连接的,这意味着一层中的每个节点110都连接到先前相邻层中的每个节点110。两个连续节点110之间的连接112具有定义输入对连接112的影响或重要性的关联权重。
57.图2图示了dnn 100的节点110。节点110可以表示隐藏层130中的隐藏节点或输出层140中的输出节点。在该示例中,节点110具有与前一层(未示出)的节点110的多个连接112,并通过连接112接收输入。更具体地,节点110通过连接112-0接收input0,通过连接112-1接收input1,通过连接112-2接收input2,并通过连接112-i接收inputi。存在与每个连接112相关联的权重202。更具体地,权重202-0(w0)与连接112-0相关联,权重202-1(w1)与连接112-1相关联,权重202-2(w2)与连接112-2相关联,并且权重202-i(wi)与连接112-i相关联。
58.节点110还包括净输入功能204和激活功能206。净输入功能204将通过连接112接收的输入与关联于连接112的权重组合。例如,网络输入功能204将通过连接112-0接收的input0与关联于连接112-0的权重202-0相乘。因此,与连接112相关联的权重202放大或抑
制通过连接112接收的输入。然后,净输入功能204对输入权重乘积求和,并将该和传送到激活功能206。激活功能206在确定该信号是否应该进一步通过dnn 100以及在多大程度上应该进一步通过dnn 100来影响最终输出142方面模仿开关。例如,激活功能206可以将来自净输入功能204的总和与阈值进行比较。当该和大于或等于该阈值时,激活功能206可以将该和作为输出208通过连接112传送到后续节点110。当总和小于阈值时,激活功能206不“激活”,并且不将输出208传送到后续节点110。如图2所示的节点110的配置是一个示例,并且在其他实施例中,dnn 100的节点110可以具有其他配置。
59.训练dnn 100可能是一个漫长且处理密集的过程,因为dnn 100可能包括数千或数百万个参数(即,权重)。例如,可以通过将初始值随机指派给连接112的权重202来初始化dnn 100。在初始化之后,可以通过处理训练数据集的样本来训练dnn 100,以更新连接112的权重202。例如,查看图像形式的样本的dnn 100可以尝试将分类指派给该图像(例如,“动物”、“汽车”、“船”等),或者查看声音形式的样本的dnn 100可以尝试将分类指派给该声音(例如,“语音”、“音乐”、“自然”等)。作为图1中的训练的示例,来自训练数据集的样本被输入到输入层120的节点110,并且dnn 100产生样本的分类或预测作为来自输出层140的最终输出142。然后基于dnn 100的输出的精度来修改dnn 100的可调整参数(即,连接112的权重202)。例如,可以使用优化算法(例如,随机梯度下降)来确定最小化成本函数(通常为平方或熵)的权重的值,该成本函数测量每个输入样本与指定类别的偏差,并且相应地调整权重202的值以对dnn 100进行训练。以这种方式对训练数据集的多个样本进行训练,使得dnn 100的训练精度达到精度阈值(例如,90%)。
60.当dnn 100中的参数数目较大时,如上所述的训练过程可能较长且处理密集。为了克服这一问题和其他问题,可以在dnn 100中发现更小的子网络,其在训练时达到期望的精度。这里描述的子网络是来自dnn 100的连接112和相关联的权重202的组合。子网络中的连接112可以被认为是未屏蔽的,而dnn 100的其余连接112可以被认为是屏蔽的。可训练子网络是能够以期望精度学习的连接112和相关联的权重202的组合。图3是图示在说明性实施例中发现dnn 100中的可训练子网络的框图。首先,通过将初始值随机指派给连接112的权重202来初始化dnn 100。因此,被初始化的dnn 100的每个连接112的权重202被指派初始值。在初始化之后,从dnn 100中选择不可训练子网络302。不可训练子网络302是不能以期望精度学习的连接112和相关联的权重202的组合。换言之,不可训练子网络302是如此稀疏,以至于其连接112和关联权重202的组合在被训练时将不具有期望的精度。例如,不可训练子网络302可以从小百分比的连接112中选择,诸如1%、2%、3%,或来自dnn 100的连接112的一些其他最小百分比。
61.然后执行增长过程以通过将来自的dnn 100的附加连接112添加到不可训练子网络302来建立不可训练子网络302,直到发现增长的子网络304。增长的子网络304被认为是在训练时达到期望精度的可训练子网络。增长的子网络304比不可训练子网络302更密集(即,具有更多数目的连接112),但比dnn 100更稀疏。例如,增长的子网络304可以包括来自dnn 100的连接112的6%、12%、15%、20%等和相关联的权重202。
62.在发现增长的子网络304之后,可以在增长的子网络304上执行修剪过程,以从增长的子网络304中移除影响力较小的连接112。例如,具有最小幅度权重202的增长的子网络304的连接112可以被移除或屏蔽,并且剩余的未修剪连接112形成修剪子网络306。修剪子
网络306也被认为是在训练时达到期望精度的可训练子网络。
63.图4是在说明性实施例中的子网络发现系统400的框图。子网络发现系统400是被配置为从诸如dnn 100的dnn发现一个或多个可训练子网络的服务器、设备、装置、装备(包括硬件)、系统、部件等。在本实施例中,子网络发现系统400包括以下子系统:初始化子系统402、增长子系统404、训练子系统406和修剪子系统408。初始化子系统402可以包括被配置为通过将初始值指派给dnn的权重来初始化dnn的电路系统、逻辑、硬件、部件等。增长子系统404可以包括被配置为建立不可训练子网络302以发现可训练子网络的电路系统、逻辑、硬件、部件等。训练子系统406可以包括被配置为基于训练数据集410训练或重新训练dnn或子网络的电路系统、逻辑、硬件、部件等。修剪子系统408可以包括被配置为修剪子网络的电路系统、逻辑、硬件、部件等。
64.子网络发现系统400的一个或多个子系统可以在包括模拟和/或数字电路系统的硬件平台上实现。子网络发现系统400的一个或多个子系统可以在执行存储在存储器422中的指令424(即,计算机程序代码)的一个或多个处理器420上实现。处理器420包括被配置为执行指令424的集成硬件电路,并且存储器422是用于数据、指令424、应用等的计算机可读存储介质,并且可由处理器420访问。为了简洁起见,子网络发现系统400可以包括未示出的附加组件,诸如网络接口、用户接口、内部总线等。
65.图5是图示在说明性实施例中从dnn发现可训练子网络的方法500的流程图。方法500的步骤将参考图4中的子网络发现系统400来描述,但是本领域的技术人员将理解,方法500可以在其他系统中执行。这里描述的流程图的步骤不是全部包含的,并且可以包括未示出的其他步骤,并且这些步骤可以按照备选的顺序来执行。
66.针对该实施例,假设方法500在如图1所示的dnn 100上操作,尽管方法500可以在其他dnn上操作。首先,初始化子系统402通过将初始值指派给与连接112相关联的权重202来初始化dnn 100(步骤502)。图6是图示在说明性实施例中在dnn 100上操作的子网络发现系统400的框图。子网络发现系统400将初始值602指派给dnn 100中的连接112的每个连接112的权重202。在该实施例中,子网络发现系统400可以将非零初始值602随机地指派给dnn 100的权重202,诸如具有均匀分布、高斯分布等。
67.为了发现可训练子网络,方法500首先标识或定义不可训练子网络302,该不可训练子网络如此稀疏以至于它不可训练。为此,增长子系统404标识从dnn 100随机选择的连接112的初始子集(图5的步骤504)。初始子集是dnn 100中的连接112总数的百分比或分数。为了标识如图6所示的初始子集610,子网络发现系统400可以确定、计算或选择dnn 100中的初始百分比611(或最小百分比)的连接总数112。例如,初始百分比611可以是2%、4%、6%或根据设计选择的另一个百分比。然后,子网络发现系统400基于初始百分比611从dnn 100随机选择连接112以形成初始子集610,该初始子集610包含连接112的初始百分比611(表示为conn 112-1至conn 112-m)及其相关联的权重202。如果初始(随机)子集610可以被训练以满足所需的精度,则已经发现了满足训练精度要求的稀疏子网络。这通常是一种罕见的情况。更经常地,在训练之后,初始子集610的精度(即,训练精度)低于精度阈值(accu《th)。因此,或者初始子集610是可训练的并且满足所需的精度,或者初始子集610表示不可训练子网络302,如图3中所描述的。当初始子集610表示不可训练子网络302时,初始子集610建立用于从dnn 100发现可训练子网络的基线或起点。
68.初始百分比611可以在期望初始子集610的训练精度低于精度阈值的情况下被选择,诸如利用经验或经验数据。例如,观察结果可以是连接112的最小百分比(例如,1%、2%等)被预期具有低于精度阈值的训练精度。子网络发现系统400还可以验证初始子集610的训练精度低于精度阈值。为此,训练子系统406可以利用使用训练数据集410的优化算法(例如,随机梯度下降)来优化初始子集610中的连接112的权重202,并确定初始子集610的训练精度。如果初始子集610的训练精度低于精度阈值,则初始子集610定义不可训练子网络302。
69.增长子系统404可以基于约束以各种方式选择初始百分比611(可选步骤520)。在一个实施例中,初始百分比611可以基于dnn 100的大小来选择,诸如连接112的数目或权重202。当dnn 100的大小较大时,所选择的初始百分比611可能较小,并且当dnn 100的大小较小时,所选择的初始百分比611可能较大。在另一实施例中,可以基于训练数据集410的大小来选择初始百分比611。训练数据集410的大小包括训练数据集410中的训练数据的样本或实例的数目。例如,假设dnn 100被用于图像识别。训练数据集410可以包括数百或数千个训练图像实例。当训练数据集410的大小较大时,所选择的初始百分比611可以较大,而当训练数据集410的大小较小时,所选择的初始百分比611可以较小。在另一实施例中,初始百分比611可以基于训练数据集410的大小与dnn 100中的权重202的总数目的比率来选择。在另一实施例中,初始百分比611可以从可接受的范围中选择,诸如dnn 100中的连接112的总数的2%-10%的范围。
70.随着初始子集610被标识,增长子系统404执行增长过程以生成从初始子集610建立的连接112的合格子集(步骤506)。合格子集是dnn 100中的连接112总数的大于用于形成初始子集610的初始百分比611的百分比或分数。针对增长过程,增长子系统404将来自dnn 100的附加连接112添加到初始子集610,以从初始选择的连接112的基线数目建立。为了生成如图6所示的合格子集620,子网络发现系统400可以确定、计算或选择dnn 100中的连接总数112的目标百分比621。然后,子网络发现系统400从dnn 100随机选择附加连接112,并将附加连接112添加到初始子集610,以形成包含连接112和关联权重202的目标百分比621的合格子集620。因此,合格子集620包含最初针对初始子集610选择的连接112,以及附加连接112(表示为conn 112-1至conn 112-n)。这些连接112具有指派的初始值602,其将在训练优化中被使用。在训练之后,合格子集620具有达到精度阈值的训练精度(accu》=th)。因此,合格子集620表示如图3中所描述的增长的子网络304。
71.从初始子集610到合格子集620的增长过程可以根据需要而变化。通常,增长过程将连接112添加到初始子集610以构建达到精度阈值的合格子集620。在一个实施例中,如下面更详细地描述的,子网络发现系统400可以使用二值搜索、黄金比例搜索等来用于增长过程。在另一实施例中,子网络发现系统400可以迭代地将一定数目或百分比的附加连接112添加到用于增长过程的初始子集610,如下面更详细地描述的。然而,这里考虑了其他类型的增长过程。
72.连接112的合格子集620的发现是有益的,因为合格子集620表示可训练子网络,其具有可接受的训练精度(即,等于或大于精度阈值),但与dnn 100相比具有减少的参数计数(即,更少的权重)。
73.针对方法500,子网络发现系统400可以通过修剪合格子集620来进一步减少合格
子集620的参数计数。在合格子集620中可能存在不太重要的连接112,并且可以在对精度影响最小的情况下移除这些连接112。因此,修剪子系统408可以执行修剪过程以从合格子集620生成连接112的修剪子集(可选步骤508)。修剪子集是dnn 100中的连接112的总数的小于用于形成合格子集620的目标百分比621的百分比或分数。针对修剪过程,修剪子系统408从合格子集620移除或屏蔽(即消除)被确定为影响较小的连接112的部分或数目,以形成如图6所示的修剪子集630。修剪的一种方式是基于合格子集620中权重202的绝对大小。具有绝对值接近零(即,低幅度)的权重202的合格子集620中的连接112对输出的影响最小。因此,子网络发现系统400可以移除或屏蔽具有低于修剪阈值(即,最小幅度权重)的权重202的合格子集620中的连接112,以形成修剪子集630。因此,与合格子集620(表示为conn 112-1至conn 112-p,其中p《n)相比,修剪子集630包含减少的连接112数目。在训练之后,修剪子集630具有也达到精度阈值的训练精度(accu》=th)。因此,修剪子集630表示如图3所描述的修剪子网络306。
74.修剪子集630的发现是有益的,因为修剪子集630表示可训练子网络,其具有可接受的训练精度(即,等于或大于精度阈值),但与合格子集620相比甚至具有进一步减少的参数计数(即,更少的权重)。
75.图7是图示示例性实施例中的增长过程700的流程图。该实施例中的增长过程700使用二值搜索来标识合格子集620的目标百分比621。通常,二值搜索重复地将搜索间隔一分为二。如果搜索项小于搜索间隔的中间项,则将搜索间隔缩小到下半部分。否则,搜索询问将缩小到上半部分。重复此过程,直到找到搜索项。
76.上面选择的初始子集610具有低于精度阈值的训练精度。因此,增长子系统404将初始子集610的初始百分比611标识为二值搜索的搜索间隔的下限(步骤702)。然后,增长子系统404建立或选择用于二值搜索的搜索间隔的上限(步骤704)。上限包括大于初始百分比611的百分比,该初始百分比通常被称为上限百分比。上限百分比被选择为具有达到精度阈值的训练精度。例如,上限百分比可以是连接112的100%、连接112的90%、连接112的50%或达到精度阈值的某个其他百分比。因此,二值搜索的搜索间隔最初在由初始百分比定义的下限与由上限百分比定义的上限之间。
77.然后,增长子系统404在上限与下限之间搜索目标百分比621。为此,子网络发现系统400选择、确定或标识搜索间隔的中间百分比(步骤706)。中间百分比包括搜索间隔的中点。最初,中间百分比在由初始百分比611定义的下限与由上限百分比定义的上限之间。增长子系统404然后基于中间百分比将附加连接112添加到初始子集610,以形成连接112的候选子集(步骤708)。增长子系统404从dnn 100随机选择附加连接112,并将附加连接112添加到初始子集610,以形成包含连接112和关联权重202的中间百分比的候选子集。
78.训练子系统406将候选子集中的连接112的权重202重置为初始值602(步骤710)。训练子系统406然后基于训练数据集410,诸如利用优化算法(例如,随机梯度下降)来优化或调整候选子集中的连接112的权重202(步骤712)。在基于训练数据集410训练候选子集之后,增长子系统404确定候选子集的训练精度(步骤714)。当训练精度低于精度阈值(例如,90%)时,增长子系统404将搜索间隔缩小到搜索间隔的上半部分(步骤716)。当训练精度满足(即,等于或大于)精度阈值时,增长子系统404将搜索间隔缩小到搜索间隔的下半部分(步骤718)。
79.当搜索间隔高于阈值时,子网络发现系统400重复步骤706-718。当搜索间隔变得足够小并且低于阈值(例如,1%、2%等)时,针对合格子集620,子网络发现系统400已经收敛于来自dnn 100的连接112的目标百分比621(另见图6)。当初始子集610增长到包含等于目标百分比621的连接112的数目时,所得到的合格子集620具有达到精度阈值的训练精度。
80.图8是图示示例性实施例中的增长过程800的流程图。该实施例中的增长过程800迭代地构建初始子集610,直到发现具有达到精度阈值的训练精度的合格子集620。增长子系统404选择、标识或确定增长百分比(步骤802),并基于增长百分比将附加连接112添加到初始子集610以形成连接112的候选子集(步骤804)。增长子系统404基于增长百分比从dnn 100随机选择附加连接112,并将附加连接112添加到初始子集610以形成候选子集。因此,候选子集包含最初针对初始子集610选择的连接112,以及附加连接112及其关联权重202。可以基于初始子集610的期望增长率来选择增长百分比。例如,增长百分比可以是1%、2%、5%等。
81.训练子系统406将候选子集中的连接112的权重202重置为初始值602(步骤806)。训练子系统406然后基于训练数据集410优化或调整候选子集中的连接112的权重202(步骤808),诸如利用优化算法(例如,随机梯度下降)。在基于训练数据集410训练候选子集之后,增长子系统404确定候选子集的训练精度(步骤810)。当训练精度达到精度阈值时,增长子系统404将候选子集标识为合格子集620(步骤812)。当训练精度低于精度阈值时,增长子系统404发起另一迭代,其中过程800返回到步骤802。增长子系统404可以执行过程800的多次迭代以增长初始子集610,直到它包含足够数目的连接112以形成合格子集620,合格子集620在训练之后具有达到精度阈值的训练精度。
82.在一个实施例中,增长子系统404可以针对过程800的每次迭代使用相同的增长百分比。在另一实施例中,增长子系统404可以增加过程800的连续迭代的增长百分比。例如,增长子系统404可以将过程800的连续迭代的增长百分比加倍。在另一实施例中,增长子系统404可以降低过程800的连续迭代的增长百分比。例如,针对过程800的连续迭代,增长子系统404可以将增长百分比一分为二。
83.图9是图示在说明性实施例中的修剪过程900的流程图。该实施例中的修剪过程900迭代地(或重复地)从合格子集620移除或屏蔽一定百分比的连接112,直到发现具有达到精度阈值的训练精度的修剪子集630。训练子系统406将合格子集620中的连接112的权重202重置为初始值602(步骤902)。训练子系统406然后基于训练数据集410,诸如利用优化算法(例如,随机梯度下降)来优化或调整合格子集620中的连接112的权重202(步骤904)。在训练之后,修剪子系统408基于修剪百分比从合格子集620移除或屏蔽连接112的一部分(步骤906)。可以基于合格子集620的期望修剪速率来选择修剪百分比,以移除最小幅度权重。例如,修剪百分比可以是1%、2%、5%等。修剪子系统408然后可以确定何时终止修剪过程。当确定终止修剪过程时,修剪子系统408将合格子集620标识为修剪子集630(步骤908)。当确定不终止修剪过程时,修剪子系统408发起另一次迭代,其中过程900返回到步骤902。修剪子系统408可以执行过程900的多次迭代以修剪合格子集620并形成修剪子集630,修剪子集630在训练之后具有达到精度阈值的训练精度。
84.附图中所示或这里描述的各种元件或模块中的任一项可以被实现为硬件、软件、固件或它们的某种组合。例如,元件可以被实现为专用硬件。专用硬件元件可以被称为“处
理器”、“控制器”或一些类似的术语。当由处理器提供时,功能可以由单个专用处理器、由单个共享处理器或由多个单独的处理器来提供,其中一些可以是共享的。此外,术语“处理器”或“控制器”的显式使用不应被解释为仅指能够执行软件的硬件,并且可隐含地包括但不限于数字信号处理器(dsp)硬件、网络处理器、专用集成电路(asic)或其他电路、现场可编程门阵列(fpga)、用于存储软件的只读存储器(rom)、随机存取存储器(ram)、非易失性存储器、逻辑或一些其他物理硬件组件或模块。
85.此外,元件可以被实现为可由处理器或计算机执行以执行元件的功能的指令。指令的一些示例是软件、程序代码和固件。指令在由处理器执行以指导处理器执行元件的功能时是可操作的。指令可以被存储在处理器可读的存储设备上。存储设备的一些示例是数字或固态存储器、诸如磁盘和磁带的磁存储介质、硬盘驱动器或光学可读数字数据存储介质。
86.如在本技术中所使用的,术语“电路”可以指以下的一项或多项或全部:
87.(a)纯硬件电路实现(诸如仅在模拟和/或数字电路系统中实现);
88.(b)硬件电路和软件的组合,诸如(如适用):
89.(i)(多个)模拟和/或数字硬件电路与软件/固件的组合;以及
90.(ii)具有软件(包括(多个)数字信号处理器)的(多个)硬件处理器的任何部分、软件和(多个)存储器,它们协同工作以使诸如移动电话或服务器等设备执行各种功能);以及
91.(c)需要软件(例如,固件)用于操作的(多个)硬件电路和/或(多个)处理器,诸如(多个)微处理器或(多个)微处理器的一部分,但是当不需要进行操作时软件可以不存在。
92.电路的该定义适用于该术语在本技术中的所有使用,包括在任何权利要求中。作为本技术中使用的另一示例,术语电路系统还涵盖仅硬件电路或处理器(或多个处理器)或硬件电路或处理器的一部分及它的(或它们的)伴随软件和/或固件的实现。术语电路系统还涵盖,例如并且如果适用于特定权利要求元件,用于移动设备的基带集成电路或处理器集成电路,或服务器、蜂窝网络设备或其他计算或网络设备中的类似集成电路。
93.尽管在此描述了特定实施例,但本公开的范围不限于那些特定实施例。本发明的范围由以下权利要求及其任何等同形式限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1