神经网络处理装置的制作方法

文档序号:30583732发布日期:2022-06-29 14:08阅读:96来源:国知局
神经网络处理装置的制作方法

1.本发明涉及神经网络处理装置,详细而言涉及用于处理图像信号的神经网络处理装置。


背景技术:

2.近几年,在图像识别中,卷积神经网络(convolutional neural network,cnn)的性能得到了提高,正在进行进一步的性能提高以及适用于各种问题中等很多研究。其结果,达成了充分的检测性能,近几年,与用于商用化的小规模的网络构筑以及硬件安装相关的研究正在增加。


技术实现要素:

3.本发明的目的在于提供一种硬件安装容易的神经网络处理装置。
4.根据用于达成如上所述的目的的本发明的一特征,神经网络处理装置可以包括:卷积部,接收输入信号和学习完成权重参数,执行对所述输入信号和所述学习完成权重参数的卷积运算,并且输出卷积信号;配置调整部,接收所述卷积信号和学习完成归一化参数,并且输出调整了所述卷积信号的输出偏差的调整信号;以及激活部,将所述调整信号变换成激活函数来输出输出信号。
5.在一实施例中,可以是,所述激活部将所述输出信号归一化为0至1之间的值。
6.在一实施例中,可以是,所述学习完成权重参数通过数学式来计算出,w是学习参数。
7.在一实施例中,可以是,所述学习完成归一化参数被归一化为-1至1之间的值。
8.在一实施例中,可以是,所述卷积部包括:乘法器,对所述输入信号和所述学习完成权重参数进行乘法运算;以及量化器,量化所述乘法器的输出,并且输出所述卷积信号。
9.在一实施例中,可以是,所述量化器执行基于数学式的量化操作,z是所述乘法器的输出,t是所述卷积信号的位宽,m是范围-a至b的最大值,zq是所述卷积信号。
10.在一实施例中,可以是,所述学习完成归一化参数包括第一参数和第二参数,所述配置调整部包括:乘法器,对所述卷积信号和所述第一参数进行乘法运算;第一量化器,量化所述乘法器的输出;加法器,对所述第一量化器的输出和所述第二参数进行加法运算;以及第二量化器,量化所述加法器的输出。
11.在一实施例中,可以是,所述第一参数是根据数学式计算出的
值,w是学习参数,y是所述输出信号,max(|w|)是所述学习参数w的绝对值的最大值,max(|y|)是所述输出信号y的绝对值的最大值,γ是在学习完成的时刻决定的学习参数,σb是所述输入信号的标准偏差。
12.在一实施例中,可以是,所述第二参数是根据数学式计算出的值,y是所述输出信号,max(|y|)是所述输出信号y的绝对值的最大值,γ和β分别是在学习完成的时刻决定的学习参数,μb是所述输入信号的平均,σb是所述输入信号的标准偏差。
13.在一实施例中,可以是,所述激活部根据激活函数将所述调整信号变换成0至1之间的所述输出信号。
14.在一实施例中,可以是,所述输入信号是图像信号。
15.神经网络处理装置包括:卷积部,包括输入层、中间层和输出层,所述中间层从所述输入层接收输入信号和学习完成权重参数,执行对所述输入信号和所述学习完成权重参数的卷积运算,并且输出卷积信号;配置调整部,接收所述卷积信号和学习完成归一化参数,并且输出调整了所述卷积信号的输出偏差的调整信号;以及激活部,将所述调整信号变换成激活函数来将输出信号输出到所述输出层。
16.在一实施例中,可以是,所述学习完成权重参数被归一化为-1至1之间的值。
17.在一实施例中,可以是,所述学习完成权重参数根据数学式来计算出,w是学习参数。
18.在一实施例中,可以是,所述学习完成归一化参数被归一化为-1至1之间的值。
19.在一实施例中,可以是,所述卷积部包括:乘法器,对所述输入信号和所述学习完成权重参数进行乘法运算;以及量化器,量化所述乘法器的输出,并且输出所述卷积信号。
20.在一实施例中,可以是,所述量化器执行基于数学式的量化操作,z是所述乘法器的输出,t是所述卷积信号的位宽,m是范围-a至b的最大值,zq是所述卷积信号。
21.在一实施例中,可以是,所述学习完成归一化参数包括第一参数和第二参数,所述配置调整部包括:乘法器,对所述卷积信号和所述第一参数进行乘法运算;第一量化器,量化所述乘法器的输出;加法器,对所述第一量化器的输出和所述第二参数进行加法运算;以及第二量化器,量化所述加法器的输出。
22.在一实施例中,可以是,所述第一参数是根据数学式计算出的值,w是学习参数,y是所述输出信号,max(|w|)是所述学习参数w的绝对值的最大值,max(|y
|)是所述输出信号y的绝对值的最大值,γ是在学习完成的时刻决定的学习参数,σb是所述输入信号的标准偏差。
23.在一实施例中,可以是,所述第二参数是根据数学式计算出的值,y是所述输出信号,max(|y|)是所述输出信号y的绝对值的最大值,γ和β分别是在学习完成的时刻决定的学习参数,μb是所述输入信号的平均,σb是所述输入信号的标准偏差。
24.(发明效果)
25.具有如上所述的构成的神经网络处理装置中,学习参数是-1至1之间的值,输出信号被变换成0至1之间的值,从而容易实现量化。因此,可以实现神经网络处理装置的有效的硬件安装。
附图说明
26.图1是本发明的一实施例涉及的神经网络处理装置的框图。
27.图2是用于说明神经网络处理装置的操作的图。
28.图3是说明图2所示的中间层的功能的框图。
29.图4是用于说明图3所示的量化器的操作的图。
30.符号说明:
31.100:神经网络处理装置;105:总线;110:输入存储器;120:参数存储器;130:卷积运算器;140:加法器;150:量化运算器;160:临时存储器;170:输出存储器;210:输入层;220:中间层;230:输出层;221:符号化部;222:卷积部;223:配置调整部;224:激活部。
具体实施方式
32.在本说明书中,在提及某一构成要素(或者区域、层、部分等)位于其他构成要素上、与其连接或者结合的情况下,表示可以直接配置/连接/结合在其他构成要素上,或者在其间还可以配置有第三构成要素。
33.相同的符号指代相同的构成要素。另外,在各附图中,各构成要素的厚度、比率以及尺寸为了技术内容的有效说明而有所夸张。“和/或”包括所有可以定义相关的构成的一个以上的组合。
34.第一、第二等用语可以用于说明各种构成要素,但所述的构成要素不应限于所述的用语。所述的用语仅用作使一个构成要素区别于其他构成要素的目的。例如,在不超出本发明的权利范围的情况下,第一构成要素可以被命名为第二构成要素,类似地,第二构成要素也可以被命名为第一构成要素。单数的表述在文中没有明确相反意思时包括多个的表述。
35.此外,“在下方”、“在下侧”、“在上方”、“在上侧”等用语为了说明图示的各构成的连接关系而使用。所述的用语是相对的概念,以图示的方向为基准进行说明。
[0036]“包括”或者“具有”等用语应理解为是指代说明书上记载的特征、数字、步骤、操
作、构成要素、部件或者它们的组合的存在,并不是事先排除一个或者其以上的其他特征、数字、步骤、操作、构成要素、部件或者它们的组合的存在或附加可能性。
[0037]
只要没有不同的定义,在本说明书中使用的所有用语(包括技术用语以及科学用语)具有与本领域技术人员通常所理解的意思相同的意思。另外,如在通常使用的字典中定义的用语这样的用语应解释为具有与相关技术脉络上的含义一致的含义,并且除非在本技术中明确定义,否则不应解释为理想化或过于形式化的含义。
[0038]
以下,参照附图来说明本发明的各实施例。
[0039]
图1是本发明的一实施例涉及的神经网络处理装置的框图。
[0040]
参照图1,神经网络处理装置100包括输入存储器110、参数存储器120、卷积运算器130、加法器140、量化运算器150、临时存储器160以及输出存储器170。输入存储器110、参数存储器120、卷积运算器130、加法器140、量化运算器150、临时存储器160和输出存储器170可以通过总线105收发信号。
[0041]
输入存储器110、参数存储器120、临时存储器160和输出存储器170可以是缓冲器。在图1中示出并说明了输入存储器110、参数存储器120、临时存储器160和输出存储器170分别为独立的构成要素的情况,但是本发明并不限于此。例如,输入存储器110、参数存储器120、临时存储器160和输出存储器170可以利用一个存储器来实现。
[0042]
在图1中示出并说明了卷积运算器130、加法器140和量化运算器150分别为独立的构成要素的情况,但是本发明并不限于此。例如,卷积运算器130、加法器140和量化运算器150可以通过单个处理器实现。
[0043]
输入存储器110存储来自外部的输入信号。输入信号可以是图像信号。在一实施例中,提供至输入存储器110的输入信号可以是实施了前处理的图像信号。例如,输入信号可以是执行了黑白变换、对比度调整以及亮度调整等图像处理的图像信号。
[0044]
参数存储器120存储一个以上的参数。参数可以包括学习参数。参数可以是预先设定的值。
[0045]
临时存储器160可以是临时存储卷积运算器130、加法器140和量化运算器150的输出的存储器。
[0046]
输出存储器170可以存储神经网络处理装置100的最终输出信号。
[0047]
卷积运算器130可以对存储在输入存储器110中的输入信号和存储在参数存储器120中的参数进行卷积运算。此外,卷积运算器130可以对存储在临时存储器160中的中间运算结果和存储在参数存储器120中的参数进行卷积运算。
[0048]
量化运算器150执行对于从卷积运算器130和加法器140中的任一个输出的信号的量化运算。
[0049]
图2是用于说明神经网络处理装置的操作的图。
[0050]
参照图2,神经网络处理装置100可以包括输入层210、中间层220以及输出层230。
[0051]
输入层210、中间层220和输出层230分别可以表示通过图1所示的硬件构成执行的操作步骤。
[0052]
输入层210可以包括将输入信号存储在输入存储器110中的操作以及将参数(或学习参数)存储在参数存储器120中的操作。提供至输入层210的信号in可以包括图3所示的输入信号x[i]~x[i+9]以及参数w

[i]~w

[i+9]。
[0053]
中间层220可以包括卷积运算器130、加法器140和量化运算器150的运算操作。即,中间层220可以被卷积运算器130、加法器140和量化运算器150中的至少一个执行。
[0054]
输出层230可以包括输出存储在输出存储器170中的输出信号out的操作。
[0055]
图3是说明图2所示的中间层的功能的框图。
[0056]
图3所示的各个功能模块可以被图1所示的神经网络处理装置100操作。
[0057]
参照图1和图3,神经网络处理装置100的中间层220接收输入信号x[i]~x[i+9]和参数w

[i]~w

[i+9]、a

、b

。从输入存储器110接收输入信号x[i]~x[i+9],并且从参数存储器120接收参数w

[i]~w

[i+9]、a

、b

。参数w'[i]~w'[i+9]可以被称为学习完成权重参数,参数a

、b

分别可以被称为学习完成归一化参数。
[0058]
神经网络处理装置100的中间层220包括符号化部221、卷积部222、配置调整部223以及激活部224。
[0059]
输入信号x[i]~x[i+9]分别是无符号11位信号。参数w

[i]~w

[i+9]、a

、b

分别是通过学习求出的参数,是8位信号。
[0060]
符号化部221包括符号化器s1~s9。符号化器s1~s9分别对应于输入信号x[i]~x[i+9]。符号化器s1~s9分别向输入信号x[i]~x[i+9]以1位为单位附加符号位。因此,从符号化部221输出的输入信号x

[i]~x

[i+9]分别是12位。
[0061]
卷积部222对从符号化部221输出的输入信号x

[i]~x

[i+9]和参数w

[i]~w

[i+9]进行卷积运算,输出卷积信号ci。卷积信号ci可以被存储在临时存储器160中。
[0062]
卷积部222包括乘法器m11~m19、量化器(quantizers)q11~q19、q21以及加法器a11。
[0063]
乘法器m11~m19分别对应于输入信号x

[i]~x

[i+9]。乘法器m11~m19的个数可以根据输入信号x

[i]~x

[i+9]的个数来决定。
[0064]
乘法器m11~m19分别对输入信号x

[i]~x

[i+9]中的对应的输入信号和参数w

[i]~w

[i+9]中的对应的参数进行乘法运算。通过位宽为12位的输入信号x

[i]~x

[i+9]和位宽为8位的参数w

[i]~w

[i+9]各自的相乘,可以输出20位的相乘结果。
[0065]
量化器q11~q19分别对应于乘法器m11~m19。量化器q11~q19的个数可以根据乘法器m11~m19的个数来决定。
[0066]
量化器q11~q19分别将从乘法器m11~m19中的对应的乘法器输出的20位的相乘结果变换为16位信号。
[0067]
加法器a11相加来自量化器q11~q19的输出。从加法器a11输出的信号可以是22位。
[0068]
量化器q21将从加法器a11输出的22位信号变换为12位的卷积信号ci。
[0069]
配置调整部223接收卷积信号ci和参数a

、b

。配置调整部223输出调整了卷积信号ci的输出偏差的调整信号di。
[0070]
配置调整部223包括乘法器m21、加法器a21以及量化器q31、q41。
[0071]
乘法器m21对来自卷积部222的卷积信号ci和参数a

进行乘法运算。卷积信号ci的位宽是12位,参数a

的位宽是8位,因此从乘法器m21输出的信号的位宽可以是20位。
[0072]
量化器q31将从乘法器m21输出的20位信号变换为16位信号。
[0073]
加法器a21相加量化器q31的输出和参数b

。从量化器q31输出的信号的位宽是16
位,参数b

的位宽是8位,因此从加法器a21输出的信号的位宽可以是17位。
[0074]
量化器q41输出将从加法器a21输出的17位信号变换成了12位信号的调整信号di。
[0075]
激活部224根据激活函数(activation function,relu),输出0至1之间的输出信号yi。激活部224在调整信号di为负数时将输出信号yi变换为0,因此从激活部224输出的调整信号di的位宽是11位。
[0076]
若将卷积部222的操作用数学式表示,则如以下数学式1。
[0077]
[数学式1]
[0078][0079]
在数学式1中,x[i+d]是输入信号,w[d]是参数。图3例示性地表示d=9的情况。
[0080]
若将数学式1归一化,则如数学式2。
[0081]
[数学式2]
[0082][0083]
在数学式2中,平均μb可以用数学式3表示,标准偏差σb可以用数学式4表示。
[0084]
[数学式3]
[0085][0086]
[数学式4]
[0087][0088]
在数学式2中,γ和β分别是学习参数。
[0089]
通常,输入信号、学习参数和输出信号是32位的浮动小数点型,因此为了用硬件实现神经网络,需要变换为固定小数点型以及需要基于位数削减实现小型化。
[0090]
在学习完成的时刻,γ和β决定学习参数,因此数学式2可以变形为数学式5。
[0091]
[数学式5]
[0092]
yi=hi×
a+b
[0093]
在数学式5中,a可以用数学式6表示,b可以用数学式7表示。
[0094]
[数学式6]
[0095][0096]
[数学式7]
[0097][0098]
若将数学式5代入数学式1,则如数学式8。
[0099]
[数学式8]
[0100][0101]
数学式8的输出信号yi可以通过学习参数a的一次乘法运算和学习参数b的一次加法运算来计算出。
[0102]
但是,在数学式8中,运算应执行d次乘法运算、d次加法运算。在图3和数学式1至数学式8中,为了便于说明,将输入信号的个数表示为了d个,但是实际上,在神经网络中,需要如(纵向输入信号数
×
横向输入信号数
×
节点数)这样的三维卷积运算。
[0103]
例如,在(纵向输入信号数、横向输入信号数、节点数)为(5、5、16)的情况下,数学式8的运算应执行400次乘法运算、399次加法运算。
[0104]
在此,若将输入信号x和参数w的范围(range)归一化为-1至1,则乘法器的输出范围可以是-1至1,加法器的输出范围可以是-400至400。
[0105]
可以用数学式9修正数学式8。
[0106]
[数学式9]
[0107][0108]
在数学式9中,学习完成权重参数w

可以用数学式10表示,学习完成归一化参数a

可以用数学式11表示,并且学习完成归一化参数b

可以用数学式12表示。
[0109]
[数学式10]
[0110][0111]
在数学式10中,max(|w|)表示学习参数w的绝对值的最大值。
[0112]
[数学式11]
[0113][0114]
[数学式12]
[0115][0116]
在数学式11和数学式12中,max(|y|)表示输出信号y的绝对值的最大值。在数学式11和数学式12中,输出信号y可以是在学习步骤中预先决定的值。
[0117]
数学式9的乘法运算和加法运算的次数与数学式8相同。但是,数学式9的参数w

的范围被归一化为-1至1,并且输出信号y的范围被归一化为0至1。参数w

的正确的范围可以在学习完成后决定。
[0118]
图4是用于说明图3所示的量化器的操作的图。在以下的说明中,作为一例说明量化器q11,但是其他量化器q12~q19、q21、q31、q41也可以以与量化器q11类似的方式工作。
[0119]
在图4中,曲线l1例示性地表示从乘法器m11输出的20位信号的分布(产生频度)。
[0120]
参照图4,量化器q11将从乘法器m11输出的20位信号变换为16位信号。在量化器q11截断从乘法器m11输出的20位信号的最下位(least significant bit,lsb)的4位的情况下,可以包括能够用20位信号表现的大部分的值,但是如固定小数点型c那样可能会超过曲线l1所表现出的实际信号的最大范围。
[0121]
假设量化器q11截断从乘法器m11输出的20位信号的最上位(most significant bit,msb)的4位的情况下,如固定小数点型a那样很难包括曲线l1表现出的实际信号的范围的全部。
[0122]
因此,如固定小数点型b那样,需要设定从量化器q11输出的信号的范围使得对应于曲线l1表现出的实际信号的范围。为了如上所述的设定,基于实际测量数据设定量化器q11是恰当的。
[0123]
此外,在向量化器q11输入实际测量数据以外的数据的情况下,可能会产生溢出(overflow),因此还需要防溢出箝位。
[0124]
量化器q11的量化设定方法如下。
[0125]
由于参数w

的范围被归一化为-1至1,因此在量化器q11的输出信号的位宽为符号化的2位的情况下,量化器q11的输出信号通过四舍五入到最接近的整数而可以被量化为[-1、0、1]。此外,在量化器q11的输出信号的位宽大于2位的情况下,量化器q11的输出信号zq可以根据以下的数学式13来计算出。
[0126]
[数学式13]
[0127][0128]
在数学式13中,z是向量化器q11的输入值(即,乘法器m11的输出信号),b是量化器q11的输出信号的位宽。
[0129]
图4的用于固定小数点型b的量化器q11的输出信号zq可以根据数学式14来计算出。
[0130]
[数学式14]
[0131][0132]
在数学式14中,m=max(a、b),a、b是图4的固定小数点型b的范围-a至b。
[0133]
数学式14是量化方式的一例,本发明并不限于此。在其他实施例中,也有不使用最大值的情况下精细(fine)量化方式可获得良好的精密度的情况。可以变更数学式14的m的值的同时验证量化器q11的量化性能。
[0134]
根据如上所述的本发明,神经网络的达数百次的乘法运算和加法运算中所使用的数属于-1至1的范围(range)内。作为学习完成归一化参数的参数a

和b

在学习完成后可以根据学习结果而使范围(range)变化,但是变化次数分别为一次。即便产生了参数a

和b

的变更的情况下,影响范围是有限的,因此容易再次设计硬件。
[0135]
以上,参照并说明了本发明的优选实施例,但是本领域熟练技术人员或本领域通
常技术人员应当能够理解在不超出权利要求书所记载的本发明的思想和技术领域的范围内可以以各种方式修正和变更本发明。因此,本发明的技术范围不应由说明书的详细说明所记载的内容来限定,而是应仅由权利要求书来确定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1