CN111401545A - 神经网络优化装置和神经网络优化方法 - Google Patents
神经网络优化装置和神经网络优化方法 Download PDFInfo
- Publication number
- CN111401545A CN111401545A CN201911366022.9A CN201911366022A CN111401545A CN 111401545 A CN111401545 A CN 111401545A CN 201911366022 A CN201911366022 A CN 201911366022A CN 111401545 A CN111401545 A CN 111401545A
- Authority
- CN
- China
- Prior art keywords
- neural network
- performance
- subset
- module
- layer structure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Neurology (AREA)
- Debugging And Monitoring (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种神经网络优化装置,其包括性能估计模块,部分选择模块,新神经网络生成模块以及最终神经网络输出模块。性能估计模块基于对被用于执行神经网络的操作的资源的限制要求,根据执行神经网络的操作来输出估计性能。部分选择模块从性能估计模块接收估计性能并选择神经网络的偏离限制要求的部分。新神经网络生成模块通过强化学习,通过改变包括在神经网络的所选部分中的层结构来生成子集,基于从性能估计模块提供的估计性能来确定优化层结构,并将所选部分改变为优化层结构以生成新神经网络。最终神经网络输出模块输出由新神经网络生成模块生成的新神经网络作为最终神经网络。
Description
相关申请的交叉引用
本申请要求2019年1月2日提交于韩国知识产权局的韩国专利申请No.10-2019-0000078的优先权,该申请的公开内容整体以引用方式并入本文中。
技术领域
本公开涉及一种神经网络优化装置和神经网络优化方法。
背景技术
深度学习是指基于使用具有多个处理层的深度图来对输入数据中的高抽象程度进行建模的一组算法的操作架构。通常,深度学习架构可包括多个神经元层和参数。例如,作为深度学习架构之一,卷积神经网络(CNN)广泛用于许多人工智能和机器学习应用,例如图像分类、图像字幕生成、视觉问答和自动驾驶车辆。
例如,神经网络系统包括用于图像分类的大量参数并需要大量运算。因此,其具有高复杂度并消耗大量资源和功率。因此,为了实现神经网络系统,需要有效地计算这些运算的方法。具体地,例如,
在以有限方式提供资源的移动环境中,更重要的是增加计算效率。
发明内容
本公开的各方面提供一种增加神经网络的计算效率的神经网络优化装置和方法。
本公开的各方面还提供一种装置和方法以用于考虑资源限制要求和估计性能来优化神经网络以便增加神经网络的计算效率,特别是在资源有限的环境中。
根据本公开的一方面,提供了一种神经网络优化装置,其包括:性能估计模块,其被配置为基于对被用于执行神经网络的操作的资源的限制要求根据执行神经网络的操作来输出估计性能;部分选择模块,其被配置为从性能估计模块接收估计性能并选择神经网络的偏离限制要求的部分;新神经网络生成模块,其被配置为通过强化学习,通过改变包括在神经网络的所选部分中的层结构来生成子集,基于从性能估计模块提供的估计性能来确定优化层结构,并将所选部分改变为优化层结构以生成新神经网络;以及最终神经网络输出模块,其被配置为输出由新神经网络生成模块生成的新神经网络作为最终神经网络。
根据本公开的另一方面,提供了一种神经网络优化装置,包括:性能估计模块,其被配置为基于对被用于执行神经网络的操作的资源的限制要求根据执行神经网络的操作来输出估计性能;部分选择模块,其被配置为从性能估计模块接收估计性能并选择神经网络的偏离限制要求的部分;新神经网络生成模块,其被配置为通过改变包括在神经网络的所选部分中的层结构来生成子集,并通过基于子集将所选部分改变为优化层结构来生成新神经网络;神经网络采样模块,其被配置为对来自新神经网络生成模块的子集采样;性能检查模块,其被配置为检查由神经网络采样模块提供的子集中采样的神经网络的性能,并基于检查结果来向性能估计模块提供更新信息;以及最终神经网络输出模块,其被配置为输出由新神经网络生成模块生成的新神经网络作为最终神经网络。
根据本公开的另一方面,提供了一种神经网络优化方法,包括:基于对被用于执行神经网络的操作的资源的限制要求,根据执行神经网络的操作来估计性能;基于估计性能来选择神经网络的偏离限制要求的部分;通过强化学习,通过改变包括在神经网络的所选部分中的层结构来生成子集,并基于估计性能来确定优化层结构;将所选部分改变为优化层结构以生成新神经网络;以及输出所生成的新神经网络作为最终神经网络。
根据本公开的另一方面,提供了一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使得计算机执行一种方法。该方法包括:(1)通过理想化的神经网络来确定操作的预期性能的度量;(2)从该度量识别理想化的神经网络的与资源约束不符的不足部分;(3)基于该度量和资源约束来生成理想化的神经网络的改进部分;(4)在理想化的神经网络中用改进部分替换不足部分,以生成现实的神经网络;以及(5)利用现实的神经网络来执行操作。
然而,本公开的各方面不限于本文所阐述的那些。对于本公开所属领域的普通技术人员而言通过参考下面给出的本公开的详细描述,本公开的以上和其它方面将变得更显而易见。
附图说明
通过参照附图详细描述其示例实施例,本公开的以上和其它方面和特征将变得更显而易见,其中:
图1是示出根据本公开的实施例的神经网络优化装置的框图;
图2是示出图1的神经网络优化模块的实施例的框图;
图3是示出图2的部分选择模块的框图;
图4是示出图2的新神经网络生成模块的框图;
图5是示出图2的最终神经网络输出模块的框图;
图6和图7是示出根据本公开的实施例的神经网络优化装置的操作示例的图;
图8是示出根据本公开的实施例的神经网络优化方法的流程图;
图9是示出图1的神经网络优化模块的另一实施例的框图;
图10是示出图2的新神经网络生成模块的另一实施例的框图;
以及
图11是示出根据本公开的另一实施例的神经网络优化方法的流程图。
具体实施方式
图1是示出根据本公开的实施例的神经网络优化装置的框图。
参照图1,根据本公开的示例实施例的神经网络优化装置1可包括神经网络(NN)优化模块10、中央处理单元(CPU)20、神经处理单元(NPU)30、内部存储器40、存储器50和存储装置60。神经网络优化模块10、中央处理单元(CPU)20、神经处理单元(NPU)30、内部存储器40、存储器50和存储装置60可经由总线90彼此电连接。然而,图1所示的配置仅是示例。根据实现的目的,神经网络优化模块10以外的其它元件可被省略,并且可添加其它元件(图1中未示出,例如图形处理单元(GPU)、显示装置、输入/输出装置、通信装置、各种传感器等)。
在本实施例中,CPU 20可执行用于驱动神经网络优化装置1的各种程序或应用并且可将神经网络优化装置1作为整体控制。特别地,NPU 30可单独地或与CPU 20协作处理包括神经网络操作的程序或应用。
在神经网络优化装置1被实现为诸如应用处理器(AP)的芯片上系统(SoC)的情况下,内部存储器40对应于安装在神经网络优化装置1内部的存储器。例如,内部存储器40可包括静态随机存取存储器(SRAM),但本公开的范围不限于此。
另一方面,在神经网络优化装置1被实现为诸如AP的SoC的情况下,存储器50对应于在外部实现的存储器。外部存储器50可包括动态随机存取存储器(DRAM),但本公开的范围不限于此。
同时,根据本公开的实施例的神经网络优化装置1可被实现为具有有限资源的移动装置,但本公开的范围不限于此。
根据本文所描述的各种实施例的神经网络优化方法可由神经网络优化模块10执行。神经网络优化模块10可以以硬件、软件或硬件和软件来实现。此外,不用说,根据本文所描述的各种实施例的神经网络优化方法可以以软件实现并由CPU 20执行,或者可由NPU 30执行。为了描述简单,根据各种实施例的神经网络优化方法将主要参照神经网络优化模块10来描述。在以软件实现的情况下,软件可被存储在计算机可读非易失性存储介质中。
神经网络优化模块10优化神经网络以增加神经网络的计算效率。具体地,神经网络优化模块10通过使用对用于执行神经网络的操作的资源的限制要求以及根据执行神经网络的操作的估计性能来执行以下任务:将神经网络的一部分改变为优化的结构。
如本文所用的术语“性能”可用于描述当在诸如移动装置的硬件中执行或实现应用时根据执行神经网络的操作的诸如处理时间、功耗、计算量、存储器带宽利用率和存储器利用率的方面。术语“估计性能”可指这些方面的估计值,即,例如,根据执行神经网络的操作的处理时间、功耗、计算量、存储器带宽利用率和存储器利用率的估计值。例如,当在特定移动装置中执行特定神经网络应用时,根据执行神经网络的操作的存储器带宽利用率可被估计为1.2MB。作为另一示例,当在特定移动装置中执行神经网络应用时,根据执行神经网络的操作的消耗功率可被估计为2W。
这里,估计性能可包括可在硬件中估计的值以及可在软件中估计的值。例如,上述处理时间可以包括考虑到软件的计算时间、延迟等(其可以在软件中被检测到)以及硬件的驱动时间(其可以在硬件中被检测到)的估计值。此外,估计性能不限于根据执行神经网络的操作的处理时间、功耗、计算量、存储器带宽利用率和存储器利用率,而是可包括被认为在硬件或软件方面估计性能所需的任何指标的估计值。
这里,术语“限制要求”可用于描述资源,即,移动装置中可用于执行神经网络的操作的有限资源。例如,用于访问特定移动装置中被允许执行神经网络的操作的内部存储器的最大带宽可被限制为1MB。作为另一示例,特定移动装置中被允许执行神经网络的操作的最大功耗可被限制为10W。
因此,在对用于神经网络的操作的内部存储器的最大带宽的限制要求为1MB的情况下,如果根据执行神经网络的操作的估计性能被确定为1.2MB,则其可超出移动装置所提供的资源。在这种情况下,根据实现方式,可使用具有更大的允许存储器带宽和更高的访问成本的存储器代替内部存储器(其可能会降低计算效率并导致意外的计算延迟)来计算神经网络。
以下,将详细描述考虑资源限制要求和估计性能来优化神经网络以便在资源有限的环境中增加神经网络的计算效率的装置和方法。
图2是示出图1的神经网络优化模块的实施例的框图。
参照图2,图1的神经网络优化模块10包括部分选择模块100、新神经网络生成模块110、最终神经网络输出模块120和性能估计模块130。
首先,性能估计模块130基于对用于执行神经网络的计算的资源的限制要求根据执行神经网络的操作来输出估计性能。例如,基于对用于执行神经网络的操作的内部存储器的最大存储器带宽的1MB的限制要求,输出估计性能,使得根据执行神经网络的操作的性能被估计为1.2MB或0.8MB。在这种情况下,当估计性能为0.8MB时,不需要优化神经网络,因为其未偏离限制要求。然而,当估计性能为1.2MB时,可确定需要神经网络的优化。
部分选择模块100从性能估计模块130接收估计性能,并选择神经网络的偏离限制要求的部分。具体地,部分选择模块100接收神经网络NN1的输入,选择神经网络NN1的偏离限制要求的部分,并输出所选部分作为神经网络NN2。
新神经网络生成模块110通过改变包括在神经网络NN2的所选部分中的层结构来生成子集,并通过基于子集将所选部分改变为优化层结构来生成新神经网络NN3。这里,例如,神经网络NN2的所选部分可包括主要在卷积神经网络(CNN)系列中使用的relu、relu6、sigmoid、tanh等,其用作卷积层、池化层、全连接层(FC层)、反卷积层和激活功能。另外,所选部分可包括主要在循环神经网络(RNN)系列中使用的lstm单元、rnn单元、gru单元等。此外,所选部分可不仅包括层的级联连接结构,而且包括其它标识路径或跳过连接等。
子集是指一组层结构以及包括在神经网络NN2的所选部分中的其它层结构。即,子集是指通过执行各种改变来改进包括在神经网络NN2的所选部分中的层结构而获得的改变层结构。包括在子集中的改变层结构可以是一个或两个或更多个。新神经网络生成模块110可通过强化学习来生成其中包括在所选部分中的层结构被改变的一个或更多个改变层结构(将稍后参照图4详细描述),并确定被评估为针对移动装置环境优化的优化层结构。
最终神经网络输出模块120输出由新神经网络生成模块110生成的新神经网络NN3作为最终神经网络NN4。从最终神经网络输出模块120输出的最终神经网络NN4可被发送到例如图1的NPU 30并由NPU 30处理。
在本公开的一些实施例中,性能估计模块130可使用以下性能估计表。
[表1]
即,性能估计模块130可通过将移动装置的限制要求反映在如表1所示的数据结构中来存储并使用估计性能值。存储在表1中的值可根据从性能检查模块140(稍后参照图9描述)提供的更新信息而被更新。
图3是示出图2的部分选择模块的框图。
参照图3,图2的部分选择模块100可包括神经网络输入模块1000、分析模块1010和部分确定模块1020。
神经网络输入模块1000接收神经网络NN1的输入。例如,神经网络NN1可包括卷积层并且可包括在卷积层中执行的多个卷积操作。
分析模块1010搜索神经网络NN1以分析从性能估计模块130提供的估计性能是否偏离限制要求。例如,参考如表1所示的数据,分析模块1010分析卷积操作的估计性能是否偏离限制要求。例如,分析模块1010可参考值PTconv来分析卷积操作的处理时间的估计性能是否偏离限制要求。作为另一示例,分析模块1010可参考值Ppool来分析池化操作的估计性能是否偏离限制要求。
性能估计模块130可向分析模块1010仅提供针对一个指标(即,单个指标)的估计性能。例如,性能估计模块130可基于对资源的限制要求根据执行神经网络的操作仅输出针对存储器带宽利用率的估计性能。
或者,性能估计模块130可向分析模块1010提供针对两个或更多个指标(即,复合指标)的估计性能。例如,性能估计模块130可基于对资源的限制要求根据执行神经网络的操作来输出针对处理时间、功耗和存储器带宽利用率的估计性能。在这种情况下,分析模块1010可在搜索神经网络NN1的同时考虑指示估计性能的至少两个指标来分析估计性能是否偏离限制要求。
部分确定模块1020根据由分析模块1010执行的分析结果来将估计性能偏离限制要求的层确定为一部分。然后,部分确定模块1020将与结果对应的神经网络NN2发送到新神经网络生成模块110。
在本公开的一些实施例中,部分确定模块1020可设定反映限制要求的阈值,然后分析估计性能是否超过阈值。这里,阈值可被表示为上文表1中所示的值。
图4是示出图2的新神经网络生成模块的框图。
参照图4,图2的神经网络生成模块110可包括子集生成模块1100、子集学习模块1110、子集性能检查模块1120和奖励模块1130。
神经网络生成模块110通过强化学习通过改变从部分选择模块100提供的神经网络NN2的所选部分中所包括的层结构来生成子集,学习所生成的子集,通过从性能估计模块130接收估计性能来确定优化层结构,并将所选部分改变为优化层结构以生成新神经网络NN3。
子集生成模块1100生成子集,其中所述子集包括通过改变所选部分的层结构而生成的至少一个改变层结构。改变层结构包括,例如,在卷积操作被执行一次并且计算量为A的情况下,并且在确定计算量A偏离限制要求的情况下,执行两次或更多次卷积操作,然后对各个值求和。在这种情况下,单独地执行的各个卷积操作可具有未偏离限制要求的计算量B。
子集生成模块1100可生成多个改变层结构。此外,所生成的改变层结构可作为子集来定义和管理。由于存在许多改变层结构的方法,所以创建若干候选层结构以稍后寻找优化层结构。
子集学习模块1110学习所生成的子集。学习所生成的子集的方法不限于特定方法。
子集性能检查模块1120使用从性能估计模块130提供的估计性能来检查子集的性能并确定优化层结构以生成新神经网络。即,子集性能检查模块1120通过检查包括多个改变层结构的子集的性能来确定适合于移动装置的环境的优化层结构。例如,当子集具有第一改变层结构和第二改变层结构时,通过再次比较第一改变层结构的效率和第二改变层结构的效率,更有效的改变层结构可被确定为优化层结构。
奖励模块1130基于子集学习模块1110所学习的子集,和所检查的子集的性能来向子集生成模块1100提供奖励。然后,子集生成模块1100可基于奖励来生成更有效的改变层结构。
即,奖励是指在强化学习中待被发送到子集生成模块1100以便生成新子集的值。例如,奖励可包括用于从性能估计模块130提供的用于估计性能的值。这里,例如,用于估计性能的值可包括用于每层的估计性能的一个或更多个值。作为另一示例,奖励可包括用于由性能估计模块130提供的估计性能的值以及用于从子集学习模块1110提供的神经网络的精度的值。
子集性能检查模块1120通过如上所述的强化学习来生成子集,检查子集的性能,从该子集生成改进的子集,然后检查改进的子集的性能。因此,在确定优化层结构之后,具有被改变为优化层结构的所选部分优化的新神经网络NN3被发送到最终神经网络输出模块120。
图5是示出图2的最终神经网络输出模块的框图。
参照图5,图2的最终神经网络输出模块120可包括最终神经网络性能检查模块1200和最终输出模块1210。
最终神经网络性能检查模块1200还检查从新神经网络生成模块110提供的新神经网络NN3的性能。在本公开的一些实施例中,可由性能检查模块140(下面参照图9描述)进行附加检查。
最终输出模块1210输出最终神经网络NN4。例如,从最终输出模块1210输出的最终神经网络NN4可被发送到图1的NPU 30并由NPU 30处理。
根据参照图2至图5描述的本公开的实施例,新神经网络生成模块110通过强化学习来生成并改进包括改变层结构的子集,提供各种改变层结构作为候选,并在其中选择优化层结构。因此,可实现神经网络优化以增加神经网络的计算效率,特别是在资源有限的环境中。
图6和图7是示出根据本公开的实施例的神经网络优化装置的操作示例的图。
参照图6,神经网络包括多个卷积操作。这里,内部存储器40以低访问成本提供至多1MB的带宽,而存储器50以高访问成本提供更大的带宽。
在多个卷积操作当中,第一操作至第三操作和第六操作至第九操作分别具有0.5MB、0.8MB、0.6MB、0.3MB、0.4MB、0.7MB和0.5MB的估计性能,其未偏离存储器带宽的限制要求。然而,第四操作和第五操作分别具有1.4MB和1.5MB的估计性能,其偏离存储器带宽的限制要求。
在这种情况下,部分选择模块100可选择包括第四操作和第五操作的区域。然后,如上所述,新神经网络生成模块110通过强化学习来生成并改进包括改变层结构的子集,提供各种改变层结构作为候选,从其中选择优化层结构,并将所选部分改变为优化层结构。
参照图7,图6中的所选部分已从传统三个操作改变为包括七个操作的修改部分。
具体地,这七个操作包括:六个卷积操作,其中所述六个卷积操作被改变为分别具有未偏离存储器带宽的限制要求的0.8MB、0.7MB、0.2MB、0.4MB、0.7MB和0.5MB的估计性能;以及和操作,其中所述和操作具有同样未偏离存储器带宽的限制要求的0.2MB的估计性能。
如上所述,新神经网络生成模块110通过强化学习来生成并改进包括改变层结构的子集,提供各种改变层结构作为候选,并从其中选择优化层结构。因此,可实现神经网络优化以增加神经网络的计算效率,特别是在资源有限的环境中。
图8是示出根据本公开的实施例的神经网络优化方法的流程图。
参照图8,根据本公开的实施例的神经网络优化方法包括:基于对用于执行神经网络的操作的资源的限制要求根据执行神经网络的操作来估计性能(S801)。
该方法还包括:基于估计性能来选择神经网络中偏离限制要求并需要改变的部分(S803)。
该方法还包括:通过强化学习,通过改变包括在神经网络的所选部分中的层结构来生成子集,基于估计性能来确定优化层结构,并将所选部分改变为优化层结构以生成新神经网络(S805)。
该方法还包括:输出所生成的新神经网络作为最终神经网络(S807)。
在本公开的一些实施例中,选择偏离限制要求的部分可包括:接收神经网络的输入,搜索神经网络,分析估计性能是否偏离限制要求,并确定其中估计性能偏离限制要求的层作为所述部分、
在本公开的一些实施例中,分析估计性能是否偏离限制要求可包括:设定反映限制要求的阈值,然后分析估计性能是否超过阈值。
在本公开的一些实施例中,子集包括通过改变所选部分的层结构而生成的一个或更多个改变层结构,并且确定优化层结构包括学习所生成的子集,使用估计性能来检查子集的性能,并基于所学习的子集,和所检查的子集的性能来提供奖励。
在本公开的一些实施例中,输出新神经网络作为最终神经网络还包括检查最终神经网络的性能。
图9是示出图1的神经网络优化模块的另一实施例的框图。
参照图9,除了部分选择模块100、新神经网络生成模块110、最终神经网络输出模块120和性能估计模块130之外,图1的神经网络优化模块10还包括性能检查模块140和神经网络采样模块150。
性能估计模块130基于对用于执行神经网络的操作的资源的限制要求,根据执行神经网络的操作来输出估计性能。
部分选择模块100从性能估计模块130接收估计性能并选择神经网络NN1的偏离限制要求的部分。
新神经网络生成模块110通过改变包括在神经网络NN2的所选部分中的层结构来生成子集,并基于子集来将所选部分改变为优化层结构以生成新神经网络NN3。
最终神经网络输出模块120输出由新神经网络生成模块110生成的新神经网络NN3作为最终神经网络NN4。
神经网络采样模块150从新神经网络生成模块110对子集采样。
性能检查模块140检查由神经网络采样模块150提供的子集中采样的神经网络的性能,并基于检查结果将更新信息提供给性能估计模块130。
即,尽管性能估计模块130可能已经用于检查性能,但本实施例还包括性能检查模块140,其可执行比性能估计模块130更精确的性能检查以优化神经网络,以与诸如移动装置的硬件的性能相配。此外,性能检查模块140的检查结果可作为更新信息被提供给性能估计模块130以改进性能估计模块130的性能。
同时,性能检查模块140可包括硬件监测模块。硬件监测模块可监测并收集关于硬件的信息,例如计算时间、功耗、峰-峰电压、温度等。然后,性能检查模块140可将硬件监测模块所收集的信息作为更新信息提供给性能估计模块130,从而进一步改进性能估计模块130的性能。例如,更新的性能估计模块130可掌握更详细的特性,例如各个层的延迟和所监测的各个块的计算时间。
图10是示出图2的新神经网络生成模块的另一实施例的框图。
参照图10,具体地,神经网络采样模块150可从新神经网络生成模块110的子集学习模块1110接收并采样子集。如上所述,通过对各种候选解采样并精确地分析性能,可进一步改进神经网络优化质量以增加神经网络的计算效率。
图11是示出根据本公开的另一实施例的神经网络优化方法的流程图。
参照图11,根据本公开的另一实施例的神经网络优化方法包括:基于对用于执行神经网络的操作的资源的限制要求,根据执行神经网络的操作来估计性能(S1101)。
该方法还包括:基于估计性能来选择神经网络中偏离限制要求并需要改变的部分(S1103)。
该方法还包括:通过强化学习,通过优化改变包括在神经网络的所选部分中的层结构以生成子集,基于估计性能确定优化层结构,并将所选部分改变为优化层结构以生成新神经网络(S1105)。
该方法还包括:对子集采样,检查在子集中采样的神经网络的性能,基于检查结果执行更新,并重新计算估计性能(S1107)。
该方法还包括:输出所生成的新神经网络作为最终神经网络(S1109)。
在本公开的一些实施例中,选择偏离限制要求的部分可包括:接收神经网络的输入,搜索神经网络,分析估计性能是否偏离限制要求,并确定其中估计性能偏离限制要求的层作为所述部分。
在本公开的一些实施例中,分析估计性能是否偏离限制要求可包括:设定反映限制要求的阈值,然后分析估计性能是否超过阈值。
在本公开的一些实施例中,子集包括通过改变所选部分的层结构而生成的一个或更多个改变层结构,并且确定优化层结构包括学习所生成的子集,使用估计性能来检查子集的性能,并基于所学习的子集和所检查的子集的性能来提供奖励。
在本公开的一些实施例中,输出新神经网络作为最终神经网络还包括检查最终神经网络的性能。
同时,在本公开的另一实施例中,限制要求可包括第一限制要求和不同于第一限制要求的第二限制要求,并且估计性能可包括根据第一限制要求的第一估计性能和根据第二限制要求的第二估计性能。
在这种情况下,部分选择模块100选择神经网络中第一估计性能偏离第一限制要求的第一部分以及第二估计性能偏离第二限制要求的第二部分。新神经网络生成模块110可将第一部分改变为第一优化层结构并将第二部分改变为第二优化层结构以生成新神经网络。这里,第一优化层结构是通过强化学习从包括在第一部分中的层结构确定的层结构,并且第二优化层结构是通过强化学习从包括在第二部分中的层结构确定的层结构。
根据如上所述的本公开的各种实施例,新神经网络生成模块110通过强化学习来生成并改进包括改变层结构的子集,提供各种改变层结构作为候选,并在其中选择优化层结构。因此,可实现神经网络优化以增加神经网络的计算效率,特别是在资源有限的环境中。
本公开还包括性能检查模块140,其可执行比性能估计模块130更精确的性能检查以优化神经网络,以与诸如移动装置的硬件的性能相配。此外,性能检查模块140的检查结果可作为更新信息被提供给性能估计模块130以改进性能估计模块130的性能。
如本领域中传统的,可根据执行所描述的功能的块来描述和示出实施例。这些块(本文中可称为单元或模块等)由诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬连线电路等的模拟和/或数字电路物理地实现,并且可选地可由固件和/或软件驱动。例如,电路可被实施在一个或更多个半导体芯片中,或被实施在诸如印刷电路板等的基板支撑件上。构成块的电路可由专用硬件,或由处理器(例如,一个或更多个编程的微处理器和关联的电路),或由执行块的一些功能的专用硬件和执行块的其它功能的处理器的组合实现。在不脱离本公开的范围的情况下,实施例的各个块可物理地分离为两个或更多个相互作用的分立块。同样,在不脱离本公开的范围的情况下,实施例的块可物理地组合成更复杂的块。
在结束详细描述时,本领域技术人员将理解,在不实质上脱离本公开的原理的情况下,可对优选实施例进行许多变化和修改。因此,所公开的本公开的优选实施例仅在一般性和描述性意义上使用,而非为了限制。
Claims (20)
1.一种神经网络优化装置,包括:
性能估计模块,其被配置为基于神经网络的操作和对被用于执行所述神经网络的所述操作的资源的限制要求来输出估计性能;
部分选择模块,其被配置为从所述性能估计模块接收所述估计性能并选择所述神经网络的其操作偏离所述限制要求的部分;
新神经网络生成模块,其被配置为通过强化学习,通过改变包括在所述神经网络的所述部分中的层结构来生成子集,基于所述估计性能来确定优化层结构,并将所述部分改变为所述优化层结构以生成新神经网络;以及
最终神经网络输出模块,其被配置为输出由所述新神经网络生成模块生成的所述新神经网络作为最终神经网络。
2.根据权利要求1所述的神经网络优化装置,其中,所述部分选择模块包括:
神经网络输入模块,其被配置为接收所述神经网络的信息;
分析模块,其被配置为搜索所述神经网络的所述信息并分析所述估计性能是否偏离所述限制要求;以及
部分确定模块,其被配置为将其中所述估计性能偏离所述限制要求的层确定为所述部分。
3.根据权利要求2所述的神经网络优化装置,其中,所述分析模块设定反映所述限制要求的阈值,然后分析所述估计性能是否超过所述阈值。
4.根据权利要求1所述的神经网络优化装置,其中,所述新神经网络生成模块包括:
子集生成模块,其被配置为生成所述子集,其中所述子集包括通过改变所述部分的所述层结构而生成的至少一个改变层结构;
子集学习模块,其被配置为学习由所述子集生成模块生成的所述子集;
子集性能检查模块,其被配置为使用所述估计性能来检查所述子集的性能并确定所述优化层结构以生成所述新神经网络;以及
奖励模块,其被配置为基于由所述子集学习模块学习的所述子集以及由所述子集性能检查模块检查的所述子集的所述性能来向所述子集生成模块提供奖励。
5.根据权利要求1所述的神经网络优化装置,其中,最终神经网络输出模块包括:
最终神经网络性能检查模块,其被配置为检查所述最终神经网络的性能;以及
最终输出模块,其被配置为输出所述最终神经网络。
6.根据权利要求1所述的神经网络优化装置,还包括:
神经网络采样模块,其被配置为对由所述新神经网络生成模块生成的所述子集采样;和
性能检查模块,其被配置为检查所述子集中被采样的所述神经网络的性能并基于所述性能检查模块所执行的检查的结果向所述性能估计模块提供更新信息。
7.根据权利要求1所述的神经网络优化装置,其中,所述性能估计模块输出针对单个指标的所述估计性能。
8.根据权利要求1所述的神经网络优化装置,其中,所述性能估计模块输出针对复合指标的所述估计性能。
9.根据权利要求1所述的神经网络优化装置,其中:
所述限制要求包括第一限制要求和不同于所述第一限制要求的第二限制要求,并且所述估计性能包括根据所述第一限制要求的第一估计性能和根据所述第二限制要求的第二估计性能,
所述部分选择模块选择所述神经网络中其中所述第一估计性能偏离所述第一限制要求的第一部分以及其中所述第二估计性能偏离所述第二限制要求的第二部分,并且
所述新神经网络生成模块将所述第一部分改变为第一优化层结构并将所述第二部分改变为第二优化层结构以生成所述新神经网络,所述第一优化层结构是通过所述强化学习从包括在所述第一部分中的所述层结构中确定的层结构,并且所述第二优化层结构是通过所述强化学习从包括在所述第二部分中的所述层结构确定的层结构。
10.一种神经网络优化装置,包括:
性能估计模块,其被配置为基于神经网络的操作和对被用于执行所述神经网络的所述操作的资源的限制要求来输出估计性能;
部分选择模块,其被配置为从所述性能估计模块接收所述估计性能并选择所述神经网络的偏离所述限制要求的部分;
新神经网络生成模块,其被配置为通过改变包括在所述神经网络的所述部分中的层结构来生成子集,并通过基于所述子集将所述部分改变为优化层结构来生成新神经网络;
神经网络采样模块,其被配置为对来自所述新神经网络生成模块的所述子集采样;
性能检查模块,其被配置为检查所述子集中被采样的所述神经网络的性能并基于所述性能检查模块所执行的检查的结果向所述性能估计模块提供更新信息;以及
最终神经网络输出模块,其被配置为输出由所述新神经网络生成模块生成的所述新神经网络作为最终神经网络。
11.根据权利要求10所述的神经网络优化装置,其中,所述部分选择模块包括:
神经网络输入模块,其被配置为接收所述神经网络的信息;
分析模块,其被配置为搜索所述神经网络的所述信息并分析由所述性能估计模块生成的所述估计性能是否所述偏离限制要求;以及
部分确定模块,其被配置为将其中所述估计性能偏离所述限制要求的层确定为所述部分。
12.根据权利要求11所述的神经网络优化装置,其中,所述分析模块设定反映所述限制要求的阈值并分析所述估计性能是否超过所述阈值。
13.根据权利要求10所述的神经网络优化装置,其中,所述新神经网络生成模块包括:
子集生成模块,其被配置为生成所述子集,其中所述子集包括通过改变所述部分的所述层结构而生成的至少一个改变层结构;以及
子集性能检查模块,其被配置为使用所述估计性能来检查所述子集的性能并确定所述优化层结构以生成所述新神经网络。
14.根据权利要求13所述的神经网络优化装置,其中:
所述新神经网络生成模块执行强化学习以生成所述子集并确定所述优化层结构,并且
所述神经网络优化装置还包括:
子集学习模块,其被配置为学习由所述新神经网络生成模块生成的所述子集;以及
奖励模块,其被配置为基于由所述子集学习模块学习的所述子集以及由所述子集性能检查模块检查的所述子集的所述性能来向所述子集生成模块提供奖励。
15.根据权利要求10所述的神经网络优化装置,其中,所述最终神经网络输出模块包括:
最终神经网络性能检查模块,其被配置为检查所述最终神经网络的性能;以及
最终输出模块,其被配置为输出所述最终神经网络。
16.根据权利要求10所述的神经网络优化装置,其中,所述性能估计模块输出针对单个指标的所述估计性能。
17.根据权利要求10所述的神经网络优化装置,其中,所述性能估计模块输出针对复合指标的估计性能。
18.根据权利要求10所述的神经网络优化装置,其中:
所述限制要求包括第一限制要求和不同于所述第一限制要求的第二限制要求,并且所述估计性能包括根据第所述第一限制要求的第一估计性能和根据所述第二限制要求的第二估计性能,
所述部分选择模块选择所述神经网络中其中所述第一估计性能偏离所述第一限制要求的第一部分以及其中所述第二估计性能偏离所述第二限制要求的第二部分,并且
所述新神经网络生成模块将所述第一部分改变为第一优化层结构并将所述第二部分改变为第二优化层结构以生成所述新神经网络,所述第一优化层结构是通过强化学习从包括在所述第一部分中的所述层结构中确定的层结构,并且所述第二优化层结构是通过强化学习从包括在所述第二部分中的所述层结构中确定的层结构。
19.一种神经网络优化方法,包括:
基于执行神经网络的操作以及对被用于执行所述神经网络的所述操作的资源的限制要求来对估计性能进行估计;
基于所述估计性能来选择所述神经网络的偏离所述限制要求的部分;
通过强化学习,通过改变包括在所述神经网络的所述部分中的层结构来生成子集并基于所述估计性能来确定优化层结构;
将所述部分改变为所述优化层结构以生成新神经网络;以及
输出所述新神经网络作为最终神经网络。
20.根据权利要求19所述的神经网络优化方法,其中,选择所述神经网络的偏离所述限制要求的部分包括:
接收所述神经网络的信息;
搜索所述神经网络的所述信息并分析所述估计性能是否偏离所述限制要求;以及
将其中所述估计性能偏离所述限制要求的层确定为所述部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0000078 | 2019-01-02 | ||
KR1020190000078A KR20200084099A (ko) | 2019-01-02 | 2019-01-02 | 뉴럴 네트워크 최적화 장치 및 뉴럴 네트워크 최적화 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111401545A true CN111401545A (zh) | 2020-07-10 |
Family
ID=71079770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911366022.9A Pending CN111401545A (zh) | 2019-01-02 | 2019-12-26 | 神经网络优化装置和神经网络优化方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200210836A1 (zh) |
KR (1) | KR20200084099A (zh) |
CN (1) | CN111401545A (zh) |
DE (1) | DE102019124404A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102511225B1 (ko) * | 2021-01-29 | 2023-03-17 | 주식회사 노타 | 인공지능 추론모델을 경량화하는 방법 및 시스템 |
CN112884123B (zh) * | 2021-02-23 | 2024-03-01 | 杭州海康威视数字技术股份有限公司 | 神经网络优化方法、装置、电子设备及可读存储介质 |
EP4261748A1 (en) * | 2022-04-11 | 2023-10-18 | Tata Consultancy Services Limited | Method and system to estimate performance of session based recommendation model layers on fpga |
US20240005158A1 (en) * | 2022-06-30 | 2024-01-04 | Qualcomm Incorporated | Model performance linter |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190000078A (ko) | 2017-06-22 | 2019-01-02 | 김정수 | 필터를 포함하는 레이저 장치 및 그 운용방법 |
US11537892B2 (en) * | 2017-08-18 | 2022-12-27 | Intel Corporation | Slimming of neural networks in machine learning environments |
CN112513886B (zh) * | 2018-08-03 | 2024-03-22 | 索尼公司 | 信息处理方法、信息处理装置和信息处理程序 |
US11263529B2 (en) * | 2018-10-10 | 2022-03-01 | Google Llc | Modifying machine learning models to improve locality |
CN109685203B (zh) * | 2018-12-21 | 2020-01-17 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机系统及存储介质 |
-
2019
- 2019-01-02 KR KR1020190000078A patent/KR20200084099A/ko unknown
- 2019-08-24 US US16/550,190 patent/US20200210836A1/en active Pending
- 2019-09-11 DE DE102019124404.8A patent/DE102019124404A1/de active Pending
- 2019-12-26 CN CN201911366022.9A patent/CN111401545A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102019124404A1 (de) | 2020-07-02 |
KR20200084099A (ko) | 2020-07-10 |
US20200210836A1 (en) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111401545A (zh) | 神经网络优化装置和神经网络优化方法 | |
US10031945B2 (en) | Automated outlier detection | |
WO2021143883A1 (zh) | 神经网络的自适应搜索方法及装置 | |
US20210081763A1 (en) | Electronic device and method for controlling the electronic device thereof | |
US20230063148A1 (en) | Transfer model training method and apparatus, and fault detection method and apparatus | |
US11216716B2 (en) | Memory chip capable of performing artificial intelligence operation and operation method thereof | |
CN114662646A (zh) | 实现神经网络的方法和装置 | |
Riahi et al. | Comparison of analytical and ML-based models for predicting CPU–GPU data transfer time | |
US10990525B2 (en) | Caching data in artificial neural network computations | |
CN116401552A (zh) | 一种分类模型的训练方法及相关装置 | |
CN116522834A (zh) | 时延预测方法、装置、设备及存储介质 | |
CN115439449A (zh) | 全视野组织学图像的处理方法、装置、介质和电子设备 | |
CN111475461B (zh) | 面向ai应用的片上网络映射方法 | |
CN110097183B (zh) | 信息处理方法以及信息处理系统 | |
CN112513837A (zh) | 网络结构搜索方法和装置 | |
CN112734008A (zh) | 分类网络构建方法以及基于分类网络的分类方法 | |
KR20220081874A (ko) | 정보 처리 장치 및 그것에 포함된 신경망 연산 장치의 오류 분석 방법 | |
Abd El-Maksoud et al. | FPGA Design of High-Speed Convolutional Neural Network Hardware Accelerator | |
Zhao et al. | Approxcaliper: A programmable framework for application-aware neural network optimization | |
CN111506522A (zh) | 数据处理设备及方法 | |
CN117768356B (zh) | 预测方法及装置、电子设备与存储介质 | |
CN112990433B (zh) | 模型耗时预测方法、装置、电子设备以及存储介质 | |
CN110096308B (zh) | 一种并行存储运算装置及其方法 | |
US20240152805A1 (en) | Systems, methods, and non-transitory computer-readable storage devices for training deep learning and neural network models using overfitting detection and prevention | |
US20240184630A1 (en) | Device and method with batch normalization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |