CN110020717A - 用于生成不动点神经网络的方法和装置 - Google Patents
用于生成不动点神经网络的方法和装置 Download PDFInfo
- Publication number
- CN110020717A CN110020717A CN201811479804.9A CN201811479804A CN110020717A CN 110020717 A CN110020717 A CN 110020717A CN 201811479804 A CN201811479804 A CN 201811479804A CN 110020717 A CN110020717 A CN 110020717A
- Authority
- CN
- China
- Prior art keywords
- layer
- parameter value
- neural network
- parameter
- network
- 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 216
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000013139 quantization Methods 0.000 claims abstract description 172
- 210000005036 nerve Anatomy 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 2
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 14
- 210000002569 neuron Anatomy 0.000 description 14
- 210000004218 nerve net Anatomy 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 241000208340 Araliaceae Species 0.000 description 7
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 7
- 235000003140 Panax quinquefolius Nutrition 0.000 description 7
- 235000008434 ginseng Nutrition 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000001052 transient effect Effects 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/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- 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/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Nonlinear Science (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
提供了用于生成不动点神经网络的方法和装置。该方法包括:选择神经网络的至少一个层作为对象层,其中神经网络包括多个层,多个层中的每一层对应于多个量化参数中的相应的一个量化参数;形成候选参数集,该候选参数集包括关于与对象层相对应的多个量化参数的量化参数的候选参数值;基于神经网络的网络性能水平从候选参数值当中确定更新参数值,其中网络性能水平中的每一个对应于候选参数值中的相应的一个候选参数值;以及基于更新参数值更新关于对象层的量化参数。
Description
相关申请的交叉引用
本申请要求于2017年12月8日在韩国知识产权局提交的韩国专利申请第10-2017-0168477号的优先权,其公开内容通过引用全部并入本文中。
技术领域
与示例实施例一致的方法和装置涉及神经网络,并且更具体地,涉及用于生成不动点神经网络的方法和装置。
背景技术
神经网络指的是模仿动物大脑中的生物网络的计算机架构。随着神经网络技术发展,对各种电子系统进行了积极的研究,这些系统被配置为使用基于神经网络来操作的神经网络装置来分析输入数据并提取有效信息。
神经网络装置需要处理关于复杂输入数据的大量操作。为了使神经网络装置实时分析输入数据并提取信息,需要一种用于有效地处理神经网络的操作的技术。特别地,诸如智能手机的、具有低功耗和高性能的系统具有有限的资源,因此需要一种减少用于处理复杂的输入数据所需要的操作的数量并且使人工神经网络的性能最大化的技术。
发明内容
本申请提供了通过与浮点神经网络相对应的不动点神经网络来最大化神经网络的目标性能的方法和装置。
根据示例实施例的一方面,提供了生成神经网络系统的不动点神经网络的方法,该方法包括:选择神经网络的至少一个层作为对象层,其中神经网络包括多个层,多个层中的每一层与多个量化参数中的相应的一个量化参数相对应;形成候选参数集,该候选参数集包括关于与对象层相对应的多个量化参数的量化参数的候选参数值;基于神经网络的网络性能水平从候选参数值当中确定更新参数值,其中网络性能水平中的每一个对应于候选参数值中的相应的一个候选参数值;以及基于更新参数值更新关于对象层的量化参数。
根据另一示例实施例的一方面,提供了用于生成不动点神经网络的装置,该装置包括:存储器;以及处理器,其被配置为执行存储在存储器中的指令以生成不动点神经网络,选择第一不动点神经网络的多个层中的一个作为对象层,并且通过基于不动点神经网络的网络性能更新对象层的量化参数来生成第二不动点神经网络。
根据又一示例实施例的一方面,提供了一种生成神经网络系统的不动点神经网络的方法,该方法包括:从第一不动点神经网络的多个层当中选择至少一个层作为对象层;基于关于对象层的量化参数设置的参数值生成候选参数值;确定网络性能水平,其中网络性能水平中的每一个分别对应于候选参数值中的相应的一个候选参数值;并且基于多个候选参数值的候选参数值来更新量化参数,候选参数值对应于最高网络性能水平。
附图说明
根据以下结合附图的详细描述,将更清楚地理解示例实施例,在附图中:
图1是根据示例实施例的神经网络系统的框图;
图2示出了根据示例实施例的应用于神经网络系统的神经网络结构的示例;
图3是根据示例实施例的生成不动点神经网络的方法的流程图;
图4是根据示例实施例的确定图3的更新参数值的操作的流程图;
图5是用于描述根据示例实施例的导出与候选参数值中的每一个相对应的网络性能水平的方法的视图;
图6是根据示例实施例的生成不动点神经网络的方法的流程图;
图7是根据示例实施例的生成图6的不动点神经网络的方法的流程图;
图8、图9、图10A和图10B是根据一个或多个示例实施例的示出基于更新的量化参数的顺序的示例的视图;
图11是根据示例实施例的生成图6的不动点神经网络的方法的流程图;
图12是根据示例实施例的神经网络系统和量化系统的框图;
图13是根据示例实施例的计算系统的框图;以及
图14是根据示实施例的便携式计算设备的框图。
具体实施方式
在下文中,将通过参考附图来详细描述示例实施例。
图1是根据示例实施例的神经网络系统10的框图,并且图2示出了根据示例实施例的应用于神经网络系统10的神经网络NN的结构的示例。
神经网络系统10可以向另一系统(诸如移动计算系统、车辆计算系统等)提供神经网络(也被称为人工神经网络),或可以驱动神经网络。
神经网络系统10可以是被配置为提供(或驱动)神经网络的系统。神经网络系统10可以被称为神经网络装置。例如,神经网络系统10可以包括具有各种处理功能的计算设备,诸如生成神经网络的功能、训练(或学习)神经网络的功能、基于浮点神经网络生成不动点神经网络的功能、或重新训练神经网络的功能。神经网络系统10可以包括至少一个处理器和存储器以执行功能。神经网络系统10可以包括但不限于诸如台式计算机/服务器等的固定计算系统以及诸如膝上型计算机、智能电话等的移动计算系统。
参考图1,神经网络系统10可以包括量化模块110和参数调节模块120(也称为量化参数调节模块)。根据示例实施例,量化模块110可以被包括在被配置为与神经网络系统10通信的附加量化系统中。
量化模块110可以通过使用浮点数量化神经网络来使用不动点数生成神经网络。也就是说,量化模块110可以通过量化浮点神经网络NN_FO将浮点神经网络NN_FO转换成第一不动点神经网络NN_FX1。
参考图2,神经网络NN可以包括顺序处理的L(1)至L(N)的多个层,并且具有该多层结构的神经网络NN可以被称为深度神经网络(deep neural network,DNN)或深度学习架构。神经网络NN可以包括但不限于各种类型的神经网络模型(诸如卷积神经网络(convolution neural network,CNN)(诸如GoogLeNet、AlexNet、VGG网络等)、具有卷积神经网络(region with convolution neural network,R-CNN)的区域、区域提议网络(region proposal network,RPN)、递归神经网络(recurrent neural network,RNN)、基于堆叠的深度神经网络(stacking-based deep neural network,S-DNN)、状态空间动态神经网络(state-space dynamic neural network,S-SDNN)、反卷积网络、深度置信网络(deepbelief network,DBN)、受限制的波尔兹曼机器(restricted Boltzman machine,RBM)、完全卷积网络、长短期记忆(long short-term memory,LSTM)网络、分类网络等)中的至少一个。
神经网络NN可以经由多个层L(1)至L(N)基于输入数据IN执行操作,并且可以基于操作的结果生成输出数据OUT。输出数据OUT可以包括至少一个信息信号。例如,输入数据IN可以是帧的图像,并且输出数据OUT可以包括关于包括在图像中的对象的识别信息(或对应于对象的多个概率)。
多个层L(1)至L(N)中的每一个可以包括至少一个神经元(或处理节点)NR。神经元NR中的每一个的输入操作可以被称为输入激活操作,并且神经元NR中的每一个的输出操作可以被称为输出激活操作。可以基于权重(例如,w21至w33)、偏差(例如,b21至b34)和激活函数(例如,σ2和σ3)来确定激活操作(例如,a11至a34)。
相邻层的神经元NR可以互相连接并可以交换数据。一个神经元NR可以通过从其他神经元NR接收数据来执行操作,并且可以将操作的结果输出到其他神经元NR。例如,第二层L(2)的神经元NR可以通过从第一层L(1)的神经元NR接收数据来执行操作,并且可以将操作的结果提供给第三层L(3)的神经元NR。相邻层的神经元NR可以完全地或局部地互相连接。根据示例实施例,一个或多个神经元NR可以共享权重。
基于这种多层结构,神经网络NN可能需要计算复杂度,并且因此可能需要大量的计算资源。经由训练(或学习)在神经网络系统10中生成的神经网络NN可以是浮点神经网络NN_FO,其可能比不动点神经网络需要更多的计算资源。量化模块110可以通过经由量化将浮点神经网络NN_FO转换成第一不动点神经网络NN_FX1来减少神经网络NN的计算复杂度。
量化可以指将输入值限制为值的离散集合的过程,该集合小于输入值的数量。例如,可以通过将实数四舍五入到最接近的整数来将实数映射到整数值。例如,如上所述,神经网络NN中的量化可以应用于神经网络参数,其中神经网络参数可以包括激活、权重和偏差等。
在浮点神经网络NN_FO中使用的浮点数可以包括符号、指数和分数或尾数(mantissa),其中指数和分数或尾数中的每一个可以具有预先排布的比特长度(比特数)。不动点神经网络中使用的不动点数可以包括整数部分和分数部分,其中比特长度(即分数部分的分数长度(fraction length,FL))可以变化。在一些示例实施例中,不动点数的整数部分可以包括符号比特。并且,表示不动点数的比特长度可能少于表示浮点数的比特长度。
量化模块110可以通过确定关于神经网络参数的量化参数(诸如分数长度、符号、比特长度等)来将浮点神经网络NN_FO转换成不动点神经网络,即第一不动点神经网络NN_FX1。
量化模块110可以通过考虑神经网络NN被部署到的设备(例如,移动设备、嵌入式设备等)的处理性能来执行量化。神经网络NN被部署到的设备可以包括例如自主车辆、机器人设备、智能手机、平板设备、增强现实(augmented reality,AR)设备、物联网(Internetof Things,IoT)设备等,其被配置为通过使用神经网络来执行语音识别、图像识别等。
并且,量化模块110可以执行量化使得量化误差可以最小化。也就是说,量化模块110可以通过使用各种量化方法来计算量化参数,经由该量化参数最小化量化误差。例如,量化模块110可以基于与神经网络参数的分布(即神经网络参数值的分布)相关的至少一个时刻(例如,平均值、方差等)、神经网络参数的分布的近似密度函数(approximateddensity function,ADF)、神经网络参数的统计特征(例如,广义伽马分布)等来计算量化参数,经由该量化参数最小化量化误差。例如,量化模块110可以计算分数长度以最小化量化误差。
量化模块110可以执行关于多个层L(1)至L(N)中的每一个的量化,并且因此可以确定关于多个层L(1)至L(N)中的每一个的量化参数。从量化模块110输出的第一不动点神经网络(NN_FX1)可以包括分别关于多个层L(1)至L(N)的量化参数(例如,QP(1)、QP(2)、...、QP(N))。
在经由量化模块110量化浮点神经网络NN_FO的过程中,网络性能(诸如精确度)可能会降低。因此,第一不动点网络NN_FX1可能具有与浮点神经网络NN_FO相比降低的网络性能。
参数调节模块120可以调节第一不动点神经网络NN_FX1的量化参数。也就是说,参数调节模块120可以基于网络性能通过调节(或更新)来自多个层L(1)至L(N)当中的至少一个层的量化参数来生成第二不动点神经网络NN_FX2,在该不动点神经网络NN_FX2中改变至少一个层的量化参数。第二不动点神经网络NN_FX2可以包括分别关于多个层L(1)至L(N)的量化参数(例如,QP(1)、QP(2)'、...、QP(N)'),其中第二不动点神经网络NN_FX2的一个或多个量化参数可以不同于第一不动点神经网络NN_FX1的量化参数。此处,网络性能指的是神经网络NN的目标性能,并且可以包括例如基于至少一个参考导出的神经网络NN的精确度。网络性能可以基于被配置为评估神经网络NN的目标函数的各种度量或评估参考来导出。
参数调节模块120可以从第一不动点神经网络NN_FX1的多个层L(1)至L(N)当中选择量化参数将关于该层被更新的至少一个层作为对象层,并且可以形成包括与对象层的量化参数有关的候选参数值的候选参数集。根据示例实施例,候选参数值可以基于预设的量化参数值经由算术运算来导出。根据示例实施例,候选参数值可以基于在量化处理期间获得的信息来导出。
参数调节模块120可以通过将候选参数值中的每一个应用于对象层的量化参数来驱动第一不动点神经网络NN_FX1,并且可以基于驱动第一不动点神经网络NN_FX1的结果导出网络性能,即对应于候选参数值中的每一个的网络性能水平。参数调节模块120可以从候选参数值当中将与最高网络性能水平相对应的候选参数值确定为更新参数值,并且可以基于更新参数值来更新对象层的量化参数。因此,参数调节模块120可以基于网络性能来更新对象层的量化参数。
根据示例实施例,参数调节模块120可以更新关于第一不动点神经网络NN_FX1的多个层L(1)至L(N)中的至少一个的量化参数。例如,参数调节模块120可以顺序地更新关于第一不动点神经网络NN_FX1的多个层L(1)至L(N)的量化参数。例如,参数调节模块120可以基于预定的顺序更新多个层L(1)至L(N)(即第一层L(1)至第N层L(N))的量化参数。例如,参数调节模块120可以从作为最后层的第N层L(N)向第一层L(1)、沿后向方向更新关于多个层L(1)至L(N)的量化参数。可替代地,参数调节模块120可以如上所述从第N层L(N)开始,沿后向方向更新关于多个层L(1)至L(N)的量化参数,并且然后可以沿前向方向更新关于多个层L(1)至L(N)的量化参数,以第N层L(N)结束。
例如,参数调节模块120可以顺序地更新多个层L(1)至L(N)的量化参数,直到网络性能变成等于或高于参考水平的水平为止。然而,示例实施例不限于此。参数调节模块120可以基于所描述的示例顺序和条件的组合或者其他顺序和条件来更新关于第一不动点神经网络NN_FX1的多个层L(1)至L(N)中的一个或多个的量化参数。
如上所述,参数调节模块120可以基于网络性能通过调节第一不动点神经网络NN_FX1的至少一个层的量化参数来生成第二不动点神经网络NN_FX2,其中第二不动点神经网络NN_FX2的网络性能可能高于第一不动点神经网络NN_FX1的网络性能。
如上所述,根据示例实施例的神经网络系统10可以通过调节经由量化生成的第一不动点神经网络NN_FX1的量化参数来生成具有改进性能的第二不动点神经网络NN_FX2。并且,根据示例实施例的神经网络系统10可以通过执行关于浮点神经网络NN_FO的量化来生成第一不动点神经网络NN_FX1,使得量化误差被最小化,并且然后可以通过考虑一般网络性能调节第一不动点神经网络NN_FX1的量化参数来生成第二不动点神经网络NN_FX2。因此,量化过程的复杂度可能不会增加,而不动点神经网络的网络性能可能会提高。在下文中,将参考图3至图12详细描述根据示例性实施例的调节量化参数的方法,即生成其量化参数被更新的不动点神经网络的方法。
图3是根据示例实施例的生成不动点神经网络的方法的流程图。详细地,图3中示出的示例实施例通过调节不动点神经网络的量化参数来生成具有改进的网络性能的不动点神经网络,并且可以由图1的参数调节模块120执行。因此,参考图1描述的方面可以被应用于本示例实施例。
参考图1和图3,参数调节模块120可以在操作S110中生成关于神经网络的不动点神经网络。也就是说,参数调节模块120可以通过量化浮点神经网络来生成不动点神经网络。不动点神经网络(例如,图1的第一不动点神经网络NN_FX1)可以包括多个层,并且可以包括关于多个层中的每一个的神经网络参数的量化参数,诸如激活、偏差、权重等。例如,量化参数可以包括分数长度、比特长度等。根据示例实施例,不动点神经网络由量化模块(图1中的110)生成,并且参数调节模块120可以从量化模块110接收不动点神经网络。
在操作S120中,参数调节模块120可以从不动点神经网络的多个层当中选择其量化参数要被更新的对象层。根据示例实施例,当不动点神经网络包括N个顺序处理的层时,参数调节模块120可以选择多个层中的最后一层(即第N层)作为对象层。参数调节模块120可以从多个层当中选择最能影响神经网络的网络性能的最后一层作为对象层,以便有效地提高网络性能。然而,示例实施例不限于此,并且参数调节模块120可以选择影响神经网络的网络性能的其他层作为对象层。
根据示例实施例,不动点神经网络可以包括并行处理的层(或包括在一个层中的模块),并且参数调节模块120可以选择并行处理的多个层或多个模块作为对象层。
在操作S130中,参数调节模块120可以基于网络性能来确定关于对象层的量化参数的更新参数值。网络性能是神经网络(即不动点神经网络)的目标性能,并且可以包括例如基于至少一个参考导出的神经网络的精确度。例如,当神经网络的目的是执行图像分类时,网络性能可以包括前1精确度和/或前5精确度。当神经网络的目的是执行声音辨识时,网络性能可能包括误字率。根据示例实施例,可以基于在关于浮点神经网络的训练过程的评估中使用的评估参考导出网络性能,不动点神经网络基于该网络性能。此外,可以基于各种度量来导出网络性能以评估神经网络所针对的功能、或评估参考。
参数调节模块120可以确定更新参数值以最大化网络性能。例如,参数调节模块120可以形成多个候选参数值,并且可以从多个候选参数值当中选择经由其最大化神经网络的网络性能的候选参数值,作为关于对象层的量化参数的更新参数值。
参数调节模块120可以在操作S140中基于确定的更新参数值来更新对象层的量化参数。基于量化参数的更新,可以改进不动点神经网络的网络性能。在除了对象层以外的层的情况下,量化参数可以不被更新并且可以保持先前的参数值。因此,可以将更新对象层的量化参数之前的网络性能水平与更新对象层的量化参数之后的网络性能水平进行比较,以便评估对象层的量化参数的更新对于提高不动点神经网络的网络性能的贡献了多少。
图4是确定图3的更新参数值的操作的流程图,并且图5是用于描述导出对应于候选参数值中的每一个的网络性能水平的方法的示例的视图。
参考图4,参数调节模块120可以形成关于对象层的量化参数的候选参数集,并且可以选择包括在候选参数集中的候选参数值中的一个作为更新参数值。
参考图4,在操作S31中,参数调节模块120可以基于关于对象层的量化参数的预设参数值,即当前参数值,形成包括候选参数值的候选参数集。
例如,当分数长度是量化参数时,参数调节模块120可以基于关于对象层LT(t)的当前分数长度值FL(t),形成包括候选参数值(例如,M个候选参数值,其中M是大于或等于2的整数)的候选参数集。候选参数集S(t)可以由等式1表示。
[等式1]
此处,e、是关于对象层LT(t)的第M个候选参数值。
根据示例实施例,参数调节模块120可以基于当前参数值经由算术运算来生成候选参数值。根据另一示例实施例,参数调节模块120可以基于在量化处理中导出的附加信息来生成候选参数值。例如,当前参数值是来自在量化处理中导出的多个参数值当中的参数值,经由该量化处理最小化量化误差,并且来自多个参数值当中的其他参数值(经由该其他参数值量化误差等于或者小于临界值)可以被作为附加信息提供给参数调节模块120。参数调节模块120可以基于当前参数值和附加信息,形成包括参数值(经由该参数值量化误差等于或小于临界值)的候选参数集。
如上参考图3所述,在操作S120中,当参数调节模块120选择并行处理的多个层或模块作为对象层时,参数调节模块120可以将候选参数集形成为对应于多个层或模块的参数值的集合。例如,当选择两个层作为第一对象层LT(t1)和第二对象层LT(t2)时,并且第一对象层LT(t1)和第二对象层LT(t2)中的每一个包括三个候选参数值时,候选参数集可以由等式2表示。
[等式2]
其后,参数调节模块120可以在操作S32中导出与候选参数值中的每一个相对应的网络性能的水平。参考图5描述导出与候选参数值中的每一个相对应的网络性能水平的方法的示例。
参考图5,不动点神经网络可以包括第一至第N层L(1)至L(N),并且关于第一至第N层L(1)至层L(N)中的每一个的分数长度(fraction length,FL)可以被设置为量化参数。也就是说,分数长度值FL(1)至FL(N)可以被设置为关于第一至第N层L(1)至L(N)。
当第N层L(N)被设置为对象层时,可以基于对象层的分数长度值FL(t),即第N层L(N)的分数长度值FL(N),形成关于对象层的候选参数集S(t),并且关于候选参数集S(t)的候选参数值的网络性能水平(即候选分数长度值)可以被导出。例如,参数调节模块120可以不改变关于第一至第N-1层L(1)至L(N-1)(除了对象层的剩余层)的分数长度,并且可以将第N层L(N)(对象层)的分数长度从当前分数长度值FL(N)改变为候选参数值中的一个。以这种方式,可以基于被设置为关于第一至第N层L(1)至L(N)中的每一个的分数长度通过驱动不动点神经网络来导出网络性能水平。参数调节模块120可以顺序地评估关于候选参数值的网络性能,以便导出分别对应于候选参数值的网络性能水平
网络性能水平指的是神经网络的目标性能水平。如以上参考图3所述,可以基于神经网络的分类和目标来导出网络性能水平。例如,当神经网络的目的是要执行声音辨识时,参数调节模块120可以通过使用多个声音样本(sound samples,SAM)作为输入数据来驱动不动点神经网络,可以输出声音辨识结果(recognition results,RES),并且可以将网络性能水平导出为基于RES的误字率。
根据示例实施例,可以通过执行关于基于不同参考(例如,K(大于1的整数)性能水平)计算的多个性能水平的加权求和运算来导出网络性能水平。网络性能的水平P可以由等式3表示。
[等式3]
P=∑Kwi*Pi
此处,Wi和Pi分别指示K个性能水平当中的第i个权重和第i个性能水平。
例如,当神经网络的目的是要执行图像分类时,可以通过使用多个图像样本作为输入数据来驱动不动点神经网络,并且可以计算指示关于图像样本的预测类别的图像识别信号(或多个类别的概率分布)。可以基于计算的图像识别信号导出前1精确度和前5精确度。前1精确度指示其中由不动点神经网络预测的一个类别是正确答案(或不是正确答案)的情况,并且前5精确度指示其中正确答案被包括(或被不包括)在由不动点神经网络预测的5个类别中情况。网络性能P可以基于被设置为关于前1精确度和前5精确度中的每一个的权重经由加权求和运算来导出。
作为另一示例,当神经网络的目的是执行对象检测时,可以分别关于不同对象计算网络性能水平。例如,可以计算关于诸如车辆的第一对象的检测的网络性能水平以及关于诸如行人(pedestrian)的第二对象的检测的网络性能水平。然后,可以基于被设置为关于与不同对象中的每一个相对应的网络性能水平的权重执行加权求和运算来导出网络性能P。另外,参数调节模块120可以通过考虑到基于与神经网络的目标相关的各种参考计算的各种性能水平来导出神经网络的网络性能水平。
此外,参考图4,在操作S33中,参数调节模块120可以将与候选参数值相对应的网络性能水平相互比较,并且可以基于比较结果选择更新参数值。根据示例实施例,与来自网络性能的水平当中的最高网络性能水平相对应的候选参数值可以被选择为更新参数值。例如,关于候选参数值分别导出的网络性能水平可以相互比较,并且当网络性能水平是最高时,候选参数值可以被选择作为更新参数值。更新参数值fl′可以由等式4表示。
[等式4]
fl′=argmaxP(fl(t))
更新参数值fl′可能与当前参数值(例如当前分数长度FL(t))相同的情况可能发生。在这种情况下,参数调节模块120可以识别不动点神经网络的对象层LT(t)的参数值是使网络性能最大化的值。
图6是根据示例实施例的生成不动点神经网络的方法的流程图。图6的示例实施例可以由图1的参数调节模块120来执行。参考图1和图3描述的方面可以被应用于本示例实施例。
参考图6,参数调节模块120可以在操作S210中生成不动点神经网络,并且在操作S220中,可以从不动点神经网络的多个层当中选择其量化参数要被更新的对象层。参数调节模块120可以在操作S230中基于网络性能来确定关于对象层的量化参数的更新参数值。参数调节模块120可以在操作S240中基于更新参数值来更新对象层的量化参数。操作S210、S220、S230和S240对应于图3的操作S110、S120、S130和S140,并且因此将不重复其描述。
其后,在操作S250中,参数调节模块120可以确定是否满足更新结束条件。当参数调节模块120确定不满足更新结束条件时,参数调节模块120可以基于操作S230和S240在操作S260中改变对象层并且执行量化参数的更新操作,由此更新多个层的量化参数直到满足更新结束条件为止。
根据示例实施例,更新结束条件可以包括对象层的预设数量或更新层的预设数量。例如,当对象层的预设数量为5时,参数调节模块120可以顺序地更新关于不动点神经网络的多个层中的5个层的量化参数。并且,当更新的层的预设数量是3时,参数调节模块120可以通过改变对象层来重复地更新关于不动点神经网络的多个层的量化参数,直到3个层的量化参数从先前设置的参数值改变为其他值,即更新参数值。
根据示例实施例,更新结束条件可以包括关于不动点神经网络的多个层的全部的量化参数是否被更新、关于多个层的量化参数是否从最后一层到第一层沿后向方向然后从第一层到最后一层沿前向方向被更新等。
根据示例实施例,可以基于网络性能来设置更新结束条件。例如,更新结束条件可以包括:其中与浮点神经网络相比不动点神经网络的网络性能降低变成小于预定退化参考值的条件、其中不动点神经网络的网络性能被增加到等于或大于预定参考值的条件等。
关于对象层的改变,改变后的对象层可以是当前对象层的前一层或下一层,关于该对象层执行量化参数的更新。例如,当关于最后一层执行量化参数的更新时,可以将最后一层的前一层设置为对象层。并且,当关于第一层执行量化参数的更新时,可以将第二层设置为对象层。
以这种方式,参数调节模块120可以通过重复地更新关于不动点神经网络的多个层中的至少一个的量化参数来使不动点神经网络的网络性能最大化。
图7是生成图6的不动点神经网络的方法的示例的流程图。
参考图7,在操作S210a中,参数调节模块120可以生成包括N个层的不动点神经网络。可以分别设置关于N个层的量化参数QP(1)、QP(2)、,QP(3)、……、QP(N)。为了便于解释,图7示出了关于N个层中的每一个设置一个量化参数。然而,示例实施例不限于此。可以关于N个层中的每一设置多个量化参数个。
参数调节模块120可以在操作S220A中选择第N层作为对象层。例如,第N层比其它层更多的影响不动点神经网络的网络性能,并且因此,参数调节模块120可以选择第N层作为对象层。
在操作S230a中,参数调节模块120可以基于网络性能来确定关于有关对象层(即第N层)的量化参数的更新参数值。详细地,在操作S231a中,参数调节模块120可以形成关于有关第N层(对象层)的量化参数QP(N)的候选参数集。例如,参数调节模块120可以通过基于关于量化参数QP(N)的当前设置的值生成候选参数来形成候选参数集。
在操作S232a中,参数调节模块120可以导出与候选参数集的候选参数值中的每一个相对应的网络性能水平。参数调节模块120可以应用候选参数值中的每一个作为对象层(即第N层)的量化参数,并且可以驱动不动点神经网络,以便导出关于候选参数值中的每一个的网络性能水平。
在操作S233a中,参数调节模块120可以基于比较与候选参数值相对应的网络性能水平的结果来选择更新参数值。参数调节模块120可以将候选参数值的网络性能水平相互比较,并可以选择与最高网络性能水平相对应的候选参数值作为更新参数值。
在操作S240a中,参数调节模块120可以基于更新参数值来更新对象层(即第N层)的量化参数。当更新参数值与当前设置的参数值不同时,可以改进不动点神经网络的网络性能。
在操作S250a中,参数调节模块120可以确定对象层是否是第一层。如上所述,当前对象层是第N层。因此,参数调节模块120可以确定不满足结束量化参数的更新的条件,并且可以改变对象层。
在操作S260a中,参数调节模块120可以将对象层改变为上一层,即第N-1层。参数调节模块120可以通过执行操作S230a和S240b来更新关于改变后的对象层的量化参数。
图8、图9、图10A和图10B是根据示例实施例的示出基于更新量化参数的顺序的示例的视图。
参考图8,参数调节模块120可以从最后一层(即第N层)到第一层L(1)沿后向方向执行量化参数的更新。因此,可以更新不动点神经网络的第一至第N层L(1)至L(N)中的至少一个的量化参数。
参考图9,参数调节模块120可以从最后一层(即第N层)到第一层L(1)沿后向方向执行量化参数的更新。然后,参数调节模块120还可以从第一层L(1)至第N层L(N)沿前向方向执行量化参数的更新。根据示例实施例,参数调节模块120可以沿后向和前向方向多次执行量化参数的更新,直到网络性能水平达到网络性能的目标水平。
参考图10A和图10B,不动点神经网络的一个或多个层(例如,第三层L(3))可以包括多个模块,例如,第一至第五模块M(1)至M(5)。图10A和10B示出不动点神经网络包括第一至第四层L(1)至L(4)以及第一至第五模块M(1)至M(5)。然而,为了便于解释示出了图10A和图10B中示出的示例实施例,并且根据神经网络(也称为神经网络模型)的类型,不动点神经网络的层的数量和模块的数量可以变化。
参考图10A,参数调节模块120可以以示出的顺序沿后向方向和前向方向顺序地更新关于多个层和多个模块的量化参数。具体地,可以首先更新第四层L(4),随后是第三模块M(3)、第四模块M(4)、第五模块M(5)、第一模块M(1)、第二模块M(2)、第二层L(2)和第一层L(1)。然后,可以再次更新第二层L(2),随后是第二模块M(2)、第一模块M(1)、第五模块M(5)、第四模块M(4)、第三层模块M(3)和第四层L(4)。
并且,参考图10B,参数调节模块120可以以声明的顺序,顺序地沿后向方向和前向方向顺序地更新关于多个层的量化参数,同时更新关于多个模块的量化参数。具体地,可以首先更新第四层L(4),随后同时更新第三模块M(3)、第四模块M(4)和第五模块M(5),随后同时更新第一模块M(1)和第二模块M(2),随后更新第二层L(2),然后第一层L(1)。然后,可以再次更新第二层L(2),随后同时更新第一模块M(1)和第二模块M(2),随后同时更新第三模块M(3)、第四模块M(4)和第五模块M(5),随后另外更新第四层L(4)。
图11是根据示例实施例的生成图6的不动点神经网络的方法的示例的流程图。图11示出了其中关于分数长度执行更新的示例。
参考图11,参数调节模块120可以在操作S210b中生成包括N个层的不动点神经网络。关于N个层可以分别设置量化参数QP(1)、QP(2)、QP(3)、……、QP(N)。
在操作S220b中,参数调节模块120可以选择第N层作为对象层。
在操作S230b中,参数调节模块120可以基于网络性能来确定关于有关对象层(即第N层)的分数长度的更新分数长度值。如上所述,参数调节模块120可以基于当前设置的分数长度值形成关于分数长度的候选参数集,并且可以将关于包括在候选参数集中的候选参数的网络性能水平相互比较,以便确定更新分数长度值。
在操作S240b中,参数调节模块120可以基于更新分数长度值更新对象层(即第N层)的分数长度。在操作S250b中,参数调节模块120可以确定网络性能水平是否等于或高于参考值,并且当网络性能水平小于参考值时,可以更新关于其他层的分数长度。在操作S260b中,参数调节模块120可以改变对象层。参数调节模块120可以选择多个层的其它层(除了第N层)作为对象层。例如,参数调节模块120可以选择第N-1层作为对象层。如上所述,参数调节模块120可以沿后向方向或前向方向改变对象层。参数调节模块120可以通过执行操作S230b和S240b来更新关于改变后的对象层的分数长度。参数调节模块120可以重复地更新关于多个层的分数长度,直到网络性能水平变得等于或大于参考值为止,并且可以在网络性能水平等于或大于参考值时结束分数长度的更新。
图12是根据示例实施例的神经网络系统10a和量化系统20a的框图。如图12所示,神经网络系统10a和量化系统20a可以实施为单独的计算系统。
参考图12,神经网络系统10a可以将浮点神经网络NN_FO提供给量化系统20a,并且量化系统20a可以量化浮点神经网络NN_FO以生成第一不动点神经网络NN_FX1。第一不动点神经网络NN_FX1可以分别包括关于多个层L(1)至L(N)的量化参数(例如,QP(1)、QP(2)、...、QP(N))。
神经网络系统10a可以包括参数调节模块120a,并且参数调节模块120a可以更新关于第一不动点神经网络NN_FX1的多个层中的至少一个的量化参数,如参考图1至图11所述,以便生成具有改进的网络性能的第二不动点神经网络NN_FX2,
根据示例实施例,量化系统20a可以从另一神经网络系统接收浮点神经网络NN_FO。包括参数调节模块120a的神经网络系统10a可以是其中部署了第一不动点神经网络NN_FX1的设备。例如,神经网络系统10a可以是计算设备,该计算设备被配置为基于第一不动点神经网络NN_FX1生成第二不动点神经网络NN_FX2并且基于以第二不动点神经网络NN_FX2为基础的神经网络执行各种任务。
图13是根据示例实施例的计算系统200的框图。在一些示例实施例中,图1的神经网络系统10和图12的神经网络系统10a可以被实施为图13的计算系统200。如图13所示,计算系统200可以包括系统存储器210、处理器230、储存器250、输入和输出(input andoutput,IO)设备270、以及通信连接290。包括在计算系统200中的组件可以彼此通信,并且可以例如经由总线彼此连接。
系统存储器210可以包括程序212。根据示例实施例,程序212可以允许处理器230更新不动点神经网络(例如,第一不动点神经网络NN_FX1)的量化参数。例如,程序212可以包括由处理器230可执行的指令的有序列表,并且处理器230可以执行包括在程序212中的多个指令以更新不动点神经网络的量化参数。系统存储器210可以包括但不限于诸如静态随机存取存储器(static random access memory,SRAM)和动态随机存取存储器(dynamicrandom access memory,DRAM)的易失性存储器以及诸如闪速存储器的非易失性存储器等。
处理器230可以包括被配置为执行指令的某集合(例如,Intel架构-32(IA-32)、扩展64-比特IA-32、x86-64、PowerPC、Sparc、MIPS、ARM、IA-64等)的至少一个核。处理器230可以执行存储在系统存储器210中的指令,并且可以通过执行程序212来更新不动点神经网络的量化参数。
即使供给到计算系统200的电力被阻断,储存器250也不会丢失存储的数据。例如,储存器250可以包括非易失性存储器(诸如电可擦除可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、闪速存储器、相变随机存取存储器(phase change random access memory,PRAM)、电阻随机存取存储器(resistance randomaccess memory,RRAM)、纳米浮栅存储器(nano floating gate memory,NFGM)、聚合物随机存取存储器(polymer random access memory,PoRAM)、磁性随机存取存储器(magneticrandom access memory,MRAM)、铁电随机存取存储器(ferroelectric random accessmemory,FRAM)等)或者可以包括存储介质(诸如磁带、光盘、磁盘等)。在一些示例实施例中,储存器250可以与计算系统200分离。
在一些示例实施例中,储存器250可以存储被配置为控制更新根据示例实施例的不动点神经网络的量化参数的程序212,并且在由处理器230执行程序212之前,程序212或者程序212的至少一部分可以从储存器250被加载到系统存储器210。在一些示例实施例中,储存器250可以存储以编程语言写入的文件,并且由编译器等基于文件生成的程序212或者程序212的至少部分可以被加载到系统存储器210。
在一些示例实施例中,储存器250可以存储要被处理器230处理的数据和/或被处理器230处理的数据。例如,储存器250可以存储神经网络参数和输入样本。并且,储存器250可以存储生成的不动点神经网络的参数,即量化的神经网络参数和量化参数。
IO设备270可以包括输入设备(诸如键盘、定点设备等)以及输出设备(诸如显示器、打印机等)。例如,用户可以通过使用IO设备270经由处理器230触发程序212的执行。
通信连接290可以提供对计算系统200外部的网络的访问。例如,网络可以包括多个计算系统和通信链路,并且通信链路可以包括有线链路、光学链路、无线链路或某些其他链路。
图14是根据示例实施例的便携式计算设备300的框图。在一些示例实施例中,根据示例实施例,在其中量化参数被更新的不动点神经网络(例如,图1的第二不动点神经网络NN_FX2)可以由便携式计算设备300驱动。便携式计算设备300可以包括但不限于经由电池或私人电力站向其供电的便携式电子设备(诸如移动电话、平板个人电脑(personalcomputer,PC)、可穿戴设备、物联网(Internet of Things,IoT)设备等)。
根据示例实施例,如参考以上示例实施例所述,便携式计算设备300可以接收由量化模块生成的不动点神经网络(例如,图1的第一不动点神经网络NN_FX1),并且可以更新不动点神经网络的量化参数。
如图14所示,便携式计算设备300可以包括存储器子系统310、IO设备330、处理单元350和网络接口370,其中存储器子系统310、IO设备330、处理单元350和网络接口370可以经由总线390彼此通信。在一些示例实施例中,存储器子系统310、IO设备330、处理单元350和网络接口370中的至少两个可以作为片上系统(system-on-a-chip,SoC)被包括在一个封装中。
存储器子系统310可以包括RAM 312和储存器314。RAM 312和/或储存器314可以存储要由处理单元350执行的指令的有序列表和要由处理单元350处理的数据。例如,RAM 312和/或储存器314可以存储神经网络的变量(诸如信号、权重和偏差),并且可以存储神经网络的神经元(或处理节点)的参数。在一些示例实施例中,储存器314可以包括非易失性存储器。
处理单元350可以包括中央处理单元(central processing unit,CPU)352、图形处理单元(graphics processing unit,GPU)354、数字信号处理器(digital signalprocessor,DSP)356和神经处理单元(neural processing unit,NPU)358。不同于图14的说明,在一些示例实施例中,处理单元350可以包括CPU352、GPU 354、DSP 356和NPU 358中的至少一个。
CPU 352可以直接地执行便携式计算设备300的一般操作。例如,CPU352响应于例如经由IO设备330接收外部输入可以直接地执行某些任务,或者可以指示处理单元350的其他组件执行某些任务。GPU 354可以经由包括在IO设备330中的显示器生成用于图像输出的数据,或者可以编码从包括在IO设备330中的相机接收到的数据。DSP 356可以通过处理数字信号(例如,从网络接口370提供的数字信号)来生成有效数据。
NPU 358可以是为神经网络设计的硬件,并且可以包括与包括在神经网络中的一个或多个神经元相对应的多个计算节点,其中多个计算节点中的一个或多个可以并行处理信号。
根据示例实施例量化的在其中参数被更新的不动点神经网络可以具有改进的网络性能、降低的计算复杂度,并且可以由处理单元350简单地操作。
IO设备330可以包括输入设备(诸如触摸输入设备、声音输入设备、相机等)以及输出设备(诸如显示设备、声音输出设备等)。例如,当用户语音经由声音输入设备被输入时,语音可以被由便携式计算设备300驱动的不动点神经网络辨识,并且可以触发基于语音的辨识的操作。并且,当经由相机输入图像时,包括在图像中的对象可以被由便携式计算设备300驱动的不动点神经网络辨识,并且可以向用户提供诸如虚拟现实的输出。如上所述,根据示例实施例的在其中量化参数被更新的不动点神经网络可以具有改善的网络性能并且可以向用户提供准确信息。
网络接口370可以访问诸如长期演进(long term evolution,LTE)、5G等的移动通信网络,并且可以提供对诸如WiFi的本地网络的访问。
上述方法的各种操作可以通过能够执行操作的任何合适的工具来执行,诸如(多个)各种硬件和/或软件组件、电路和/或(多个)模块。
该软件可以包括用于实施逻辑功能的可执行指令的有序列表,并且可以体现在使用的任何“处理器可读的介质”中以供指令执行系统、装置或设备(诸如单一核心处理器或多核心处理器或包含处理器的系统)使用或与其结合使用。
结合本文公开的实施例来描述的方法或算法和功能的块或步骤可以直接地体现在硬件中、由处理器执行的软件模块中或两者的组合中。如果在软件中实施,则功能可以被作为一个或多个指令或代码存储在有形的、非瞬态的计算机可读介质上或者在其上传输。软件模块可以驻留在随机存取存储器(RAM)、闪速存储器、只读存储器(Read Only Memory,ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CDROM或者本领域已知的任何其他形式的存储介质中。
以上,在说明书中参考附图描述了示例实施例。在整个说明书中,使用某些术语来描述示例实施例。然而,应该仅在针对示例实施例的描述性意义上来考虑这些术语,而不是为了限制的目的。因此,本领域的普通技术人员应该理解的是在不脱离本公开的范围的情况下可以进行各种修改和变化。因此,本公开的范围不是由详细描述而是由所附权利要求来限定。
Claims (20)
1.一种生成神经网络系统的不动点神经网络的方法,所述方法包括:
选择神经网络的至少一个层作为对象层,其中所述神经网络包括多个层,所述多个层中的每一个层与多个量化参数中的相应的一个量化参数相对应;
形成候选参数集,所述候选参数集包括关于与所述对象层相对应的多个量化参数的量化参数的候选参数值;
基于所述神经网络的网络性能水平从所述候选参数值当中确定更新参数值,其中所述网络性能水平中的每一个网络性能水平与所述候选参数值中的相应的一个候选参数值相对应;以及
基于所述更新参数值更新关于所述对象层的量化参数。
2.根据权利要求1所述的方法,其中,所述候选参数集的形成包括基于被设置为关于所述对象层的量化参数的参数值经由算术运算生成所述候选参数值。
3.根据权利要求1所述的方法,其中,所述选择包括选择所述多个层的最后一层作为所述对象层。
4.根据权利要求1所述的方法,其中,确定所述更新参数值包括:
导出所述神经网络的网络性能水平,所述网络性能水平中的每一个网络性能水平与所述候选参数值中的相应的一个候选参数值相对应;
比较所述网络性能水平;以及
从与最高网络性能水平相对应的候选参数值当中选择候选参数值作为所述更新参数值。
5.根据权利要求4所述的方法,其中,导出所述神经网络的网络性能水平包括通过将预设量化参数值应用于所述多个层的除了所述对象层之外的层,并且应用所述候选参数值中的一个候选参数值作为所述对象层的量化参数,来导出关于所述候选参数值中的一个候选参数值的网络性能水平。
其中,基于所述候选参数值中的每一个候选参数值导出关于所述候选参数值中的一个候选参数值的网络性能水平。
6.根据权利要求5所述的方法,其中,所述导出关于所述候选参数值中的一个候选参数值的网络性能水平包括:
基于第一参考来计算第一性能水平;
基于第二参考来计算第二性能水平;以及
通过基于被设置为关于第一性能水平的第一权重和被设置为关于第二性能水平的第二权重来执行加权求和运算来导出所述网络性能水平。
7.根据权利要求5所述的方法,其中,所述神经网络的网络性能水平包括所述神经网络的准确度。
8.根据权利要求1所述的方法,其中,所述量化参数包括分数长度。
9.根据权利要求1所述的方法,还包括:
在关于所述对象层的量化参数的更新之后,确定是否满足结束所述量化参数的更新的条件;以及
改变对象层,形成关于被改变的对象层的候选参数集,确定所述更新参数值,并且基于不满足结束所述量化参数的更新的条件来更新所述量化参数。
10.根据权利要求9所述的方法,其中,结束所述量化参数的更新的条件包括以下至少之一:在其上执行所述量化参数的更新的对象层的数量或者所述多个量化参数的值被改变所关于的对象层的数量是否等于或大于预设值,以及基于所述更新参数值的网络性能水平是否等于或高于参考值。
11.根据权利要求9所述的方法,还包括:基于不满足结束所述量化参数的更新的条件,通过将所述对象层的前一层设置为所述对象层来改变所述对象层。
12.根据权利要求1所述的方法,还包括:基于关于浮点神经网络的量化误差,通过设置关于所述多个层中的每一个层的量化参数来生成所述神经网络。
13.一种用于生成不动点神经网络的装置,所述装置包括:
存储器;以及
处理器,被配置为执行存储在所述存储器中的指令以生成所述不动点神经网络,选择第一不动点神经网络的多个层中的一个层作为对象层,并且通过基于所述不动点神经网络的网络性能更新所述对象层的量化参数来生成第二不动点神经网络。
14.根据权利要求13所述的装置,其中,所述处理器还被配置为执行存储在所述存储器中的指令以:
基于被预设为关于所述对象层的量化参数的参数值形成包括候选参数值的候选参数集;
确定第一不动点神经网络的网络性能水平,所述网络性能水平中的每一个网络性能水平分别与所述候选参数值中的相应的一个候选参数值相对应;并且
基于基于比较网络性能水平的结果从所述候选参数值选择的更新参数值更新所述对象层的量化参数。
15.根据权利要求14所述的装置,其中,所述处理器还被配置为执行存储在所述存储器中的指令以确定多个候选参数值的候选参数值作为所述更新参数值,所述候选参数值对应于最高网络性能水平。
16.根据权利要求14所述的装置,其中,所述处理器还被配置为执行存储在所述存储器中的指令以更新关于多于所述多个层中的两个层中的每一个层的量化参数。
17.一种生成神经网络系统的不动点神经网络的方法,所述方法包括:
从第一不动点神经网络的多个层当中选择至少一个层作为对象层;
基于被设置为关于所述对象层的量化参数的参数值来生成候选参数值;
确定网络性能水平,所述网络性能水平中的每一个网络性能水平分别对应于所述候选参数值中的相应的一个候选参数值;以及
基于多个候选参数值的候选参数值更新所述量化参数,所述候选参数值对应于最高网络性能水平。
18.根据权利要求17所述的方法,其中,所述第一不动点神经网络包括N个顺序处理的层,
其中,来自所述N个顺序处理的层当中的第N层被选择为所述对象层,并且
其中,N是等于或大于2的整数。
19.根据权利要求17所述的方法,其中,所述确定网络性能水平包括:基于多个评估参考计算关于所述候选参数值中的一个候选参数值的多个网络性能水平,以及基于所述多个网络性能水平和被设置为关于所述多个网络性能水平的多个权重分别执行加权求和运算。
20.根据权利要求17所述的方法,还包括:
在所述量化参数的更新之后,确定最高网络性能水平是否等于或高于参考值;以及
将所述多个层的除了所述对象层之外的层新设置为所述对象层,生成关于如新设置的对象层的候选参数值,导出网络性能水平,并且响应于确定所述最高网络性能水平不等于或不高于参考值而更新所述量化参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170168477A KR20190068255A (ko) | 2017-12-08 | 2017-12-08 | 고정 소수점 뉴럴 네트워크를 생성하는 방법 및 장치 |
KR10-2017-0168477 | 2017-12-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110020717A true CN110020717A (zh) | 2019-07-16 |
Family
ID=66697035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811479804.9A Pending CN110020717A (zh) | 2017-12-08 | 2018-12-05 | 用于生成不动点神经网络的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11694073B2 (zh) |
KR (1) | KR20190068255A (zh) |
CN (1) | CN110020717A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111814955A (zh) * | 2020-06-19 | 2020-10-23 | 浙江大华技术股份有限公司 | 神经网络模型的量化方法、设备及计算机存储介质 |
CN113469352A (zh) * | 2020-03-31 | 2021-10-01 | 上海商汤智能科技有限公司 | 神经网络模型的优化方法、数据处理方法及装置 |
WO2022228425A1 (zh) * | 2021-04-29 | 2022-11-03 | 华为技术有限公司 | 一种模型训练方法及装置 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108364061B (zh) * | 2018-02-13 | 2020-05-05 | 北京旷视科技有限公司 | 运算装置、运算执行设备及运算执行方法 |
WO2019165462A1 (en) * | 2018-02-26 | 2019-08-29 | Google Llc | Unsupervised neural network training using learned optimizers |
US11783200B2 (en) * | 2019-02-08 | 2023-10-10 | International Business Machines Corporation | Artificial neural network implementation in field-programmable gate arrays |
US11625583B2 (en) * | 2019-02-13 | 2023-04-11 | Mipsology SAS | Quality monitoring and hidden quantization in artificial neural network computations |
JP7272121B2 (ja) * | 2019-06-07 | 2023-05-12 | 富士通株式会社 | 演算処理装置、制御方法、及び制御プログラム |
KR102147912B1 (ko) | 2019-08-13 | 2020-08-25 | 삼성전자주식회사 | 프로세서 칩 및 그 제어 방법들 |
WO2021083154A1 (en) * | 2019-10-30 | 2021-05-06 | Huawei Technologies Co., Ltd. | Method and apparatus for quantization of neural networks post training |
US11507702B2 (en) * | 2019-11-05 | 2022-11-22 | Apple Inc. | Secure mode switching in neural processor circuit |
KR20210066623A (ko) * | 2019-11-28 | 2021-06-07 | 삼성전자주식회사 | 서버 및 이의 제어 방법 |
KR20210083935A (ko) | 2019-12-27 | 2021-07-07 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
WO2021182748A1 (ko) * | 2020-03-10 | 2021-09-16 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
US11203361B2 (en) * | 2020-05-05 | 2021-12-21 | StradVision, Inc. | Method for performing on-device learning of machine learning network on autonomous vehicle by using multi-stage learning with adaptive hyper-parameter sets and device using the same |
KR102657904B1 (ko) * | 2020-05-12 | 2024-04-17 | 한국전자통신연구원 | 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치 |
JP6992864B1 (ja) | 2020-09-28 | 2022-01-13 | 沖電気工業株式会社 | ニューラルネットワーク軽量化装置、ニューラルネットワーク軽量化方法およびプログラム |
US11490085B2 (en) * | 2021-01-14 | 2022-11-01 | Tencent America LLC | Model sharing by masked neural network for loop filter with quality inputs |
US20220329837A1 (en) * | 2021-04-06 | 2022-10-13 | Lemon Inc. | Neural Network-Based Post Filter For Video Coding |
KR20220150096A (ko) * | 2021-05-03 | 2022-11-10 | 현대모비스 주식회사 | 딥러닝 머신 및 그 운용방법 |
KR102596769B1 (ko) * | 2022-07-12 | 2023-11-02 | 오픈엣지테크놀로지 주식회사 | 신경망 설계방법 및 이를 위한 장치 |
WO2024135861A1 (ko) * | 2022-12-19 | 2024-06-27 | 한국전자기술연구원 | 가변 데이터 표현형을 적용한 딥러닝 학습 방법 및 이를 적용한 모바일 디바이스 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6012308B2 (ja) * | 2012-07-09 | 2016-10-25 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
US9224089B2 (en) | 2012-08-07 | 2015-12-29 | Qualcomm Incorporated | Method and apparatus for adaptive bit-allocation in neural systems |
US9400955B2 (en) | 2013-12-13 | 2016-07-26 | Amazon Technologies, Inc. | Reducing dynamic range of low-rank decomposition matrices |
CN106575379B (zh) | 2014-09-09 | 2019-07-23 | 英特尔公司 | 用于神经网络的改进的定点整型实现方式 |
US9563825B2 (en) | 2014-11-20 | 2017-02-07 | Adobe Systems Incorporated | Convolutional neural network using a binarized convolution layer |
US20170061279A1 (en) | 2015-01-14 | 2017-03-02 | Intel Corporation | Updating an artificial neural network using flexible fixed point representation |
US10262259B2 (en) | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US10373050B2 (en) * | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
US20160328645A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
US20170076195A1 (en) * | 2015-09-10 | 2017-03-16 | Intel Corporation | Distributed neural networks for scalable real-time analytics |
US10831444B2 (en) * | 2016-04-04 | 2020-11-10 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
US11379688B2 (en) * | 2017-03-16 | 2022-07-05 | Packsize Llc | Systems and methods for keypoint detection with convolutional neural networks |
CN115688877A (zh) * | 2017-06-06 | 2023-02-03 | 格兰菲智能科技有限公司 | 一种用于对待量化数据进行定点化处理的方法及计算装置 |
CN107688849B (zh) * | 2017-07-28 | 2021-04-13 | 赛灵思电子科技(北京)有限公司 | 一种动态策略定点化训练方法及装置 |
WO2019050771A1 (en) * | 2017-09-05 | 2019-03-14 | Panasonic Intellectual Property Corporation Of America | EXECUTION METHOD, EXECUTION DEVICE, LEARNING METHOD, LEARNING DEVICE, AND PROGRAM FOR DEEP NEURAL NETWORK |
US11270187B2 (en) * | 2017-11-07 | 2022-03-08 | Samsung Electronics Co., Ltd | Method and apparatus for learning low-precision neural network that combines weight quantization and activation quantization |
US11216719B2 (en) * | 2017-12-12 | 2022-01-04 | Intel Corporation | Methods and arrangements to quantize a neural network with machine learning |
-
2017
- 2017-12-08 KR KR1020170168477A patent/KR20190068255A/ko not_active Application Discontinuation
-
2018
- 2018-11-20 US US16/196,131 patent/US11694073B2/en active Active
- 2018-12-05 CN CN201811479804.9A patent/CN110020717A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113469352A (zh) * | 2020-03-31 | 2021-10-01 | 上海商汤智能科技有限公司 | 神经网络模型的优化方法、数据处理方法及装置 |
CN111814955A (zh) * | 2020-06-19 | 2020-10-23 | 浙江大华技术股份有限公司 | 神经网络模型的量化方法、设备及计算机存储介质 |
CN111814955B (zh) * | 2020-06-19 | 2024-05-31 | 浙江大华技术股份有限公司 | 神经网络模型的量化方法、设备及计算机存储介质 |
WO2022228425A1 (zh) * | 2021-04-29 | 2022-11-03 | 华为技术有限公司 | 一种模型训练方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US11694073B2 (en) | 2023-07-04 |
US20190180177A1 (en) | 2019-06-13 |
KR20190068255A (ko) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020717A (zh) | 用于生成不动点神经网络的方法和装置 | |
CN109754066B (zh) | 用于生成定点型神经网络的方法和装置 | |
US11790238B2 (en) | Multi-task neural networks with task-specific paths | |
US11907853B2 (en) | Using hierarchical representations for neural network architecture searching | |
US11823028B2 (en) | Method and apparatus for quantizing artificial neural network | |
US11275986B2 (en) | Method and apparatus for quantizing artificial neural network | |
KR102410820B1 (ko) | 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치 | |
CN110852439A (zh) | 神经网络模型的压缩与加速方法、数据处理方法及装置 | |
CN110991652A (zh) | 神经网络模型训练方法、装置及电子设备 | |
CN112508186A (zh) | 训练用于图像识别的神经网络的方法和神经网络设备 | |
WO2019165462A1 (en) | Unsupervised neural network training using learned optimizers | |
CN113128671B (zh) | 一种基于多模态机器学习的服务需求动态预测方法及系统 | |
CN113632106A (zh) | 人工神经网络的混合精度训练 | |
CN111105017A (zh) | 神经网络量化方法、装置及电子设备 | |
JP7111908B2 (ja) | ニューラルネットワークにおける複数の経路の部分活性化 | |
CN113011532A (zh) | 分类模型训练方法、装置、计算设备及存储介质 | |
CN113762370A (zh) | 一种结合高斯随机场的深度网络集合生成方法 | |
CN113222014A (zh) | 图像分类模型训练方法、装置、计算机设备和存储介质 | |
KR20210035702A (ko) | 인공 신경망의 양자화 방법 및 인공 신경망을 이용한 연산 방법 | |
US11875555B2 (en) | Applying self-confidence in multi-label classification to model training | |
EP1837807A1 (en) | Pattern recognition method | |
CN112633464A (zh) | 用于识别图像的计算系统和方法 | |
US20220284240A1 (en) | Methods for training and analysing input data using a machine learning model | |
KR102583943B1 (ko) | 태스크 간의 상관관계 분석 알고리즘을 이용하여 연속학습을 수행하는 신경망 장치 및 신경망 학습 방법 | |
CN111858893B (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 |