CN109754078B - 用于优化神经网络的方法 - Google Patents
用于优化神经网络的方法 Download PDFInfo
- Publication number
- CN109754078B CN109754078B CN201811220391.2A CN201811220391A CN109754078B CN 109754078 B CN109754078 B CN 109754078B CN 201811220391 A CN201811220391 A CN 201811220391A CN 109754078 B CN109754078 B CN 109754078B
- Authority
- CN
- China
- Prior art keywords
- weights
- image
- dnn model
- input
- nodes
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 30
- 238000012549 training Methods 0.000 claims abstract description 41
- 238000005315 distribution function Methods 0.000 claims abstract description 20
- 238000005070 sampling Methods 0.000 claims abstract description 14
- 230000008859 change Effects 0.000 claims abstract description 11
- 238000013527 convolutional neural network Methods 0.000 claims description 17
- 230000003190 augmentative effect Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 4
- 230000000306 recurrent effect Effects 0.000 claims description 4
- 238000003709 image segmentation Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 13
- 238000009826 distribution Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 4
- 230000015654 memory Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 230000005610 quantum mechanics Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000035508 accumulation Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000003094 perturbing effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- 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/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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (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)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
一种方法,包括:提供包括多个层的深度神经网络(DNN)模型,所述多个层中的每个层包括多个节点;基于分布函数对多个权重中的每个权重的权重改变进行采样,所述多个权重中的每个权重对应于所述多个节点中的每个节点;通过权重改变乘以权重的符号来更新权重;并通过对采样改变和更新权重的步骤进行迭代来训练DNN模型。在训练之后,多个权重具有高稀疏率。
Description
相关申请的交叉引用
本申请要求在2017年11月3日提交的美国临时专利申请序列第62/581,360号的优先权和权益,该专利的公开内容通过引用其整体并入本文。
技术领域
本公开一般涉及神经网络,更具体地,涉及用于使用权重扰动来优化深度神经网络的性能的系统和方法。
背景技术
神经网络是在人脑之后松散地建模的一组算法,其被设计为识别图案(pattern)。深度神经网络(Deep Neural Network,DNN)是指为深度学习量身定制的神经网络。DNN可以应用于诸如图案识别、图像分类、对象检测和分割的计算机视觉。DNN对于其他复杂应用(诸如自动驾驶和增强现实(Augmented Reality,AR)或虚拟现实(Virtual Reality,VR))具有巨大的商业潜力。
卷积神经网络(Convolutional Neural Network,CNN)是一种特殊的多层神经网络。与其他神经网络类似,CNN采用反向传播算法进行训练,但在它们的结构上与典型的多层神经网络不同。CNN被专门设计来直接从具有最小预处理的像素图像识别视觉图案。CNN可以用对失真的鲁棒性和简单的几何变换来识别具有极端可变性的视觉图案(诸如手写字符)。
采用诸如CNN模型的深度学习模型的DNN需要强大的计算资源和广泛的数据存储资源,这可能是部署DNN的主要障碍之一。为了提高深度学习CNN的性能,已经提出了大量的方法,包括权重修剪、量化、压缩以及在诸如Winograd的变换域中执行卷积。
发明内容
根据一个实施例,一种方法包括:提供包括多个层的深度神经网络(DNN)模型,多个层中的每个层包括多个节点;基于分布函数对多个权重中的每个权重的权重改变进行采样,多个权重中的每个权重对应于多个节点中的每个节点;通过权重改变乘以权重的符号来更新权重;以及通过对采样改变和更新权重的步骤进行迭代来训练DNN模型。在训练之后,多个权重具有高稀疏率。
根据另一实施例,一种计算机系统包括:图像库,其包括多个图像;以及处理器,被配置为运行包括多个层的深度神经网络(DNN)模型,多个层中的每个层包括多个节点。处理器还被配置为:基于分布函数对多个权重中的每个权重的权重改变进行采样,多个权重中的每个权重对应于多个节点中的每个节点;通过权重改变乘以权重的符号来更新权重;并通过对采样改变和更新权重的步骤进行迭代来训练DNN模型。在训练之后,多个权重具有高稀疏率。处理器还被配置为接收图像、对图像进行分类或分割、或者检测图像内的对象并更新图像库。
现在将参考附图更具体地描述上述和其他优选特征,包括实施方式和事件组合的各种新颖细节,并在权利要求中指出。应当理解,本文描述的特定系统和方法仅以说明的方式示出而不是作为限制。如本领域技术人员将理解的,在不脱离本公开的范围的情况下,可以在各种和多个实施例中采用本文描述的原理和特征。
附图说明
作为本说明书的一部分被包括的附图示出了当前优选的实施例,并与上面给出的一般描述以及下面给出的优选的实施例的详细描述一起用于解释和教导本文所述的原理。
图1是根据一个实施例的示例DNN模型的示意图;
图2示出了根据一个实施例的使用多个输入在DNN模型中生成节点的输出的过程;
图3示出了根据一个实施例的训练过程中的示例DNN模型中的权重值的前进(progression);
图4A示出了作为比较示例的来自L2正则化的绝对权重值的直方图;
图4B示出了根据一个实施例的根据示例权重扰动的绝对权重值的直方图;以及
图5是根据一个实施例的用于将扰动应用于权重的示例过程的流程图。
附图不一定是按比例绘制的,并且在整个附图中,为了说明的目的,类似的结构或功能的元件通常由相似的附图标记表示。附图仅旨在便于描述本文描述的各种实施例。附图未描述本文公开的教导的每个方面,并且不限制权利要求的范围。
具体实施方式
本文公开的每个特征和教导可以单独地使用或与其他特征和教导结合使用,以提供用于使用权重扰动来优化深度神经网络的性能的系统和方法。参考附图进一步详细描述了利用这些附加的特征和教导中的许多(单独地和结合地两者)的代表性示例。该详细描述仅旨在教导本领域技术人员用于实践本教导的各方面的进一步细节,并且不旨在限制权利要求的范围。因此,在详细描述中的上面公开的特征的组合可能不是实践最广泛意义上的教导所必需的,而是仅仅被教导来描述本教导的特定代表性示例。
在以下描述中,仅出于解释的目的,阐述了具体的术语以提供对本公开的透彻理解。然而,对于本领域技术人员来说显而易见的是,这些具体细节不是实践本公开的教导所必需的。
本文的详细描述的一些部分是根据在计算机存储器内的数据比特上的操作的算法和符号表示来呈现的。数据处理领域的技术人员使用这些算法描述和表示来有效地将他们工作的实质传达给本领域其他技术人员。这里的算法通常被认为是导致期望的结果的步骤的自相一致的序列。这些步骤是需要物理量的物理操纵的步骤。通常,尽管不是必需的,这些量采用能够被存储、传输、组合、比较和其他的操纵的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。
然而,应该记住,所有这些和类似术语都要与适当的物理量相关联,并且仅仅是应用于这些量的方便的标签。除非从以下讨论中明确指出,否则应当理解,在整个说明书中,利用诸如“处理”、“计算(computing)”、“计算(calculating)”、“确定”、“显示”等术语的讨论是指计算机系统或类似电子计算设备的动作和过程,其将在计算机系统的寄存器和存储器内表示为物理(电子)量的数据操纵和转换成类似地在计算机系统存储器或寄存器或其他这样的信息存储、传输或显示设备内表示为物理量的其他数据。
此外,代表性示例和从属权利要求的各种特征可以以未具体和明确地列举的方式组合,以便提供本教导的另外的有用的实施例。还明确指出,为了原始公开的目的,以及为了限制所要求保护的主题,实体的组的所有取值范围或指示都公开了每个可能的中间值或中间实体。还明确指出,图中所示的组件的尺寸(dimension)和形状被设计成有助于理解如何实践本教导,但不旨在限制实施例中所示的尺寸和形状。
深度神经网络(DNN)是包括多个层的堆叠神经网络。DNN的每个层包括多个节点,也称为神经元。每个节点或神经元表示具有一个或多个输入和输出的计算单元。来自层中的多个节点的每个输入可以被馈送到相邻层中的每个节点。类似地,输出可以被馈送到相邻层中的多个节点。
权重修剪是通过将权重设置为零以减少计算中的乘法和累积的数量来改善深度学习CNN的性能的直接方法。迭代的权重修剪是一个耗时的过程,因为当将高通阈值应用于经预训练的权重时可能会丢失预测准确度,并且可能需要重新训练权重以重新获得准确度。L1正则化对于重新训练和权重过滤是不灵活的。
本公开描述了用于优化DNN模型的性能的一般方法。更具体地,本公开提出了一种在DNN模型中强制DNN层的权重的稀疏性的技术。DNN模型的推理可以包括大量卷积,因此在一些实施例中DNN也被称为卷积神经网络(CNN)。如果在DNN模型的层中的权重中存在高稀疏率,则可以大大减少卷积运算中的乘法次数。本方法提出了一种通过对权重应用分布式随机扰动来增加DNN模型的稀疏性的技术。
图1是根据一个实施例的示例DNN模型的示意图。DNN模型100包括多个层,该多个层包括输入层101、两个隐藏层111a和111b、以及输出层121。输入层101具有l个节点Xp(p=1~l),隐藏层111a和111b中的每个隐藏层具有m个节点Hqr(q=1或2,r=1~m),并且输出层121具有n个节点Os(s=1~n)。在图像识别应用中,每个输入节点Xi可以对应于输入图像的像素数据。
网络中的每个节点连接到相邻层中的每个节点。在本示例中,取决于DNN模型100的应用,数目l、m、n可以彼此相同或不同。尽管本示例仅示出具有相同数量的节点的两个隐藏层111a和111b,应当理解,在不偏离本公开的范围的情况下,可以存在任何数量的隐藏层以及每个隐藏层中的不同数量的节点。
DNN模型100可以在主计算机中运行的应用中实施。主计算机可以具有多个处理器(诸如中央处理单元(Central Processing Unit,CPU)和/或图形处理单元(GraphicsProcessing Unit,GPU))作为DNN模型100的计算资源。或者,DNN模型100可以在诸如固态驱动器(Solid-State Drive,SSD)的数据存储设备中实施,该固态驱动器包括作为DNN模型100的计算资源的一个或多个CPU和/或GPU。在一些实施例中,多个计算资源可以分布在计算机系统上,并且DNN模型100中的计算可以分布在一个或多个主计算机和一个或多个数据存储设备上。例如,主计算机可以运行识别输入的应用(例如,数字化的手写图像),并且实际的计算可以在存储用于处理输入的参考数据的一个或多个数据存储设备中发生。
每个处理器可以包括一个或多个卷积引擎。卷积引擎可以在输入层101、隐藏层111a和111b以及输出层121中分组。从输入层101通过隐藏层111a和111b到输出层121的数据路径提供前向路径或推理路径。相反地,从输出层121通过隐藏层111a和111b到输入层101的数据路径提供后向路径或训练路径。
在一些实施例中,数据存储设备与非易失性存储器(Non-Volatile Memory,NVMe)标准或Fabrics上的NVMe(NVMe over Fabrics,NVMeoF)标准兼容。在这种情况下,运行应用的主计算机(未示出)可以通过各种网络结构(包括但不限于以太网、光纤通道和无线带宽(InfiniBand))被耦合到数据存储设备。
图2示出了根据一个实施例的使用多个输入在DNN模型中生成节点的输出的过程。节点200从相邻层201中的多个节点X1到Xl接收输入。每个输入Xi乘以相应的系数,本文称为权重Wi。然后使用加法器203将来自相邻层201的输入数据的乘积加在一起并馈送到激励(activation)逻辑204。激励逻辑204通过确定来自加法器203的总和数据是否以及在何种程度上通过DNN网络进一步前进到另一连接的节点以影响最终结果来提供输出205。
权重Wi可以放大或抑制相关联的输入数据,从而在用于连接的节点200的总和输入数据内分配重要性(或更少的重要性)。权重Wi可以基于要学习的深度学习算法动态地变化。基于输入数据的重要性,权重Wi可以朝着放大或抑制相关联的输入数据的方向前进。例如,权重Wi可以用于通过衰减相关联的输入数据来过滤噪声或误差。
随机梯度下降(Stochastic Gradient Descent,SGD),也称为增量梯度下降,是用于最小化目标函数的梯度下降优化和迭代方法的随机近似,该目标函数被写为可微函数之和。SGD是用于训练机器学习中的广泛模型的一种流行的算法,包括(线性的)支持向量机、逻辑回归和图形模型。
在DNN模型的训练过程期间,根据随机梯度下降(SGD)算法更新权重。通过SGD算法的优化方法具有随机性,因为训练样本是从大的训练(和训练后的)数据集中随机抽取的。Neelakatan等人(“为非常深网络添加梯度噪声改善学习”,预印本:1511.06807)证明,在训练期间,额外的噪声可以被添加到权重,以增加DNN模型的鲁棒性。Neelakatan表明,通过向权重引入随机噪声可以提高DNN模型的准确度。
用于优化DNN模型的性能的本系统和方法包括跟随(following)诸如随机梯度下降(SGD)的专门的DNN训练方法的附加的步骤。在SGD的每个训练步骤中,权重梯度作为关于权重的损失函数的导数被计算,并且通过累积学习率和权重梯度的负数的乘积来更新权重。在该步骤之后,根据分布函数扰动新的权重。使用随机梯度下降(SGD)算法的优化方法可以导致权重的更高的稀疏率,这导致乘法次数的减少并且节省计算时间和代价。
在训练期间对权重应用随机扰动的过程在概念上类似于量子力学中的原子的冷却过程。当温度降低时,量子化能量状态中的电子遵循特定分布,并且电子具有更高的概率驻留在更低的能量状态。根据一个实施例,如在量子力学中通过衰减分布的扰动被应用于当前DNN模型中的权重。随着迭代在训练期间前进,权重具有更高的随机转移到更低的能量状态的概率(即,更小的权重值)。权重的转移过程可以是渐进的但是持久的。经过大量的迭代后,这种微小的随机转换不仅增加了由Neelakatan证明的DNN模型的鲁棒性,而且还将权重向零转移,从而实现了权重的更高的稀疏率。
在量子力学的背景下,不同能级的原子的概率分布可以遵循玻尔兹曼(Boltzmann)分布:
其中E是能量,k是玻尔兹曼常数,T是温度。随着温度降低,原子移动到更低的能量状态的概率增加,从而降低熵。
玻尔兹曼分布的概念(即,指数衰减分布)可以扩展到DNN模型的训练。在一个实施例中,DNN模型使用随机梯度下降(SGD)来最小化代价函数或损失函数,其是预测与基础事实(ground truth)之间的平方差或绝对差之和。在训练过程期间,可以对权重应用扰动过程,使得权重逐渐向具有更低的能量状态(即,更低的熵)和更高的稀疏率的新分布重新分布。
DNN的训练可以通过反向传播来完成。使用随机梯度下降(SGD)更新每层的权重。遵循概率分布函数的扰动被引入以允许权重以以下两个条件重新分布:(1)正权重只能减少而负权重只能增加;(2)权重值的扰动应足够小,以不使SGD的收敛无效。例如,权重更新可以从分布函数随机地抽取。在分布函数P(X)中,更小的值具有比更大的值更高的概率被抽取。这确保了小的更新更可能被应用于权重。权重更新的符号始终与权重相反。参数λ1和λ2是超参数并且可以被启发式地选择。
在一个实施例中,指数衰减分布函数可以用作概率分布函数可以从指数衰减分布函数P(X)对每个权重w的改变的幅度Δw进行采样。权重改变Δw与权重的符号一起迭代地应用到权重w,即sign(w)Δw,使得权重随机地向零移动。然而,应注意,本公开不限于指数衰减分布,并且在不偏离本公开的范围的情况下,可以使用具有针对大值的衰减概率的各种其他概率分布函数。可以使用满足上述两个条件的用于权重转换的任何概率分布函数。
标准SGD增加了其中应用权重扰动的内环(inner loop)。遵循所选择的概率分布函数的权重的转换被应用在SGD内的内环中。在内环内,遵循相同的分布递归地应用权重扰动,使得权重随机地转移为零。参考图2,使用反向传播单元250对权重Wi进行扰动和应用。反向传播单元250包括随机梯度下降(SGD)251和权重扰动逻辑252。反向传播单元250可以在处理器中或在处理器的卷积引擎中实施。反向传播单元250的硬件实施方式可以包括随机数生成硬件,该随机数生成硬件在硬件级别上生成小的权重扰动并且将权重扰动应用于权重。
图3示出了根据一个实施例的训练过程中的示例DNN模型中的权重值的前进。图3中的权重值的每个直方图示出了在从迭代0到8000的不同迭代处的MNIST数据集上的DNN模型的层中的一个层的权重值。MNIST数据集包含数万个手写数字的扫描图像以及它们的正确分类。MNIST的名称来自于它是由美国国家标准与技术研究院(National Institute ofStandards and Technology,NIST)收集的两个数据集的修改的子集的事实。在本示例中,MNIST数据集被训练10,000次迭代。随着训练在迭代上进行,零权重的数量逐渐增加,而验证(validation)数据集的准确度从96.38%增加到98.92%。MNIST数据集包括60,000个用于训练的图像和10,000个用于验证的图像。验证数据集中的图像用于预测经训练的模型的分类,并针对准确度与基础事实相比较。
图4A示出了作为比较示例的来自L2正则化的绝对权重值的直方图。图4B示出了根据一个实施例的根据示例权重扰动的绝对权重值的直方图。除了正则化/扰动方案之外,使用相同的条件/参数获得图4A和图4B所示的结果。
通常,传统DNN模型中的网络权重用L2正则化训练。L2正则化相当于从贝叶斯学习角度将高斯先验应用于权重分布。相反,在训练期间,本DNN模型采用将遵循指数衰减分布的随机扰动应用于网络中的节点的权重。结果,与图4A中所示的L2正则化相比,权重值在图4B中展示出具有增加的稀疏度的分布。
根据一个实施例,遵循方程式(1)的随机扰动应用于卷积神经网络中的所有层,本文称为LeNet-5模型。使用具有学习率为0.001、进行10,000次迭代的标准SGD对权重进行预训练。权重扰动应用于经预训练的模型。
图5是根据一个实施例的用于将扰动应用于权重的示例过程的流程图。针对DNN模型的训练开始(501)。首先,检查DNN模型的层中的经预训练的权重是否可用(502)。如果是,则训练以经预训练的权重开始(503),否则,训练从头开始,例如,利用均匀分布的权重(504)。基于分布函数对权重改变进行采样(506),并且通过改变来扰动权重(507)。对DNN模型的层中的所有权重执行权重更新(507)。可以更新用于DNN模型的每个层的权重。重复该过程直到迭代结束(508)。在迭代完成之后,权重具有高稀疏率,并且对DNN模型的训练结束(509)。在一些实施例中,执行预定次数的迭代。在另一实施例中,迭代过程可以继续直到达到预定的稀疏率。
本系统和方法通过扰乱层中的权重来增强SGD并优化DNN的性能。应当理解,用于优化DNN性能的本系统和方法不仅可以应用于卷积神经网络,而且可以应用于诸如递归神经网络(Recurrent Neural Networks,RNN)的其他网络。SGD可用于训练。本系统和方法可以与多个权重的分布的混合组合以用于权重聚类(clustering)。
用于优化DNN模型的性能的本系统和方法可以在可以在诸如计算机系统的硬件设备中运行的软件框架中实施。本系统和方法可以应用于诸如包括图案识别、图像分类、对象检测和分割的计算机视觉的各种应用。经性能优化的DNN模型可以进一步应用于诸如自动驾驶和增强现实(AR)或虚拟现实(VR)的其他商业应用。
在计算机视觉应用的示例中,本DNN模型可以从诸如智能电话的计算机系统接收图像的输入。参考图1,每个输入节点Xi可以对应于输入图像的像素数据。计算机系统可以包括图像传感器或相机以拍摄输入图像。
在另一示例中,计算机系统可以从图像库加载图像以用于图案识别或匹配。计算机系统的用户可以选择用于搜索相关的图像的图像。例如,用户选择包括人的图像,并且本系统和方法可以提供包括同一人的其他图像。因为本系统和方法提供了可以具有更高的权重稀疏率的优化的DNN模型,所以可以减少用于图像识别或图案匹配的乘法的数量,并且可以节省计算时间和代价。
根据一个实施例,一种方法包括:提供包括多个层的深度神经网络(DNN)模型,多个层中的每个层包括多个节点;基于分布函数对多个权重中的每个权重的权重改变进行采样,多个权重中的每个权重对应于多个节点中的每个节点;通过权重改变乘以权重的符号来更新权重;以及通过对采样改变和更新权重的步骤进行迭代来训练DNN模型。与训练之前的稀疏率相比,训练后多个权重具有更高的稀疏率。
深度神经网络可以是卷积神经网络(CNN)。
深度神经网络可以是递归神经网络(RNN)。
分布函数可以是指数衰减函数。
可以使用随机梯度下降(SGD)算法在训练期间更新权重。
更新权重的每个步骤中的改变量可以足够小,以不使SGD算法的收敛无效。
该方法还可以包括:确定经预训练的权重是否可用,以及使用经预训练的权重。
该方法还可以包括:组合多个权重分布的混合以用于权重聚类。
可以执行预定次数的迭代。
迭代可以继续直到达到预定的稀疏率。
DNN模型可以在计算机系统的软件框架中实施。
计算机系统可以包括随机数生成硬件,该随机数生成硬件被配置为生成权重扰动并将权重扰动应用于权重。
计算机系统可包括用于接收图像输入的图像传感器或相机。
DNN模型可以应用于包括图像分类、图像分割和对象检测的计算机视觉应用。
DNN模型可以应用于自动驾驶、增强现实(AR)或虚拟现实(VR)。
根据另一实施例,一种计算机系统包括:图像库,包括多个图像;处理器,被配置为运行包括多个层的深度神经网络(DNN)模型,多个层中的每个层包括多个节点。处理器还被配置为:基于分布函数对多个权重中的每个权重的权重改变进行采样,多个权重中的每个权重对应于多个节点中的每个节点;通过权重改变乘以权重的符号来更新权重;并通过对采样改变和更新权重的步骤进行迭代来训练DNN模型。与训练之前的稀疏率相比,训练后多个权重具有更高的稀疏率。处理器还被配置为接收图像、对图像进行分类或分割、或者检测图像内的对象并更新图像库。
计算机系统还可以包括:随机数生成硬件,该随机数生成硬件被配置为生成权重扰动并将权重扰动应用于权重。
计算机系统还可包括用于接收图像输入的图像传感器或相机。
处理器可使用输入图像来训练DNN模型并更新存储在图像库中的图像。
DNN模型可以应用于自动驾驶、增强现实(AR)或虚拟现实(VR)。
上文已经描述了以上示例实施例,以说明实施用于使用权重扰动来优化深度神经网络的性能的系统和方法的各种实施例。本领域普通技术人员将想到对所公开的示例实施例的各种修改和偏离。在以下权利要求中阐述了旨在落入本发明范围内的主题。
Claims (14)
1.一种方法,包括:
提供包括多个层的深度神经网络DNN模型,所述多个层中的每个层包括多个节点,其中,多个节点包括多个层中的输入层的输入节点,并且每个输入节点对应于输入图像的像素数据;
基于分布函数对多个权重中的每个权重的权重改变进行采样,所述多个权重中的每个权重对应于所述多个节点中的每个节点;
通过权重改变乘以权重的符号来更新权重,使得权重随机地向零移动;以及
通过对采样改变和更新权重的步骤进行迭代来训练DNN模型,
其中,与训练之前的稀疏率相比,训练后所述多个权重具有更高的稀疏率,
其中,所述DNN模型在计算机系统的软件框架中实施,并且其中,所述计算机系统包括用于接收图像输入的图像传感器或相机。
2.如权利要求1所述的方法,其中所述深度神经网络是卷积神经网络CNN。
3.如权利要求1所述的方法,其中所述深度神经网络是递归神经网络RNN。
4.如权利要求1所述的方法,其中所述分布函数是指数衰减函数。
5.如权利要求1所述的方法,其中使用随机梯度下降SGD算法在训练期间更新所述权重。
6.如权利要求5所述的方法,其中更新权重的每个步骤中的改变量足够小,以不使SGD算法的收敛无效。
7.如权利要求1所述的方法,还包括:确定经预训练的权重是否可用,以及使用经预训练的权重。
8.如权利要求1所述的方法,其中执行预定次数的迭代。
9.如权利要求1所述的方法,其中,所述迭代继续直到达到预定的稀疏率。
10.如权利要求1所述的方法,其中,所述DNN模型应用于包括图像分类、图像分割和对象检测的计算机视觉应用。
11.根据权利要求1所述的方法,其中,所述DNN模型应用于自动驾驶、增强现实AR或虚拟现实VR。
12.一种计算机系统,包括:
包括多个图像的图像库;和
处理器,被配置为运行包括多个层的深度神经网络DNN模型,所述多个层中的每个层包括多个节点,其中,多个节点包括多个层中的输入层的输入节点,并且每个输入节点对应于输入图像的像素数据,
其中,所述处理器还被配置为:
基于分布函数对多个权重中的每个权重的权重改变进行采样,所述多个权重中的每个权重对应于所述多个节点中的每个节点;
通过权重改变乘以权重的符号来更新权重,使得权重随机地向零移动;和
通过对采样改变和更新权重的步骤进行迭代来训练DNN模型,
其中,与训练之前的稀疏率相比,训练后所述多个权重具有更高的稀疏率,并且
其中,处理器还被配置为接收图像、对图像进行分类或分割、或者检测图像内的对象并更新图像库,
其中,该计算机系统还包括用于接收图像输入的图像传感器或相机。
13.如权利要求12所述的计算机系统,其中所述处理器使用所述输入图像训练所述DNN模型并更新存储在所述图像库中的图像。
14.如权利要求12所述的计算机系统,其中所述DNN模型应用于自动驾驶、增强现实AR或虚拟现实VR。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762581360P | 2017-11-03 | 2017-11-03 | |
US62/581,360 | 2017-11-03 | ||
US15/864,582 US11461628B2 (en) | 2017-11-03 | 2018-01-08 | Method for optimizing neural networks |
US15/864,582 | 2018-01-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109754078A CN109754078A (zh) | 2019-05-14 |
CN109754078B true CN109754078B (zh) | 2024-05-28 |
Family
ID=66327409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811220391.2A Active CN109754078B (zh) | 2017-11-03 | 2018-10-19 | 用于优化神经网络的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11461628B2 (zh) |
KR (1) | KR20190050698A (zh) |
CN (1) | CN109754078B (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11113603B1 (en) | 2017-05-01 | 2021-09-07 | Perceive Corporation | Training network with discrete weight values |
US10621343B1 (en) * | 2017-11-30 | 2020-04-14 | Fortinet, Inc. | Generic and static detection of malware installation packages |
US10592732B1 (en) | 2017-12-14 | 2020-03-17 | Perceive Corporation | Probabilistic loss function for training network with triplets |
US10657426B2 (en) | 2018-01-25 | 2020-05-19 | Samsung Electronics Co., Ltd. | Accelerating long short-term memory networks via selective pruning |
US11537870B1 (en) * | 2018-02-07 | 2022-12-27 | Perceive Corporation | Training sparse networks with discrete weight values |
US11620509B2 (en) * | 2018-05-25 | 2023-04-04 | Htc Corporation | Model constructing method of neural network model, model constructing system, and non-transitory computer readable storage medium |
JP7353032B2 (ja) * | 2018-11-15 | 2023-09-29 | 株式会社Preferred Networks | データ生成装置、データ生成方法及びプログラム |
CN110309359B (zh) * | 2019-05-20 | 2021-06-15 | 北京大学 | 视频相关性预测方法、装置、设备及存储介质 |
CN110334744A (zh) * | 2019-06-11 | 2019-10-15 | 福建奇点时空数字科技有限公司 | 一种基于跨通道级联卷积层的神经网络模型优化算法 |
CN112150174B (zh) * | 2019-06-27 | 2024-04-02 | 百度在线网络技术(北京)有限公司 | 一种广告配图方法、装置及电子设备 |
KR102149495B1 (ko) * | 2019-08-19 | 2020-08-28 | 고려대학교 산학협력단 | 환경 예측 모델의 훈련지표 최적화 장치 및 그 동작방법 |
KR20210033258A (ko) | 2019-09-18 | 2021-03-26 | 삼성전자주식회사 | 시퀀스 처리 방법 및 장치 |
KR102068277B1 (ko) | 2019-10-04 | 2020-02-11 | 주식회사 루닛 | 이미지 분석 방법 및 시스템 |
KR102068279B1 (ko) | 2019-10-04 | 2020-01-20 | 주식회사 루닛 | 이미지 분석 방법 및 시스템 |
US11620435B2 (en) | 2019-10-10 | 2023-04-04 | International Business Machines Corporation | Domain specific model compression |
KR20210060146A (ko) | 2019-11-18 | 2021-05-26 | 삼성전자주식회사 | 딥 뉴럴 네트워크 모델을 이용한 데이터 처리 방법 및 장치, 딥 뉴럴 네트워크 모델을 학습시키는 학습 방법 및 장치 |
CN112825132B (zh) * | 2019-11-21 | 2022-06-03 | 腾讯美国有限责任公司 | 用于生成特征图的方法、装置和可读存储介质 |
KR102283523B1 (ko) * | 2019-12-16 | 2021-07-28 | 박병훈 | 인공지능 서비스를 제공하기 위한 방법 |
KR102498066B1 (ko) * | 2020-02-20 | 2023-02-10 | 한국과학기술원 | 딥러닝 강화학습 가속기 |
US20210334646A1 (en) * | 2020-04-28 | 2021-10-28 | International Business Machines Corporation | Robustness-aware quantization for neural networks against weight perturbations |
US12061981B1 (en) | 2020-08-13 | 2024-08-13 | Perceive Corporation | Decomposition of weight tensors in network with value quantization |
US12020162B2 (en) | 2020-11-30 | 2024-06-25 | International Business Machines Corporation | Weight-based local modulation of weight update in neural networks |
US11907334B2 (en) | 2020-12-08 | 2024-02-20 | International Business Machines Corporation | Neural network negative rule extraction |
CN112580822B (zh) * | 2020-12-16 | 2023-10-17 | 北京百度网讯科技有限公司 | 机器学习模型的对抗训练方法装置、电子设备和介质 |
CN115331041A (zh) * | 2021-04-23 | 2022-11-11 | 伊姆西Ip控股有限责任公司 | 用于数据蒸馏的方法、电子设备和计算机程序产品 |
US11429864B1 (en) * | 2021-08-16 | 2022-08-30 | Moffett International Co., Limited | System and method for bank-balanced sparse activation and joint-activation-weight-sparse training of neural networks |
US11693639B2 (en) | 2021-11-05 | 2023-07-04 | Tenstorrent Inc. | Sparsity uniformity enforcement for multicore processor |
WO2023082004A1 (en) * | 2021-11-11 | 2023-05-19 | Deeplite Inc. | Data free neural network pruning |
KR20240013438A (ko) | 2022-07-22 | 2024-01-30 | 고려대학교 산학협력단 | 예측적 역전파 및 활성화 기록을 기반으로 하는 평생학습 장치 및 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480621B1 (en) * | 1995-08-08 | 2002-11-12 | Apple Computer, Inc. | Statistical classifier with reduced weight memory requirements |
CN105550747A (zh) * | 2015-12-09 | 2016-05-04 | 四川长虹电器股份有限公司 | 一种新型卷积神经网络的样本训练方法 |
CN106033555A (zh) * | 2015-03-13 | 2016-10-19 | 中国科学院声学研究所 | 基于满足k度稀疏约束的深度学习模型的大数据处理方法 |
CN106203616A (zh) * | 2015-05-04 | 2016-12-07 | 富士通株式会社 | 神经网络模型训练装置和方法 |
CN106547857A (zh) * | 2016-10-20 | 2017-03-29 | 中国科学院声学研究所 | 结合心跳和粒度的数据挖掘方法及装置 |
CN106951959A (zh) * | 2017-01-24 | 2017-07-14 | 上海交通大学 | 基于学习自动机的深度神经网络优化方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107247991A (zh) * | 2017-06-15 | 2017-10-13 | 北京图森未来科技有限公司 | 一种构建神经网络的方法及装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640494A (en) * | 1991-03-28 | 1997-06-17 | The University Of Sydney | Neural network with training by perturbation |
IES20020063A2 (en) * | 2001-01-31 | 2002-08-07 | Predictions Dynamics Ltd | Neutral network training |
SG10201404266YA (en) * | 2011-01-19 | 2014-10-30 | Agency Science Tech & Res | A data structure and a method for using the data structure |
US9916538B2 (en) | 2012-09-15 | 2018-03-13 | Z Advanced Computing, Inc. | Method and system for feature detection |
US8700552B2 (en) * | 2011-11-28 | 2014-04-15 | Microsoft Corporation | Exploiting sparseness in training deep neural networks |
GB201402736D0 (en) * | 2013-07-26 | 2014-04-02 | Isis Innovation | Method of training a neural network |
US9843414B2 (en) * | 2014-07-01 | 2017-12-12 | Utah State University | Low complexity error correction |
US9633306B2 (en) * | 2015-05-07 | 2017-04-25 | Siemens Healthcare Gmbh | Method and system for approximating deep neural networks for anatomical object detection |
US10074042B2 (en) | 2015-10-06 | 2018-09-11 | Adobe Systems Incorporated | Font recognition using text localization |
US11093826B2 (en) * | 2016-02-05 | 2021-08-17 | International Business Machines Corporation | Efficient determination of optimized learning settings of neural networks |
EP3252671A1 (en) * | 2016-05-31 | 2017-12-06 | Siemens Healthcare GmbH | Method of training a deep neural network |
US10891538B2 (en) * | 2016-08-11 | 2021-01-12 | Nvidia Corporation | Sparse convolutional neural network accelerator |
US10311872B2 (en) * | 2017-07-25 | 2019-06-04 | Google Llc | Utterance classifier |
CN107688850B (zh) * | 2017-08-08 | 2021-04-13 | 赛灵思公司 | 一种深度神经网络压缩方法 |
US20200234137A1 (en) * | 2017-08-18 | 2020-07-23 | Intel Corporation | Efficient neural networks with elaborate matrix structures in machine learning environments |
WO2019033380A1 (en) * | 2017-08-18 | 2019-02-21 | Intel Corporation | SLURRY OF NEURAL NETWORKS IN MACHINE LEARNING ENVIRONMENTS |
US10366322B2 (en) * | 2017-10-06 | 2019-07-30 | DeepCube LTD. | System and method for compact and efficient sparse neural networks |
US10223610B1 (en) * | 2017-10-15 | 2019-03-05 | International Business Machines Corporation | System and method for detection and classification of findings in images |
WO2019079202A1 (en) * | 2017-10-16 | 2019-04-25 | Illumina, Inc. | ABERRANT CONNECTION DETECTION USING CONVOLUTION NEURAL NETWORKS (CNN) |
DE102017218851A1 (de) * | 2017-10-23 | 2019-04-25 | Robert Bosch Gmbh | Verfahren, Vorrichtung und Computerprogramm zur Erstellung eines tiefen neuronalen Netzes |
-
2018
- 2018-01-08 US US15/864,582 patent/US11461628B2/en active Active
- 2018-10-08 KR KR1020180120036A patent/KR20190050698A/ko active Search and Examination
- 2018-10-19 CN CN201811220391.2A patent/CN109754078B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480621B1 (en) * | 1995-08-08 | 2002-11-12 | Apple Computer, Inc. | Statistical classifier with reduced weight memory requirements |
CN106033555A (zh) * | 2015-03-13 | 2016-10-19 | 中国科学院声学研究所 | 基于满足k度稀疏约束的深度学习模型的大数据处理方法 |
CN106203616A (zh) * | 2015-05-04 | 2016-12-07 | 富士通株式会社 | 神经网络模型训练装置和方法 |
CN105550747A (zh) * | 2015-12-09 | 2016-05-04 | 四川长虹电器股份有限公司 | 一种新型卷积神经网络的样本训练方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN106547857A (zh) * | 2016-10-20 | 2017-03-29 | 中国科学院声学研究所 | 结合心跳和粒度的数据挖掘方法及装置 |
CN106951959A (zh) * | 2017-01-24 | 2017-07-14 | 上海交通大学 | 基于学习自动机的深度神经网络优化方法 |
CN107247991A (zh) * | 2017-06-15 | 2017-10-13 | 北京图森未来科技有限公司 | 一种构建神经网络的方法及装置 |
Non-Patent Citations (3)
Title |
---|
EXPLORING SPARSITY IN RECURRENT NEURAL NETWORKS;Sharan Narang 等;《arXiv:1704.05119v1》;全文 * |
Weight Uncertainty in Neural Networks;Charles Blundell 等;《Proceedings of the 32 nd International Conference on Machine Learning》;全文 * |
基于改进Fisher准则的深度卷积神经网络识别算法;孙艳丰 等;《北京工业大学学报》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
KR20190050698A (ko) | 2019-05-13 |
CN109754078A (zh) | 2019-05-14 |
US11461628B2 (en) | 2022-10-04 |
US20190138896A1 (en) | 2019-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109754078B (zh) | 用于优化神经网络的方法 | |
JP6574503B2 (ja) | 機械学習方法および装置 | |
Jin et al. | Robust convolutional neural networks under adversarial noise | |
EP3572985A1 (en) | System and method for generating explainable latent features of machine learning models | |
WO2021056112A1 (en) | Training method for quantizing the weights and inputs of a neural network | |
EP3570220B1 (en) | Information processing method, information processing device, and computer-readable storage medium | |
US20220300823A1 (en) | Methods and systems for cross-domain few-shot classification | |
US20220237465A1 (en) | Performing inference and signal-to-noise ratio based pruning to train sparse neural network architectures | |
CN110827330B (zh) | 一种时序集成的多光谱遥感图像变化检测方法及系统 | |
US11475236B2 (en) | Minimum-example/maximum-batch entropy-based clustering with neural networks | |
CN115358305A (zh) | 一种基于边界样本迭代生成的增量学习鲁棒性提升方法 | |
WO2021158830A1 (en) | Rounding mechanisms for post-training quantization | |
WO2023087303A1 (en) | Method and apparatus for classifying nodes of a graph | |
Pandey et al. | ResNet-18 comparative analysis of various activation functions for image classification | |
US11429771B2 (en) | Hardware-implemented argmax layer | |
CN110717402A (zh) | 一种基于层级优化度量学习的行人再识别方法 | |
CN113792822B (zh) | 一种高效的动态图像分类方法 | |
US20220159278A1 (en) | Skip convolutions for efficient video processing | |
US20230153580A1 (en) | Method for Optimizing Neural Networks | |
CN105631476B (zh) | 一种矩阵变量rbm的识别方法 | |
US12026624B2 (en) | System and method for loss function metalearning for faster, more accurate training, and smaller datasets | |
CN115239967A (zh) | 一种基于Trans-CSN生成对抗网络的图像生成方法及装置 | |
Salaheddine | Convolutional Neural Networks (CNN): Models and Algorithms | |
CN112836763A (zh) | 一种图结构数据分类方法及装置 | |
Ko et al. | Magnitude and uncertainty pruning criterion for neural networks |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |