CN114503122A - 深度神经网络的结构学习和简化方法 - Google Patents
深度神经网络的结构学习和简化方法 Download PDFInfo
- Publication number
- CN114503122A CN114503122A CN202080069687.8A CN202080069687A CN114503122A CN 114503122 A CN114503122 A CN 114503122A CN 202080069687 A CN202080069687 A CN 202080069687A CN 114503122 A CN114503122 A CN 114503122A
- Authority
- CN
- China
- Prior art keywords
- neural network
- parameters
- model
- equation
- learning
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000006870 function Effects 0.000 claims abstract description 56
- 238000012549 training Methods 0.000 claims abstract description 44
- 238000003062 neural network model Methods 0.000 claims abstract description 38
- 238000007906 compression Methods 0.000 claims description 20
- 230000006835 compression Effects 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 11
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 36
- 239000011159 matrix material Substances 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000012546 transfer Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000000843 powder Substances 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
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/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
-
- 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/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/0495—Quantised networks; Sparse networks; Compressed 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/08—Learning methods
- G06N3/0985—Hyperparameter optimisation; Meta-learning; Learning-to-learn
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/048—Activation functions
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/09—Supervised learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Feedback Control In General (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种深度神经网络的结构学习和简化方法。根据本发明的实施方式的深度神经网络的结构学习和简化方法包括以下步骤:(a)产生神经网络模型的参数;(b)基于所述参数产生与神经网络模型对应的目标函数;以及(c)基于学习数据和目标函数在对参数执行训练的同时对模型进行学习。
Description
技术领域
本发明涉及一种用于深度神经网络的结构学习和模型压缩的方法。
背景技术
深度神经网络(通常缩写为DNN)广泛用于各种领域(诸如计算机处理、语音识别和图像识别)。
随着与深度神经网络相关的技术的发展,深度神经网络已经变得更大且更复杂,因此用于驱动深度神经网络的计算量和存储器量正在快速增加。
计算量和存储器量的这种增加导致硬件资源的增加。
此外,深度神经网络可以减轻人类专家的特征工程的负担,然而,需要人类专家的大量努力来设计用于深度神经网络的有效结构。
发明内容
技术问题
本发明是为了解决上述问题而提出的,并且旨在提供一种用于深度神经网络的结构学习和模型压缩的方法,该方法能够通过从深度神经中去除不必要的部分来减少推断和学习优化的深度神经网络结构所需的计算量和存储器量,以获得提高的准确度。
技术方案
根据本发明的实施例的用于深度神经网络的结构学习和模型压缩的方法包括:(a)产生神经网络模型的参数;(b)基于所述参数产生与神经网络模型对应的目标函数;以及(c)基于所述目标函数和学习数据,对所述参数执行训练并且执行模型学习。
所述神经网络模型包括多个分量,并且所述多个分量被分组成多个模块。
步骤(a)包括产生所述神经网络模型的架构参数和模型参数。
所述架构参数中的一些在训练期间变为零,以去除不必要的或不重要的分量。
当与架构参数对应的分量的强度变得小于竞争组中的特定数值时,所述神经网络模型从所述竞争组中排除该分量。
步骤(c)包括使用随机梯度下降对所述参数执行训练。
步骤(c)包括同时执行对权重的学习和对神经网络结构的学习。
步骤(c)包括:使用通过修改随机梯度下降获得的元素来执行梯度计算,并且执行前向计算和后向计算。
根据本发明的实施例,所述方法还包括:步骤(b-1),基于步骤(c)中的训练结果产生并存储轻量模型。
根据本发明的实施例,所述方法还包括:步骤(a-1),在步骤(a)之后和步骤(b)之前重新参数化所述参数。
步骤(a-1)包括执行所述重新参数化,使得所述参数可以为零。
步骤(a-1)包括以次可微形式执行所述重新参数化,使得所述参数可以为零。
有益效果
根据本发明,通过经由基于随机梯度下降(SGD)的训练同时学习神经网络的参数和结构,可以降低推理成本并提高深度神经网络系统的性能。
本发明的有益效果不限于上述效果,并且本领域技术人员从以上描述中将清楚地理解这里未描述的其他效果。
附图说明
图1示出了根据本发明的实施例的深度神经网络系统。
图2示出了根据本发明的实施例的用于深度神经网络的结构学习和模型压缩的方法。
图3示出了根据本发明实施例的目标函数产生处理。
图4示出了根据本发明的实施例的轻量模型产生处理。
图5示出了根据本发明实施例的应用ResNet的示例。
图6示出了根据本发明的实施例的应用ResNeXt的示例。
图7示出了根据本发明的实施例的应用DenseNet的示例。
图8和图9示出了根据本发明实施例的应用GCN的示例。
具体实施方式
通过参考附图描述的以下实施例,将阐明本发明的这些和其他目的、优点和特征及其实现方法。
然而,本发明可以以不同的形式实施,并且不应被解释为限于这里阐述的实施例。相反,提供这些实施例使得本公开将向本领域技术人员充分传达本发明的目的、配置和效果。本发明的范围仅由所附权利要求限定。
这里使用的术语仅用于描述特定实施例的目的,并不旨在限制本发明。如本文所使用的,单数形式“一”和“一个”包括复数形式,除非上下文另有明确说明。当在本说明书中使用时,术语“包括”和/或“包含”指定存在所述元件、步骤、操作和/或部件,但不排除存在或添加一个或更多个其他元件、步骤、操作和/或部件。
根据本发明的实施例,提供了一种能够同时优化神经网络的目标函数和学习模型参数以及神经网络的稀疏化结构的完全可微的稀疏化方法。
根据本发明的实施例,提供了一种允许参数的值或连接强度在基于随机梯度下降(SGD)的训练期间收敛到零(0)的完全可微的方法。作为技术特征,该方法基于学习数据和目标函数同时对多个参数(架构参数和模型参数)执行训练,并执行模型学习。
根据本发明的实施例的用于深度神经网络的结构学习和模型压缩的方法可以容易地应用于按参数的单元或构建块的组执行稀疏化的结构化稀疏化或组稀疏化。
这可以最大化硬件(诸如图形处理单元(GPU))的并行计算的益处,并且适合于通过将深度神经网络的元件设计为模块并组合模块来产生深度神经网络的最新趋势。
根据本发明的实施例的用于深度神经网络的结构学习和模型压缩的方法可以容易地应用于以各个模型参数为单位执行稀疏化的非结构化稀疏化。
图1示出了根据本发明的实施例的深度神经网络系统。
根据本发明的实施例的深度神经网络系统100包括控制器110、神经网络加速器120、存储器130和轻量模型140。
深度神经网络系统100被配置为驱动各种深度神经网络(DNN)(诸如ResNet、ResNeXt、DenseNet和图卷积网络(GCN))。
深度神经网络系统100可以包括各种计算系统或信息处理系统(诸如个人计算机、膝上型计算机、平板计算机、智能电话、服务器、工作站、黑盒和汽车电子系统)。
控制器110控制由深度神经网络系统100执行的各种操作。
控制器110确定将在神经网络加速器120中使用的神经网络模型,并为确定的神经网络模型设置各种参数和目标函数(或损失函数或成本函数)。
由控制器110设置的参数是指示包括在神经网络模型中的元件的重要性的重要性参数或架构参数。
一些重要性参数或架构参数在神经网络加速器120中的训练期间收敛到零(0)。与已经收敛到零的重要性参数对应的神经网络元件被认为是不必要的,并且可以被去除。神经网络加速器120在控制器110的控制下执行训练。
神经网络加速器120从控制器110接收神经网络模型、目标函数和学习数据。
神经网络加速器120基于从控制器110接收的信息执行训练,并且作为训练的结果产生轻量模型140。
轻量模型140被定义为从神经网络模型中包括的多个元素中删除或去除了不必要的元素的模型。
神经网络加速器120执行基于SGD的训练。
神经网络加速器120同时基于学习数据和目标函数对多个参数执行训练,并执行模型学习。
存储器130存储在神经网络加速器120的训练处理期间产生或更新的各种信息(例如,参数信息)。
图2示出了根据本发明的实施例的用于深度神经网络的结构学习和模型压缩的方法。
深度神经网络系统100基于神经网络模型产生目标函数(S100)。
深度神经网络系统100被配置为驱动各种深度神经网络(DNN)(诸如ResNet、ResNeXt、DenseNet和GCN)。
控制器110从各种深度神经网络中选择与将被训练的神经网络对应的神经网络模型,并针对选择的神经网络模型产生目标函数。
深度神经网络系统100基于目标函数和学习数据执行训练以产生轻量模型140(S200)。
神经网络加速器120从控制器110接收神经网络模型、目标函数和学习数据,并基于接收到的信息执行训练。
基于SGD方案执行神经网络加速器120的训练,从神经网络模型中包括的多个元素中去除不必要的元素,并且与模型学习同时执行多个参数的学习。
深度神经网络系统100基于产生的轻量模型140来执行神经网络计算(S300)。
深度神经网络系统100基于轻量模型140对输入数据执行各种神经网络计算(诸如语音识别、图像识别和图像分类)。
根据本发明实施例的深度神经网络系统优化神经网络模型的目标函数(或成本函数或损失函数),然后执行训练,因此可以对深度神经网络结构执行模型压缩并提高整体计算速度。
图3示出了根据本发明实施例的目标函数产生处理。
控制器110接收神经网络模型(S110)。
控制器110选择分量组(S120),并接收关于各种深度神经网络模型中的将由神经网络加速器120训练的神经网络模型的信息。
作为用于描述按参数组或构建块的组执行稀疏化的结构化稀疏化(组稀疏化)的示例,假设包括在神经网络模型或神经网络中的模块由等式1定义。等式1中的模型被称为基础模型。
[等式1]
参考等式1,y是基础模型或包括在基础模型中的模块(即,神经网络模型)的输出,并且f是包括在模块中的多个分量。
此外,i是用于区分多个分量的索引,并且n表示分量的数量。
基础模型的输出(即,y)被定义为包括在模块中的分量f的线性组合。
分量组可以是参考等式1描述的模块,并且可以依据深度神经网络的类型进行各种设置。
例如,分量可以是用于神经网络的构建块,或者可以是构建块的输出。
分量可以是ResNet的残差块、ResNeXt的残差块的分支或DenseNet的密集连接层的特征图。
模块可以表示整个神经网络或分量集(诸如ResNet的级、ResNeXt的残差块和DenseNet的级联特征图)。
x是模块的输入,w是分量f的模型参数(或权重),并且a是架构参数或重要性参数。
模型参数w是普通参数(诸如卷积层滤波器和全连接层权重)。
架构参数a的值指示对应分量的重要性,并且可以被认为是块之间的连接强度。
架构参数a为零(0)表示对应的分量f被去除或者对应的模型参数w全部变为零。
通过引起架构参数a之间的竞争并且通过竞争引起架构参数a变为零,架构参数中的一些可以变为零,并且因此去除不必要的或不重要的分量。
控制器110设置架构参数(S130)。
当架构参数a在神经网络模型的训练期间变为零时,可以将对应的分量作为不必要的或不重要的分量去除。为此,架构参数a由等式2定义。
[等式2]
γi=exp(αi)
参考等式2,α和β是无约束自由参数,σ(·)是sigmoid函数,并且(·)+是修正线性单元(ReLU)函数(即relu(·)=max(·,0))。
当架构参数a被设置为如等式2中定义的那样时,架构参数a可以在训练期间收敛到零。
作为实数的自由参数α和β在使用随机梯度下降的训练处理期间不受约束,因此通过自由参数α和β训练架构参数α。
在等式2中,指数函数exp(·)使架构参数a为正。在这种情况下,可以改为使用sigmoid函数。
在等式2中,确定阈值的大小的标量参数β可以不是超参数,并且可以通过训练自动确定。
在数学上,阈值运算是不可微分的。然而,考虑到relu被支持作为嵌入在最新的深度神经网络学习工具中的可微函数,这并不重要。这是因为微分不仅在特定点(0)处被定义,而且在大多数输入值的域中是可能的,并且在所有域中也存在子梯度。
此外,由于γ是非负的,因此l1范数可以简化为γi的和(即,||γ||1=∑γi)。
在等式2中,softmax促进架构参数a之间的竞争。
可以对指示所有分量被去除并且模块y被无效的空分量进行建模。在等式3中,阈值可以被认为是未选择的强度,并且因此空运算符的强度由等式3定义。
[等式3]
基于等式3,αi的初始值被设置为零,β的值可以被设置为-log(n2+n-1)。因此,包括空运算符的每个分量被设置为当i=1,…n时使得以便最初具有相同的生存变化以提供相同的初始机会。这是αi和β的初始值的示例,并且不必将αi的初始值设置为零并且将β的值设置为-log(n2+n-1)。
[等式4]
通过为包括在神经网络模型(或基础模型)中的多个分量设置架构参数a,重要性参数或架构参数a中的至少一些在使用随机梯度下降的训练处理期间收敛到零。重要性参数或架构参数为零的分量可以被认为是不必要的或不重要的分量,然后被去除。控制器110为神经网络模型设置目标函数(S140)。
目标函数(或成本函数或损失函数)表示为表达式5。
[表达式5]
在分类中,交叉熵可以用作预测损失函数。在回归分析中,均方误差可以用作损失函数。
相应地,根据本发明的实施例,使用常规l1范数的正则化项不针对架构参数a操作。根据本发明的实施例,正则化项使用如等式6中的p范数,并且优选地,p<1。
[等式6]
由于架构参数a总是非负的,因此可以建立等式6中的第二不等式。
当架构参数a的大多数元素为零时,p<1的p范数减小,并且例如,p可以等于0.5。
除了当relu的架构参数a为零(即,ai=0)时,等式6中定义的正则化项在几乎所有情况下都是可微分的。
根据本发明的实施例,由于正则化项在几乎所有域中是可微的,并且架构参数在训练期间也变为零,因此可以使用随机梯度下降来同时学习架构参数和模型参数。这表示神经网络结构可以与普通参数(诸如卷积层滤波器和全连接层权重)同时学习。
图4示出了根据本发明的实施例的轻量模型产生处理。
神经网络加速器120接收神经网络模型和目标函数(S210)。
变量k被设置为1(S220)。
变量k用于描述神经网络加速器的训练操作的迭代。
神经网络加速器120从控制器110或单独的输入装置接收第k个学习数据(S230)。例如,以小批量的形式输入第k个学习数据。
神经网络加速器120执行基于SGD的训练。
神经网络加速器120可以基于第k个学习数据、神经网络模型和目标函数来计算梯度(S240)。
神经网络加速器120可以基于计算的梯度来更新参数(模型参数w和架构参数a)的值(S250)。
参数(模型参数w和架构参数a)可以基于计算的梯度(即,目标函数的梯度)被更新为通过其目标函数被最优化(即,最小化)的参数。
随后,确定变量k是否为最大值(即,训练是否重复给定次数)(S260)。
当变量k不是最大值时,将变量k加1(S261),并且执行操作S230。
当变量k是最大值时,神经网络加速器120产生并存储轻量模型140(S270)。
在操作S240,基于SGD执行梯度计算。
在这种情况下,可以使用修改的SGD来执行梯度计算。例如,可以修改和使用用于前向传递和后向传递的计算。可以基于等式2执行架构参数a的前向传递计算,并且可以通过用等式7替换等式2的来执行架构参数a的后向传递计算。
[等式7]
elu表示指数线性单元(ELU)函数。
在等式2中,当γi小于阈值时,梯度变为零,并且不能为对应的分量产生基于梯度的学习信息。然而,γi小于阈值并不意味着:必须去除分量,并且在学习正在进行时不再能够产生学习信息。
随着阈值的调整或其他分量的重要性得分的降低,存在分量返回的机会。
根据本发明的实施例,公开了一种近似阈值函数的梯度以连续产生针对γi小于阈值的偶数分量的学习信息的方法。根据本发明的实施例,elu可以用于如上所述的梯度计算,并且relu和elu在正域中具有相同的输出值。此外,由于elu的微分系数不是在所有域中都为零,因此可以很好地近似relu。如等式7中所示,relu可以用于前向传递,并且elu可以用于后向传递。
根据本发明的实施例,通过使用最新的深度神经网络学习工具来实现是容易的,并且该学习可以在用于随机梯度优化的框架(诸如Google的Tensorflow)中执行。
根据本发明的实施例,可以在基于SGD的训练期间同时学习神经网络模型的模型参数(即,诸如卷积层滤波器和全连接层权重的普通参数)和每个分量的架构参数。
相应地,可以使用产生的轻量模型来简化神经网络压缩处理并提高神经网络计算性能。
图5示出了根据本发明实施例的应用ResNet的示例。
参照图5,ResNet包括多个级(stages)。
图5中示出了ResNet的一个级,并且假设一个级包括第一残差块RB1至第三残差块RB3。
如图5所示,输入数据xs被提供给第一残差块RB1。除了输入数据xs之外,第一残差块RB1的输出也被提供给第二残差块RB2的输入。除了第二残差块RB2的输入之外,第二残差块RB2的输出也被提供给第三残差块RB3的输入。除了第三残差块RB3的输入之外,第三残差块RB3的输出也被输出为该级的输出数据ys。
残差块RB1至RB3通过第一捷径至第三捷径SC1至SC3彼此连接。
ResNet的每个级可以被认为是独立的组,并且可以在每个级学习不同的深度。
残差块和ResNet的级可以分别与上述分量和模块对应,并且一个ResNet级的输出可以表示为等式8。
[等式8]
包括在同一级中的块(例如,第一残差块RB1至第三残差块RB3)在训练处理期间彼此竞争,并且重要性参数或架构参数a的一些元素收敛到零。相应地,深度被确定。
例如,当第二残差块RB2在实现ResNet中不重要或不必要时,与第二残差块RB2对应的架构参数在训练处理期间收敛到零,并且第二残差块RB2被去除。
即使一些块被去除,因为在块之间存在捷径SC1至SC3,所以正向传递和反向传递也不会完全断开。
根据本发明的实施例,应用于ResNet的目标函数被表示为表达式9。
[表达式9]
参考表达式9,W={wi s}并且A={as}。
s是级数,并且as是第s级中的架构参数的矢量。
根据本发明的实施例,通过将架构参数和目标函数应用于作为深度神经网络的一种类型的ResNet,并且在ResNet的训练处理期间去除不必要的分量,可以对ResNet的神经网络模型执行模型压缩。这是为了学习每个级中的残差块的数量或深度。
图6示出了根据本发明的实施例的应用ResNeXt的示例。
参照图6,与ResNet不同,ResNeXt具有包括多个分支的残差块。图6中示出了ResNeXt的一个层和一个残差块,并且假设一个残差块包括第一残差分支RB1至第三残差分支RB3。
如图6所示,输入数据xs,b被提供给第一残差分支RB1至第三残差分支RB3,并且除了输入数据xs之外,第一残差分支RB1至第三残差分支RB3的输出被输出为层或残差块的输出数据ys,b。
ResNeXt具有与上面参考图5描述的ResNet的结构类似的结构,但是ResNet的每个残差块具有单个分支,而ResNeXt的每个残差块包括多个分支。
与ResNet类似,ResNeXt的层或残差块通过捷径连接。
在ResNeXt中,每个残差块被认为是独立组,并且可以通过去除不必要的残差块在每个残差块中学习不同宽度(基数)或不同数量的残差分支。
ResNeXt的残差块和残差分支分别与分量和模块对应,并且层或残差块的输出被表示为等式10。
[等式10]
参照图10,ys,b是第s级中的第b个残差块,fi s,b是第b个残差块的第i个分支,xs,b是第b个残差块和分支的输入,ns,b是分支的数量,并且wi s,b是fi s,b的模型参数。
同一块中的分支在训练处理期间彼此竞争,并且因此宽度被学习。
根据本发明的实施例,应用于ResNeXt的目标函数被表示为表达式11。
[表达式11]
参考表达式11,W={wi s,b},并且A={as,b}。
Bs是第s级中的残差块的数量,并且as,b是第s级的第b个残差块的架构参数的矢量。
根据本发明的实施例,通过将架构参数和目标函数应用于作为深度神经网络的一种类型的ResNeXt并且在ResNeXt的训练处理期间去除不必要的分量,可以优化ResNeXt的神经网络模型并对其执行模型压缩。
图7示出了根据本发明的实施例的应用DenseNet的示例。
参照图7,DenseNet包括多个级。图7中示出了DenseNet的一个级,并且假设一个级包括第一层至第七层。
在图7所示的输入数据结构(IN)中,索引s是级,并且第一层具有表示为第一行的输入和表示为xl+1 s的输出。
第四行ROW4是第四层的输入,并且x4+1 s是第四层的输出。
可以如图7所示定义根据本发明的实施例的训练的架构参数结构(SP)。
DenseNet可以被配置,使得第四行ROW4中的一些参数通过根据本发明的实施例的训练而收敛到零。
在DenseNet中,层的输入由从所有先前层输出的特征图组成。
根据本发明的实施例,通过以行为单位对特征图进行分组并允许输入特征图彼此竞争,可以在每层选择最有效的特征或连接。
DenseNet的层可以表示为等式12。因此,层之间的密集(dense)连接被学习。
[等式12]
参考等式12,xl s是第s级的第一层的输出特征图,并且x0 s是从前一级获得的。
fl s是非线性合成函数,[·]是级联运算符,并且wl s是模型参数。
根据本发明的实施例,应用于DenseNet的目标函数表示为表达式13。
[表达式13]
参考表达式13,W={wi s},并且A={as,l}。
Ls是第s级中的层的数量,并且as,l是第s级的第一块的架构参数的矢量。
根据本发明的实施例,通过将架构参数和目标函数应用于作为深度神经网络的一种类型的DenseNet,并且在DenseNet的训练处理期间去除不必要的分量,可以优化DenseNet的神经网络模型并对其执行模型压缩。
图8和图9示出了根据本发明实施例的应用GCN的示例。
GCN可以包括多个层。图8中示出了一个层,并且假设一个层包括邻接矩阵ADJ、特征图矩阵FT和权重矩阵WT。
GCN的层表示为等式14。
[等式14]
Hl+1=F(AHlWl)
参考等式14,A是邻接矩阵ADJ,Hl和Wl是第一层的输入特征图矩阵FT和权重矩阵WT,并且F是非线性激活函数。
A的元素是非负的并且在GCN块或层之间被共享。
邻接矩阵可以指示图上的节点之间的关系或连接,并且由具有关于域的知识的专家给出。
学习Ai,j的值是学习节点i和节点j之间的关系。例如,当Ai,j的值为零时,可以认为两个节点i和j彼此不相关。
如图8和图9所示,邻接矩阵的每行和每列可以被定义为组。
可以通过对行进行分组来产生输入节点之间的竞争,并且可以通过对列进行分组来产生输出节点之间的竞争。例如,如图8和图9所示,通过对第i行Ai,:进行分组来产生对于第i个节点的输入节点之间的竞争,并且通过对第i列A:,j进行分组来产生对于第i个节点的输出节点之间的竞争。
Softmax归一化可以用Sinkhorn归一化代替。
优选地,行的总和与列的总和等于1。
[等式15]
参考等式15,Dr和Dc是对角矩阵。
通过重复应用等式16来执行平衡归一化。
[等式16]
由于竞争组是以行和列为单位产生的,因此对应的目标函数被表示为表达式17。
[表达式17]
参考表达式17,W={Wl},N是方阵A的大小,并且Ai,:和A:,j是A的第i行矢量和第i列矢量。
根据本发明的实施例,通过将架构参数和目标函数应用于作为深度神经网络的一种类型的GCN,并且在GCN的训练处理期间去除邻接矩阵的不必要的分量,可以优化GCN的神经网络模型并对其执行模型压缩。
在示例性实施例中,可以将本发明与使用l2,1范数的组稀疏正则化方法进行比较。
这里,组可被定义为滤波器、神经元或层的参数集,使得同一组中的所有参数被维持或变为零。
可以应用组稀疏性来自动确定神经元和层的数量。
使用l2,1范数被正则化的目标函数可以表示为表达式18。
[表达式18]
表达式18的正则化项被表示为等式19。
[等式19]
参考等式19,W={wg},并且wg是模型参数组。
为了优化正则化项,使用如表达式20中的邻近运算符来执行参数更新。
[表达式20]
参考表达式20,运算符←是赋值运算符,η是学习率。
邻近运算符包括权重衰减步骤和阈值化步骤,并且在所有小批次或时期中的预测损失优化之后分别执行这些步骤。
使用邻近梯度下降的参数更新可以被认为是模型离散化步骤。
此外,由于上述操作作为与预测损失的优化分离的步骤被执行,因此这些方法在找到稀疏深度神经网络结构和优化模型参数值方面具有局限性。
相反,根据本发明的实施例,可以同时优化预测准确度和模型复杂度,从而优化上述元素之间的权衡。
此外,可以使用SGD来学习稀疏结构,而无需额外的离散步骤。
在示例性实施例中,另一相关的组正则化方案是使用l1,2范数的独占最小绝对值收敛和选择算子(lasso)。
独占lasso可以用于促进组内的稀疏性,而不是去除或保持整个组。
在这种情况下,正则化项可以表示为等式21。
[等式21]
为了优化正则化项,使用表达式22的邻近运算符来执行学习。
[表达式22]
ωg,i←sign(ωg,i)(|ωg,i|-ηλ||wg||1)+
然而,邻近运算符是学习规则,而等式2的是通过参数化架构参数获得的。它们的含义完全不同。表达式22是用于稀疏化深度神经网络的学习方法,并且等式2是用于深度神经网络的模型配置方法。当如[等式2]中那样配置深度神经网络并且执行学习时,不必要的参数自动收敛到零。
根据本发明的实施例,可以通过优化松弛连续域中的架构参数来学习神经网络的结构。
根据本发明的实施例,通过在不使用重要性参数或架构参数的情况下去除深度神经网络的不必要部分,可以在减少推断所需的计算量和存储器量的同时学习确保提高的准确性的优化的深度神经网络的结构。
下面将描述结构化稀疏性和非结构化稀疏性。
如等式23所示,为了配置具有结构化稀疏性的深度神经网络,原始模型参数ωg,i在几乎所有输入域中以亚可微形式或可微形式被重新参数化。
[等式23]
参考等式23,(·)+表示relu=max(·,0),并且ωg,i用于代替普通参数(诸如卷积滤波器)。
当组的大小小于exp(βg)时,同一组中的所有参数变为零(归零)。
βg是常数,但是是可以通过训练考虑正则化项和预测损失之间的权衡被调整的可训练参数。
考虑到relu支持作为最新深度神经网络工具的内置可微函数,如在使用等式2的方法中那样执行基于SGD的学习并不重要。
表达式20的邻近运算符具有与等式23类似的形式。然而,邻近运算符是学习规则,而等式23是模型参数的参数化形式,其中,模型参数是神经网络的一部分。它们的含义完全不同。相应地,根据本发明的实施例,通过学习模型参数ωg,i和阈值参数βg以使不必要的参数变为零,可以学习神经网络的结构以及对神经网络执行模型压缩。
也就是说,根据本发明的实施例,可以使用SGD同时学习模型结构和模型参数。在示例性实施例中,根据本发明,模型参数最终为零是合适的。
也就是说,当wg=0时,数值问题可能发生在[等式23]的分母||wg||2中。
当使用缩放因子重新表示等式23时,等式23与等式24相同。
[等式24]
参考等式24,α是可学习的尺度参数。
根据本发明的实施例,提供了一种非结构化稀疏性的解决方案。与结构化稀疏性的解决方案类似,如在等式25中,原始模型参数ωg,i在几乎所有输入域中以亚可微形式或可微形式被重新参数化,使得当模型参数的值小于特定值时,模型参数可以变为零。
[等式25]
表达式22的邻近运算符具有与等式25类似的形式。然而,邻近运算符是学习规则,而等式25是模型参数的参数化形式,其中,模型参数是神经网络的一部分。它们的含义完全不同。相应地,根据本发明的实施例,通过学习模型参数ωg,i和阈值参数βg,可以使不必要的参数为零。
在等式23中,整个组倾向于一起被去除。在等式25中,根据组中的相对大小,各个参数可以变为零。
然而,等式25的配置不是指排除结构化稀疏性。
组正则化(诸如l2,1范数)可以诱导相同组中的参数具有相同的值。通过增大阈值,可以去除所有参数。因此,通过使用l2,1范数作为正则化项,可以同时去除组中的所有参数。
符号函数的梯度在所有区间中几乎为零,但不会对最新的深度学习工具造成问题。
等式25可以表示为等式26。
[等式26]
参考表达式18,(·)—是min(·,0)。
依据原始变量wg,i的值是否为负,可以单独控制变量。
这种条件语句可以使用TensorFlow的tf.cond或tf.where来实现。
根据本发明的实施例,正则化的目标函数被表示为表达式27。
[表达式27]
通过阈值参数,可以从正则化项直接获得学习信息。相应地,可以更好地学习如何在预测损失和模型复杂度之间取得平衡。
可以看出[等式23]和[等式25]分别从l2,1范数和l1,2范数被推导,但是l2,1范数和l1,2范数不需要成对使用,并且可以与各种正则化器组合使用。这是因为等式23和等式25是通过重新配置模型参数而获得的,使得神经网络的模型参数或不必要的分量通过学习为零,并且模型参数仍然是神经网络的一部分。
应用于上述实施例的p范数可以表示为等式28。
[等式28]
众所周知,p范数具有引起稀疏性的特性。然而,尚未开发用于基于等式28中p<1的p范数来精确地使变量为零的有效优化方法,并且因此在实践中不经常使用p<1的p范数。也就是说,尽管具有p<1的p范数对于诱导稀疏性更理想,但是l1范数(p=1)被更广泛地使用。然而,根据本发明的实施例,当在几乎所有区间中都可能微分时,可以使用包括等式28中p<1的p范数的各种类型的正则化器。
当组或参数的大小小于阈值时,因为relu的梯度为零,所以不产生学习信息。
在本发明的实施例中,可以在前向传递中使用relu,并且可以在后向传递中使用elu,使得即使当组或参数的大小小于阈值时也可以产生学习信息。
在训练的早期阶段,因为参数是随机初始化的,所以可能难以描述哪些参数是必要的或不必要的。
逐渐调度λ防止突然和早期丢弃。
逐渐调度λ可以平滑地修改深度神经网络结构并使学习处理更稳定。
根据本发明的实施例,λ的值可以从初始值λi逐渐增加到最终值λf,直到n个时期。
从t0的时期开始并且随着每个时期而增大的λt可以表示为等式29。
[等式29]
t是指示每个时期的索引。
下表1是MNIST的性能。
下表2是使用修正的梯度流的MNIST的性能。
下表3是使用修正的梯度流的CIFAR-10的性能。
下表4是使用修正的梯度流的CIFAR-100的性能。
下表5是使用逐渐稀疏正则化的CIFAR-10的性能。
下表6是使用l2,1范数的CIIFAR-10的性能。
下表7是使用GCN的通行速度预测和独占稀疏性。
下表9是CIFAR-10中ResNet的性能。
下表10是CIFAR-10中的ResNeXt的性能。
另外,根据本发明的实施例的用于深度神经网络的结构学习和模型压缩的方法可以在计算机系统中实现或者记录在记录介质上。计算机系统可以包括至少一个处理器、存储器、用户输入装置、数据通信总线、用户输出装置和存储装置。上述元件通过数据通信总线执行数据通信。
计算机系统还可以包括耦接到网络的网络接口。处理器可以是用于处理存储在存储器和/或存储装置中的指令的中央处理器(CPU)或半导体装置。
存储器和存储装置可以包括各种类型的易失性或非易失性存储介质。例如,存储器可以包括只读存储器(ROM)和随机存取存储器(RAM)。
相应地,根据本发明的实施例的用于深度神经网络的结构学习和模型压缩的方法可以被实现为计算机可执行方法。当根据本发明的实施例的用于深度神经网络的结构学习和模型压缩的方法由计算机装置执行时,计算机可读指令可以实现根据本发明的用于深度神经网络的结构学习和模型压缩的方法。
根据本发明的用于深度神经网络的结构学习和模型压缩的方法可以被实现为计算机可读记录介质中的计算机可读代码。计算机可读记录介质包括存储可由计算机系统解密的数据的任何类型的记录介质。例如,计算机可读记录介质可以包括ROM、RAM、磁带、磁盘、闪存、光学数据存储装置等。此外,计算机可读记录介质可以作为分布在连接到计算机网络的计算机系统中并且以分布式方式可读的代码被存储和执行。
Claims (12)
1.一种用于深度神经网络的结构学习和模型压缩的方法,所述方法包括:
(a)产生神经网络模型的参数;
(b)基于所述参数产生与神经网络模型对应的目标函数;以及
(c)基于所述目标函数和学习数据,对所述参数执行训练并且执行模型学习。
2.如权利要求1所述的方法,其中,所述神经网络模型包括多个分量,并且所述多个分量被分组成多个模块。
3.如权利要求1所述的方法,其中,步骤(a)包括产生所述神经网络模型的架构参数和模型参数。
4.如权利要求3所述的方法,其中,所述架构参数中的一些在训练期间变为零,以去除不必要的或不重要的分量。
5.如权利要求4所述的方法,其中,当与架构参数对应的分量的强度变得小于竞争组中的特定数值时,所述神经网络模型从所述竞争组中排除该分量。
6.如权利要求1所述的方法,其中,步骤(c)包括使用随机梯度下降对所述参数执行训练。
7.如权利要求6所述的方法,其中,步骤(c)包括同时执行对权重的学习和对神经网络结构的学习。
8.如权利要求6所述的方法,其中,步骤(c)包括:使用通过修改随机梯度下降获得的元素来执行梯度计算,并且执行前向计算和后向计算。
9.如权利要求1所述的方法,还包括:步骤(b-1),基于步骤(c)中的训练结果产生并存储轻量模型。
10.如权利要求1所述的方法,还包括:步骤(a-1),在步骤(a)之后和步骤(b)之前重新参数化所述参数。
11.如权利要求10所述的方法,其中,步骤(a-1)包括执行所述参数的重新参数化,使得所述参数变为零。
12.如权利要求10所述的方法,其中,步骤(a-1)包括以次可微形式执行所述参数的重新参数化,使得所述参数变为零。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0121906 | 2019-10-02 | ||
KR20190121906 | 2019-10-02 | ||
KR1020200043231A KR20210039921A (ko) | 2019-10-02 | 2020-04-09 | 신경망 모델을 최적화하도록 구성된 심층 신경망 시스템의 동작 방법 |
KR10-2020-0043231 | 2020-04-09 | ||
KR20200075692 | 2020-06-22 | ||
KR10-2020-0075692 | 2020-06-22 | ||
KR10-2020-0126288 | 2020-09-28 | ||
KR1020200126288A KR20210157826A (ko) | 2020-06-22 | 2020-09-28 | 심층 신경망 구조 학습 및 경량화 방법 |
PCT/KR2020/013304 WO2021066504A1 (ko) | 2019-10-02 | 2020-09-29 | 심층 신경망 구조 학습 및 경량화 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114503122A true CN114503122A (zh) | 2022-05-13 |
Family
ID=75337282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080069687.8A Pending CN114503122A (zh) | 2019-10-02 | 2020-09-29 | 深度神经网络的结构学习和简化方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220343162A1 (zh) |
EP (1) | EP4040342A4 (zh) |
CN (1) | CN114503122A (zh) |
WO (1) | WO2021066504A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10346757B2 (en) * | 2013-05-30 | 2019-07-09 | President And Fellows Of Harvard College | Systems and methods for parallelizing Bayesian optimization |
US9305256B2 (en) * | 2013-10-02 | 2016-04-05 | Qualcomm Incorporated | Automated method for modifying neural dynamics |
JP6636172B2 (ja) * | 2016-03-18 | 2020-01-29 | グーグル エルエルシー | グローバルに正規化されたニューラルネットワーク |
JP6773618B2 (ja) * | 2017-09-04 | 2020-10-21 | 株式会社東芝 | 学習装置、情報処理装置、学習方法およびプログラム |
US10482337B2 (en) * | 2017-09-29 | 2019-11-19 | Infineon Technologies Ag | Accelerating convolutional neural network computation throughput |
-
2020
- 2020-09-29 WO PCT/KR2020/013304 patent/WO2021066504A1/ko unknown
- 2020-09-29 CN CN202080069687.8A patent/CN114503122A/zh active Pending
- 2020-09-29 EP EP20871182.0A patent/EP4040342A4/en active Pending
- 2020-09-29 US US17/760,650 patent/US20220343162A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021066504A1 (ko) | 2021-04-08 |
US20220343162A1 (en) | 2022-10-27 |
EP4040342A1 (en) | 2022-08-10 |
EP4040342A4 (en) | 2023-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11308398B2 (en) | Computation method | |
CN112288086B (zh) | 一种神经网络的训练方法、装置以及计算机设备 | |
WO2021043294A1 (en) | Neural network pruning | |
CN115456160A (zh) | 一种数据处理方法和数据处理设备 | |
JP7287397B2 (ja) | 情報処理方法、情報処理装置及び情報処理プログラム | |
EP4341862A1 (en) | Low-rank adaptation of neural network models | |
US11657285B2 (en) | Methods, systems, and media for random semi-structured row-wise pruning in neural networks | |
CN111788585A (zh) | 一种深度学习模型的训练方法、系统 | |
CN116644804B (zh) | 分布式训练系统、神经网络模型训练方法、设备和介质 | |
WO2021042857A1 (zh) | 图像分割模型的处理方法和处理装置 | |
CN108304926B (zh) | 一种适用于神经网络的池化计算装置及方法 | |
US11429865B1 (en) | Optimizing neural networks | |
CN109598329A (zh) | 一种基于进化混沌边缘的卷积储备池优化方法 | |
CN115017178A (zh) | 数据到文本生成模型的训练方法和装置 | |
CN115860100A (zh) | 一种神经网络模型训练方法、装置及计算设备 | |
CN111260056B (zh) | 一种网络模型蒸馏方法及装置 | |
JPH04213750A (ja) | 層化されたニューラル・ネットワークでの分類方法 | |
CN112860856A (zh) | 一种算数应用题智能解题方法及系统 | |
WO2023273934A1 (zh) | 一种模型超参数的选择方法及相关装置 | |
CN109697511B (zh) | 数据推理方法、装置及计算机设备 | |
KR20210157826A (ko) | 심층 신경망 구조 학습 및 경량화 방법 | |
CN114503122A (zh) | 深度神经网络的结构学习和简化方法 | |
Sarkar et al. | An incremental pruning strategy for fast training of CNN models | |
CN115461754A (zh) | 深度过参数化 | |
CN114626284A (zh) | 一种模型处理方法及相关装置 |
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 |