CN108496188A - 神经网络训练的方法、装置、计算机系统和可移动设备 - Google Patents
神经网络训练的方法、装置、计算机系统和可移动设备 Download PDFInfo
- Publication number
- CN108496188A CN108496188A CN201780004677.4A CN201780004677A CN108496188A CN 108496188 A CN108496188 A CN 108496188A CN 201780004677 A CN201780004677 A CN 201780004677A CN 108496188 A CN108496188 A CN 108496188A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- value set
- weighted value
- processing
- value
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/0088—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/10—Simultaneous control of position or course in three dimensions
- G05D1/101—Simultaneous control of position or course in three dimensions specially adapted for aircraft
-
- 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/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
一种神经网络训练的方法、装置、计算机系统和可移动设备。该方法包括:获取神经网络的处理单元的第一权重值集合(410);对该第一权重值集合中的每个权重值进行三值化处理,得到第二权重值集合(420);根据该第二权重值集合和该处理单元的输入值集合,生成该处理单元的输出值,其中,该神经网络的后一层的处理单元的输入值集合取自前一层的处理单元的输出值(430);根据误差代价函数,训练该神经网络的每个该处理单元的该第一权重值集合中的权重值,其中,该误差代价函数包括误差项和结构性稀疏项,该结构性稀疏项使得该神经网络的部分该处理单元的该第一权重值集合中的所有权重值为零(440)。上述方法能够降低神经网络的资源需求。
Description
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本发明涉及信息技术领域,并且更具体地,涉及一种神经网络训练的方法、装置、计算机系统和可移动设备。
背景技术
传统的神经网络中权重值以及神经元的输出都是实数,一个神经网络前向传播时甚至需要上G(10^9)次的乘加运算。这就使得虽然大规模的神经网络在如目标检测、人脸识别、图像分割、目标跟踪、语义分割、语音识别等智能功能上能够有很好的表现,也很难将神经网络用在资源受限又要求低功耗的平台(比如无人机、自动驾驶、机器人、智能可穿戴设备、智能家电、智能手机等)上。
然而,高级计算平台,又因为体积庞大、功耗巨大、重量巨大等原因无法大规模用在产品当中。与之相对地,上述资源受限平台对上述各种智能功能的需求越来越大。
因此,如何降低神经网络的资源需求,成为一个亟待解决的技术问题。
发明内容
本发明实施例提供了一种神经网络训练的方法、装置、计算机系统和可移动设备,能够降低神经网络的资源需求。
第一方面,提供了一种神经网络训练的方法,包括:获取神经网络的处理单元的第一权重值集合,其中,该处理单元为该神经网络的卷积核或神经元;对该第一权重值集合中的每个权重值进行三值化处理,得到第二权重值集合;根据该第二权重值集合和该处理单元的输入值集合,生成该处理单元的输出值,其中,该神经网络的后一层的处理单元的输入值集合取自前一层的处理单元的输出值;根据误差代价函数,训练该神经网络的每个该处理单元的该第一权重值集合中的权重值,其中,该误差代价函数包括误差项和结构性稀疏项,该误差项关联该神经网络最后一层的输出与期望输出之间的误差,该结构性稀疏项使得该神经网络的部分该处理单元的该第一权重值集合中的所有权重值为零。
第二方面,提供了一种神经网络训练的装置,包括:获取模块,用于获取神经网络的处理单元的第一权重值集合,其中,该处理单元为该神经网络的卷积核或神经元;三值化处理模块,用于对该第一权重值集合中的每个权重值进行三值化处理,得到第二权重值集合;运算模块,用于根据该第二权重值集合和该处理单元的输入值集合,生成该处理单元的输出值,其中,该神经网络的后一层的处理单元的输入值集合取自前一层的处理单元的输出值;训练模块,用于根据误差代价函数训练该神经网络的每个该处理单元的该第一权重值集合中的权重值,其中,该误差代价函数包括误差项和结构性稀疏项,该误差项关联该神经网络最后一层的输出与期望输出之间的误差,该结构性稀疏项使得该神经网络的部分该处理单元的该第一权重值集合中的所有权重值为零。。
第三方面,提供了一种计算机系统,包括:存储器,用于存储计算机可执行指令;处理器,用于访问所述存储器,并执行所述计算机可执行指令,以进行上述第一方面的方法中的操作。
第四方面,提供了一种移动设备,包括:上述第二方面的神经网络训练的装置;或者,上述第三方面的的计算机系统。
第五方面,提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码可以用于指示执行上述第一或第二方面的方法。
本发明实施例的技术方案,通过将神经网络的权重值三值化和激活值二值化,以及在误差代价函数中引入结构性稀疏项,可以在神经网络的性能减少地非常小的前提下,大幅度降低神经网络的存储量和计算量,从而能够降低神经网络的资源需求。
附图说明
图1是神经网络的示意图。
图2是应用本发明实施例的技术方案的架构图。
图3是本发明实施例的可移动设备的示意性架构图。
图4是本发明实施例的神经网络训练的方法的示意性流程图。
图5是本发明实施例的三值化函数的图像。
图6是本发明实施例的二值化函数的图像。
图7是本发明实施例的激活函数的图像。
图8是本发明实施例的神经网络训练的装置的示意性框图。
图9是本发明实施例的计算机系统的示意性框图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行描述。
应理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
还应理解,本发明实施例中的公式只是一种示例,而非限制本发明实施例的范围,各公式可以进行变形,这些变形也应属于本发明保护的范围。
还应理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
还应理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本发明实施例对此并不限定。
本发明实施例的技术方案可以应用于各种神经网络中。
图1示出了神经网络的示意图。如图1所示,神经网络可以包括输入层,一个或多个隐含层,输出层。神经网络中的隐含层可以全为全连接层,也可以包括卷积层和全连接层,后者称为卷积神经网络。
在本发明实施例中,神经网络的处理单元可以为卷积核或神经元。也就是说,对于卷积层,处理单元为卷积核;对于全连接层,处理单元为神经元。
为了使得神经网络能够运用在资源受限的平台上,本发明实施例提供了一种技术方案,通过将神经网络的权重值三值化和响应值(激活值)二值化,大幅度降低神经网络的存储量和计算量,另外,通过在误差代价函数中引入结构性稀疏项,可以使得一些处理单元的权重值为零,从而进一步降低存储量和计算量。
应理解,本发明实施例的技术方案既可以应用于资源受限的平台,也可以应用于其他计算平台,本发明实施例对此并不限定。
图2是应用本发明实施例的技术方案的架构图。图2中系统200可以为各种应用神经网络的平台。
如图2所示,系统200可以接收输入数据202,对输入数据202进行处理,得到输出数据208。在一些实施例中,系统200中的部件可以由一个或多个处理器实现,该处理器可以是计算设备中的处理器,也可以是可移动设备(例如无人机)中的处理器。该处理器可以为任意种类的处理器,本发明实施例对此不做限定。在一些实施例中,该处理器可以为由处理电路组成的芯片。在一些实施例中,系统200中还可以包括一个或多个存储器。该存储器可用于存储指令和数据,例如,实现本发明实施例的技术方案的计算机可执行指令,以及数据等。该存储器可以为任意种类的存储器,本发明实施例对此也不做限定。
在一些设计中,上述资源受限的平台可以为可移动设备或者智能设备。该可移动设备也可以称为移动设备。该可移动设备可以是无人机、无人驾驶船、自动驾驶车辆或机器人等;该智能设备可以为智能可穿戴设备、智能家电、智能手机等,但本发明实施例对此并不限定。
图3是本发明实施例的可移动设备300的示意性架构图。
如图3所示,可移动设备300可以包括动力系统310、控制系统320、传感系统330和处理系统340。
动力系统310用于为该可移动设备300提供动力。
以无人机为例,无人机的动力系统可以包括电子调速器(简称为电调)、螺旋桨以及与螺旋桨相对应的电机。电机连接在电子调速器与螺旋桨之间,电机和螺旋桨设置在对应的机臂上;电子调速器用于接收控制系统产生的驱动信号,并根据驱动信号提供驱动电流给电机,以控制电机的转速。电机用于驱动螺旋桨旋转,从而为无人机的飞行提供动力。
传感系统330可以用于测量可移动设备300的姿态信息,即可移动设备300在空间的位置信息和状态信息,例如,三维位置、三维角度、三维速度、三维加速度和三维角速度等。传感系统330例如可以包括陀螺仪、电子罗盘、惯性测量单元(Inertial MeasurementUnit,IMU)、视觉传感器、全球定位系统(Global Positioning System,GPS)、气压计、空速计等传感器中的至少一种。
传感系统330还可用于采集图像,即传感系统330包括用于采集图像的传感器,例如相机等。
控制系统320用于控制可移动设备300的移动。控制系统320可以按照预先设置的程序指令对可移动设备300进行控制。例如,控制系统320可以根据传感系统330测量的可移动设备300的姿态信息控制可移动设备300的移动。控制系统320也可以根据来自遥控器的控制信号对可移动设备300进行控制。例如,对于无人机,控制系统320可以为飞行控制系统(飞控),或者为飞控中的控制电路。
处理系统340可以处理传感系统330采集的图像。例如,处理系统340可以为图像信号处理(Image Signal Processing,ISP)类芯片。
处理系统340可以为图2中的系统200,或者,处理系统340可以包括图2中的系统200。
应理解,上述对于可移动设备300的各组成部件的划分和命名仅仅是示例性的,并不应理解为对本发明实施例的限制。
还应理解,可移动设备300还可以包括图3中未示出的其他部件,本发明实施例对此并不限定。
图4示出了本发明一个实施例的神经网络训练的方法400的示意性流程图。该方法400可以由图2所示的系统200执行;或者由图3所示的可移动设备300执行。具体地,在由可移动设备300执行时,可以由图3中的处理系统340执行。
410,获取神经网络的处理单元的第一权重值集合,其中,该处理单元为该神经网络的卷积核或神经元。
第一权重值集合中的权重值为待训练的权重值。也就是说,训练神经网络的过程为训练神经网络的每个处理单元的第一权重值集合中的权重值的过程。
神经网络的处理单元可以为卷积核或神经元。对于卷积层,处理单元为卷积核;对于全连接层,处理单元为神经元。
420,对该第一权重值集合中的每个权重值进行三值化处理,得到第二权重值集合。
在本发明实施例中,为了减少计算量和存储量,对权重值进行三值化处理。即,将权重值按照其所处的取值范围处理为三个值中的一个。例如,该三个值可以为{-1,0,+1}。
可选地,若第一权重值在预设范围内,则将该第一权重值三值化处理为零,其中,该第一权重值表示该第一权重值集合中的权重值;
若该第一权重值在该预设范围之上,则将该第一权重值三值化处理为1;
若该第一权重值在该预设范围之下,则将该第一权重值三值化处理为-1。
例如,可以将该第一权重值输入以下函数(1)得到三值化后的权重值。
其中,W表示该第一权重值,Θ为预设值。该预设值Θ可以为较小的正实数,例如,可以为0.3。上述TΘ(W)函数图像可以如图5所示。
第一权重值集合中的权重值三值化处理后的权重值,形成第二权重值集合。
权重值三值化处理后,位数比较少,因此能够减少数据的存储量,而且还能降低后续运算的计算量。
430,根据该第二权重值集合和该处理单元的输入值集合,生成该处理单元的输出值,其中,该神经网络的后一层的处理单元的输入值集合取自前一层的处理单元的输出值。
在本发明实施例中,根据该第二权重值集合(即三值化处理后的权重值的集合)和输入值集合,生成输出值。处理单元的输入值集合取自前一层的处理单元的输出值。例如,对于全连接层的神经元,其输入值集合为前一层的所有处理单元的输出值的集合;对于卷积层的卷积核,其输入值集合为该卷积核对应的前一层的输出值的集合。
可选地,处理单元的输出值为二值化处理后的值。
在一个实施例中,可以根据该第二权重值集合和该处理单元的输入值集合,得到响应值;对该响应值进行二值化处理,得到该处理单元输出值。
具体而言,对于每个处理单元,可以对该第二权重值集合对应的向量和该处理单元的输入值集合对应的向量做内积,得到该响应值;再对该响应值进行二值化处理,得到该处理单元输出值。
可选地,在对该响应值进行二值化处理之前,还可以先对该响应值进行批规范化(Batch normalization)处理,以防止响应值变化范围不可控而影响训练时的收敛。
可选地,该二值化处理可以为将该响应值处理为1和0中的一个值。
具体地,若该响应值大于预定值,则将该处理单元输出值处理为1;若该响应值不大于该预定值,则将该处理单元输出值处理为0。
例如,可以按照以下函数(2)对响应值进行二值化处理,得到处理单元输出值。
其中,r表示响应值,B(r)表示处理单元输出值。
上述B(r)函数图像可以如图6所示。
在采用二值化处理时,上述二值化函数可作为激活函数,其输出为激活值。
应理解,也可以同时采用激活函数和二值化函数,也就是说,可以先将响应值输入激活函数得到激活值,再将激活值输入二值化函数,得到处理单元输出值,该方式也作为本发明的一个实施例。
440,根据误差代价函数,训练该神经网络的每个该处理单元的该第一权重值集合中的权重值,其中,该误差代价函数包括误差项和结构性稀疏项,该误差项关联该神经网络最后一层的输出与期望输出之间的误差,该结构性稀疏项使得该神经网络的部分处理单元的该第一权重值集合中的所有权重值为零。
训练神经网络的过程为训练神经网络的每个处理单元的第一权重值集合中的权重值的过程。在本发明实施例中,可选地,可以调整该神经网络的每个处理单元的该第一权重值集合中的权重值,以使上述误差代价函数的代价达到预定代价或最小化,其中,在训练过程中,每个处理单元的输出值可以按照前述方式得到。
在本发明实施例中,误差代价函数除了包括误差项外,还包括结构性稀疏项。该误差项关联该神经网络最后一层的输出与期望输出之间的误差,即训练过程中神经网络的输出与样本对应的真实值之间的误差。该结构性稀疏项可以使得该神经网络的部分处理单元的该第一权重值集合中的所有权重值为零。
例如,该误差代价函数可以为以下函数(3),
其中,W表示第一权重值集合对应的向量,C表示误差代价函数,E表示误差项,F表示Frobenius范数,L表示神经网络的层数,Kl表示神经网络的第l层的卷积核数或神经元数,λ表示正则化系数。
函数(3)中最右边一项为结构性稀疏项。在该项中,将每个卷积核或神经元的范数都加起来作为代价的一部分。对于一个卷积核或神经元,其所有权重值都是零才没有这个代价。这样,在训练过程中,神经网络就会出现结构性稀疏的特性,即某些处理单元的所有权重值为零。因此,这些处理单元就可以去掉,从而进一步降低存储量和计算量。
可选地,在训练过程中,可以先确定该误差代价函数对第二权重值的导数;再根据该导数调整第一权重值,其中,该第一权重值表示该第一权重值集合中的权重值,该第二权重值表示该第一权重值在当前调整前的三值化处理后的值。
例如,可以根据以下公式(4)调整该第一权重值,
其中,W表示第一权重值,wt表示第二权重值,C表示误差代价函数,η表示学习速率。
由于像二值化函数这种阶跃函数的导数除一点不可导外都为零,这样无法求导,因此,可以根据无二值化处理的激活函数确定上述导数。也就是说,在训练过程中,仅在前向传播时用二值化函数,而在反向传播求导时还按照二值化之前的网络结构进行求导。
可选地,当反向传播经过B(r)函数时,可以近似用图7中实线所示函数进行求导。
可选地,当反向传播经过TΘ(W)函数时,可以按照y=x函数进行求导,也就是说,在链式求导过程中忽略TΘ(W)函数。
这样,可以在近似意义上使训练出的神经网络也能表现出不错的性能,节约了大量的存储量和计算量,而这种近似带来的损失也能够通过稍微扩大网络规模来弥补。这种被二值化的网络在前向传播时的处理就全部变成了位操作,可以在专用硬件上大规模集成,提高效率,减小功耗。
本发明实施例的技术方案,通过将神经网络的权重值三值化和激活值二值化,以及在误差代价函数中引入结构性稀疏项,可以在神经网络的性能减少地非常小的前提下,大幅度降低神经网络的存储量和计算量,从而能够降低神经网络的资源需求。
可选地,在权重值三值化和激活值二值化的情况下,神经网络中的运算可以通过位操作实现。
对于权重值w∈{-1,0,+1},激活值a∈{0,1},首先用两位二进制数表示w,用一位二进制数表示a。
w为-1时表示为11,w为0时表示为00,w为+1表示为01。a为1时表示为1,a为零时表示为0。以下是w与a相乘的真值表。
表1
w=11 | w=01 | w=00 | |
a=0 | 00 | 00 | 00 |
a=1 | 11 | 01 | 00 |
神经网络中的运算大部分是向量的数量积,也叫点积、内积,即两个向量对应位置相乘然后再各个位置相加。对于要做数量积的两个向量A和W,A存激活值(一位的),W存权重值(两位的),即一个寄存器A(n比特)能存放n个a(激活值),两个寄存器W1和W0(都是n比特)能够存储n个w(权重值),W1存权重值高位,W0存权重值低位。
计算激活值和权重值的数量积就可以用下列方法,其中,C表示A向量和W向量对应位置相乘得到的结果向量,&表示“按位与”。
(低位寄存器)C0=A&W0,
(高位寄存器)C1=A&W1。
然后把C向量中每个数求和,也可以用位操作来实现。
SUM=bitcount(C0XOR C1)-bitcount(C0&C1)。
其中,XOR表示“按位异或”,bitcount表示数一个寄存器中有多少个1,绝大多数计算平台都支持bitcount操作。SUM所得为C向量所有元素的和。
这样,在7个计算周期内就完成了n次乘加操作。如果硬件同时并行操作的位数越多,这种方法就越有优势。
上文详细描述了本发明实施例的神经网络训练的方法,下面将描述本发明实施例的神经网络训练的装置、计算机系统和可移动设备。应理解,本发明实施例的神经网络训练的装置、计算机系统和可移动设备可以执行前述本发明实施例的各种方法,即以下各种产品的具体工作过程,可以参考前述方法实施例中的对应过程。
图8示出了本发明实施例的神经网络训练的装置800的示意性框图。如图8所示,该装置800可以包括:
获取模块810,用于获取神经网络的处理单元的第一权重值集合,其中,该处理单元为该神经网络的卷积核或神经元;
三值化处理模块820,用于对该第一权重值集合中的每个权重值进行三值化处理,得到第二权重值集合;
运算模块830,用于根据该第二权重值集合和该处理单元的输入值集合,生成该处理单元的输出值,其中,该神经网络的后一层的处理单元的输入值集合取自前一层的处理单元的输出值;
训练模块840,用于根据误差代价函数训练该神经网络的每个该处理单元的该第一权重值集合中的权重值,其中,该误差代价函数包括误差项和结构性稀疏项,该误差项关联该神经网络最后一层的输出与期望输出之间的误差,该结构性稀疏项使得该神经网络的部分该处理单元的该第一权重值集合中的所有权重值为零。
可选地,该三值化处理模块820用于:
若第一权重值在预设范围内,则将该第一权重值三值化处理为零,其中,该第一权重值表示该第一权重值集合中的权重值;
若该第一权重值在该预设范围之上,则将该第一权重值三值化处理为1;
若该第一权重值在该预设范围之下,则将该第一权重值三值化处理为-1。
可选地,该运算模块830用于:
根据该第二权重值集合和该处理单元的输入值集合,得到响应值;
对该响应值进行二值化处理,得到该处理单元输出值。
可选地,该运算模块830用于:
对该第二权重值集合对应的向量和该处理单元的输入值集合对应的向量做内积,得到该响应值。
可选地,该运算模块830用于在对该响应值进行二值化处理之前,对该响应值进行批规范化处理。
可选地,该运算模块830用于:
若该响应值大于预定值,则将该处理单元输出值处理为1;
若该响应值不大于该预定值,则将该处理单元输出值处理为0。
可选地,该训练模块840用于:
调整该神经网络的每个该处理单元的该第一权重值集合中的权重值,以使该误差代价函数的代价达到预定代价或最小化。
可选地,该训练模块840用于:
确定该误差代价函数对第二权重值的导数;
根据该导数调整第一权重值,其中,该第一权重值表示该第一权重值集合中的权重值,该第二权重值表示该第一权重值在当前调整前的三值化处理后的值。
可选地,该训练模块840用于:
根据无二值化处理的激活函数确定该导数。
应理解,上述本发明实施例的神经网络训练的装置可以是芯片,其具体可以由电路实现,但本发明实施例对具体的实现形式不做限定。
本发明实施例还提供了一种处理器,该处理器可以包括上述本发明各种实施例的神经网络训练的装置。
图9示出了本发明实施例的计算机系统900的示意性框图。
如图9所示,该计算机系统900可以包括处理器910和存储器920。
应理解,该计算机系统900还可以包括其他计算机系统中通常所包括的部件,例如,输入输出设备、通信接口等,本发明实施例对此并不限定。
存储器920用于存储计算机可执行指令。
存储器920可以是各种种类的存储器,例如可以包括高速随机存取存储器(RandomAccess Memory,RAM),还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,本发明实施例对此并不限定。
处理器90用于访问该存储器920,并执行该计算机可执行指令,以进行上述本发明各种实施例的神经网络训练的方法中的操作。
处理器910可以包括微处理器,现场可编程门阵列(Field-Programmable GateArray,FPGA),中央处理器(Central Processing unit,CPU),图形处理器(GraphicsProcessing Unit,GPU)等,本发明实施例对此并不限定。
本发明实施例还提供了一种可移动设备,该移动设备可以包括上述本发明各种实施例的神经网络训练的装置、处理器或者计算机系统。
本发明实施例的神经网络训练的装置、计算机系统和可移动设备可对应于本发明实施例的神经网络训练的方法的执行主体,并且神经网络训练的装置、计算机系统和可移动设备中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。
本发明实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码可以用于指示执行上述本发明实施例的神经网络训练的方法。
应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (21)
1.一种神经网络训练的方法,其特征在于,包括:
获取神经网络的处理单元的第一权重值集合,其中,所述处理单元为所述神经网络的卷积核或神经元;
对所述第一权重值集合中的每个权重值进行三值化处理,得到第二权重值集合;
根据所述第二权重值集合和所述处理单元的输入值集合,生成所述处理单元的输出值,其中,所述神经网络的后一层的处理单元的输入值集合取自前一层的处理单元的输出值;
根据误差代价函数,训练所述神经网络的每个所述处理单元的所述第一权重值集合中的权重值,其中,所述误差代价函数包括误差项和结构性稀疏项,所述误差项关联所述神经网络最后一层的输出与期望输出之间的误差,所述结构性稀疏项使得所述神经网络的部分所述处理单元的所述第一权重值集合中的所有权重值为零。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一权重值集合中的每个权重值进行三值化处理,包括:
若第一权重值在预设范围内,则将所述第一权重值三值化处理为零,其中,所述第一权重值表示所述第一权重值集合中的权重值;
若所述第一权重值在所述预设范围之上,则将所述第一权重值三值化处理为1;
若所述第一权重值在所述预设范围之下,则将所述第一权重值三值化处理为-1。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第二权重值集合和所述处理单元的输入值集合,生成所述处理单元的输出值,包括:
根据所述第二权重值集合和所述处理单元的输入值集合,得到响应值;
对所述响应值进行二值化处理,得到所述处理单元输出值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第二权重值集合和所述处理单元的输入值集合,得到响应值,包括:
对所述第二权重值集合对应的向量和所述处理单元的输入值集合对应的向量做内积,得到所述响应值。
5.根据权利要求3或4所述的方法,其特征在于,在所述对所述响应值进行二值化处理之前,还包括:
对所述响应值进行批规范化处理。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述对所述响应值进行二值化处理,包括:
若所述响应值大于预定值,则将所述处理单元输出值处理为1;
若所述响应值不大于所述预定值,则将所述处理单元输出值处理为0。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述根据误差代价函数,训练所述神经网络的每个所述处理单元的所述第一权重值集合中的权重值,包括:
调整所述神经网络的每个所述处理单元的所述第一权重值集合中的权重值,以使所述误差代价函数的代价达到预定代价或最小化。
8.根据权利要求7所述的方法,其特征在于,所述调整所述神经网络的每个所述处理单元的所述第一权重值集合中的权重值,包括:
确定所述误差代价函数对第二权重值的导数;
根据所述导数调整第一权重值,其中,所述第一权重值表示所述第一权重值集合中的权重值,所述第二权重值表示所述第一权重值在当前调整前的三值化处理后的值。
9.根据权利要求8所述的方法,其特征在于,所述确定所述误差代价函数对第二权重值的导数,包括:
根据无二值化处理的激活函数确定所述导数。
10.一种神经网络训练的装置,其特征在于,包括:
获取模块,用于获取神经网络的处理单元的第一权重值集合,其中,所述处理单元为所述神经网络的卷积核或神经元;
三值化处理模块,用于对所述第一权重值集合中的每个权重值进行三值化处理,得到第二权重值集合;
运算模块,用于根据所述第二权重值集合和所述处理单元的输入值集合,生成所述处理单元的输出值,其中,所述神经网络的后一层的处理单元的输入值集合取自前一层的处理单元的输出值;
训练模块,用于根据误差代价函数训练所述神经网络的每个所述处理单元的所述第一权重值集合中的权重值,其中,所述误差代价函数包括误差项和结构性稀疏项,所述误差项关联所述神经网络最后一层的输出与期望输出之间的误差,所述结构性稀疏项使得所述神经网络的部分所述处理单元的所述第一权重值集合中的所有权重值为零。
11.根据权利要求10所述的装置,其特征在于,所述三值化处理模块用于:
若第一权重值在预设范围内,则将所述第一权重值三值化处理为零,其中,所述第一权重值表示所述第一权重值集合中的权重值;
若所述第一权重值在所述预设范围之上,则将所述第一权重值三值化处理为1;
若所述第一权重值在所述预设范围之下,则将所述第一权重值三值化处理为-1。
12.根据权利要求10或11所述的装置,其特征在于,所述运算模块用于:
根据所述第二权重值集合和所述处理单元的输入值集合,得到响应值;
对所述响应值进行二值化处理,得到所述处理单元输出值。
13.根据权利要求12所述的装置,其特征在于,所述运算模块用于:
对所述第二权重值集合对应的向量和所述处理单元的输入值集合对应的向量做内积,得到所述响应值。
14.根据权利要求12或13所述的装置,其特征在于,所述运算模块用于在对所述响应值进行二值化处理之前,对所述响应值进行批规范化处理。
15.根据权利要求12至14中任一项所述的装置,其特征在于,所述运算模块用于:
若所述响应值大于预定值,则将所述处理单元输出值处理为1;
若所述响应值不大于所述预定值,则将所述处理单元输出值处理为0。
16.根据权利要求10至15中任一项所述的装置,其特征在于,所述训练模块用于:
调整所述神经网络的每个所述处理单元的所述第一权重值集合中的权重值,以使所述误差代价函数的代价达到预定代价或最小化。
17.根据权利要求16所述的装置,其特征在于,所述训练模块用于:
确定所述误差代价函数对第二权重值的导数;
根据所述导数调整第一权重值,其中,所述第一权重值表示所述第一权重值集合中的权重值,所述第二权重值表示所述第一权重值在当前调整前的三值化处理后的值。
18.根据权利要求17所述的装置,其特征在于,所述训练模块用于:
根据无二值化处理的激活函数确定所述导数。
19.一种计算机系统,其特征在于,包括:
存储器,用于存储计算机可执行指令;
处理器,用于访问所述存储器,并执行所述计算机可执行指令,以进行根据权利要求1至9中任一项所述的方法中的操作。
20.一种可移动设备,其特征在于,包括:
根据权利要求10至18中任一项所述的神经网络训练的装置。
21.一种可移动设备,其特征在于,包括:
根据权利要求19所述的计算机系统。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/086547 WO2018218481A1 (zh) | 2017-05-31 | 2017-05-31 | 神经网络训练的方法、装置、计算机系统和可移动设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108496188A true CN108496188A (zh) | 2018-09-04 |
Family
ID=63344787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780004677.4A Pending CN108496188A (zh) | 2017-05-31 | 2017-05-31 | 神经网络训练的方法、装置、计算机系统和可移动设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200143245A1 (zh) |
CN (1) | CN108496188A (zh) |
WO (1) | WO2018218481A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109740754A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
US10748033B2 (en) | 2018-12-11 | 2020-08-18 | Industrial Technology Research Institute | Object detection method using CNN model and object detection apparatus using the same |
CN111684472A (zh) * | 2019-05-31 | 2020-09-18 | 深圳市大疆创新科技有限公司 | 网络结构搜索的方法及装置、计算机存储介质和计算机程序产品 |
CN111798875A (zh) * | 2020-07-21 | 2020-10-20 | 杭州芯声智能科技有限公司 | 一种基于三值量化压缩的vad实现方法 |
CN113222107A (zh) * | 2021-03-09 | 2021-08-06 | 北京大学 | 数据处理方法、装置、设备及存储介质 |
CN113255208A (zh) * | 2021-04-21 | 2021-08-13 | 杭州新剑机器人技术股份有限公司 | 用于机器人的串联弹性执行器的神经网络模型预测控制方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210157052A (ko) * | 2020-06-19 | 2021-12-28 | 삼성전자주식회사 | 객체 인식 방법 및 객체 인식 장치 |
CN113259276A (zh) * | 2021-05-13 | 2021-08-13 | 电子科技大学 | 基于神经网络的gmsk脉冲多普勒频移测量方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761722A (zh) * | 2014-01-16 | 2014-04-30 | 中国南方电网有限责任公司超高压输电公司检修试验中心 | 一种用于输电线路固定翼无人机巡视图像精确拼接的方法 |
CN104978580A (zh) * | 2015-06-15 | 2015-10-14 | 国网山东省电力公司电力科学研究院 | 一种用于无人机巡检输电线路的绝缘子识别方法 |
CN105404902A (zh) * | 2015-10-27 | 2016-03-16 | 清华大学 | 基于脉冲神经网络的图像特征描述和记忆方法 |
CN105759836A (zh) * | 2016-03-14 | 2016-07-13 | 武汉卓拔科技有限公司 | 一种基于3d摄像头的无人机避障方法及装置 |
CN106096504A (zh) * | 2016-05-30 | 2016-11-09 | 重庆大学 | 一种基于无人机机载平台的车型识别方法 |
CN106227341A (zh) * | 2016-07-20 | 2016-12-14 | 南京邮电大学 | 基于深度学习的无人机手势交互方法及系统 |
CN106598226A (zh) * | 2016-11-16 | 2017-04-26 | 天津大学 | 一种基于双目视觉和深度学习的无人机人机交互方法 |
CN106611216A (zh) * | 2016-12-29 | 2017-05-03 | 北京旷视科技有限公司 | 基于神经网络的计算方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104091081B (zh) * | 2014-07-15 | 2017-04-19 | 中国科学院自动化研究所 | 一种交通数据弥补方法 |
US9552549B1 (en) * | 2014-07-28 | 2017-01-24 | Google Inc. | Ranking approach to train deep neural nets for multilabel image annotation |
CN106548127B (zh) * | 2015-09-18 | 2022-11-04 | 松下电器(美国)知识产权公司 | 图像识别方法 |
CN105701480B (zh) * | 2016-02-26 | 2019-02-01 | 江苏科海智能系统有限公司 | 一种视频语义分析方法 |
-
2017
- 2017-05-31 WO PCT/CN2017/086547 patent/WO2018218481A1/zh active Application Filing
- 2017-05-31 CN CN201780004677.4A patent/CN108496188A/zh active Pending
-
2019
- 2019-11-27 US US16/697,556 patent/US20200143245A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761722A (zh) * | 2014-01-16 | 2014-04-30 | 中国南方电网有限责任公司超高压输电公司检修试验中心 | 一种用于输电线路固定翼无人机巡视图像精确拼接的方法 |
CN104978580A (zh) * | 2015-06-15 | 2015-10-14 | 国网山东省电力公司电力科学研究院 | 一种用于无人机巡检输电线路的绝缘子识别方法 |
CN105404902A (zh) * | 2015-10-27 | 2016-03-16 | 清华大学 | 基于脉冲神经网络的图像特征描述和记忆方法 |
CN105759836A (zh) * | 2016-03-14 | 2016-07-13 | 武汉卓拔科技有限公司 | 一种基于3d摄像头的无人机避障方法及装置 |
CN106096504A (zh) * | 2016-05-30 | 2016-11-09 | 重庆大学 | 一种基于无人机机载平台的车型识别方法 |
CN106227341A (zh) * | 2016-07-20 | 2016-12-14 | 南京邮电大学 | 基于深度学习的无人机手势交互方法及系统 |
CN106598226A (zh) * | 2016-11-16 | 2017-04-26 | 天津大学 | 一种基于双目视觉和深度学习的无人机人机交互方法 |
CN106611216A (zh) * | 2016-12-29 | 2017-05-03 | 北京旷视科技有限公司 | 基于神经网络的计算方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10748033B2 (en) | 2018-12-11 | 2020-08-18 | Industrial Technology Research Institute | Object detection method using CNN model and object detection apparatus using the same |
TWI708209B (zh) * | 2018-12-11 | 2020-10-21 | 財團法人工業技術研究院 | 使用卷積神經網絡模型的物件偵測方法及物件偵測設備 |
CN109740754A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN111684472A (zh) * | 2019-05-31 | 2020-09-18 | 深圳市大疆创新科技有限公司 | 网络结构搜索的方法及装置、计算机存储介质和计算机程序产品 |
CN111798875A (zh) * | 2020-07-21 | 2020-10-20 | 杭州芯声智能科技有限公司 | 一种基于三值量化压缩的vad实现方法 |
CN113222107A (zh) * | 2021-03-09 | 2021-08-06 | 北京大学 | 数据处理方法、装置、设备及存储介质 |
CN113255208A (zh) * | 2021-04-21 | 2021-08-13 | 杭州新剑机器人技术股份有限公司 | 用于机器人的串联弹性执行器的神经网络模型预测控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200143245A1 (en) | 2020-05-07 |
WO2018218481A1 (zh) | 2018-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108496188A (zh) | 神经网络训练的方法、装置、计算机系统和可移动设备 | |
US20230376771A1 (en) | Training machine learning models by determining update rules using neural networks | |
US11150655B2 (en) | Method and system for training unmanned aerial vehicle control model based on artificial intelligence | |
US11941719B2 (en) | Learning robotic tasks using one or more neural networks | |
EP3186753B1 (en) | Processing images using deep neural networks | |
EP3407266B1 (en) | Artificial neural network calculating device and method for sparse connection | |
US20190286953A1 (en) | System and Methods for Efficiently Implementing a Convolutional Neural Network Incorporating Binarized Filter and Convolution Operation for Performing Image Classification | |
CN108229647A (zh) | 神经网络结构的生成方法和装置、电子设备、存储介质 | |
CN108734210B (zh) | 一种基于跨模态多尺度特征融合的对象检测方法 | |
CN110689109A (zh) | 神经网络方法和装置 | |
CN112106073A (zh) | 使用网格代码执行导航任务 | |
WO2022017131A1 (zh) | 点云数据的处理方法、智能行驶控制方法及装置 | |
CN114467092A (zh) | 使用后见之明建模来训练动作选择神经网络 | |
CN110991513A (zh) | 一种具有类人连续学习能力的图像目标识别系统及方法 | |
WO2023246819A1 (zh) | 一种模型训练方法及相关设备 | |
WO2023179482A1 (zh) | 一种图像处理方法、神经网络的训练方法以及相关设备 | |
CN114037882A (zh) | 边缘人工智能装置、电子装置及其方法 | |
CN104573737B (zh) | 特征点定位的方法及装置 | |
US20220383073A1 (en) | Domain adaptation using domain-adversarial learning in synthetic data systems and applications | |
US20220398283A1 (en) | Method for fast and better tree search for reinforcement learning | |
CN115687764A (zh) | 车辆轨迹评估模型的训练方法、车辆轨迹评估方法和装置 | |
US11335045B2 (en) | Combining feature maps in an artificial intelligence semiconductor solution | |
US11144790B2 (en) | Deep learning model embodiments and training embodiments for faster training | |
Uma Rani et al. | Satellite Pose Estimation Using Modified Residual Networks | |
CN113553026A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180904 |