CN111950700A - 一种神经网络的优化方法及相关设备 - Google Patents
一种神经网络的优化方法及相关设备 Download PDFInfo
- Publication number
- CN111950700A CN111950700A CN202010650726.5A CN202010650726A CN111950700A CN 111950700 A CN111950700 A CN 111950700A CN 202010650726 A CN202010650726 A CN 202010650726A CN 111950700 A CN111950700 A CN 111950700A
- Authority
- CN
- China
- Prior art keywords
- layer
- neural network
- weight matrix
- feature representation
- mth
- 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 433
- 238000000034 method Methods 0.000 title claims abstract description 144
- 238000005457 optimization Methods 0.000 title abstract description 36
- 239000011159 matrix material Substances 0.000 claims abstract description 336
- 238000013139 quantization Methods 0.000 claims abstract description 170
- 230000004913 activation Effects 0.000 claims abstract description 37
- 238000012549 training Methods 0.000 claims description 158
- 230000015654 memory Effects 0.000 claims description 59
- 230000006870 function Effects 0.000 claims description 53
- 238000012512 characterization method Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 44
- 238000007667 floating Methods 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 39
- 238000003860 storage Methods 0.000 claims description 35
- 230000004584 weight gain Effects 0.000 claims description 30
- 235000019786 weight gain Nutrition 0.000 claims description 30
- 238000010606 normalization Methods 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000000605 extraction Methods 0.000 claims description 20
- 238000012417 linear regression Methods 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 5
- 238000003672 processing method Methods 0.000 claims description 2
- 238000013473 artificial intelligence Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 24
- 238000013461 design Methods 0.000 description 21
- 238000013527 convolutional neural network Methods 0.000 description 17
- 230000002829 reductive effect Effects 0.000 description 15
- 230000008901 benefit Effects 0.000 description 13
- 238000001514 detection method Methods 0.000 description 13
- 238000003062 neural network model Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000011022 operating instruction Methods 0.000 description 3
- 239000000126 substance Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012360 testing method 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
- G06T3/4076—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution using the original low-resolution images to iteratively correct the high-resolution images
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种神经网络的优化方法及相关设备,可应用于人工智能领域中的计算机视觉领域(如,图像超分辨重建)等,该方法包括:通过一种新的量化模型对神经网络的权重矩阵/特征表示(或称特征图、激活值)进行二值化,具体地,第一量化模型用于根据神经网络第1层至第m层的m个第一权重矩阵得到神经网络第m层的第二权重矩阵,第二量化模型用于根据第1层至第m层的m个第一特征表示得到神经网络第m层的第二特征表示,这种优化方式使得各层权重矩阵/特征表示的取值不仅和自身相关,也与其他层的权重矩阵/特征表示相关,降低了量化误差,使神经网络的训练和使用更加高效,同时,相比现有二值神经网络,提高了图像信息处理的精度。
Description
技术领域
本申请涉及机器学习领域,尤其涉及一种神经网络的优化方法及相关设备。
背景技术
神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术,是深度学习的基础,目前的神经网络一般采用浮点计算,需要较大的存储空间和计算量,严重阻碍在边缘设备(如,摄像头)及端侧设备(如,手机)上的应用。二值神经网络以其高模型压缩率和快计算速度的潜在优势,近些年成为深度学习的热门研究方向。
二值神经网络(binary neural network,BNN)是在神经网络的基础上,将神经网络的权重矩阵中的各个权重二值化为1或者-1。通过二值化操作,使模型的参数占用更小的存储空间(原来的每个权重需要32位浮点数存储,现在只要一个bit就可以存下来,内存消耗理论上减少为原来的1/32倍)。BNN的实质是将原来的神经网络的权重矩阵二值化(即各个权重取值为+1或-1),并没有改变网络的结构,主要在梯度下降、权值更新等做了一些优化处理。
目前,神经网络的二值化的方式是单独针对某一层的权重矩阵进行二值化,也就是说,这种二值化的方式仅是对神经网络各层的权重矩阵单独进行量化,使得量化误差大。
发明内容
本申请实施例提供了一种神经网络优化方法及相关设备,用于调整神经网络各层的权重矩阵中各个权重的取值为+1或-1,每一层调整后的权重矩阵(如,第m层的权重矩阵)的取值都与之前各层(如,第1层至第m-1层)未调整之前的权重矩阵的取值相关,这种优化方式使得各层权重矩阵中各个权重的取值不仅和自身相关,也与其他层的权重矩阵相关,降低了量化误差,使得神经网络的训练和使用更加高效。
基于此,本申请实施例提供以下技术方案:
第一方面,本申请实施例首先提供一种神经网络的优化方法,可用于人工智能领域中,该神经网络包括第一神经网络模块,该第一神经网络模块包括n个卷积层,具体地,该方法包括:
首先,训练设备会获取第一量化模型,该第一量化模型就用于根据神经网络中第一神经网络模块的第1层至第m层的m个第一权重矩阵得到第一神经网络模块的第m层的第二权重矩阵,其中,第一神经网络模块每层的第一权重矩阵指的就是初始的用32位浮点数表示的权重矩阵,第一神经网络模块每层的第二权重矩阵指的就是被赋值为+1或-1的权重矩阵。训练设备获取到第一量化模型之后,就可根据该第一量化模型,将第一神经网络模块各层对应的每个第一权重矩阵进行二值化操作,得到第一神经网络模块各层对应的每个第二权重矩阵。训练设备通过上述步骤将第一神经网络模块各层的第一权重矩阵根据第一量化模型二值化为第二权重矩阵之后,就可进一步通过训练集中的训练数据对神经网络进行训练,从而得到训练后的神经网络,最后,将可训练后的神经网络部署在目标设备上进行使用。需说明的是,在本申请实施例中,目标设备具体可以是移动端的设备,如摄像头、智能家居等边缘设备,也可以是如手机、个人计算机、计算机工作站、平板电脑、智能可穿戴设备(如,智能手表、智能手环、智能耳机等)、游戏机、机顶盒、媒体消费设备等端侧设备,具体此处对目标设备的类型不做限定。
在本申请上述实施方式中,通过一种新的量化模型(即第一量化模型)对神经网络的权重矩阵进行二值化,该第一量化模型用于根据神经网络第1层至第m层的m个第一权重矩阵,得到神经网络第m层的第二权重矩阵,其中,每层的第一权重矩阵均为用32位浮点数表示的权重矩阵,每层的第二权重矩阵均为赋值+1或-1的权重矩阵,这样每层调整后的权重矩阵(如,第m层的权重矩阵)的取值都与之前各层(如,第1层至第m-1层)未调整之前的权重矩阵的取值相关,这种优化方式使得各层权重矩阵中各个权重的取值不仅和自身相关,也与其他层的权重矩阵相关,降低了量化误差,使得神经网络的训练和使用更加高效。
在第一方面的一种可能实现方式中,训练设备根据该第一量化模型,将第一神经网络模块各层对应的每个第一权重矩阵进行二值化操作,得到第一神经网络模块各层对应的每个第二权重矩阵具体可以是通过得到第m层的第二权重矩阵,其中,W1,W2,…,Wm为第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为第m层的第二权重矩阵。也可以是通过得到第m层的第二权重矩阵,其中,W1,W2,…,Wm为第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,k为可训练的一个非负参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为第m层的第二权重矩阵。具体此处对第一量化模型的具体表现形式不做限定,只要第一量化模型是使得当前层的第二权重矩阵与之前至少两层的第一权重矩阵相关,那么都属于本申请所述的第一量化模型。
在本申请上述实施方式中,提供了几种对第一权重矩阵的不同量化形式,即给出了第一量化模型的几种具体表达形式,具备可选择性和灵活性。
在第一方面的一种可能实现方式中,还可以进一步确定第m层的第二权重矩阵的权值增益,并根据该第m层的第二权重矩阵的权重增益对第m层的第二权重矩阵进行调整,使得调整后的第m层的第二权重矩阵与第m层的第一权重矩阵之间的差值小于所述第m层的第二权重矩阵与第m层的第一权重矩阵之间的差值。
在本申请上述实施方式中,利用权值增益对第二权重矩阵进行调整的好处在于:使得调整后的第二权重矩阵与初始的32位浮点数的第一权重矩阵更接近,这样在实际应用中,能更好的保留图像信息的精度。
在第一方面的一种可能实现方式中,由于第一线性组合参数是一组非负参数,这些参数的取值在初始化状态时是未确定最终取值的,因此,可以设置第一线性组合参数为神经网络的网络参数,以使得在根据训练集中的训练数据对神经网络进行训练的过程中,对第一线性组合参数进行训练。
在本申请上述实施方式中,提供了一种优化第一线性组合参数的具体实现方式,这种优化过程的好处在于:在对神经网络进行训练的过程中,同时完成了对第一线性组合参数的优化,简单方便。
在第一方面的一种可能实现方式中,对第一线性组合参数的优化过程也可以是:确定第m层的第一权重矩阵与第m层的第二权重矩阵的模值为第一线性组合参数中的αm,并对该模值进行线性回归得到αm的最终取值。
在本申请上述实施方式中,提供了另一种优化第一线性组合参数的具体实现方式,通过线性回归的方式得到第一线性组合参数中每个参数的取值,使得第一线性组合参数的优化方法具有可选择性。
在第一方面的一种可能实现方式中,训练设备还可以按照第一神经网络模块n个卷积层连接的先后顺序依次计算第一神经网络模块每层的第一特征表示,并获取第二量化模型,该第二量化模型就用于根据第一神经网络模块第1层至第m层的m个第一特征表示,得到第一神经网络模块第m层的第二特征表示,其中,每层的第一特征表示均为用32位浮点数表示的特征表示,每层的第二特征表示均为赋值+1或-1的特征表示,1≤m≤n,最后,根据该第二量化模型,将第一神经网络模块各层对应的每个第一特征表示进行二值化操作,得到第一神经网络模块各层对应的每个第二特征表示。需要注意的是,训练设备计算第一神经网络模块每层的第一特征表示与获取第二量化模型之间没有先后顺序,训练设备可以先计算第一神经网络模块每层的第一特征表示,再获取第二量化模型;训练设备也可以先获取第二量化模型,再计算第一神经网络模块每层的第一特征表示,具体此处不做限定。
由于只针对权重矩阵进行二值化操作,那么各层的特征表示(也可称为特征图、激活值等)依然是用32位浮点数表示的,权重矩阵与特征表示进行运算时,还是需要通过32位浮点数进行,并不能节省计算开销,只是部分减小了神经网络模型存储所占用的空间。因此,在本申请上述实施方式中,进一步对第一神经网络模块各层输出的特征表示进行二值化,这样二值化的权重矩阵与二值化的特征表示就可直接进行位运算,减小了计算开销。
在第一方面的一种可能实现方式中,训练设备根据该第二量化模型,将第一神经网络模块各层对应的每个第一特征表示进行二值化操作,得到第一神经网络模块各层对应的每个第二特征表示具体可以是通过得到第m层的第二特征表示,其中,A1,A2,…,Am为第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为所述第m层的第二特征表示。也可以是通过得到第m层的第二特征表示,其中,A1,A2,…,Am为第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,l为可训练的一个非负参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为第m层的第二特征表示。具体此处对第二量化模型的具体表现形式不做限定,只要第二量化模型是使得当前层的第二特征表示与之前至少两层的第一特征表示相关,那么都属于本申请所述的第二量化模型。
在本申请上述实施方式中,提供了几种对第一特征表示的不同量化形式,即给出了第二量化模型的几种具体表达形式,具备可选择性和灵活性。
在第一方面的一种可能实现方式中,还可以进一步确定第m层的第二特征表示的激活增益,并根据该第m层的第二特征表示的激活增益对第m层的第二特征表示进行调整,使得调整后的第m层的第二特征表示与第m层的第一特征表示之间的差值小于第m层的第二特征表示与第m层的第一特征表示之间的差值。
在本申请上述实施方式中,利用激活增益对第二特征表示进行调整的好处在于:使得调整后的第二特征表示与初始的32位浮点数的第一特征表示更接近,由于特征表示对图像信息的精度影响作用更大,因此在实际应用中,进一步提高图像信息保留的精度。
在第一方面的一种可能实现方式中,训练设备按照第一神经网络模块n个卷积层连接的先后顺序依次计算第一神经网络模块每层的第一特征表示具体可以是:根据第m层的第二权重矩阵、第m-1层的第二特征表示、第m层的第二权重矩阵的权值增益、第m-1层的第二特征表示的激活增益计算第m层的第一特征表示。这里需要注意的是,由于神经网络的特征表示都是一层一层计算的,正常的卷积操作也是一层一层向后计算,因此训练设备在计算第一神经网络模块第二层的特征表示的时候,第一层的特征表示已经计算出来了。因此,在本申请的一些实施方式中,第一神经网络模块第一层的第二特征表示是直接在第一层的第一特征表示上通过Sign函数得到,训练设备在计算第二层及以后层数的第二特征表示时,则可以根据第m层的第二权重矩阵、第m-1层的第二特征表示、第m层的第二权重矩阵的权值增益、第m-1层的第二特征表示的激活增益计算第m层的第一特征表示。
在本申请上述实施方式中,提供了一种计算第一特征表示的实现方式,具备可实现性。
在第一方面的一种可能实现方式中,计算第一特征表示的实现方式具体可以是:对第m层的第二权重矩阵和第m-1层的第二特征表示进行卷积操作,得到卷积结果,之后,将卷积结果与第m层的第二权重矩阵的权值增益进行点乘运算,得到点乘结果,最后,将点乘结果与第m-1层的第二特征表示的激活增益进行点乘运算,得到第m层的第一特征表示。
在本申请上述实施方式中,具体阐述了如何得到第一特征表示的方法,具备可实现性。
在第一方面的一种可能实现方式中,由于第二线性组合参数是一组非负参数,这些参数的取值在初始化状态时是未确定最终取值的,因此,可以设置第二线性组合参数为神经网络的网络参数,这样在根据训练集中的训练数据对所述神经网络进行训练的过程中,同时可以对该第二线性组合参数进行训练。
在本申请上述实施方式中,提供了一种优化第二线性组合参数的具体实现方式,这种优化过程的好处在于:在对神经网络进行训练的过程中,同时完成了对第二线性组合参数的优化,简单方便。
在第一方面的一种可能实现方式中,对第二线性组合参数的优化过程也可以是:确定第m层的第一特征表示与第m层的第二特征表示的模值为第二线性组合参数中的βm,并对该模值进行线性回归得到βm的最终取值。
在本申请上述实施方式中,提供了另一种优化第二线性组合参数的具体实现方式,通过线性回归的方式得到第二线性组合参数中每个参数的取值,使得第二线性组合参数的优化方法具有可选择性。
在第一方面的一种可能实现方式中,神经网络还包括第二神经网络模块和第三神经网络模块,所述第二神经网络模块用于对输入图像进行全精度的特征提取,所述第三神经网络模块用于对第一神经网络模块的输出进行图像重建,得到输出图像。
在本申请上述实施方式中,阐述了神经网络除了包括第一神经网络模块之外,还可以包括第二神经网络模块和第三神经网络模块,其中,第二神经网络模块用于对输入图像进行全精度的特征提取,第三神经网络模块用于对第一神经网络的输出进行图像重建,得到输出图像。第二神经网络模块以及第三神经网络模块的目的是为了在特征提取阶段和图像重建阶段采用全精度的卷积过程,从而保证模型的性能,使得最终输出图像的精度更高。
在第一方面的一种可能实现方式中,所述输入图像包括一张或多张低分辨率图像,所述输出图像包括一张高分辨率图像。
在本申请上述实施方式中,当该神经网络应用在图像超分辨率重建的场景时,那么输入图像可以是一张或多张低分辨率图像,输出图像就会是一张高分辨率图像。
本申请实施例第二方面还提供了一种图像处理方法,该方法具体可以包括:获取输入图像,并通过训练后的神经网络对输入图像进行处理,得到输出图像,该训练后的神经网络为经过上述第一方面或第一方面任意一种可能实现方式的方法优化过的神经网络。
本申请实施例第三方面提供一种神经网络的网络结构,具体可以包括:第一神经网络模块、第二神经网络模块、第三神经网络模块,其中,第一神经网络模块包括n个卷积层,第二神经网络模块,用于对输入图像进行全精度的特征提取,得到第一目标特征表示;第一神经网络模块,用于对第一目标特征表示进行非线性映射,得到第二目标特征表示;其中,第一神经网络模块各层的权重矩阵为经过第一量化模型处理过的第二权重矩阵,该第一量化模型用于根据第一神经网络模块第1层至第m层的m个第一权重矩阵得到第一神经网络模块第m层的第二权重矩阵,每层的第一权重矩阵均为用32位浮点数表示的权重矩阵,每层的第二权重矩阵均为赋值+1或-1的权重矩阵,1≤m≤n;第三神经网络模块,用于对第二目标特征表示进行图像重建,得到输出图像。
在本申请上述实施方式中,介绍了一种神经网络的网络结构,该神经网络与其他神经网络不同的地方在于,其第一神经网络模块各层的权重矩阵是经过第一量化模型二值化过的,使得第一神经网络模块每层二值化后的权重矩阵(即第二权重矩阵)的取值不仅和自身相关,也与前面层的所有未二值化的权重矩阵(即第一权重矩阵)的取值相关,降低了量化误差,使得神经网络的训练和使用更加高效。
在第三方面的一种可能实现方式中,第一量化模型可以是: 其中,W1,W2,…,Wm为第一神经网络模块701第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为第m层的第二权重矩阵。该第一量化模型也可以是: 其中,W1,W2,…,Wm为第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,k为可训练的一个非负参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为第m层的第二权重矩阵。具体此处对第一量化模型的具体表现形式不做限定,只要第一量化模型是使得当前层的第二权重矩阵与之前至少两层的第一权重矩阵相关,那么都属于本申请所述的第一量化模型。
在本申请上述实施方式中,给出了几种第一量化模型的具体形式,具备灵活性。
在第三方面的一种可能实现方式中,第一神经网络模块各层的特征表示为经过第二量化模型处理过的第二特征表示,该第二量化模型用于根据第一神经网络模块第1层至第m层的m个第一特征表示得到第一神经网络模块第m层的第二特征表示,其中,每层的第一特征表示均为用32位浮点数表示的特征表示,每层的第二特征表示均为赋值+1或-1的特征表示。
在本申请上述实施方式中,不仅对第一神经网络模块的权重矩阵进行二值化操作,还进一步通过第二量化模型对第一神经网络模块的特征表示进行二值化操作,这样二值化的权重矩阵与二值化的特征表示就可直接进行位运算,减小了计算开销。
在第三方面的一种可能实现方式中,第二量化模型可以是: 其中,A1,A2,…,Am为第一神经网络模块701第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为第m层的第二特征表示。该第二量化模型还可以是: 其中,A1,A2,…,Am为第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,l为可训练的一个非负参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为第m层的第二特征表示。具体此处对第二量化模型的具体表现形式不做限定,只要第二量化模型是使得当前层的第二特征表示与之前至少两层的第一特征表示相关,那么都属于本申请所述的第二量化模型。
在本申请上述实施方式中,给出了几种第二量化模型的具体形式,具备灵活性。
本申请实施例第四方面提供一种训练设备,该训练设备具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请实施例第五方面提供一种执行设备,该执行设备具有实现上述第二方面的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请实施例第六方面提供一种训练设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第一方面或第一方面任意一种可能实现方式的方法。
本申请实施例第七方面提供一种执行设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请上述第二方面的方法。
本申请第八方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第二方面的方法。
本申请实施例第九方面提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第二方面的方法。
附图说明
图1为一种二值化操作过程中误标情况的一个示意图;
图2为本申请实施例提供的人工智能主体框架的一种结构示意图;
图3为本申请实施例提供的任务处理系统的一种系统架构图;
图4为本申请实施例提供的神经网络的优化方法的一种流程示意图;
图5为本申请实施例提供的一种通过权值增益对第二权重矩阵进行调整的一个示意图;
图6为本申请实施例提供的神经网络的优化方法的一个整体过程的示意图;
图7为本申请实施例提供的一种神经网络的网络结构的示意图;
图8为本申请实施例训练后的神经网络在图像超分辨重建上的一个应用场景示意图;
图9为本申请实施例训练后的神经网络在终端手机上进行物体检测的一个应用场景的示意图;
图10为本申请实施训练后的神经网络在轮式移动设备上进行自动驾驶场景分割的一个应用场景的示意图;
图11为本申请实施训练后的神经网络在人脸识别应用上的一个应用场景的示意图;
图12为本申请实施训练后的神经网络在语音识别应用上的一个应用场景的示意图;
图13为本申请实施例提供的方案与其他现有方案基于VDSR模型的视觉评估的对比图;
图14为本申请实施例提供的方案与其他现有方案基于SRRestNet模型的视觉评估的对比图;
图15为本申请实施例提供的训练设备的一个示意图;
图16为本申请实施例提供的执行设备的一个示意图;
图17为本申请实施例提供的训练设备的另一示意图;
图18为本申请实施例提供的执行设备的另一示意图;
图19为本申请实施例提供的芯片的一种结构示意图。
具体实施方式
本申请实施例提供了一种神经网络的优化及相关设备,用于调整神经网络各层的权重矩阵中各个权重的取值为+1或-1,每一层调整后的权重矩阵(如,第m层的权重矩阵)的取值都与之前各层(如,第1层至第m-1层)未调整之前的权重矩阵的取值相关,这种优化方式使得各层权重矩阵中各个权重的取值不仅和自身相关,也与其他层的权重矩阵相关,降低了量化误差,使得神经网络的训练和使用更加高效。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
在介绍本申请实施例之前,先对目前神经网络二值化的技术(即BNN)及相关背景进行简单介绍,使得后续便于理解本申请实施例。先介绍BNN被提出的相关背景,在深度学习领域,神经网络的应用无处不在,中央处理器(central processing unit,CPU)已经渐渐满足不了各种深度神经网络(如,卷积神经网络(convolutional neural networks,CNN))的高并发性、高计算量等要求,图形处理器(graphics processing unit,GPU)虽然可以部分解决高并发性、高计算量的问题,但是较大的功耗、较高的价格等原因也限制了它在移动端(包括端侧设备及边缘设备)的应用,一般都是企业级或者科研院所能购买高端的GPU做神经网络的训练、测试和应用。目前,一些移动端的手机芯片已经集成了神经网络处理器(NPU),比如华为的麒麟(Kirin)970芯片,但是如何能够达到功耗和性能的平衡依然是个亟待解决的问题。
限制深度神经网络在移动端上应用的主要是两个技术问题:1)计算量过大;2)神经网络的参数量过大。以CNN为例,卷积操作的计算量巨大,一个含有几十万个参数量的卷积核,卷积操作的浮点运算次数(floating point of operations,FLOPs)可达几千万,现有的一个普通的具有n层的CNN总共的计算量则可高达几十亿个FLOPs,在GPU上能够实时运算的CNN到了移动端则十分缓慢,在移动端的计算资源难以满足现有CNN的实时运算的情况下,就需要考虑如何降低卷积计算量;此外,在目前常用的CNN中,每个卷积层的参数量常常能够达到几万、几十万甚至更多,整个网络n层的参数加起来,能够达到几千万,并且每个参数都是用32位浮点数表示,这样就需要上百兆字节的内存或缓存来存储这些参数,而在移动端中,内存和缓存资源非常有限,如何减低卷积层的参数量,以使得CNN适配移动端的相关设备,也是个亟待解决的问题,在此背景下,BNN应运而生。
目前,通常使用的BNN是在现有的神经网络的基础上,对权值做二值化处理,即将原来神经网络各层的权重矩阵中的各个权重的取值赋值为+1或-1。BNN并不会改变原本的神经网络的网络结构,其主要是在梯度下降、权值更新、卷积运算上做了一些优化处理。如何对浮点型的神经网络的权重矩阵进行二值化,目前主要有两种方式,第一种方式是基于符号函数(也称为Sign函数)的确定性方法,公式(1)如下:
其中,w为原来神经网络各层的权重矩阵中的各个权重的取值,W和Wb分别表示量化前的权重矩阵和量化后的权重矩阵。
第二种方式是随机式的二值化方法(可称为统计法),公式(2)如下:
理论上来说,第二种方式更合理,但是,实际操作需要用硬件生成随机数,比较困难。因此,在实际应用中,第二种方式目前还未能应用,采用的均是第一种方式,即通过Sign函数来进行二值化。
然而,这种二值化的方式仅是对神经网络各层的权重矩阵单独进行二值化,没有考虑各层权重矩阵之间的相关性,这会存在两个问题:
(1)量化误差大
因为这种二值化的方式仅单独针对当前权重矩阵进行二值化,不能有效的保留像素细节信息,在神经网络的某层(如,第m层),一些本该二值化为+1的权重可能被二值化为-1,如图1中的深色底的权重即为误标为-1的情况;而一些本该二值化为-1的权重可能被二值化为+1,如图1中的浅色底的权重即为误标为+1的情况。
(2)反向传播运算中梯度传导的精度降低
在前向传播过程中,通过第一种方式的Sign函数,可以将浮点型的各层的权重矩阵的各个权重赋值为+1或-1,因此当用于预测时,权重的取值仅为+1或-1,可以减小参数的内存占用和存取量;但是,在训练时,需要进行反向传播运算,反向传播运算在计算梯度时需要对Sign函数进行求导,而对Sign函数求导的结果如下公式(3)所示:
因此,在对BNN进行训练时,上述Sign函数不可微,这种情况下,一般是直接使用二值化的权重矩阵的导数对浮点型的权重矩阵进行更新,并采用裁剪操作增强训练的稳定性,如公式(4)所示:
其中,Clip表示裁剪操作,C表示损失函数,α表示可训练的尺度因子(scale,一个非负系数),gw表示裁剪后各层权重矩阵W的权值梯度,η表示神经网络的学习率,UpdataBinaryParameter表示权重矩阵W的迭代过程。
然而这种直接使用二值化的权重矩阵的导数对浮点型的权重矩阵进行更新的方式降低了梯度传导的精度,不利于神经网络的训练。
基于此,为解决上述所述问题,本申请实施例提供了一种神经网络的优化方法,用于调整神经网络各层的权重矩阵中各个权重的取值为+1或-1,每一层调整后的权重矩阵(如,第m层的权重矩阵)的取值都与之前各层(如,第1层至第m-1层)未调整之前的权重矩阵的取值相关,这种优化方式使得各层权重矩阵中各个权重的取值不仅和自身相关,也与其他层的权重矩阵相关,降低了量化误差,使得神经网络的训练和使用更加高效。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先,对人工智能系统总体工作流程进行描述,请参见图2,图2示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、平安城市等。
本申请实施例可以应用在神经网络的网络结构的优化设计上,而通过本申请优化过权重矩阵的神经网络具体可以应用在人工智能领域的各个细分领域中,如,图像处理领域,计算机视觉领域,语义分析领域等等,具体的,结合图2来讲,本申请实施例中基础设施获取的数据集中的数据可以是通过摄像头、雷达等传感器获取到的不同类型的多个数据(也可称为训练数据,多个训练数据就构成训练集),也可以是多个图像数据或多个视频数据,只要该训练集满足用于对神经网络进行迭代训练并能用于实现本申请的神经网络的权重矩阵进行优化的功能即可,具体此处对训练集内的数据类型不限定。
接下来对任务处理系统的架构进行介绍,请参阅图3,图3为本申请实施例提供的任务处理系统的一种系统架构图,在图3中,任务处理系统200包括执行设备210、训练设备220、数据库230、客户设备240、数据存储系统250和数据采集设备260,执行设备210中包括计算模块211。其中,数据采集设备260用于获取用户需要的开源的大规模数据集(即训练集),并将训练集存入数据库230中,训练设备220基于数据库230中的维护的训练集对本申请神经网络201进行训练,训练得到的训练后的神经网络201再在执行设备210上进行运用。执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。数据存储系统250可以置于执行设备210中,也可以为数据存储系统250相对执行设备210是外部存储器。
经由训练设备220训练得到的训练后的神经网络201可以应用于不同的系统或设备(即执行设备210)中,具体可以是边缘设备或端侧设备,例如,手机、平板、笔记本电脑、监控系统(如,摄像头)、安防系统等等。在图3中,执行设备210配置有I/O接口212,与外部设备进行数据交互,“用户”可以通过客户设备240向I/O接口212输入数据。如,客户设备240可以是监控系统的摄像设备,通过该摄像设备拍摄的图像作为输入数据输入至执行设备210的计算模块211,由计算模块211对输入的图像进行检测后得出检测结果,再将该检测结果输出至摄像设备或直接在执行设备210的显示界面(若有)进行显示;此外,在本申请的一些实施方式中,客户设备240也可以集成在执行设备210中,如,当执行设备210为手机时,则可以直接通过该手机获取到目标任务(如,可以通过该手机的摄像头拍摄到图像,或,通过该手机的录音模块录取到的目标语音等,此处对目标任务不做限定)或者接收其他设备(如,另一个手机)发送的目标任务,再由该手机内的计算模块211对该目标任务进行检测后得出检测结果,并直接将该检测结果呈现在手机的显示界面。此处对执行设备210与客户设备240的产品形态不做限定。
值得注意的,图3仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图3中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中;在图3中,客户设备240相对执行设备210是外部设备,在其他情况下,客户设备240也可以集成在执行设备210中。
还需要说明的是,本申请实施例所述的神经网络201的训练可以是在云侧实现,例如,可以由云侧的训练设备220(该训练设备220可设置在一个或多个服务器或者虚拟机上)获取训练集,并根据训练集内的多组训练数据对神经网络进行训练,得到训练后的神经网络201,之后,该训练后的神经网络201再发送给执行设备210进行应用,例如,发送给执行设备210进行图像超分辨重建,示例性地,图3对应的系统架构中所述,就是由训练设备220对神经网络进行训练,训练后的神经网络201再发送给执行设备210进行使用;上述实施例所述的神经网络201的训练也可以是在终端侧实现,即训练设备220可以是位于终端侧,例如,可以由终端设备(如,手机、智能手表等)、轮式移动设备(如,自动驾驶车辆、辅助驾驶车辆等)等获取训练集,并根据训练集内的多组训练数据对神经网络进行训练,得到训练后的神经网络201,该训练后的神经网络201就可以直接在该终端设备使用,也可以由该终端设备发送给其他的设备进行使用。具体本申请实施例对神经网络201在哪个设备(云侧或终端侧)上进行训练或应用不做限定。
接下来介绍本申请实施例所提供的神经网络的优化方法,请参阅图4,图4为本申请实施例提供的神经网络的优化方法的一种流程示意图,具体可以包括:
401、获取第一量化模型,第一量化模型用于根据第一神经网络模块的第1层至第m层的m个第一权重矩阵得到第一神经网络模块的第m层的第二权重矩阵。
首先,训练设备会获取第一量化模型,该第一量化模型就用于根据神经网络中第一神经网络模块的第1层至第m层的m个第一权重矩阵得到第一神经网络模块的第m层的第二权重矩阵,其中,第一神经网络模块每层的第一权重矩阵指的就是初始的用32位浮点数表示的权重矩阵,第一神经网络模块每层的第二权重矩阵指的就是被赋值为+1或-1的权重矩阵。
需要说明的是,在本申请实施例中,由于现有的基于神经网络的图像处理(如,图像超分辨重建)的过程一般分为三个阶段:特征提取、非线性映射和图像重建,假设x为输入的低分辨率(LR)图像,y为最终重建的高分辨率(HR)图像,通用的用于进行该图像处理的神经网络模型可以简化表示为公式(5):
其中ε对应特征提取阶段,对应非线性映射阶段,对应图像重建阶段。一般而言,ε和阶段只采用一个卷积层来实现图像到深度特征的变换及其逆变换,而神经网络模型的计算复杂度几乎完全取决于阶段模块的设计,阶段模块可以包括n个卷积层,具体由设计的需求和复杂度决定。
上述只是以图像处理中的图像超分辨重建的这个应用场景进行举例示意,在所有的图像处理过程中,一般都是具有上述三个阶段,只不过在每个阶段,模型的神经网络的层数会有一些不同,本质都是一样的,此处不予赘述。
因此,在本申请的一些实施方式中,上述第一神经网络模块可以是包括特征提取、非线性映射和图像重建这三个阶段,这种情况下,第一量化模型就可应用于神经网络的所有层,即神经网络的所有层的第一权重矩阵都可被二值化为+1或-1。这种方式的好处在于:神经网络的模型参数可占据最小的存储空间(原来的每个权重需要32位浮点数存储,现在只要一个bit就可以存下来,内存消耗理论上减少为原来的1/32倍),但是图像处理的精度可能相应就会被降低。上述第一神经网络模块也可以是只包括非线性映射阶段,这种情况下,第一量化模型只应用于神经网络的阶段,即神经网络的阶段中各层的第一权重矩阵都可被二值化为+1或-1。这种方式的好处在于:在ε和阶段采用了全精度的卷积过程,可以保证模型的性能,只对阶段各层的权重矩阵进行二值化处理,在部分减轻模型尺寸的前提下,还保证了图像处理的精度。上述第一神经网络模块还可以是包括特征提取和非线性映射这两个阶段,还可以是包括非线性映射和图像重建这两个阶段,具体此处对第一神经网络模块包括哪几个阶段不做限定,不同的地方只在于,第一神经网络模块包括的阶段不同,可以二值化的神经网络层的位置不同、层数不同而已。为便于理解,在以下的实施例中,均以第一神经网络模块包括的是非线性映射阶段为例进行说明。
402、根据第一量化模型,将第一神经网络模块各层对应的每个第一权重矩阵进行二值化操作,得到第一神经网络模块各层对应的每个第二权重矩阵。
训练设备获取到第一量化模型之后,就可根据该第一量化模型,将第一神经网络模块各层对应的每个第一权重矩阵进行二值化操作,得到第一神经网络模块各层对应的每个第二权重矩阵。具体地,包括但不限于如下方式:1)通过 得到第m层的第二权重矩阵,其中,W1,W2,…,Wm为第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为第m层的第二权重矩阵。2)通过得到第m层的第二权重矩阵,其中,W1,W2,…,Wm为第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,k为可训练的一个非负参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为第m层的第二权重矩阵。具体此处对第一量化模型的具体表现形式不做限定,只要第一量化模型是使得当前层的第二权重矩阵与之前至少两层的第一权重矩阵相关,那么都属于本申请所述的第一量化模型。
需要说明的是,在本申请的一些实施方式中,第一线性组合参数可以通过但不限如下两种方式进行优化:
a、设置第一线性组合参数为神经网络的网络参数,这样在根据训练集中的训练数据对所述神经网络进行训练的过程中,同时可以对该第一线性组合参数进行训练。
b、确定第m层的第一权重矩阵与第m层的第二权重矩阵的模值为第一线性组合参数中的αm,并对该模值进行线性回归得到αm的最终取值,如公式(6)所示:
针对第一神经网络模块中的任意一层,都可根据求模值,并对模值进行线性回归的方式得到,此处不予赘述。
需要说明的是,在本申请的一些实施方式中,还可以进一步确定第m层的第二权重矩阵的权值增益,并根据该第m层的第二权重矩阵的权重增益对第m层的第二权重矩阵进行调整,使得调整后的第m层的第二权重矩阵与第m层的第一权重矩阵之间的差值小于所述第m层的第二权重矩阵与第m层的第一权重矩阵之间的差值。利用权值增益对第二权重矩阵进行调整的好处在于:使得调整后的第二权重矩阵与初始的32位浮点数的第一权重矩阵更接近,这样在实际应用中,能更好的保留图像信息的精度。
需要说明的是,在本申请的一些实施方式中,第m层的第二权重矩阵的权值增益可以是可训练的一个非负系数,如公式(7)所示:
为便于理解,请参阅图5,假设第一神经网络模块第5层的权重矩阵为一个3×3的矩阵,且经过训练得到的γ5=4,那么经过γ5调整后得到的就如图5右边部分所示。需要说明的是,m不同,训练得到的γm取值也不同,例如,在图5中,第5层的γ5=4,第3层的γ3经过训练后可能取值是2等。
其中,cin为输入通道,c0ut为输出通道,k×k为第m层卷积核尺寸。将E(|Wm|复制cin×k×k份构成新矩阵得到的新矩阵实质并没有改变,只是在形式上做了一些改变,其表示的依然是第m层的第二权重矩阵的权值增益,此时,调整后的第m层的第二权重矩阵可用公式(9)表示:
需要说明的是,在上述实施方式中,只是针对权重矩阵进行二值化操作,各层的特征表示(也可称为特征图、激活值等)依然是用32位浮点数表示的,权重矩阵与特征表示进行运算时,还是需要通过32位浮点数进行,并不能节省计算开销,只是部分减小了神经网络模型存储所占用的空间。因此,在本申请的一些实施方式中,还可进一步对第一神经网络模块各层输出的特征表示进行二值化,这样二值化的权重矩阵与二值化的特征表示就可直接进行位运算,减小了计算开销。
在本申请的一些实施方式中,对第一神经网络模块各层的特征表示进行二值化的具体过程可以通过但不限于如下方式:首先,训练设备按照第一神经网络模块n个卷积层连接的先后顺序依次计算第一神经网络模块每层的第一特征表示,并获取第二量化模型,该第二量化模型就用于根据第一神经网络模块第1层至第m层的m个第一特征表示,得到第一神经网络模块第m层的第二特征表示,其中,每层的第一特征表示均为用32位浮点数表示的特征表示,每层的第二特征表示均为赋值+1或-1的特征表示,1≤m≤n,最后,根据该第二量化模型,将第一神经网络模块各层对应的每个第一特征表示进行二值化操作,得到第一神经网络模块各层对应的每个第二特征表示。
需要说明的是,在本申请的一些实施方式中,训练设备根据该第二量化模型,将第一神经网络模块各层对应的每个第一特征表示进行二值化操作,得到第一神经网络模块各层对应的每个第二特征表示。具体地,包括但不限于如下方式:1)通过 得到第m层的第二特征表示,其中,A1,A2,…,Am为第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为所述第m层的第二特征表示。2)通过得到第m层的第二特征表示,其中,A1,A2,…,Am为第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,l为可训练的一个非负参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为第m层的第二特征表示。具体此处对第二量化模型的具体表现形式不做限定,只要第二量化模型是使得当前层的第二特征表示与之前至少两层的第一特征表示相关,那么都属于本申请所述的第二量化模型。
需要说明的是,在本申请的一些实施方式中,第二线性组合参数可以通过但不限如下两种方式进行优化:
a、设置第二线性组合参数为神经网络的网络参数,这样在根据训练集中的训练数据对所述神经网络进行训练的过程中,同时可以对该第二线性组合参数进行训练。
b、确定第m层的第一特征表示与第m层的第二特征表示的模值为第二线性组合参数中的βm,并对该模值进行线性回归得到βm的最终取值,如公式(10)所示:
针对第一神经网络模块中的任意一层,都可根据求模值,并对模值进行线性回归的方式得到,此处不予赘述。
需要说明的是,在本申请的一些实施方式中,还可以进一步确定第m层的第二特征表示的激活增益,并根据该第m层的第二特征表示的激活增益对第m层的第二特征表示进行调整,使得调整后的第m层的第二特征表示与第m层的第一特征表示之间的差值小于第m层的第二特征表示与第m层的第一特征表示之间的差值。利用激活增益对第二特征表示进行调整的好处在于:使得调整后的第二特征表示与初始的32位浮点数的第一特征表示更接近,由于特征表示对图像信息的精度影响作用更大,因此在实际应用中,进一步提高图像信息保留的精度。
需要说明的是,在本申请的一些实施方式中,第m层的第二特征表示的激活增益可以是可训练的一个非负系数,如公式(11)所示:
其中,cin为输入通道,c0ut为输出通道,k×k为第m层卷积核尺寸,N为一次输入的特征表示的数量,H×W为特征表示的大小,Wm为第m层的第一权重矩阵,Am为第m层的第一特征表示。将E(|Am|复制cout份构成新矩阵得到的新矩阵实质并没有改变,只是在形式上做了一些改变,其表示的依然是第m层的第二特征表示的激活增益,此时,调整后的第m层的第二特征表示可用公式(13)表示:
这里需要注意的是,由于神经网络的特征表示都是一层一层计算的,正常的卷积操作也是一层一层向后计算,因此在计算第一神经网络模块第二层的特征表示的时候,第一层的特征表示已经计算出来了。因此,在本申请的一些实施方式中,第一神经网络模块第一层的第二特征表示是直接在第一层的第一特征表示上通过Sign函数得到,在计算第二层及以后层数的第二特征表示时,则可以根据第m层的第二权重矩阵、第m-1层的第二特征表示、第m层的第二权重矩阵的权值增益、第m-1层的第二特征表示的激活增益计算第m层的第一特征表示。具体的,可以通过如下公式(14)得到第m层的第一特征表示:
在本申请的一些实施方式中,也可以通过如下公式(15)得到第m层的第一特征表示:
在本申请实施例中,上述步骤401至步骤402的具体过程可参阅图6,此处不予赘述。
403、通过训练集中的训练数据对神经网络进行训练,得到训练后的神经网络。
训练设备通过上述步骤将第一神经网络模块各层的第一权重矩阵根据第一量化模型二值化为第二权重矩阵之后,或者,将第一神经网络模块各层的第一权重矩阵根据第一量化模型二值化为第二权重矩阵且将第一神经网络模块各层的第一特征表示根据第二量化模型二值化为第二特征表示之后,就可进一步通过训练集中的训练数据对神经网络进行训练,从而得到训练后的神经网络。
404、将训练后的神经网络部署在目标设备上。
得到了训练后神经网络后,就可将该神经网络部署在目标设备上。
需说明的是,在本申请实施例中,目标设备具体可以是移动端的设备,如摄像头、智能家居等边缘设备,也可以是如手机、个人计算机、计算机工作站、平板电脑、智能可穿戴设备(如,智能手表、智能手环、智能耳机等)、游戏机、机顶盒、媒体消费设备等端侧设备,具体此处对目标设备的类型不做限定。
还需要说明的是,若第一神经网络模块包括的仅是非线性映射阶段,那么在本申请的一些实施方式中,该神经网络还可以进一步包括第二神经网络模块和第三神经网络模块,其中,第二神经网络模块、第一神经网络模块、第三神经网络模块依次连接,其中,第二神经网络模块(即ε阶段对应的模块,一般为一个卷积层)用于对输入图像进行全精度的特征提取,第三神经网络模块(即阶段对应的模块,一般为一个卷积层)用于对第一神经网络模块的输出进行图像重建,得到输出图像。这里需要说明的是,第二神经网络模块以及第三神经网络模块的目的是为了在ε和阶段采用全精度的卷积过程,以保证模型的性能,使得最终输出图像的精度更高。需要说明的是,在本申请的一些实施方式中,当该神经网络应用在图像超分辨率重建的场景时,输入图像可以是一张或多张低分辨率图像,输出图像就会是一张高分辨率图像。
在本申请上述实施方式中,通过一种新的量化模型(即第一量化模型)对神经网络的权重矩阵进行二值化,该第一量化模型用于根据神经网络第1层至第m层的m个第一权重矩阵,得到神经网络第m层的第二权重矩阵,其中,每层的第一权重矩阵均为用32位浮点数表示的权重矩阵,每层的第二权重矩阵均为赋值+1或-1的权重矩阵,这样每层调整后的权重矩阵(如,第m层的权重矩阵)的取值都与之前各层(如,第1层至第m-1层)未调整之前的权重矩阵的取值相关,这种优化方式使得各层权重矩阵中各个权重的取值不仅和自身相关,也与其他层的权重矩阵相关,降低了量化误差,使得神经网络的训练和使用更加高效。
在介绍完本申请神经网络的优化方法之后,接下来介绍本申请实施例提供的一种神经网络的网络结构,请参阅图7,图7示意的神经网络的应用场景是图像超分辨重建场景,因此输入图像为低分辨率图像,经过该神经网络处理后的输出图像为高分辨率图像,具体请参阅图7,该神经网络的网络结构包括第一神经网络模块701、第二神经网络模块702、第三神经网络模块703,其中,第一神经网络模块701包括n个卷积层,第二神经网络模块702,用于对输入图像进行全精度的特征提取,得到第一目标特征表示;第一神经网络模块701,用于对第一目标特征表示进行非线性映射,得到第二目标特征表示;其中,第一神经网络模块701各层的权重矩阵为经过第一量化模型处理过的第二权重矩阵,该第一量化模型用于根据第一神经网络模块701第1层至第m层的m个第一权重矩阵得到第一神经网络模块701第m层的第二权重矩阵,每层的第一权重矩阵均为用32位浮点数表示的权重矩阵,每层的第二权重矩阵均为赋值+1或-1的权重矩阵,1≤m≤n;第三神经网络模块703,用于对第二目标特征表示进行图像重建,得到输出图像。
在本申请上述实施方式中,介绍了一种神经网络的网络结构,该神经网络与其他神经网络不同的地方在于,其第一神经网络模块701各层的权重矩阵是经过第一量化模型二值化过的,使得第一神经网络模块701每层二值化后的权重矩阵(即第二权重矩阵)的取值不仅和自身相关,也与前面层的所有未二值化的权重矩阵(即第一权重矩阵)的取值相关,降低了量化误差,使得神经网络的训练和使用更加高效。
需要说明的是,在本申请的一些实施方式中,第一量化模型可以是: 其中,W1,W2,…,Wm为第一神经网络模块701第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为第m层的第二权重矩阵。该第一量化模型也可以是:其中,W1,W2,…,Wm为第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,k为可训练的一个非负参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为第m层的第二权重矩阵。具体此处对第一量化模型的具体表现形式不做限定,只要第一量化模型是使得当前层的第二权重矩阵与之前至少两层的第一权重矩阵相关,那么都属于本申请所述的第一量化模型。
在本申请上述实施方式中,给出了几种第一量化模型的具体形式,具备灵活性。
还需要说明的是,在本申请的一些实施方式中,第一神经网络模块701各层的特征表示为经过第二量化模型处理过的第二特征表示,该第二量化模型用于根据第一神经网络模块701第1层至第m层的m个第一特征表示得到第一神经网络模块701第m层的第二特征表示,其中,每层的第一特征表示均为用32位浮点数表示的特征表示,每层的第二特征表示均为赋值+1或-1的特征表示。
在本申请上述实施方式中,不仅对第一神经网络模块701的权重矩阵进行二值化操作,还进一步通过第二量化模型对第一神经网络模块701的特征表示进行二值化操作,这样二值化的权重矩阵与二值化的特征表示就可直接进行位运算,减小了计算开销。
还需要说明的是,在本申请的一些实施方式中,第二量化模型可以是: 其中,A1,A2,…,Am为第一神经网络模块701第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为第m层的第二特征表示。该第二量化模型还可以是: 其中,A1,A2,…,Am为第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,l为可训练的一个非负参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为第m层的第二特征表示。具体此处对第二量化模型的具体表现形式不做限定,只要第二量化模型是使得当前层的第二特征表示与之前至少两层的第一特征表示相关,那么都属于本申请所述的第二量化模型。
在本申请上述实施方式中,给出了几种第二量化模型的具体形式,具备灵活性。
需要说明的是,图7仅是本申请实施例优化的神经网络在图像超分辨率重建场景下的一个应用场景,在实际应用中,由于智能安防、平安城市、智能终端等领域中都可以用到本申请实施例中训练好的神经网络来进行任务处理(如,图像处理、音频处理、语义分析等),例如,本申请训练好的神经网络可应用于计算机视觉等领域的各种场景和问题,比如常见的一些任务:人脸识别、图像分类、目标检测、语义分割、图像超分辨重建等。其中每类场景中都会涉及很多可用本申请来构建二值化的高效神经网络模型,下面将对多个落地到产品的多个应用场景进行介绍。
(1)图像超分辨重建
图像超分辨重建是一种提升图像分辨率的图像处理技术,在很多领域得到了广泛应用,如视频监控、医学成像、遥感图像处理等。随着深度学习的不断发展,卷积神经网络在图像超分辨领域取得巨大进步。然而,不断加深的卷积网络带来了过高的存储代价和计算复杂度,严重限制了图像超分辨重建模型在嵌入式的移动设备上的应用。因此,图像超分辨重建模型需要有效降低存储和计算的资源消耗,满足现有资源有限设备的需求,因此本申请训练好的神经网络就可作为该神经网络模型应用于图像超分辨重建,具体请参阅图8,由于本申请训练好的神经网络各层二值化的权重矩阵不仅跟自身有关,还与其他层的权重矩阵相关,因此,有效保留了图像像素的细节信息,大大提高了输出图像的精度。
(2)物体检测
作为一种示例,本申请训练好的神经网络可用于终端(如,手机、智能手表、个人电脑等)的物体检测,具体请参阅图9,以终端为手机为例,手机端的物体检测是一个目标检测问题。当用户使用手机拍照时,自动抓取人脸、动物等目标,可以帮助手机自动对焦、美化等。所以手机需要一个体积小、运行快的目标检测的神经网络模型,因此本申请训练好的神经网络就可作为该神经网络模型应用于手机,该训练好的神经网络由于权重矩阵是二值化的,且二值化的权重矩阵不仅跟自身有关,还与其他层的权重矩阵相关,在其计算量和神经网络的参数量都比之前的神经网络大大降低的前提下,还有效保留了图像像素的细节信息,这使得手机在执行上述目标检测时更为流畅,且画质也比现有的二值化的神经网络更清晰,而流畅度可以给用户带来更好的用户体验,提升手机产品品质。
(3)自动驾驶场景分割
作为另一示例,本申请训练好的神经网络还可用于轮式移动设备(如,自动驾驶车辆、辅助驾驶车辆等)的自动驾驶场景分割,具体请参阅图10,以轮式移动设备为自动驾驶车辆为例,自动驾驶场景分割是一个语义分割问题。自动驾驶车辆的摄像头捕捉到道路画面,需要对画面进行分割,分出路面、路基、车辆、行人等不同物体,从而保持车辆行驶在正确的安全区域。对于安全型要求极高的自动驾驶,则需要实时对画面进行理解,那么能够实时运行的进行语义分割的卷积神经网络至关重要,而由于本申请训练好的神经网络参数量与计算量相对之前的神经网络都大大降低了,其体积更小、运行更快,能够很好的满足自动驾驶车辆上述对卷积神经网络的一系列要求,因此本申请训练好的神经网络也可作为神经网络模型应用于轮式移动设备的自动驾驶场景分割。
需要说明的是,本申请所述的轮式移动设备可以是轮式机器人、轮式施工设备、自动驾驶车辆等,只要是具备轮式可移动的设备均属于本申请所述的轮式移动设备。另外,还需要说明的是,本申请上述所述的自动驾驶车辆可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等,本申请实施例不做特别的限定。
(4)人脸识别
作为另一示例,本申请训练好的神经网络还可用于人脸识别(如,入口闸机处的人脸验证),具体请参阅图11,人脸识别是一个图像相似度比对问题。在高铁、机场等入口的闸机上,乘客进行人脸认证时,摄像头会拍摄人脸图像,使用卷积神经网络抽取特征,和存储在系统中的身份证件的图像特征进行相似度计算,如果相似度高就验证成功。其中,卷积神经网络抽取特征是最耗时的,要快速进行人脸验证,需要高效的卷积神经网络进行特征提取。而本申请训练好的神经网络由于参数量少、计算量低,使得其体积更小、运行更快,能够很好的满足上述人脸识别的应用场景中对卷积神经网络的一系列要求。
(5)语音识别
作为另一示例,本申请训练好的神经网络还可用于语音识别(如,翻译机同声传译),具体请参阅图12,翻译机同声传译是一个语音识别和机器翻译问题。在语音识别和机器翻译问题上,卷积神经网络也是常用的一种识别模型,在需要同声传译的场景,必须达到实时语音识别并进行翻译,这就要求部署在设备上的卷积神经网络需要计算速度快,而本申请训练好的神经网络由于参数量少、计算量低,使得其体积更小、运行更快,也能够很好的满足上述语音识别的应用场景对卷积神经网络的一系列要求。
需要说明的是,本申请所述的训练好的神经网络不仅可以应用于上述图8至图12所述的应用场景中,还可以应用在人工智能领域的各个细分领域中,如,图像处理领域,计算机视觉领域,语义分析领域等等,只要能使用神经网络的领域和设备,都可应用本申请实施例提供的训练好的神经网络,此处不再举例示意。
为了对本申请实施例所带来的有益效果有更为直观的认识,以下对本申请实施例所带来的技术效果作进一步的对比,所应用的场景为图像超分辨重建,具体请参阅表1、表2、表3以及图13、图14,其中,由表1(VDSR-BAM为本申请实施例提供的方案)和表2(SRResNet-BAM为本申请实施例提供的方案)可知,本申请实施例提供的二值化算法在客观评价指标:峰值信噪比(peak signal-to-noise ratio,PSNR)、结构相似性(structuralSIMilarity,SSIM)以及视觉评估中均明显优于其他算法,在图像超分辨重建领域获得了较大的性能提升。
表1:基于VDSR的二值化算法性能对比
表2:基于SRRestNet的二值化算法性能对比
除了与现有二值化算法进行对比,本申请同时将本申请实施例提供的神经网络与现有的仅二值化权重矩阵的其他神经网络进行对比。实验中,对模型结构的设置完全与该方法保持一致(即仅量化权重矩阵,激活值为32位浮点型)。从表3可以看出,本申请实施例提供的方法可以取得更优异的效果。
表3:与现有的仅二值化权重矩阵的其他神经网络性能对比
在上述实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图15,图15为本申请实施例提供的一种训练设备的示意图,该训练设备1500具体可以包括:获取单元1501,用于获取第一量化模型,所述第一量化模型用于根据神经网络的第一神经网络模块第1层至第m层的m个第一权重矩阵,得到所述第一神经网络模块第m层的第二权重矩阵,其中,每层的第一权重矩阵均为用32位浮点数表示的权重矩阵,每层的第二权重矩阵均为赋值+1或-1的权重矩阵,1≤m≤n;量化单元1502,用于根据所述第一量化模型,将所述第一神经网络模块各层对应的每个第一权重矩阵进行二值化操作,得到所述第一神经网络模块各层对应的每个第二权重矩阵;训练单元1503,用于通过训练集中的训练数据对所述神经网络进行训练,得到训练后的神经网络;部署单元1504,用于将所述训练后的神经网络部署在目标设备上。
在本申请上述实施方式中,通过一种新的量化模型(即第一量化模型)对神经网络的权重矩阵进行二值化,该第一量化模型用于根据神经网络第1层至第m层的m个第一权重矩阵,得到神经网络第m层的第二权重矩阵,其中,每层的第一权重矩阵均为用32位浮点数表示的权重矩阵,每层的第二权重矩阵均为赋值+1或-1的权重矩阵,这样每层调整后的权重矩阵(如,第m层的权重矩阵)的取值都与之前各层(如,第1层至第m-1层)未调整之前的权重矩阵的取值相关,这种优化方式使得各层权重矩阵中各个权重的取值不仅和自身相关,也与其他层的权重矩阵相关,降低了量化误差,使得神经网络的训练和使用更加高效。
在一种可能的设计中,所述量化单元1502,具体用于:可以通过得到所述第m层的第二权重矩阵,其中,W1,W2,…,Wm为第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为所述第m层的第二权重矩阵。也可以通过得到所述第m层的第二权重矩阵,其中,W1,W2,…,Wm为第1层的第一权重矩阵至第m层的第一权重矩阵,α1,α2,…,αm为与W1,W2,…,Wm对应的第一线性组合参数,k为可训练的一个非负参数,WN(·)为对α1W1+α2W2+…+αmWm进行的归一化操作,Sign(·)为符号函数,为第m层的第二权重矩阵。此处不做限定。
在本申请上述实施方式中,提供了几种对第一权重矩阵的不同量化形式,具备可选择性和灵活性。
在一种可能的设计中,所述量化单元1502,还用于:确定所述第m层的第二权重矩阵的权值增益,并根据所述第m层的第二权重矩阵的权重增益对所述第m层的第二权重矩阵进行调整,使得调整后的第m层的第二权重矩阵与第m层的第一权重矩阵之间的差值小于所述第m层的第二权重矩阵与所述第m层的第一权重矩阵之间的差值。
在本申请上述实施方式中,利用权值增益对第二权重矩阵进行调整的好处在于:使得调整后的第二权重矩阵与初始的32位浮点数的第一权重矩阵更接近,这样在实际应用中,能更好的保留图像信息的精度。
在一种可能的设计中,所述量化单元1502,还用于:设置所述第一线性组合参数为所述神经网络的网络参数,以使得在根据训练集中的训练数据对所述神经网络进行训练的过程中,对所述第一线性组合参数进行训练。
在本申请上述实施方式中,提供了一种优化第一线性组合参数的具体实现方式,这种优化过程的好处在于:在对神经网络进行训练的过程中,同时完成了对第一线性组合参数的优化。
在一种可能的设计中,所述量化单元1502,还用于:确定所述第m层的第一权重矩阵与所述第m层的第二权重矩阵的模值为所述第一线性组合参数中的αm,并对所述模值进行线性回归得到所述αm的最终取值。
在本申请上述实施方式中,提供了另一种优化第一线性组合参数的具体实现方式,通过线性回归的方式得到第一线性组合参数中每个参数的取值,使得第一线性组合参数的优化方法具有可选择性。
在一种可能的设计中,所述获取单元1501,还用于按照所述n个卷积层连接的先后顺序依次计算所述第一神经网络模块每层的第一特征表示;所述获取单元1501,还用于获取第二量化模型,所述第二量化模型用于根据所述第一神经网络模块的第1层至第m层的m个第一特征表示,得到所述第一神经网络模块的第m层的第二特征表示,其中,每层的第一特征表示均为用32位浮点数表示的特征表示,每层的第二特征表示均为赋值+1或-1的特征表示,1≤m≤n;所述量化单元1502,还用于根据所述第二量化模型,将所述第一神经网络模块各层对应的每个第一特征表示进行二值化操作,得到所述第一神经网络模块各层对应的每个第二特征表示。需要说明的是,获取单元1501计算第一神经网络模块每层的第一特征表示与获取第二量化模型之间没有先后顺序,获取单元1501可以先计算第一神经网络模块每层的第一特征表示,再获取第二量化模型;获取单元1501可以先获取第二量化模型,再计算第一神经网络模块每层的第一特征表示,具体此处不做限定。
由于只针对权重矩阵进行二值化操作,那么各层的特征表示(也可称为特征图、激活值等)依然是用32位浮点数表示的,权重矩阵与特征表示进行运算时,还是需要通过32位浮点数进行,并不能节省计算开销,只是部分减小了神经网络模型存储所占用的空间。因此,在本申请上述实施方式中,进一步对第一神经网络模块各层输出的特征表示进行二值化,这样二值化的权重矩阵与二值化的特征表示就可直接进行位运算,减小了计算开销。
在一种可能的设计中,所述量化单元1502,还用于:可以通过 得到所述第m层的第二特征表示,其中,A1,A2,…,Am为第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为所述第m层的第二特征表示。也可以通过 得到第m层的第二特征表示,其中,A1,A2,…,Am为第1层的第一特征表示至第m层的第一特征表示,β1,β2,…,βm为与A1,A2,…,Am对应的第二线性组合参数,l为可训练的一个非负参数,BN(·)为对β1A1+β2A2+…+βmAm进行的归一化操作,Sign(·)为符号函数,为第m层的第二特征表示。具体此处不做限定。
在本申请上述实施方式中,提供了几种对第一特征表示的不同量化形式,具备可选择性和灵活性。
在一种可能的设计中,所述量化单元1502,还用于:确定所述第m层的第二特征表示的激活增益,并根据所述第m层的第二特征表示的激活增益对所述第m层的第二特征表示进行调整,使得调整后的第m层的第二特征表示与第m层的第一特征表示之间的差值小于所述第m层的第二特征表示与所述第m层的第一特征表示之间的差值。
在本申请上述实施方式中,利用激活增益对第二特征表示进行调整的好处在于:使得调整后的第二特征表示与初始的32位浮点数的第一特征表示更接近,由于特征表示对图像信息的精度影响作用更大,因此在实际应用中,进一步提高图像信息保留的精度。
在一种可能的设计中,所述获取单元1501,具体还用于:根据所述第m层的第二权重矩阵、第m-1层的第二特征表示、所述第m层的第二权重矩阵的权值增益、第m-1层的第二特征表示的激活增益计算所述第m层的第一特征表示。这里需要注意的是,由于神经网络的特征表示都是一层一层计算的,正常的卷积操作也是一层一层向后计算,因此获取单元1501在计算第一神经网络模块第二层的特征表示的时候,第一层的特征表示已经计算出来了。因此,在本申请的一些实施方式中,第一神经网络模块第一层的第二特征表示是直接在第一层的第一特征表示上通过Sign函数得到,获取单元1501在计算第二层及以后层数的第二特征表示时,则可以根据第m层的第二权重矩阵、第m-1层的第二特征表示、第m层的第二权重矩阵的权值增益、第m-1层的第二特征表示的激活增益计算第m层的第一特征表示。
在本申请上述实施方式中,提供了一种计算第一特征表示的实现方式,具备可实现性。
在一种可能的设计中,所述获取单元1501,具体还用于:对所述第m层的第二权重矩阵和所述第m-1层的第二特征表示进行卷积操作,得到卷积结果,之后,将所述卷积结果与所述第m层的第二权重矩阵的权值增益进行点乘运算,得到点乘结果,最后,将所述点乘结果与所述第m-1层的第二特征表示的激活增益进行点乘运算,得到所述第m层的第一特征表示。
在本申请上述实施方式中,具体阐述了如何得到第一特征表示的方法,具备可实现性。
在一种可能的设计中,所述量化单元1502,还用于:设置所述第二线性组合参数为所述神经网络的网络参数,以使得在根据训练集中的训练数据对所述神经网络进行训练的过程中,对所述第二线性组合参数进行训练。
在本申请上述实施方式中,提供了一种优化第二线性组合参数的具体实现方式,这种优化过程的好处在于:在对神经网络进行训练的过程中,同时完成了对第二线性组合参数的优化。
在一种可能的设计中,所述量化单元1502,还用于:确定所述第m层的第一特征表示与所述第m层的第二特征表示的模值为所述第二线性组合参数中的βm,并对所述模值进行线性回归得到所述βm的最终取值。
在本申请上述实施方式中,提供了另一种优化第二线性组合参数的具体实现方式,通过线性回归的方式得到第二线性组合参数中每个参数的取值,使得第二线性组合参数的优化方法具有可选择性。
在一种可能的设计中,所述神经网络还包括第二神经网络模块和第三神经网络模块,所述第二神经网络模块用于对输入图像进行全精度的特征提取,所述第三神经网络模块用于对所述第一神经网络模块的输出进行图像重建,得到输出图像。
在本申请上述实施方式中,阐述了神经网络除了包括第一神经网络模块之外,还可以包括第二神经网络模块和第三神经网络模块,其中,第二神经网络模块用于对输入图像进行全精度的特征提取,第三神经网络模块用于对第一神经网络模块的输出进行图像重建,得到输出图像。第二神经网络模块以及第三神经网络模块的目的是为了在特征提取阶段和图像重建阶段采用全精度的卷积过程,从而保证模型的性能,使得最终输出图像的精度更高。
在一种可能的设计中,所述输入图像包括一张或多张低分辨率图像,所述输出图像包括一张高分辨率图像。
在本申请上述实施方式中,当该神经网络应用在图像超分辨率重建的场景时,那么输入图像可以是一张或多张低分辨率图像,输出图像就会是一张高分辨率图像。
需要说明的是,训练设备1500中各模块/单元之间的信息交互、执行过程等内容,与本申请中图4对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供一种执行设备,请参阅图16,图16为本申请实施例提供的一种执行设备的示意图,执行设备1600包括:获取单元1601和执行单元1602,获取单元1601,用于获取输入图像;执行单元1602,用于通过训练后的神经网络对所述输入图像进行处理,得到输出图像,所述训练后的神经网络为经过本申请中图4对应的实施方法优化过的神经网络,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
需要说明的是,执行设备1600中各模块/单元之间的信息交互、执行过程等内容,具体可应用于本申请中图8至图12对应的方法实施例中的各种应用场景,具体内容可参见本申请前述图8至图12所示的方法实施例中的叙述,此处不再赘述。
接下来介绍本申请实施例提供的另一种训练设备,请参阅图17,图17为本申请实施例提供的训练设备的一种结构示意图,训练设备1700上可以部署有图15对应实施例中所描述的训练设备1500,用于实现图15对应实施例中训练设备1500的功能,具体的,训练设备1700由一个或多个服务器实现,训练设备1700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1722和存储器1732,一个或一个以上存储应用程序1742或数据1744的存储介质1730(例如一个或一个以上海量存储设备)。其中,存储器1732和存储介质1730可以是短暂存储或持久存储。存储在存储介质1730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备1700中的一系列指令操作。更进一步地,中央处理器1722可以设置为与存储介质1730通信,在训练设备1700上执行存储介质1730中的一系列指令操作。
训练设备1700还可以包括一个或一个以上电源1726,一个或一个以上有线或无线网络接口1750,一个或一个以上输入输出接口1758,和/或,一个或一个以上操作系统1741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1722,用于执行图4对应实施例中的训练设备执行的神经网络的优化方法。例如,中央处理器1522可用于:首先,获取第一量化模型,该第一量化模型就用于根据神经网络中第一神经网络模块的第1层至第m层的m个第一权重矩阵得到第一神经网络模块的第m层的第二权重矩阵,其中,第一神经网络模块每层的第一权重矩阵指的就是初始的用32位浮点数表示的权重矩阵,第一神经网络模块每层的第二权重矩阵指的就是被赋值为+1或-1的权重矩阵,在获取到第一量化模型之后,根据该第一量化模型,将第一神经网络模块各层对应的每个第一权重矩阵进行二值化操作,得到第一神经网络模块各层对应的每个第二权重矩阵,之后进一步通过训练集中的训练数据对神经网络进行训练,从而得到训练后的神经网络,最后将得到的训练后的神经网络部署在目标设备上。
需要说明的是,中央处理器1722执行上述各个步骤的具体方式,与本申请中图4对应的方法实施例基于同一构思,其带来的技术效果也与本申请上述实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
接下来介绍本申请实施例提供的一种执行设备,请参阅图18,图18为本申请实施例提供的执行设备的一种结构示意图,执行设备1800具体可以表现为各种终端设备,如虚拟现实VR设备、手机、平板、笔记本电脑、智能穿戴设备、监控数据处理设备或者雷达数据处理设备等,此处不做限定。其中,执行设备1800上可以部署有图16对应实施例中所描述的执行设备1600,用于实现图16对应实施例中执行设备1600的功能。具体的,执行设备1800包括:接收器1801、发射器1802、处理器1803和存储器1804(其中执行设备1800中的处理器1803的数量可以一个或多个,图18中以一个处理器为例),其中,处理器1803可以包括应用处理器18031和通信处理器18032。在本申请的一些实施例中,接收器1801、发射器1802、处理器1803和存储器1804可通过总线或其它方式连接。
存储器1804可以包括只读存储器和随机存取存储器,并向处理器1803提供指令和数据。存储器1804的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1804存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1803控制执行设备1800的操作。具体的应用中,执行设备1800的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
本申请上述图4对应实施例揭示的方法可以应用于处理器1803中,或者由处理器1803实现。处理器1803可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1803中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1803可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1803可以实现或者执行本申请图4对应的实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1804,处理器1803读取存储器1804中的信息,结合其硬件完成上述方法的步骤。
接收器1801可用于接收输入的数字或字符信息,以及产生与执行设备1800的相关设置以及功能控制有关的信号输入。发射器1802可用于通过第一接口输出数字或字符信息;发射器1802还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1802还可以包括显示屏等显示设备。
本申请实施例中,在一种情况下,处理器1803,用于通过训练后的神经网络对输入图像进行处理,得到输出图像。例如,应用处理器18031可用于:获取输入图像,并通过训练后的神经网络对该输入图像进行处理,得到输出图像,该训练后的神经网络可以是经过本申请图4对应的优化方法得到的神经网络,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图4、图15所示实施例描述的训练设备所执行的步骤,或者,使得计算机执行如前述图16所示实施例描述的执行设备所执行的步骤。
本申请实施例提供的训练设备、执行设备等具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使训练设备内的芯片执行上述图4、15所示实施例描述的训练设备所执行的步骤,或者,使得执行设备内的芯片执行如前述图16所示实施例描述的执行设备所执行的步骤。
可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体的,请参阅图19,图19为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 200,NPU 200作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路2003,通过控制器2004控制运算电路2003提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路2003内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路2003是二维脉动阵列。运算电路2003还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路2003是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器2002中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器2001中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)2008中。
统一存储器2006用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)2005,DMAC被搬运到权重存储器2002中。输入数据也通过DMAC被搬运到统一存储器2006中。
总线接口单元2010(bus interface unit,简称BIU),用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)2009的交互。
总线接口单元2010,用于取指存储器2009从外部存储器获取指令,还用于存储单元访问控制器2005从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器2006或将权重数据搬运到权重存储器2002中或将输入数据数据搬运到输入存储器2001中。
向量计算单元2007包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元2007能将经处理的输出的向量存储到统一存储器2006。例如,向量计算单元2007可以将线性函数和/或非线性函数应用到运算电路2003的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2007生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2003的激活输入,例如用于在神经网络中的后续层中的使用。
控制器2004连接的取指存储器(instruction fetch buffer)2009,用于存储控制器2004使用的指令;
统一存储器2006,输入存储器2001,权重存储器2002以及取指存储器2009均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
Claims (39)
1.一种神经网络的优化方法,其特征在于,所述神经网络包括第一神经网络模块,所述第一神经网络模块包括n个卷积层,所述方法包括:
获取第一量化模型,所述第一量化模型用于根据所述第一神经网络模块的第1层至第m层的m个第一权重矩阵,得到所述第一神经网络模块的第m层的第二权重矩阵,其中,每层的第一权重矩阵均为用32位浮点数表示的权重矩阵,每层的第二权重矩阵均为赋值+1或-1的权重矩阵,1≤m≤n;
根据所述第一量化模型,将所述第一神经网络模块各层对应的每个第一权重矩阵进行二值化操作,得到所述第一神经网络模块各层对应的每个第二权重矩阵;
通过训练集中的训练数据对所述神经网络进行训练,得到训练后的神经网络;
将所述训练后的神经网络部署在目标设备上。
3.根据权利要求1-2中任一项所述的方法,其特征在于,在通过训练集中的训练数据对所述神经网络进行训练,得到训练后的神经网络之前,所述方法还包括:
确定所述第m层的第二权重矩阵的权值增益;
根据所述第m层的第二权重矩阵的权重增益对所述第m层的第二权重矩阵进行调整,使得调整后的第m层的第二权重矩阵与第m层的第一权重矩阵之间的差值小于所述第m层的第二权重矩阵与所述第m层的第一权重矩阵之间的差值。
4.根据权利要求2-3中任一项所述的方法,其特征在于,在通过训练集中的训练数据对所述神经网络进行训练,得到训练后的神经网络之前,所述方法还包括:
设置所述第一线性组合参数为所述神经网络的网络参数,以使得在根据训练集中的训练数据对所述神经网络进行训练的过程中,对所述第一线性组合参数进行训练。
5.根据权利要求2-3中任一项所述的方法,其特征在于,在通过训练集中的训练数据对所述神经网络进行训练,得到训练后的神经网络之前,所述方法还包括:
确定所述第m层的第一权重矩阵与所述第m层的第二权重矩阵的模值为所述第一线性组合参数中的αm;
对所述模值进行线性回归得到所述αm的最终取值。
6.根据权利要求1-5中任一项所述的方法,其特征在于,在根据所述第一量化模型,将所述第一神经网络模块各层对应的每个第一权重矩阵进行二值化操作,得到所述第一神经网络模块各层对应的每个第二权重矩阵之后,所述方法还包括:
按照所述n个卷积层连接的先后顺序依次计算所述第一神经网络模块每层的第一特征表示;
获取第二量化模型,所述第二量化模型用于根据所述第一神经网络模块的第1层至第m层的m个第一特征表示,得到所述第一神经网络模块的第m层的第二特征表示,其中,每层的第一特征表示均为用32位浮点数表示的特征表示,每层的第二特征表示均为赋值+1或-1的特征表示,1≤m≤n;
根据所述第二量化模型,将所述第一神经网络模块各层对应的每个第一特征表示进行二值化操作,得到所述第一神经网络模块各层对应的每个第二特征表示。
8.根据权利要求6-7中任一项所述的方法,其特征在于,在通过训练集中的训练数据对所述神经网络进行训练,得到训练后的神经网络之前,所述方法还包括:
确定所述第m层的第二特征表示的激活增益;
根据所述第m层的第二特征表示的激活增益对所述第m层的第二特征表示进行调整,使得调整后的第m层的第二特征表示与第m层的第一特征表示之间的差值小于所述第m层的第二特征表示与所述第m层的第一特征表示之间的差值。
9.根据权利要求8所述的方法,其特征在于,所述按照所述n个卷积层连接的先后顺序依次计算所述第一神经网络模块每层的第一特征表示包括:
根据所述第m层的第二权重矩阵、第m-1层的第二特征表示、所述第m层的第二权重矩阵的权值增益、第m-1层的第二特征表示的激活增益计算所述第m层的第一特征表示。
10.根据权利要求9所述的方法,其特征在于,所述根据所述第m层的第二权重矩阵、第m-1层的第二特征表示、所述第m层的第二权重矩阵的权值增益、第m-1层的第二特征表示的激活增益计算所述第m层的第一特征表示包括:
对所述第m层的第二权重矩阵和所述第m-1层的第二特征表示进行卷积操作,得到卷积结果;
将所述卷积结果与所述第m层的第二权重矩阵的权值增益进行点乘运算,得到点乘结果;
将所述点乘结果与所述第m-1层的第二特征表示的激活增益进行点乘运算,得到所述第m层的第一特征表示。
11.根据权利要求7-10中任一项所述的方法,其特征在于,在通过训练集中的训练数据对所述神经网络进行训练,得到训练后的神经网络之前,所述方法还包括:
设置所述第二线性组合参数为所述神经网络的网络参数,以使得在根据训练集中的训练数据对所述神经网络进行训练的过程中,对所述第二线性组合参数进行训练。
12.根据权利要求7-10中任一项所述的方法,其特征在于,在通过训练集中的训练数据对所述神经网络进行训练,得到训练后的神经网络之前,所述方法还包括:
确定所述第m层的第一特征表示与所述第m层的第二特征表示的模值为所述第二线性组合参数中的βm;
对所述模值进行线性回归得到所述βm的最终取值。
13.根据权利要求1-12中任一项所述的方法,其特征在于,所述神经网络还包括第二神经网络模块和第三神经网络模块;
所述第二神经网络模块用于对输入图像进行全精度的特征提取,所述第三神经网络模块用于对所述第一神经网络模块的输出进行图像重建,得到输出图像。
14.根据权利要求13所述的方法,其特征在于,
所述输入图像包括一张或多张低分辨率图像;
所述输出图像包括一张高分辨率图像。
15.一种图像处理方法,其特征在于,包括:
获取输入图像;
通过训练后的神经网络对所述输入图像进行处理,得到输出图像,所述训练后的神经网络为经过所述权利要求1-14中任一项所述方法优化过的神经网络。
16.一种神经网络的网络结构,其特征在于,所述神经网络包括:第一神经网络模块,第二神经网络模块和第三神经网络模块,所述第一神经网络模块包括n个卷积层;
所述第二神经网络模块,用于对输入图像进行全精度的特征提取,得到第一目标特征表示;
所述第一神经网络模块,用于对所述第一目标特征表示进行非线性映射,得到第二目标特征表示;
其中,所述第一神经网络模块各层的权重矩阵为经过第一量化模型处理过的第二权重矩阵,所述第一量化模型用于根据所述第一神经网络模块的第1层至第m层的m个第一权重矩阵,得到所述第一神经网络模块的第m层的第二权重矩阵,每层的第一权重矩阵均为用32位浮点数表示的权重矩阵,每层的第二权重矩阵均为赋值+1或-1的权重矩阵,1≤m≤n;
所述第三神经网络模块,用于对所述第二目标特征表示进行图像重建,得到输出图像。
18.根据权利要求16-17中任一项所述的网络结构,其特征在于,
所述第一神经网络模块各层的特征表示为经过第二量化模型处理过的第二特征表示,所述第二量化模型用于根据所述第一神经网络模块的第1层至第m层的m个第一特征表示,得到所述第一神经网络模块的第m层的第二特征表示,其中,每层的第一特征表示均为用32位浮点数表示的特征表示,每层的第二特征表示均为赋值+1或-1的特征表示。
20.一种训练设备,其特征在于,包括:
获取单元,用于获取第一量化模型,所述第一量化模型用于根据神经网络的第一神经网络模块第1层至第m层的m个第一权重矩阵,得到所述第一神经网络模块第m层的第二权重矩阵,其中,每层的第一权重矩阵均为用32位浮点数表示的权重矩阵,每层的第二权重矩阵均为赋值+1或-1的权重矩阵,1≤m≤n;
量化单元,用于根据所述第一量化模型,将所述第一神经网络模块各层对应的每个第一权重矩阵进行二值化操作,得到所述第一神经网络模块各层对应的每个第二权重矩阵;
训练单元,用于通过训练集中的训练数据对所述神经网络进行训练,得到训练后的神经网络;
部署单元,用于将所述训练后的神经网络部署在目标设备上。
22.根据权利要求20-21中任一项所述的设备,其特征在于,所述量化单元,还用于:
确定所述第m层的第二权重矩阵的权值增益;
根据所述第m层的第二权重矩阵的权重增益对所述第m层的第二权重矩阵进行调整,使得调整后的第m层的第二权重矩阵与第m层的第一权重矩阵之间的差值小于所述第m层的第二权重矩阵与所述第m层的第一权重矩阵之间的差值。
23.根据权利要求21-22中任一项所述的设备,其特征在于,所述量化单元,还用于:
设置所述第一线性组合参数为所述神经网络的网络参数,以使得在根据训练集中的训练数据对所述神经网络进行训练的过程中,对所述第一线性组合参数进行训练。
24.根据权利要求21-22中任一项所述的设备,其特征在于,所述量化单元,还用于:
确定所述第m层的第一权重矩阵与所述第m层的第二权重矩阵的模值为所述第一线性组合参数中的αm,并对所述模值进行线性回归得到所述αm的最终取值。
25.根据权利要求20-24中任一项所述的设备,其特征在于,
所述获取单元,还用于按照所述n个卷积层连接的先后顺序依次计算所述第一神经网络模块每层的第一特征表示;
所述获取单元,还用于获取第二量化模型,所述第二量化模型用于根据所述第一神经网络模块的第1层至第m层的m个第一特征表示,得到所述第一神经网络模块的第m层的第二特征表示,其中,每层的第一特征表示均为用32位浮点数表示的特征表示,每层的第二特征表示均为赋值+1或-1的特征表示,1≤m≤n;
所述量化单元,还用于根据所述第二量化模型,将所述第一神经网络模块各层对应的每个第一特征表示进行二值化操作,得到所述第一神经网络模块各层对应的每个第二特征表示。
27.根据权利要求25-26中任一项所述的设备,其特征在于,所述量化单元,还用于:
确定所述第m层的第二特征表示的激活增益;
根据所述第m层的第二特征表示的激活增益对所述第m层的第二特征表示进行调整,使得调整后的第m层的第二特征表示与第m层的第一特征表示之间的差值小于所述第m层的第二特征表示与所述第m层的第一特征表示之间的差值。
28.根据权利要求27所述的设备,其特征在于,所述获取单元,具体还用于:
根据所述第m层的第二权重矩阵、第m-1层的第二特征表示、所述第m层的第二权重矩阵的权值增益、第m-1层的第二特征表示的激活增益计算所述第m层的第一特征表示。
29.根据权利要求28所述的设备,其特征在于,所述获取单元,具体还用于:
对所述第m层的第二权重矩阵和所述第m-1层的第二特征表示进行卷积操作,得到卷积结果;
将所述卷积结果与所述第m层的第二权重矩阵的权值增益进行点乘运算,得到点乘结果;
将所述点乘结果与所述第m-1层的第二特征表示的激活增益进行点乘运算,得到所述第m层的第一特征表示。
30.根据权利要求26-29中任一项所述的设备,其特征在于,所述量化单元,还用于:
设置所述第二线性组合参数为所述神经网络的网络参数,以使得在根据训练集中的训练数据对所述神经网络进行训练的过程中,对所述第二线性组合参数进行训练。
31.根据权利要求26-29中任一项所述的设备,其特征在于,所述量化单元,还用于:
确定所述第m层的第一特征表示与所述第m层的第二特征表示的模值为所述第二线性组合参数中的βm,并对所述模值进行线性回归得到所述βm的最终取值。
32.根据权利要求20-31中任一项所述的设备,其特征在于,所述神经网络还包括第二神经网络模块和第三神经网络模块,所述第二神经网络模块用于对输入图像进行全精度的特征提取,所述第三神经网络模块用于对所述第一神经网络模块的输出进行图像重建,得到输出图像。
33.根据权利要求32所述的设备,其特征在于,所述输入图像包括一张或多张低分辨率图像,所述输出图像包括一张高分辨率图像。
34.一种执行设备,其特征在于,包括:
获取单元,用于获取输入图像;
执行单元,用于通过训练后的神经网络对所述输入图像进行处理,得到输出图像,所述训练后的神经网络为经过所述权利要求1-14中任一项所述方法优化过的神经网络。
35.一种训练设备,包括处理器和存储器,所述处理器与所述存储器耦合,其特征在于,
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述训练设备执行如权利要求1-14中任一项所述的方法。
36.一种执行设备,包括处理器和存储器,所述处理器与所述存储器耦合,其特征在于,
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述执行设备执行如权利要求15所述的方法。
37.一种计算机可读存储介质,包括程序,当其在计算机上运行时,使得计算机执行如权利要求1-14中任一项所述的方法,或,使得计算机执行如权利要求15所述的方法。
38.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1-14中任一项所述的方法,或,使得计算机执行如权利要求15所述的方法。
39.一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如权利要求1-14中任一项所述的方法,或,使得计算机执行如权利要求15所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010650726.5A CN111950700A (zh) | 2020-07-06 | 2020-07-06 | 一种神经网络的优化方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010650726.5A CN111950700A (zh) | 2020-07-06 | 2020-07-06 | 一种神经网络的优化方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111950700A true CN111950700A (zh) | 2020-11-17 |
Family
ID=73341426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010650726.5A Pending CN111950700A (zh) | 2020-07-06 | 2020-07-06 | 一种神经网络的优化方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111950700A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529150A (zh) * | 2020-12-01 | 2021-03-19 | 华为技术有限公司 | 一种模型结构、模型训练方法、图像增强方法及设备 |
CN112651500A (zh) * | 2020-12-30 | 2021-04-13 | 深圳金三立视频科技股份有限公司 | 一种量化模型的生成方法及终端 |
CN113177638A (zh) * | 2020-12-11 | 2021-07-27 | 联合微电子中心(香港)有限公司 | 用于生成神经网络的二值化权重的处理器和方法 |
CN114819149A (zh) * | 2022-06-28 | 2022-07-29 | 深圳比特微电子科技有限公司 | 基于变换神经网络的数据处理方法、装置和介质 |
CN115660046A (zh) * | 2022-10-24 | 2023-01-31 | 中电金信软件有限公司 | 二值神经网络的梯度重构方法、装置、设备及存储介质 |
-
2020
- 2020-07-06 CN CN202010650726.5A patent/CN111950700A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529150A (zh) * | 2020-12-01 | 2021-03-19 | 华为技术有限公司 | 一种模型结构、模型训练方法、图像增强方法及设备 |
CN113177638A (zh) * | 2020-12-11 | 2021-07-27 | 联合微电子中心(香港)有限公司 | 用于生成神经网络的二值化权重的处理器和方法 |
CN113177638B (zh) * | 2020-12-11 | 2024-05-28 | 联合微电子中心有限责任公司 | 用于生成神经网络的二值化权重的处理器和方法 |
CN112651500A (zh) * | 2020-12-30 | 2021-04-13 | 深圳金三立视频科技股份有限公司 | 一种量化模型的生成方法及终端 |
CN112651500B (zh) * | 2020-12-30 | 2021-12-28 | 深圳金三立视频科技股份有限公司 | 一种量化模型的生成方法及终端 |
CN114819149A (zh) * | 2022-06-28 | 2022-07-29 | 深圳比特微电子科技有限公司 | 基于变换神经网络的数据处理方法、装置和介质 |
CN115660046A (zh) * | 2022-10-24 | 2023-01-31 | 中电金信软件有限公司 | 二值神经网络的梯度重构方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111797893B (zh) | 一种神经网络的训练方法、图像分类系统及相关设备 | |
CN112529150B (zh) | 一种模型结构、模型训练方法、图像增强方法及设备 | |
WO2022042713A1 (zh) | 一种用于计算设备的深度学习训练方法和装置 | |
CN111950700A (zh) | 一种神经网络的优化方法及相关设备 | |
JP2022505775A (ja) | 画像分類モデルの訓練方法、画像処理方法及びその装置、並びにコンピュータプログラム | |
CN112183577A (zh) | 一种半监督学习模型的训练方法、图像处理方法及设备 | |
CN111738403B (zh) | 一种神经网络的优化方法及相关设备 | |
CN107578453A (zh) | 压缩图像处理方法、装置、电子设备及计算机可读介质 | |
CN112598597A (zh) | 一种降噪模型的训练方法及相关装置 | |
CN113516227B (zh) | 一种基于联邦学习的神经网络训练方法及设备 | |
WO2022228425A1 (zh) | 一种模型训练方法及装置 | |
CN113065635A (zh) | 一种模型的训练方法、图像增强方法及设备 | |
CN111414915B (zh) | 一种文字识别方法以及相关设备 | |
CN111950570B (zh) | 目标图像提取方法、神经网络训练方法及装置 | |
WO2022111387A1 (zh) | 一种数据处理方法及相关装置 | |
CN114359289A (zh) | 一种图像处理方法及相关装置 | |
CN112580720A (zh) | 一种模型训练方法及装置 | |
CN114595799A (zh) | 一种模型训练方法及装置 | |
CN114241459B (zh) | 一种驾驶员身份验证方法、装置、计算机设备及存储介质 | |
WO2023083030A1 (zh) | 一种姿态识别方法及其相关设备 | |
CN115081616A (zh) | 一种数据的去噪方法以及相关设备 | |
WO2018120082A1 (en) | Apparatus, method and computer program product for deep learning | |
CN113627421A (zh) | 一种图像处理方法、模型的训练方法以及相关设备 | |
WO2024046144A1 (zh) | 一种视频处理方法及其相关设备 | |
WO2023174256A1 (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 |