人工神经元及其执行方法与流程

文档序号:22577128发布日期:2020-10-20 16:47阅读:231来源:国知局
人工神经元及其执行方法与流程
本公开涉及类神经运算,特别是涉及能减轻损耗的人工神经元及其执行方法。
背景技术
:图1为现有的人工神经网络100的功能方框图。参照图1,人工神经网络(artificialneuralnetwork,ann)100包括多个层,这些层包括输入层110、多个隐藏层120、130、…、180、及输出层190。各个层包括多个神经元。例如,输入层110包括神经元111、112、113、…、119,隐藏层120包括神经元121、122、123、…、129,隐藏层130包括神经元131、132、133、…、139,隐藏层180包括神经元181、182、183、…、189,输出层190包括神经元191、192、193、…、199。除了输入层110中的神经元之外,各个神经元接收来自前一层的神经元的输入。例如,神经元121接收来自神经元111、112、113、…、119的输入。除了输出层190中的神经元之外,每个神经元向后一层的神经元提供输出。例如,神经元121向神经元131、132、133、…、139提供输出。除了输入层110中的神经元之外,神经元的功能可表示为前一层神经元的输入加权总和的单调函数。神经元能以数字方式或模拟方式来实现。数字神经元能提供高准确度,但因为需要大量使用具有高静态漏电流的晶体管,而受制于高功耗。另一方面,模拟神经元是高功率效能的,但因为制造过程中的各种损耗,其本质在准确度上受到限制。例如,在没有损耗的情况下,当所有输入都为零时,神经元的输出应该为零。然而,由于在制造过程中元件并不匹配,实际上的输出可能不为零。这导致称为“偏移(offset)”的损耗。假如能减轻与模拟性质相关的损耗,模拟神经元对于不要求高准确度的应用是可行的选择。因此,期盼有一种人工神经元能减轻模拟性质相关的损耗。技术实现要素:依据一些实施例,一种人工神经元,包括:一组增益单元电路、全域加总电路、及负载。该组增益单元电路用以接收一组输入电压,并依据一组控制信号输出对应的一组局部电流,其中,该组控制信号中对应的各个控制信号包括对应的一组二进位信号。全域加总电路用以加总该组局部电流为全域电流。负载用以转换全域电流为输出电压。其中,该组增益单元电路包含对应的多个增益单元电路。各个增益单元电路包括:一组电压转电流转换器、一组乘法器、及局部加总电路。该组电压转电流转换器用以转换对应的输入电压为对应的一组过渡电流,输入电压与增益单元电路相关。该组乘法器用以将对应的该组过渡电流与对应的该组二进位信号相乘,以输出对应的一组条件反向电流,该组二进位信号与对应的控制信号有关,控制信号与对应的输入电压相关。局部加总电路用以加总对应的该组条件反向电流为该组局部电流中对应的局部电流。依据一些实施例,一种人工神经元的执行方法,包括:接收一组输入电压;利用电压电流转换方式,转换该组输入电压中对应的输入电压为对应的一组局部电流;将对应的该组局部电流与对应的一组二进位信号相乘,以建立对应的一组条件反向电流;加总对应的该组条件反向电流至对应的局部电流;加总对应的局部电流至全域电流;及使用负载电路以转换全域电流为输出电压。附图说明图1为现有的人工神经网络的功能方框图。图2为本公开一些实施例的人工神经元的功能方框图。图3为图2中的人工神经元的增益单元的功能方框图。图4为适用于图3的增益单元的电压转电流转换器的示意图。图5为适用于图3的增益单元的乘法器的示意图。图6为适用于图2的人工神经元的负载的示意图。图7为本公开一些实施例的人工神经元的执行方法的流程图。符号说明100人工神经网络110输入层190输出层120、130、180隐藏层111、112、113、119神经元121、122、123、129神经元131、132、133、139神经元181、182、183、189神经元191、192、193、199神经元200人工神经元201输出节点211、212、213、219增益单元220数字转模拟转换器230加总电路240校正电路241有限状态机242符号检测电路243迫零电路250负载y输出信号x1、x2、x3、xm输入信号e1、e2、e3、em控制字元i1、i2、i3、im局部电流is全域电流ic校正电流s逻辑信号zf迫零指令d数字字元d'偏压数字字元bias偏压值300增益单元311、312、313、319电压转电流转换器321、322、323、329乘法器330加总电路ci,1、ci,2、ci,3、ci,n电流ei,1、ei,2、ei,3、ei,n控制字元ii,1、ii,2、ii,3、ii,n电流xi输入信号ii局部电流xi+正输入信号xi-负输入信号ci,j+正电流ci,j-负电流vb偏压ibi偏压电流400电压转电流转换器410电流源411n型晶体管420差分对421n型晶体管422n型晶体管500乘法器531、532、533、534n型晶体管ei,j二进位信号ei,j+、ei,j-逻辑信号ii,j+正电流ii,j-负电流600负载601、602p型晶体管is+、is-电流vdd电源节点710-760步骤具体实施方式本公开是涉及用于推理应用的类神经运算,其中推理应用是基于深度学习法。尽管在说明书中描述了多个被认为是实施本公开的优选模式,但应理解本公开仍可以诸多方式来实现,且不应限定于下述的特定实施例或实现下述特征的特定方式。在其他情况下,公知细节将不再赘述或讨论以避免模糊本公开重点。本
技术领域
中技术人员应能理解本公开中所使用的关于微电子学的术语及基本概念,例如“信号”、“电压”、“电流”、“互补式金属氧化物半导体(complementarymetaloxidesemiconductor,cmos)”、“p型晶体管(pmos)”、“n型晶体管(nmos)”、“电流源(currentsource)”及“偏压”。类似上述的术语及基本概念因已为本
技术领域
中技术人员所熟知,故于此不再详细解释。本
技术领域
中技术人员也能识别p型晶体管及n型晶体管的电路符号,并且能分辨哪一个是“源极”、“栅极”及“漏极”。在一些实施例中,逻辑信号可处于一第一逻辑状态或一第二逻辑状态,第一逻辑状态又称为高准位状态或高逻辑状态,以及第二逻辑状态又称为低准位状态或低逻辑状态。当逻辑信号高于临限值时,也就是逻辑信号为高准位的时候,代表逻辑信号处于高准位状态。当逻辑信号低于临限值时,也就是逻辑信号为低准位的时候,代表逻辑信号处于低准位状态。其中临限值又称为跳脱点(trippoint)。各个逻辑信号都有一个跳脱点,并且两个逻辑信号的跳脱点可能不相同。本公开是从工程方面(即,从本
技术领域
中技术人员的观点)来进行表述,而非从严谨的数学方面来进行表述。例如,“x等于y”是表示“x与y之间的差异小于特定的工程/实务允许误差”,而并非是要求理论上/数学上的绝对相等。“x明显小于y”是表示“x与y之间的比率小于特定的工程/实务允许误差”。图2为本公开一些实施例的人工神经元200的功能方框图。参照图2,在一些实施例,人工神经元200接收一组输入信号x1、x2、x3、…、xm,并依据一组控制字元(controlword)e1、e2、e3、…、em以输出一输出信号y。人工神经元200包括:一组增益单元(gaincell)211、212、213、…、219、加总电路230、及负载250。该组增益单元211、212、213、…、219用以接收输入信号x1、x2、x3、…、xm,并依据控制字元e1、e2、e3、…、em以输出一组局部电流(localcurrent)i1、i2、i3、…、im。加总电路230依据该组局部电流i1、i2、i3、…、im的总和,以输出全域电流(globalcurrent)is至输出节点201。负载250依据展现转移特性(transfercharacteristics)的单调函数(monotonicfunction),以响应全域电流is在输出节点201处建立输出信号y。于数学上,局部电流ii等于输入信号xi与控制字元ei决定的权重相乘,即:ii=wi(ei)xi(1)其中,下标i=1、2、3、…、m。wi(ei)代表控制字元ei决定的权重。在一些实施例,全域电流is能以数学模型表示为:在一些实施例,输出信号y能以数学模型表示为:y=f(is)(3)其中,f(·)代表由负载250提供的单调函数。在一混合信号的实施例中,控制字元ei表示为一组n个二进位信号ei,1、ei,2、ei,3、…、ei,n,因此wi(ei)项能用下列方程式表示:其中,gj(对于下标j=1、2、3、…、n)表示电压转电流增益。将方程式(4)代入方程式(1),能得到下列方程式:其可被重写为下列方程式:其中,ii,j=ei,jgjxi(7)假设:ci,j≡gjxi(8)然后可以将方程式(7)改写为:ii,j=ei,jci,j(9)图3为图2中的人工神经元200的增益单元211、212、213、…、219的功能方框图。参照图3,在一些实施例,增益单元211、212、213、…、219能以增益单元300实现。增益单元300接收输入信号xi,并依据控制字元ei输出局部电流ii,控制字元ei包括ei,1、ei,2、ei,3、…、ei,n。增益单元300包括:多个电压转电流(voltage-to-currentconversion,v2i)单元311、312、313、…、319、多个乘法器321、322、323、…、329、加总电路330。电压转电流转换器311、312、313、…、319分别具有电压转电流增益g1、g2、g3、…、gn,并且用以将输入信号xi分别转换为对应的电流ci,1、ci,2、ci,3,…、ci,n,因此实现方程式(8)。乘法器321、322、323、…、329用以将电流ci,1、ci,2、ci,3、…、ci,n与控制字元ei,1、ei,2、ei,3、…、ei,n相乘,以分别输出电流ii,1、ii,2、ii,3、…、ii,n,因此满足方程式(9)。加总电路330用以加总电流ii,1、ii,2、ii,3、…、ii,n为局部电流ii,因此满足方程式(6)。在一些实施例,使用了差分信号。其中输入信号xi包括正输入信号xi+及负输入信号xi-,并且输入信号xi的值由正输入信号xi+与负输入信号xi-之间的差表示。同理,电流信号ci,j包括正电流ci,j+及负电流ci,j-,并且电流信号ci,j的值由正电流ci,j+与负电流ci,j之间的差表示。等等。图4为适用于图3的增益单元300的电压转电流转换器311、312、313、…、319的示意图。参照图4,在一些实施例,电压转电流转换器311、312、313、…、319能以电压转电流转换器400实现。电压转电流转换器400包括电流源410、差分对420。电流源410用以输出偏压电流ibi。差分对420用以依据偏压电流ibi将输入信号xi转换为电流信号ci,j。电流源410包括n型晶体管411,n型晶体管411由偏压vb提供偏压。差分对420包括两个n型晶体管421、422。n型晶体管421、422用以分别接收正输入信号xi+及负输入信号xi-,以及输出正电流ci,j+及负电流ci,j-。于此,正电流ci,j+及负电流ci,j-用以共同实现电流信号ci,j,如先前关于差分信号的实施例所解释的。图5为适用于图3的增益单元300的乘法器321、322、323、…、329的示意图。参照图5,在一些实施例,乘法器321、322、323、…、329能以乘法器500实现。乘法器500包括四个n型晶体管531、532、533、及534。二进位信号ei,j以两个逻辑信号ei,j+、ei,j-实现,并依据下表编码:二进位信号ei,j1-1逻辑信号ei,j+高低逻辑信号ei,j低高在一些实施例,n型晶体管531、532形成第一解多工器(demultiplexer),当二进位信号ei,j为1时,第一解多工器将正电流ci,j+转换为正电流ii,j+。当二进位信号ei,j为-1时,第一解多工器将正电流ci,j+转换为负电流ii,j-。n型晶体管533、534形成第二解多工器,当二进位信号ei,j为1时,第一解多工器将负电流ci,j-转换为负电流ii,j-。当二进位信号ei,j为1时,第一解多工器将负电流ci,j-转换为正电流ii,j+。所以,当二进位信号ei,j为1时,电流ii,j等于电流信号ci,j,当二进位信号ei,j为-1时,电流ii,j等于负向的电流信号-ci,j,因此满足方程式(9)。换句话说,电流ii,j为条件反向的电流信号ci,j。参照图3,在一些实施例,由于电流ii,1、ii,2、ii,3、…、ii,n都是电流,它们能直接连结在一起形成局部电流ii,并且隐含地实现加总电路330的功能,而不需要额外的电路。参照图2,在一些实施例,由于局部电流i1、i2、i3、…、im都是电流,它们能直接连结在一起形成全域电流is,并且隐含地实现加总电路230的功能,而不需要额外的电路。图6为适用于图2的人工神经元300的负载250的示意图。参照图6,在一些实施例,负载250能以负载600实现。负载600包括两个p型晶体管601、602。p型晶体管601、602分别以二极管连接式布局配置,并分别用以接收电流is+及电流is-。于此,“vdd”表示为电源节点。在一些实施例,人工神经元200具有一些优点。第一,如图3中的增益单元300,增益单元300的权重wi(ei)是可正可负的。因为使用乘法器321、322、323、…、329,乘法器321、322、323、…、329能有条件地实现极性反向函数(polarityinversionfunction)。这使得人工神经元200的运算更加多用途。第二,电流信号ci,j的共模(commonmode)值(即,差分信号的实施例中的正电流ci,j+及负电流ci,j-的平均值)是定值,并且与控制字元ei无关。因此,使用乘法器321、322、323、…、329能分别改变电流ii,1、ii,2、ii,3、…、ii,n的符号,但是不会改变电流ii,1、ii,2、ii,3、…、ii,n的共模值,因此不会改变局部电流ii的共模值。固定的共模值使系统更加健全及一致。第三,适用于校正偏移,解释如下所列。参照图2,在一些实施例中,人工神经元200还包括数字转模拟转换器(digital-to-analogconverter,dac)220。数字转模拟转换器220依据数字字元(digitalword)d而将校正电流ic输出至加总电路230。校正电流ic加入为全域电流is的一部分以校正人工神经元200的偏移。在一些实施例,当所有输入信号x1、x2、x3、…、xm为零时,输出信号y也应该为零。但实际上由于增益单元211、212、213、…、219及/或负载250中的元件并不匹配,当所有输入信号x1、x2、x3、…、xm都为零时,输出信号y可能不为零。数字转模拟转换器220能用于确保输出信号y为零或相当为零。在一些实施例中,增益单元200包括校正电路240。校正电路240包括有限状态机(finitestatemachine,fsm)241、迫零电路243、及符号检测电路242。在一些实施例中,校准电路240包括偏压电路(xfer)260。偏压电路260用以接收迫零指令(zero-forcingcommand)zf、数字字元d、及偏压值bias,并输出偏压数字字元d'。在校正的过程中,有限状态机241发出迫零指令zf至偏压电路260及迫零电路243。当迫零指令zf被确立(assert)时,偏置电路260将强制偏压数字字元d'的输出值直接等于数字字元d的输入值。迫零电路243也会迫使所有输入信号x1、x2、x3、…、xm维持在零。符号检测电路242用以检测输出信号y的符号(sign),并且输出信号y的符号能由逻辑信号s表示。如果输出信号y为正,表示正偏移,逻辑信号s将为1,有限状态机241将减小数字字元d的值以使校正电流ic变更小,并因此使输出信号y变更小。如果输出信号y为负,则逻辑信号s将为0,表示负偏移,有限状态机241将增加数字字元d的值以使校正电流ic变更大,并因此使输出信号y变更大。有限状态机241继续以上过程,并且数字字元d最终将收敛至最小值,该最小值使输出信号y的偏移最小化。当限状态机241检测到收敛,有限状态机241就结束校正(例如,数字字元d的值在指定的逾时期间内不会变化超过两个位准)。偏压电路260输入的偏压值bias是从神经网络图的数学模型导出的,通过改变人工神经元200的动态范围来避免人工神经元200的电路饱和。需特别注意的是,当偏压电路260输入的偏压值bias设置为零时,偏压电路260的偏压数字字元d'的输出值也将等于数字字元d。在一些实施例中,数字转模拟转换器220用以依据偏压数字字元d'以输出校正电流ic。在一些实施例,在校正结束之后,有限状态机241撤回迫零命令zf,并且迫零电路243停止其对输入信号x1、x2、x3、…、xm的迫零动作。此外,能将任何的偏压值bias及数字字元d输入至偏压电路260以产生偏压数字字元d'的输出值。偏压电路260中使用的转移函数(transferfunction)可以是迫零命令zf、偏压及数字字元d的任何函数。在差分信号的实施例中,输入信号xi包括正输入信号xi+及负输入信号xi-。通过打开开关以连接正输入信号xi+及负输入信号xi-,以迫使正输入信号xi+及负输入信号xi-相等。输出信号y的符号包括正向符号y+及负向符号y-,通过比较器比较正向符号y+及负向符号y-以检测出输出信号y的符号。数字转模拟转换器220对于本
技术领域
中技术人员所熟知,故于此不再详细解释。在一些实施例中,控制字元ei,j的值(对于下标i=1、2、3、…、m,及下标j=1、2、3、…、n)是存储在存储装置中,并且在需要时能被取出。图7为本公开一些实施例的人工神经元的执行方法的流程图。参照图7,在一些实施例,人工神经元的执行方法包括以下步骤:接收一组输入电压(步骤710);利用电压电流转换方式,转换该组输入电压中对应的输入电压为对应的一组局部电流(步骤720);将对应的该组局部电流与对应的一组二进位信号相乘,以建立对应的一组条件反向电流(步骤730);加总对应的该组条件反向电流至对应的局部电流(步骤740);加总对应的局部电流至全域电流(步骤750);以及,使用负载电路以转换全域电流为输出电压(步骤760)。该执行方法还包括以下步骤:注入一校正电流至该负载电路以校正该输出电压的偏移。另外,该执行方法包括:于一校正周期,依据该输出电压的一符号,以闭回路方式调整该校正电流。虽然本公开的技术内容已经以优选实施例公开如上,然其并非用以限定本公开,任何本领域技术人员,在不脱离本公开的构思所作些许的变动与润饰,皆应涵盖于本公开的范围内,因此本公开的专利保护范围当视权利要求所界定者为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1