CN114450891A - 利用误差校正码的二进制神经元和二进制神经网络的设计和训练 - Google Patents
利用误差校正码的二进制神经元和二进制神经网络的设计和训练 Download PDFInfo
- Publication number
- CN114450891A CN114450891A CN201980100837.4A CN201980100837A CN114450891A CN 114450891 A CN114450891 A CN 114450891A CN 201980100837 A CN201980100837 A CN 201980100837A CN 114450891 A CN114450891 A CN 114450891A
- Authority
- CN
- China
- Prior art keywords
- node
- binary
- input
- weights
- data processing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/136—Reed-Muller [RM] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/21—Non-linear codes, e.g. m-bit data word to n-bit code word [mBnB] conversion with error detection or error correction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6597—Implementations using analogue techniques for coding or decoding, e.g. analogue Viterbi decoder
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Nonlinear Science (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Error Detection And Correction (AREA)
- Character Discrimination (AREA)
- Complex Calculations (AREA)
- Feedback Control In General (AREA)
Abstract
一种具有二进制神经网络架构的数据处理系统,该二进制神经网络架构用于接收二进制网络输入,并且根据网络输入经由多个二进制处理节点传播信号,以根据相应的二进制权重形成网络输出,该数据处理系统被配置成通过以下操作来训练多个二进制处理节点中的每个节点:将节点功能实现为误差校正码(例如,r阶里德‑穆勒码,例如1阶里德‑穆勒码或1阶里德‑穆勒码的陪集)功能,以通过信道解码(例如,快速沃尔什‑哈达玛变换算法)来识别针对该节点的给定输入使在根据节点的当前二进制权重形成的节点的输出与从该节点的优选输出之间的任何误差最小化的二进制权重组,并且将该节点的权重更新为所识别的二进制权重组。这种训练在没有存储以及/或者使用任何更高运算精度的权重或其他要素的情况下执行。
Description
技术领域
本发明涉及深度神经网络,特别地涉及二进制神经元和二进制神经网络的设计和训练。
背景技术
深层神经网络(Deep Neural Network,DNN)是受构成生物大脑的生物神经网络启发的计算系统。DNN通过考虑通常不使用任何特定于任务的规则进行编程的示例来“学习”执行任务。例如,在图像识别中,它们可以通过分析被手动标记为“汽车”或“无汽车”的示例图像并且使用结果来识别其他图像中的汽车来学习识别包含汽车的图像。它们在没有任何关于汽车的先验知识的情况下这样做。替代地,它们会根据所处理的学习材料来自动生成识别特征。图1示出了这个处理的一般方案。
DNN基于被称为人工神经元的连接单元或节点的集合,其松散地对生物大脑中的神经元进行建模。每个连接就像生物大脑中的突触一样,可以将信号从一个人工神经元传输到另一人工神经元。接收信号的人工神经元可以处理信号,并且然后激活连接至其的另外的人工神经元。典型地,人工神经元被聚集成层,其中,不同的层可以对它们的输入执行不同种类的转换。
在常见的DNN实现中,人工神经元之间的连接处的信号是实数,并且每个人工神经元的输出通过其输入之和的一些非线性函数来计算。人工神经元之间的连接称为“边缘”。边缘通常具有随着学习的进行而调整的权重。权重增加或减少连接处的信号的强度。人工神经元可以具有阈值,使得仅当聚集的信号超过该阈值时才发送信号。
单个人工神经元如图2所示。输入(x1,x2,...,xn)可以是输入信号,也可以是前一个神经元层的输出。每个输入xi首先乘以权重wij,其中,j表示神经元指数,并且然后对乘积求和。在某些情况下,这个总和会加上偏差w0j。然后通过非线性激活函数传递净输入,并且最后产生单个输出yj。
DNN如今无处不在,渗透到现代通信网络的每个方面。因此,毫不奇怪,在未来的网络中的装置例如智能手机、传感器和可穿戴装置中,DNN有望发挥非常重要的作用。特别是对于智能手机,DNN已经有了很大的市场,其应用各种各样,包括图像识别、人像模式摄影、文本预测、用户简档、去噪和摄像头增强。
然而,其在这样的资源受限的装置上的实现受到高资源消耗(内存和能量)的限制。在DNN的标准实现中,所有的输入、输出、权重、偏差和激活函数都被认为是实数,并且通常用浮点运算在计算机中表示,这意味着每个数字都是用64位序列来近似。在深度学习应用中,可以存在具有数千个神经元的DNN,其中,每个神经元可以具有许多输入,从而产生数百万个这样的浮点数。
出于这个原因,最近的研究集中在使用较小的数位运算(即二进制、三进制或8位)来压缩DNN。这样的方法本质上是用比浮点型会使用的位数更少的位数来表示每个数字(输入、输出、权重)。然而,减少表示位对准确度有不利影响。对于相同数量的神经元,每个神经元现在在描述关系方面都不太有效,并且因此可能会引入误差。另一方面,可以增加神经元的数量并且理论上达到与以前相同的准确度。例如,在最坏的情况下,64个二进制神经元可以模拟浮点神经元。
然而,在最近的研究中,希望如果可以适当地设计二进制神经网络则这种情况可以得到改善。
先前的工作已经确定,降低运算精度可以大大提高DNN的性能,而不必牺牲准确度。然而,低精度DNN的训练成为新的瓶颈,并且也是当今机器学习领域的关键问题之一。
I.Hubara,M.Courbariaux,D.Soudry,R.El-Yaniv和Y.Bengio的“QuantizedNeural Networks:Training Neural Networks with Low Precision Weights andActivations”,Journal of Machine Learning Research,18(187),1-30页,2017年,以及M.Rastegari,V.Ordonez,J.Redmon和A.Farhadi的“XNOR-Net:ImageNet ClassificationUsing Binary Convolutional Neural Networks”,European Conference on ComputerVision,525-542页,2016年,提供了二进制神经网络(binary neural network,BNN)的设计,与具有连续权重的DNN相比,BNN使内存使用减少了32倍,实现了能量消耗的十倍减少,并且显著减少了推理时间。这些结果证明了开发低精度NN架构和训练算法的必要性,所述低精度NN架构和训练算法实现的准确度接近通过其连续权重的对应物实现的准确度。
然而,已知训练具有低精度权重的神经网络(甚至单层神经网络)是NP困难优化问题。特别地,由于权重离散化,基于计算损失函数的梯度的在连续DNN中使用的反向传播算法不能被有效地使用。一旦用于表示数字的位数小于8,就会出现不稳定梯度的问题。
因此,在低精度神经网络的有效训练方面的大多数先前的工作是基于梯度逼近的使用,这需要存储浮点权重和低精度权重,并且使用浮点算法执行某种形式的反向传播(因此放弃一些离散化优势)。
为了解决这个问题,这些工作针对每个权重保持全精度值,并且然后(i)将该值二进制化,以及(ii)对于针对经二进制化的值所评估的梯度通过直通估计器来更新全精度值。
在C.Leng,Z.Dou,H.Li,S.Zhu,R.Jin的“Extremely Low Bit Neural Network:Squeeze the Last Bit Out with ADMM”,The Thirty-Second AAAI Conference onArtificial Intelligence(AAAI-18),3466-3473页中描述的算法也存储了两个版本的权重:低精度权重和高精度权重,并且寻求优化严重惩罚这两者之间距离的函数,因此迫使高精度权重取非常接近低精度权重的值。
基于贝叶斯建模的替选方法在以下文献中描述:D.Soudry,I Hubara,R.Meir的“Expectation Backpropagation:parameter-free training of multilayer neuralnetworks with continuous or discrete weights”,27th International Conferenceon Neural Information Processing Systems(NIPS),2014年,其中,每个权重由在训练时更新的概率分布表征。然后通过从给定分布中对权重进行采样来指定BNN。按照这些方法的过程可以在训练期间产生BNN,但是它们仍然需要在全精度实数上操作,因此它们不适合在电池供电的装置上使用。
另一训练BNN的方法是受统计物理启发的算法。以下文献中的方法提供了针对每个二进制权重保持和更新整数“隐藏权重”的训练算法:C.Baldassi和A.Braunstein的“AMax-Sum algorithm for training discrete neural networks”,Journal ofStatistical Mechanics:Theory and Experiments,2015年8月,以及C.Baldassi的“Generalization Learning in a Perceptron with Binary Synapses”,Journal ofStatistical Physics,第136卷,第5号,902-916页,2009年9月。已经说明,这些整数隐藏权重也可以具有有限的幅度。这一特性大大降低了操作的复杂性,使这些算法对装置上的使用更具吸引力。然而,这些算法是针对特定类型的网络设计的,并且不能以直接的方式应用于更一般和更深入的架构。
以下文献中的工作提供了一种基于置信传播的有效算法,但是与先前的工作一样,这适用于单个感知器并且不清楚如何将其用于具有多个层的网络:C.Baldassi,A.Ingrosso,C.Lucibello,L.Saglietti,R.Zecchina的“Subdominant Dense ClustersAllow for Simple Learning and High Computational Performance in NeuralNetworks with Discrete Synapses”,Physical Review Letters,第115卷,第12号,2015年9月。
克服梯度信息缺乏的替选方法是将训练作为组合优化问题来处理,并且对此类问题应用已知的解决方法。例如,进化算法(Evolutionary Algorithm,EA)已经被提出作为用于一般的NN的训练方法,如在以下文献中描述的:G.Morse和K.O.Stanley的“SimpleEvolutionary Optimization Can Rival Stochastic Gradient Descent in NeuralNetworks”,The Genetic and Evolutionary Computation Conference(GECCO),2016年7月,并且特别地进化算法已经被提出作为用于低精度DNN的训练方法,如在以下文献中描述的:R.Ito和T.Saito的“Dynamic binary neural networks and evolutionarylearning”,The International Joint Conference on Neural Networks(IJCNN),2010年7月。
然而,EA受困于性能和可扩展性问题。首先,虽然仅考虑低精度权重,但存储在存储器中的权重数会乘以群体大小,并且因此,即使对于二进制权重和适度群体大小100,内存占用也比存储具有16、32或64位浮点表示的十进制权重大。其次,必须对群体的所有成员执行训练期间的单个前向传播。尽管这可以并行完成,但拥有与群体大小一样多的并行处理器对于在移动装置上进行训练来说是不可行的。最后,众所周知,群体大小应当随着权重的数量(优化参数空间的维数)而增加,这使得大型神经网络的扩展成为问题。
因此,在文献中不存在已知的可扩展且有效的算法来单纯地在智能手机上训练低精度DNN。因此,现有技术的方法是通过在云上使用浮点运算来执行计算要求高的训练阶段,在云上时,资源限制是宽松的。然后,在智能手机上提供低精度版本的DNN,以对无形的数据执行要求较低的推理(前馈)阶段。然而,这是仅可以产生固定的预先训练的低精度DNN的过程,其是现有技术的主要限制。
低精度神经网络可以用软件或硬件实现。已知特别是二进制神经网络具有基于位运算(在软件中)或数字逻辑电路(例如NOR或XNOR(在硬件中))的非常有效的实现。
WO 1992012497 A1和US 10089577 B2描述了针对用于实现BNN的神经元的特定硬件设计的使用。WO 1992012497 A1涉及用作联想存储器的神经网络,并且将每个神经元实现为“NOR”(“或非”)逻辑函数,使得仅当其所有输入都不活跃时,其输出才是活跃的。在US10089577 B2中,在每个神经元的输入信号与相应的权重之间执行XNOR(异或非),并且然后将所得的1的数量与阈值进行比较,以确定输出(激活函数)。此外,没有提出训练方法。
希望设计二进制神经元和神经网络,以便完全二进制化DNN,从而使得智能手机中的人工智能(artificial intelligence,AI)能够具有紧凑的AI芯片组、降低的能量消耗和训练加速。
发明内容
根据第一方面,提供了一种具有神经网络架构的数据处理系统,该神经网络架构用于接收二进制网络输入,并且根据网络输入经由多个处理节点传播信号,以根据相应的二进制权重形成网络输出,该数据处理系统被配置成通过以下操作来训练节点:实现误差校正功能,以识别针对该节点的给定输入使在根据节点的当前权重形成的节点输出与从该节点的优选输出之间的任何误差最小化的二进制权重组,并且将该节点的权重更新为所识别的权重。这种训练可以在二进制域中执行,而无需存储以及/或者使用任何更高运算精度的权重或其他要素。
因此,该方法可以训练“二进制域”神经元和/或神经网络,而无需存储以及/或者使用任何更高运算精度的权重或其他要素。根据大规模生产的需要,该方法可以以简单、独立和模块化的方式在人工智能芯片组上实现。这种解决方案可以在准确性方面存在较小损失,但在简单性、空间、热属性、内存要求和能量消耗方面有显著的优势,并且可以用于联合学习、用户配置、隐私、安全和最佳控制。受信道编码理论特性的启发,这种方法更接近要使用的布尔(Boolean)函数的精确形式。
所述节点可以被配置成接收根据网络输入的节点输入,并且形成节点输出,该节点输出是二进制的并且在函数地等于以下三项的二进制域的和:(i)第一权重,(ii)(a)节点输入的位中的每个位与(b)第二权重组中的相应一个权重的乘积的二进制域的和,以及(iii)指示是否节点输入的所有位为非零的值。这可以提供实现灵活计算节点的有效方式。
所述节点中的一个节点可以被配置成形成函数地等于一阶里德-穆勒码(Reed-Muller code)的陪集的节点输出,其中,陪集的核将节点输入的位作为输入。这可以允许节点有效地处理二进制数据。
该节点可以被实现为逻辑电路组,该逻辑电路组被配置成使得:
(i)节点输入的每一位与相应权重进行逻辑与函数以形成相应的第一中间值;
(ii)节点输入的所有位一起进行逻辑与函数以形成第二中间值;以及
(iii)另一权重、第一中间值和第二中间值一起执行逻辑异或函数以形成节点输出。这可以促进二进制数据的有效处理。
该网络可以包括多个块,每个块包括至少三个如上述所阐述的逻辑电路,这些逻辑电路被配置成使得这些逻辑电路中的第一逻辑电路和第二逻辑电路接收根据网络输入的块输入并形成第一中间块值和第二中间块值,并且这些逻辑电路中的第三逻辑电路接收中间块值作为输入并形成从该块的输出。这种形式的块可以有效地形成更复杂的计算结构的部件。块之间的互连可以取决于要实现的期望布尔函数。
第一逻辑电路可以被配置成应用作为二进制感知器的权重的权重,并且第二逻辑电路可以具有固定的权重。固定权重可以为零。这可以允许第一逻辑电路有效地处理输入数据。
第三逻辑电路可以接收(i)第一中间块值的单个实例和(ii)第二中间块值的多个实例作为输入。这可以允许第三逻辑电路以有效的方式处理数据。
第三逻辑电路可以被配置成对除了第二中间块值的一个实例之外的第三逻辑电路的的所有输入应用固定的权重。这可以允许第三逻辑电路以有效的方式处理数据。
第三逻辑电路可以被配置成对第二中间块值的所述实例应用等于第一逻辑电路的权重的二进制域的和的权重。这可以允许第三逻辑电路以有效的方式处理数据。
数据处理系统可以包括多个子系统,每个子系统包括如上所述的系统,其中,该系统被配置成提供子系统中的至少一个子系统的输出作为其他子系统中的至少一个子系统的输入。多个子系统之间的连接可以根据要实现的期望布尔函数来配置。
该系统可以被配置成通过以下步骤来根据针对节点输入组所预期的预期节点输出组调整针对节点的权重:形成值的组,该值的组针对每个节点输入表示预期节点输出是(i)零、(ii)一、或(iii)无关的;以及识别哈达玛矩阵中最佳地匹配该值的组的第i行;以及根据该识别来调整针对节点的权重。可以使用任何用于对误差校正码进行解码的过程来调整针对节点的权重。这可以允许系统响应于输入数据有效地学习。
该系统可以被配置成形成值的组,该值的组针对每个节点输入表示在已经调整权重之后的相应的节点输出是否与预期节点输出匹配。这可以使用任何用于对误差校正码进行解码的过程来执行。这可以向学习处理提供反馈。
该系统可以被配置成通过操作快速沃尔什-哈达玛(Walsh-Hadamard)函数来根据针对节点输入组所预期的预期节点输出组来调整针对节点的权重,该快速沃尔什-哈达玛函数将该预期节点输出组作为输入。这可以向学习处理提供反馈。
根据第二方面,提供了一种通信终端,该通信终端包括传感器和如上所述的数据处理系统,该终端被配置成借助于传感器来感测数据以形成网络输入。传感器可以是摄像头。
终端可以被配置成使用所述数据处理系统对通过通信链路接收的数据执行误差校正。
根据第三方面,提供了一种在具有神经网络架构的系统中实现的计算机程序,该神经网络架构用于接收二进制网络输入,并且根据网络输入经由多个处理节点传播信号,以根据相应的二进制权重形成网络输出,该计算机程序在由计算机执行时使计算机执行方法,该方法包括通过以下操作来训练节点:实现误差校正功能,以识别针对该节点的给定输入使在根据该节点的当前权重形成的该节点的输出与从该节点的优选输出之间的任何误差最小化的二进制权重组,并且将该节点的权重更新为所识别的权重。计算机程序可以在非暂态计算机可读存储介质上提供。
附图说明
现在将参照附图通过示例的方式来描述本发明。在附图中:
图1示出了神经网络训练的阶段图。
图2示出了人工神经元。
图3示出了快速沃尔什哈达玛变换流图。
图4示出了实现二进制域神经元的激活函数的三输入的电路的示例。
图5示出了指示M个输入的二进制域神经元的符号。
图6(a)示出了二进制域感知器的电路。
图6(b)示出了图6(a)中电路的符号。
图7(a)示出了可以实现布尔单项式、布尔项或加权OR(或)门的电路。
图7(b)示出了指示布尔单项式的符号。
图7(c)示出了指示布尔项的符号。
图8示出了可以实现任何布尔函数的代数范式(algebraic normal form,ANF)的电路。从层4到输出神经元(总共n层),每层中的神经元的数量在顶部被指示。
图9(a)示出了用于指示其中可以选择对其执行OR操作的输入的OR门(“加权OR”)的符号。
图9(b)示出了指示其中在考虑所有输入的情况下应用运算的OR门(相当于αi=1,i=1,…,M的加权OR)的符号。
图10示出了可以实现任何布尔函数的DNF的电路。从层4到输出神经元(总共n层OR门),每层中的OR门的数量在顶部被指示。
图11示出了数据处理系统的示例。
具体实施方式
本发明通过引入基于二进制域运算的架构提出了纯二进制神经网络,并且将训练问题转换成通信信道解码问题。
人工神经元有许多输入和权重,并且返回一个输出。它通常被视为由权重进行参数化并且将神经元的输入作为变量来返回输出的函数。在BNN的背景下,特别关注的是其输入、权重和输出都是二进制数的二进制神经元的发展。有趣的是,二进制神经元的这样的结构符合布尔函数。
设m是变量的数目,并且是二进制m元组。布尔函数是取F2中的值的任何函数f(x)=f(x1,x2,…,xm)。它可以由定义了所有2m个输入组合处的f的值的真值表指定。表1给出了二进制和函数(XOR函数)的真值表的示例。
表1:布尔函数(XOR)的真值表的示例
{1,xi,xixj,j≠i,xixj,j≠ixk,k≠i,j,…,x1x2…xm} (1)
布尔函数为二进制神经元建模提供了一种自然的方法,特别是从其中神经元就像根据提供的输入给出输出的函数的前馈角度来看。从这个角度来看,训练二进制神经元相当于拟合布尔函数,即找到在给定特定的输入时最佳地近似输出目标的函数。如下所说明的,该公式化允许应用公知的工具来解决函数拟合,并且因此也解决神经元训练。
表达误差校正码的布尔函数作为针对二进制神经元实现的具体且合适的候选而出现,这是由于它们的关键优势:作为码,它们具有以直接的方式将函数拟合转换成解码任务的内置结构。
本发明提出了可以使用信道编码理论方便地训练的二进制域神经元,以及专门使用这种类型的神经元构建的多个电路,这些电路具有解决具有离散输入和离散输出的任何学习问题的能力。
后者是可能的,这要归功于(i)所提出的神经元激活函数生成其输入的非线性函数的能力,以及(ii)通过以方便的方式连接足够数量的这样的神经元,任何布尔函数都可以由网络实现的事实。这意味着系统可以学习输入和标签的任何组合。
此外,对于固定输入,由神经元实现的函数在神经元参数中是线性的,这允许将每个神经元的权重向量视为特定的误差校正码,并且因此将神经元训练问题公式化为信道解码问题。
现在将描述示例性二进制域神经元和用其构建的多个电路的细节,这些电路具有用二进制输入解决任何二进制分类问题的能力。由于任何M标签分类问题都可以被公式化为M个一对所有(one-against-all)的二进制分类,因此此处给出的电路可以被扩展以构建具有二进制输入的多标签分类器。
在这个示例中,每个二进制域神经元的权重向量是里德-穆勒码,这是一种可以根据布尔函数来简单定义的误差校正码。对于m>0和0≤r≤m,表示为R(r,m)的r阶里德-穆勒码是根据布尔函数f(x1,x2,…,xm)得到的n=2m的所有向量的集合,是至多r次的布尔多项式。
r阶里德-穆勒码具有最小距离2m-r。更高的码阶数增加了码本大小和近似准确度,但是减小了最小距离,并且使得神经元对误拟合(miss-fitting)数据不太鲁棒,这又是重要的要求。
特别且有趣的情况是一阶里德-穆勒码R(1,m),其在里德-穆勒码之中具有最大的最小距离。它由2m+1个线性布尔函数组成,由下式给出:
其中,是输入变量,并且是指定f的参数。一阶里德-穆勒码不仅具有最大的最小距离,但其也是计算上高效的,这归因于其哈达玛结构码本允许执行计算上高效的解码。然而,值得注意的是,一阶里德-穆勒码是纯线性的,参见等式(2),而在概念上,需要人工神经元以能够表达线性和非线性函数。幸运的是,一阶里德-穆勒码的优点可以被保留,并且同时满足非线性可表达性要求。这是通过使用一阶里德-穆勒码CR(1,m)的陪集来实现的,由下式定义:
其中,右手侧的乘积是陪集核,它为神经元提供了表达非线性部分的能力。明显地,如果则核等于1,否则等于0。CR(1,m)的真值表直接从R(1,m)的真值表中通过仅取最后一行的二进制补码得到。结果,哈达玛结构码本可以像R(1,m)中那样容易地用于对CR(1,m)进行有效解码。
按照这种思路,训练神经元的处理相当于根据给定的优化准则来找到与最佳可实现函数相对应的最佳训练变量w。这个问题类似于解码问题,其中,优化标准可以是例如期望真值表与可实现函数之间的误差最小化以及针对输入训练数据集的准确度最大化。
针对CR(1,2)的可实现函数的示例如表2所示。这个表示出了可解码且无误差的2m +1=8个可实现函数的集合。一般来说,存在个可能的函数,这意味着不属于表2的集合的任何真值表函数对于特定的x具有一个或更多个误差。
表2:针对m=2个二进制输入的可实现函数的示例
现在将描述对神经元进行解码的方法的示例。
在给定目标真值表的情况下,可以利用其布尔函数在等式(3)中描述的CR(1,m)码的哈达玛结构码本找到最佳训练变量w。这是通过使用沃尔什-哈达玛变换实现的。
沃尔什矩阵是n={1,2,…}的维数为2n的特定方阵。针对矩阵的每个项hik,hik∈{-1,1}并且所有行和列都是正交的,即点积等于零。自然序的沃尔什矩阵称为哈达玛矩阵,其由递归公式给出:
执行这种修改,使得表2中所示的可实现函数由哈达玛矩阵的行(或列)来表示。注意,yi=-1的最后一种情况表示擦除,即没有目标值的输入向量x。作为最后一步,为了考虑神经元函数的非线性部分,的最后一个项的符号被反转。然后,哈达玛矩阵的最佳行i*被发现为i*=argmax|d|,其中,是示出H的每一行离目标向量有多近的向量。然后,如果max(d)>max(-d),则神经元的最佳偏差w0为0,否则神经元的最佳偏置w0为1。此外,神经元的权重(w1,w2,…,wm)简单地由整数i*的二进制表示给出。
以前的方法由于需要构造全哈达玛矩阵且计算要求高而具有需要大量的内存的缺点。快速沃尔什-哈达玛变换通过避免哈达玛矩阵的构造并降低O(m2m)的复杂度来解决这两个缺点。
总之,如图3所示,快速沃尔什-哈达玛变换作为解码器工作,在给定目标真值表的情况下,所述解码器提供最佳训练变量w,并且还指示存在解码错误(即可实现函数不同于目标真值表)的位。
现在将描述实现二进制域神经元和感知器的电路的示例。
等式(3)中的神经元激活函数可以用具有AND(与)逻辑门和OR逻辑门的硬件实现。
图4示出了针对M=3个输入的可能实现的示例。
在下文中,具有由等式(3)给出的激活函数的M个输入的神经元将用图5所示的符号表示。权重w1,…,wM的具体值可以在符号内部指示,以及偏差w0可以在符号顶部指示。如果仅出现Π符号,则权重不是固定的并且可以在训练中得到。神经元内部的符号1M或0M分别指示向量(w1,…,wM)为全1或全0向量。在这两种情况下,偏置都是w0=0。
小网络可以专门使用具有由等式(3)给出的激活函数的神经元来构建,以具有实现等式(2)给出的函数的电路,即输入加上偏置的线性组合。这个函数被称为二进制感知器。
图6(a)示出了实现等式(2)中的函数的二进制域感知器的电路。
图6(a)示出了如何组合三个二进制域神经元601、602、603来获得二进制感知器。网络有两层,其中,第一层中有两个神经元601、602以及第二层中有一个神经元603。为了在网络的输出端处实现等式(2)中的函数,第一层中的第一神经元601的权重取感知器参数值,而第二神经元602的权重都取值0。注意,这在第二神经元输出端处给出了所有输入变量x1,…,xM的乘积。第一神经元601的输出连接至第二层神经元603的第一输入,而所有其他输入连接至第二神经元602的输出。乘以第一神经元601的输出的权重是1,而乘以第二神经元602的输出的权重除了其中一个取值β之外,其余都是0。选择β的值,使得在最后一层神经元603的输出处,所有输入变量的乘积被抵消。为实现这一点,β取值如下:
图6(b)示出了用于表示图6(a)所示网络的符号。
现在将描述实现布尔单项式的电路的示例。布尔单项式是输入变量x1,…,xM的子集的乘积。任意单项式μk可以写为:
图7(a)示出了由M个感知器和输出神经元组成的电路,该电路可以实现任何布尔单项式。由于感知器可以计算其输入的任何线性函数,因此为了得到单项式μk,选择每个感知器i(i=1,…,M)的参数以在时给出xi,以及在时给出1。最后一个神经元的权重设置为0M,使得该最后一个神经元仅计算感知器输出的乘积。
图7(b)示出了当选择神经元的系数以便在输出端产生任何单项式μk时,在剩余部分中使用的用于表示图7(a)所示网络的符号。
现在将描述以多项式代数范式(ANF)实现布尔函数的电路的示例。
代数范式(ANF)是由布尔单项式的XOR运算组成的布尔表达式。对于某些依赖于f(x)的参数值a0,…,a12…M,布尔函数f(x)的ANF可以写为:
图8示出了用二进制域神经元构建的网络,该网络可以计算至多M次的ANF。由于任何布尔函数都可以以ANF编写(参见O'Donnell R.的“Analysis of boolean functions”,Cambridge University Press,2014年,6月5日),因此这个网络可以实现在801处所指示的M个输入的任何布尔函数。
网络的前三层被布置成使得在第三层的输出端处产生所有可能的单项式μk,k=1,…,2M。存在在其输出端处产生0的M(n-1)个另外的单项式,并且其唯一的功能是从第四层到最后一层针对每个神经元具有在前一层中取值为0并且因此可以连接至每个神经元的最后一个输入端的输出。这允许等式(3)中的乘积项被取消,并且因此具有(从第四层开始)仅计算其所有输入的XOR以在输出端处产生唯一值的网络。因此,为了将所有2M项相加,并且确保在所有层处在前一层中存在至少一个输出为0的神经元,参数n满足(M-1)M(n-1)>2M。
在这个网络中,前四层必须生成2M个单项式,因此这些层中所有神经元的参数都是固定的。类似地,从第五层开始,所有输入都仅用XOR相加,因此这些层中所有神经元的系数都取值1,并且偏差都设置为0。因此,唯一的自由参数是第四层中神经元的权重,其在它们的输入μk处的单项式出现在f(x)中时应当取值1,否则应当取值0。
现在将描述实现布尔项的电路的示例。
具有M个感知器和一个输出神经元的用于产生任意单项式的电路也可以用来产生任何全项。为此,每个输入变量xi被分配给一个感知器,并且每个感知器的权重都被设置为0,除了被分配的输入变量之一以外,所述被分配的输入变量之一的感知器权重被设置为1。如果变量在项中出现为不取反,则相应感知器中的偏差设置为0,否则相应感知器中的偏差设置为1。最后,最后一个神经元仅计算感知器的所有输出的乘积,因此其偏差和所有权重都被设置为0。
图7(c)示出了下面使用的指示布尔全项的符号。
现在将描述以析取范式(Disjunctive Normal Form,DNF)实现布尔函数的电路。
任何布尔函数都可以写为其输入的全项的析取(OR)。布尔函数的这个标准表达式被称为全析取范式(DNF),并且其一般表达式可以写为:
f(x)=b1γ1V…VbKγK, (10)
其中,如果相应的项γk出现在f(x)的全DNF中,则系数bk,k=1,…,2M取值1,否则系数bk,k=1,…,2M取值0。
为了建立仅使用二进制域神经元实现任何全DNF的电路,有必要专门使用这个神经元来建立OR门。这也可以通过图7(a)所示的电路来实现。考虑计算其一些输入之间的OR的函数。这个函数的一般表达式是:
g(x)=α1x1V…VαMxM, (11)
其中,如果变量xi出现在OR运算中,则αi=1,否则αi=0。由g(x)计算的运算在下面称为加权OR。应用德摩根定律,由g(x)计算的函数可以改写为:
等式(12)最后一行中的表达式可以由图7(a)所示的网络实现,以方便地选择每个神经元的权重。图9(a)中所示的符号用于指示针对参数α1,…,αM的某些选择计算其M个输入的加权OR的网络,以及图9(b)中的符号用于指示M个输入变量的“标准”OR运算,或等效地指示在αi=1,i=1,…,M的情况下的加权OR。
出于实际原因,在硬件中直接用实际的OR门实现OR门可能更有效,而不是组合许多本身需要许多基本布尔门的神经元。
图10示出了专门用二进制域神经元构建的可以计算M个输入变量的任何全DNF的网络。由于任何布尔函数都可以用全DNF写成,因此这个网络可以实现M个输入的任何布尔函数。
类似于计算任何ANF的网络,图10中网络的前三层用于生成M个变量的所有2M个可能项。其中,将组成DNF的项是用通过之后三层构建的加权OR门的参数选择的。在这些之后,网络仅是计算所有选定项的析取的OR门的级联。
与ANF不同,在ANF中,生成的单项式的数量Mn应当满足Mn>2M+M(n-1)来传播零,在这种情况下,生成的单项式的数量应当满足Mn>2M,因为先前用神经元生成的树结构已经用OR(或加权OR)门代替。进而,树的深度已乘以3,由于要有n层OR门,因此需要3n层神经元。
图11示出了被配置成实现上述网络及其相关联的部件的数据处理系统1100的示意图。该系统可以包括处理器1101和非易失性存储器1102。该系统可以包括多于一个的处理器和多于一个的存储器。存储器可以存储可由处理器执行的数据。处理器可以被配置成根据以非暂态形式存储在机器可读存储介质上的计算机程序来操作。计算机程序可以存储用于使处理器以本文描述的方式执行其方法的指令。
在一个特定实现中,上述数据处理系统可以被实现为诸如智能手机的通信终端的一部分。智能手机可以包括传感器例如摄像头,从该传感器提供感测数据以形成网络输入。终端可以被配置成使用数据处理系统对通过通信链路接收的数据执行误差校正。该数据处理系统可以用于包括图像识别、人像模式摄影、文本预测、用户简档、去噪和摄像头增强的应用。
该系统可以实现为多个子系统,每个子系统包括如上实施方式之一中所述的网络。在这种布置中,至少一个子系统的网络的输出可以被提供作为对至少一个其他子系统的网络的输入。多个子系统之间的连接可以根据要实现的期望布尔函数来配置。
本发明的方法训练不利用连续要素的“二进制域”神经元和/或神经网络。这由于神经元的特殊设计而成为可能。本发明将每个神经元的权重向量建模为误差校正码,并且将神经元训练问题公式化为信道解码问题。二进制域人工神经元具有实现误差校正码的参数。还描述了用于解码这种类型的神经元和解码BNN的方法,以及可以实现这种神经元和基于这种类型的神经元的BNN的逻辑电路,以及它们在虚拟环境中的相应实现。
与现有技术相比,所提出的解决方案具有许多优点。
根据大规模生产的需要,该方法可以以简单、独立和模块化的方式在人工智能芯片组上实现。
该解决方案在准确性方面存在较小损失,但在简单性、空间、热属性、内存要求和能量消耗方面具有显著优势,并且可以用于联合学习、用户简档、隐私、安全和最佳控制。
受信道编码理论特性的启发,这种方法更接近要使用的布尔函数的精确形式。
申请人在本文中单独公开了本文描述的每个单独的特征以及两个或更多个这样的特征的任何组合,在某种程度上,这样的特征或组合能够根据本领域技术人员的普通公知常识基于本说明书作为整体来实现,而不管这样的特征或特征的组合是否解决了本文公开的任何问题,并且不限制权利要求的范围。申请人指出,本发明的方面可以由任何这样的单独特征或特征组合组成。鉴于前面的描述,对于本领域技术人员来说明显的是,在本发明的范围内可以进行各种修改。
Claims (19)
1.一种具有神经网络架构的数据处理系统,所述神经网络架构用于接收二进制网络输入,并且根据所述网络输入经由多个处理节点传播信号,以根据相应的二进制权重形成网络输出,所述数据处理系统被配置成通过以下操作来训练节点:实现误差校正功能,以识别针对该节点的给定输入使在根据所述节点的当前权重形成的所述节点的输出与从所述节点的优选输出之间的任何误差最小化的二进制权重组,并且将该节点的权重更新为所识别的权重。
2.根据权利要求1所述的数据处理系统,其中,所述节点被配置成接收根据所述网络输入的节点输入,并且形成节点输出,所述节点输出是二进制的并且函数地等于以下三项的二进制域的和:(i)第一权重;(ii)(a)所述节点输入的位中的每个位与(b)第二权重组中的相应一个权重的乘积的二进制域的和;以及(iii)指示是否所述节点输入的所有位为非零的值。
3.根据权利要求2所述的数据处理系统,其中,所述节点中的一个节点被配置成形成函数地等于一阶里德-穆勒码的陪集的节点输出,其中,所述陪集的核将所述节点输入的位作为输入。
4.根据权利要求2所述的数据处理系统,其中,所述节点被实现为逻辑电路组,所述逻辑电路组被配置成使得:
(i)所述节点输入的每一位与相应权重进行逻辑与函数以形成相应的第一中间值;
(ii)所述节点输入的所有位一起进行逻辑与函数以形成第二中间值;以及
(iii)另一权重、所述第一中间值和所述第二中间值一起进行逻辑异或函数以形成所述节点输出。
5.根据权利要求4所述的数据处理系统,其中,所述网络包括多个块,每个块包括至少三个根据权利要求3所述的逻辑电路,这些逻辑电路被配置成使得这些逻辑电路中的第一逻辑电路和第二逻辑电路接收根据所述网络输入的块输入并形成第一中间块值和第二中间块值,并且这些逻辑电路中的第三逻辑电路接收所述中间块值作为输入并形成从所述块的输出。
6.根据权利要求5所述的数据处理系统,其中,所述第一逻辑电路被配置成应用作为二进制感知器权重的权重,并且所述第二逻辑电路具有固定的权重。
7.根据权利要求6所述的数据处理系统,其中,所述固定的权重为零。
8.根据权利要求6或7所述的数据处理系统,其中,所述第三逻辑电路接收(i)所述第一中间块值的单个实例和(ii)所述第二中间块值的多个实例作为输入。
9.根据权利要求8所述的数据处理系统,其中,所述第三逻辑电路被配置成对除了所述第二中间块值的一个实例之外的所述第三逻辑电路的所有输入应用固定的权重。
10.根据权利要求9所述的数据处理系统,其中,所述第三逻辑电路被配置成对所述第二中间块值的所述实例应用等于所述第一逻辑电路的权重的二进制域的和的权重。
11.一种包括多个子系统的数据处理系统,每个所述子系统包括根据权利要求5至10中任一项所述的系统,其中,所述系统被配置成提供所述子系统中的至少一个子系统的输出作为其他子系统中的至少一个子系统的输入。
12.根据权利要求11所述的数据处理系统,其中,所述多个子系统之间的连接根据要实现的期望布尔函数来配置。
13.根据任一项前述权利要求所述的数据处理系统,所述系统被配置成通过以下步骤来根据针对节点输入组所预期的预期节点输出组调整针对节点的权重:
形成值的组,所述值的组针对每个节点输入表示所述预期节点输出是(i)零、(ii)一、或者(iii)无关的;以及
识别哈达玛矩阵中最佳地匹配所述值的组的第i行;以及
根据该识别来调整针对所述节点的权重。
14.根据任一项前述权利要求所述的数据处理系统,所述系统被配置成形成值的组,所述值的组针对每个节点输入表示已经调整所述权重之后的相应的节点输出是否与所述预期节点输出匹配。
15.根据权利要求1至14中任一项所述的数据处理系统,所述系统被配置成通过操作快速沃尔什-哈达玛函数来根据针对节点输入组所预期的预期节点输出组来调整针对节点的权重,所述快速沃尔什-哈达玛函数将所述预期节点输出组作为输入。
16.一种通信终端,包括传感器和根据任一项前述权利要求所述的数据处理系统,所述终端被配置成借助于所述传感器来感测数据以形成所述网络输入。
17.根据权利要求16所述的通信终端,其中,所述传感器是摄像头。
18.根据权利要求16或17所述的通信终端,所述终端被配置成使用所述数据处理系统对通过通信链路接收的数据执行误差校正。
19.一种在具有神经网络架构的系统中实现的计算机程序,所述神经网络架构用于接收二进制网络输入,并且根据所述网络输入经由多个处理节点传播信号,以根据相应的二进制权重形成网络输出,所述计算机程序在由计算机执行时使所述计算机执行方法,所述方法包括通过以下操作来训练节点:实现误差校正功能,以识别针对该节点的给定输入使在根据所述节点的当前权重形成的所述节点的输出与从所述节点的优选输出之间的任何误差最小化的二进制权重组,并且将该节点的权重更新为所识别的权重。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2019/078362 WO2021073752A1 (en) | 2019-10-18 | 2019-10-18 | Design and training of binary neurons and binary neural networks with error correcting codes |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114450891A true CN114450891A (zh) | 2022-05-06 |
Family
ID=68290250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980100837.4A Pending CN114450891A (zh) | 2019-10-18 | 2019-10-18 | 利用误差校正码的二进制神经元和二进制神经网络的设计和训练 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220237456A1 (zh) |
EP (2) | EP4310732A3 (zh) |
KR (1) | KR20220078655A (zh) |
CN (1) | CN114450891A (zh) |
WO (1) | WO2021073752A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11947634B2 (en) * | 2021-09-01 | 2024-04-02 | FootPrintKu Inc. | Image object classification method, system and computer readable medium |
KR102562322B1 (ko) * | 2021-11-29 | 2023-08-02 | 주식회사 딥엑스 | 이진화 신경망(bnn)을 위한 신경 프로세싱 유닛 |
WO2023134731A1 (en) * | 2022-01-13 | 2023-07-20 | Mediatek Inc. | In-loop neural networks for video coding |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371413A (en) * | 1990-09-11 | 1994-12-06 | Siemens Aktiengesellschaft | Process and arrangement for the Boolean realization of adaline-type neural networks |
FR2671207B1 (fr) | 1991-01-02 | 1993-04-16 | Abin Claude | Reseau neuronal a operateurs binaires et procedes pour sa realisation. |
US10089577B2 (en) | 2016-08-05 | 2018-10-02 | Xilinx, Inc. | Binary neural networks on progammable integrated circuits |
-
2019
- 2019-10-18 WO PCT/EP2019/078362 patent/WO2021073752A1/en unknown
- 2019-10-18 CN CN201980100837.4A patent/CN114450891A/zh active Pending
- 2019-10-18 EP EP23206103.6A patent/EP4310732A3/en active Pending
- 2019-10-18 EP EP19790200.0A patent/EP4035273B1/en active Active
- 2019-10-18 KR KR1020227015215A patent/KR20220078655A/ko unknown
-
2022
- 2022-04-18 US US17/659,543 patent/US20220237456A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4310732A3 (en) | 2024-04-03 |
EP4310732A2 (en) | 2024-01-24 |
EP4035273B1 (en) | 2024-01-17 |
KR20220078655A (ko) | 2022-06-10 |
EP4035273A1 (en) | 2022-08-03 |
US20220237456A1 (en) | 2022-07-28 |
WO2021073752A1 (en) | 2021-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liang et al. | Pruning and quantization for deep neural network acceleration: A survey | |
Faraone et al. | Syq: Learning symmetric quantization for efficient deep neural networks | |
Wan et al. | Tbn: Convolutional neural network with ternary inputs and binary weights | |
Zhou et al. | Dorefa-net: Training low bitwidth convolutional neural networks with low bitwidth gradients | |
Chaturvedi et al. | Learning word dependencies in text by means of a deep recurrent belief network | |
He et al. | Effective quantization methods for recurrent neural networks | |
US20220237456A1 (en) | Design and Training of Binary Neurons and Binary Neural Networks with Error Correcting Codes | |
WO2018140294A1 (en) | Neural network based on fixed-point operations | |
CN113826122A (zh) | 人工神经网络的训练 | |
CN113348474A (zh) | 具有非均匀尾数的神经网络激活压缩 | |
Peng et al. | Fully integer-based quantization for mobile convolutional neural network inference | |
Cox | Syntactically informed text compression with recurrent neural networks | |
CN115017178A (zh) | 数据到文本生成模型的训练方法和装置 | |
Jiang et al. | Few-shot learning in spiking neural networks by multi-timescale optimization | |
Floropoulos et al. | Complete vector quantization of feedforward neural networks | |
Lee et al. | Resource-efficient deep learning: A survey on model-, arithmetic-, and implementation-level techniques | |
Xia et al. | A simple and efficient stochastic rounding method for training neural networks in low precision | |
Slakey et al. | Encoding categorical variables with conjugate bayesian models for wework lead scoring engine | |
KR20190103011A (ko) | 거리 기반 딥 러닝 | |
Mostafa et al. | Hardware-efficient on-line learning through pipelined truncated-error backpropagation in binary-state networks | |
CN114766024A (zh) | 用于修剪神经网络的方法和设备 | |
Parajuli et al. | Generalized ternary connect: end-to-end learning and compression of multiplication-free deep neural networks | |
Hung et al. | Bridge deep learning to the physical world: An efficient method to quantize network | |
Eom et al. | Alpha-Integration Pooling for Convolutional Neural Networks | |
Ji et al. | Towards efficient on-chip learning using equilibrium propagation |
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 |