技术领域
与示例实施例一致的设备和方法涉及一种神经网络系统,更具体地讲,涉及一种能够降低计算成本和功耗的卷积神经网络系统及其操作方法。
背景技术:
近来,卷积神经网络(CNN)已成为用于图像识别的选择的深度神经网络技术。CNN具有多个卷积层。每个卷积层接收M个输入特征图,以产生N个输出特征图,其中,M和N是自然数。CNN执行下采样(或子采样),以降低作为多个卷积操作的结果而产生的特征图的大小。
在计算复杂度方面基本上占据整个CNN处理的最重要部分的操作是卷积。与CNN的其他操作相比,大量功率被消耗以执行乘法和累积操作被迭代的卷积操作。因此,为实现执行卷积神经网络CNN的硬件,存在对降低卷积操作的计算复杂度的需求。
技术实现要素:
一个或多个示例实施例提供一种能够减少卷积神经网络系统中的具有大部分计算复杂度的卷积操作的卷积神经网络系统及其操作方法。
根据示例实施例的一方面,一种卷积神经网络的操作方法包括:执行用于计算至少一个内核与输入特征图之间的相关性的多个卷积环;确定输入特征图上的最大位置,其中,所述最大位置与基于所述多个卷积环产生的输出特征的最大值对应;通过使用所述至少一个内核的卷积环来处理输入特征图的第一区域的第一数据,其中,第一区域与所述最大位置相关联。处理第一数据的步骤可包括:跳过输入特征图的第二区域的第二数据的卷积操作,其中,第二区域与所述最大位置无关。
根据另一示例实施例的一方面,一种卷积神经网络系统可包括:输入缓冲器,被配置为缓冲输入图像和输入特征图中的至少一个;处理元件单元,使用来自输入缓冲器的输入图像和输入特征图中的所述至少一个以及至少一个内核来执行卷积操作;输出缓冲器,被配置为存储作为处理元件单元的卷积操作的结果输出的输出特征;控制器,被配置为:控制输入缓冲器、处理元件单元和输出缓冲器执行用于处理输入图像和输入特征图中的所述至少一个的卷积环,并检测与基于卷积环产生的输出特征的最大值相关联的最大位置;最大位置缓冲器,被配置为存储所述最大位置。
根据另一示例实施例的一方面,一种方法包括:确定输入特征图的最大位置,其中,输入特征图的与经由卷积环产生的输出特征的最大值对应的位置收敛于所述最大位置;仅对输入特征图的与所述最大位置对应的第一区域执行卷积环以产生输出特征图,同时跳过输入特征图的不与所述最大位置对应的第二区域上的卷积环的执行;存储所述最大位置。
附图说明
通过下面参照下面的附图的描述,以上和/或其他方面将会变得清楚和更容易理解,其中,除非另外说明,否则贯穿各个的附图,相同的参考标号表示相同的部件,其中:
图1是示出根据示例实施例的卷积神经网络系统的框图;
图2是示出在图1的卷积神经网络系统中执行的操作的示图;
图3是示出卷积层和池化层的操作的示图;
图4是示出根据示例实施例的卷积操作的特性的示图;
图5是示出根据示例实施例的下采样过程的示图;
图6是示出根据示例实施例的卷积层中的操作的示图;
图7是示出根据示例实施例的执行图6中简明地描述的卷积操作的方法的流程图;
图8是示出在图7中执行的操作S160的示例的流程图;
图9是示出在图7中执行的操作S160的另一示例实施例的流程图;
图10是示出在图7中执行的检测最大位置的方法的另一示例实施例的流程图;
图11是示出使用本发明构思的最大位置的另一示例实施例的示图;
图12是示出使用本发明构思的最大位置的另一示例实施例的流程图。
具体实施方式
通常,卷积操作被执行以检测两个函数之间的相关性。术语“卷积神经网络”或“CNN”可表示通过使用指示特定特征的内核执行卷积操作并重复卷积结果来确定图像的模式的任何处理或系统。
下面,将参照附图清楚和详细地描述示例实施例以达到本领域普通技术人员能够实现他们的程度。
图1是示出根据示例实施例的卷积神经网络系统的框图。参照图1,卷积神经网络系统100处理输入图像10以产生输出结果20。
输入图像10可以是通过图像传感器提供的静止图像或视频图像。可选地,输入图像10可以是通过有线/无线通信手段传输的图像。输入图像10可表示数字化图像数据的二维阵列。输入图像10可以是针对卷积神经网络系统100的训练而提供的样本图像。虽然单个图像被提供作为输入图像10,但是一个输入图像10包含的数据的量可能不小。
输出结果20可以是作为通过卷积神经网络系统100的输入图像10的处理结果的结果值。输出结果20可作为在卷积神经网络系统100的学习操作或估计操作期间确定输入图像的结果而被获得。输出结果20可以是卷积神经网络系统100检测的包括在输入图像10中的模式或识别信息。
卷积神经网络系统100可包括输入缓冲器110、处理元件单元(PEU)130(例如,处理器)、参数缓冲器150、输出缓冲器170、控制器190和最大位置缓冲器195。
输入图像10的数据值可被加载到输入缓冲器110上。输入缓冲器110的大小可随着用于卷积的内核的大小而变化。例如,在内核的大小为“k×k”的情况下,足够处理元件单元130使用内核顺序执行卷积操作(例如,内核化(kernelling))的大小的输入数据必须被加载到输入缓冲器110上。可通过控制器190来控制输入数据到输入缓冲器110上的加载。
处理元件单元130可通过使用输入缓冲器110、参数缓冲器150和输出缓冲器170来执行卷积操作或池化操作。例如,处理元件单元130可执行内核化,其中,在内核化中,将内核与输入图像10相乘的处理以及将相乘的结果相加的处理可被迭代地执行。处理元件单元130可包括用于并行处理多个内核化或池化操作的并行处理核。
例如,可从参数缓冲器150提供内核。以下,将内核与输入图像10的重叠位置的全部数据相乘并将乘法结果相加的处理被称为“内核化”。多个内核中的每个内核可被视为特定特征标识符。也就是说,在多个内核中的一个内核为用于辨识具有特定曲率的曲线的滤波器的情况下,当输入图像10的特定模式与特定曲率匹配时,可产生大的内核化结果值。可对输入图像10和分别对应于各个特征标识符的多个内核执行内核化。通过全部内核执行内核化的过程可在卷积层中被执行,并且作为内核化的结果值可产生多个特征图。
处理元件单元130可对由卷积层产生的特征图执行下采样。由于通过卷积操作产生的特征图的大小相对较大,因此处理元件单元130可执行用于下采样的池化,以降低特征图的大小。每个内核化或池化操作的结果值可存储在输出缓冲器170中,并每当卷积环(convolution loop)的数量增加时和每当池化操作被执行时,每个内核化或池化操作的结果值可被更新。
将由处理元件单元130执行的内核化、偏差加法(bias addition)、激活、池化等所需的参数可存储在参数缓冲器150中。在学习步骤中学习的参数也可存储在参数缓冲器150中。
由处理元件单元130执行的内核化或池化操作的结果值可被加载到输出缓冲器170上。加载到输出缓冲器170上的结果值可根据通过多个内核的每个卷积环的执行结果而被更新。然而,根据示例实施例,如果作为卷积环进展(progress)的最大(max)数据位置被检测到,则输出缓冲器170可被控制使得仅与检测到的特定位置对应的缓冲值被更新。
控制器190可控制处理元件单元130以便执行卷积操作和池化操作。控制器190可使用输入图像10或特征图和内核来执行卷积操作。在通过卷积操作处理任何一个输入图像10的情况下,可检测在特定深度或更深深度最大特征值的位置不再改变的时间点。这个时间点被称为“最大位置检测时间点”。在最大位置检测时间点之后,可通过卷积操作和池化操作来处理仅在输入图像10的最大值(即,最大特征值)存在时预测的区域。控制器190可将在最大位置检测时间点检测到的最大值的位置存储在最大位置缓冲器195中。之后,存储在最大位置缓冲器195中的图像的位置值可用于执行输入图像10的卷积操作和池化操作。
通过上面描述,在最大值的位置在卷积层中执行的卷积操作期间被检测到的情况下,下面的卷积环可被应用于仅与特征图或输入图像10的最大值的位置对应的数据。因此,在图像的与最大值的位置无关的区域中可不执行卷积操作。此外,可跳过用于处理包括在除了与最大值的位置对应的区域之外的剩余区域中的数据的偏差加法或池化操作中的比较操作。
图2是示出图1的卷积神经网络系统中执行的操作的示图。参照图2,可通过卷积层和用于对卷积层的执行结果进行下采样的池化层来迭代处理输入图像10。可在卷积层和池化层之间添加偏差加法或激活操作。
如果输入图像10被提供,则可将卷积层应用于输入图像10。针对卷积层的应用,可通过使用内核进行的内核化来处理输入图像10。也就是说,可将输入图像10的与内核151重叠的数据与在内核151中定义的加权值相乘。可通过将全部相乘的值求和来产生一个特征值。可在对内核151进行顺序移位的同时迭代执行内核化。如此,随着内核151被移位,可确定与每个位置对应的特征值。可通过使用多个内核来执行该一个输入图像10的内核化。随着卷积层被应用,可产生与多个内核中的每个内核对应的阵列形状的第一特征图131。例如,如果使用四个内核,则可产生由四个阵列形成的第一特征图131。然而,在输入图像10是三维图像的情况下,特征图的数量可急剧增加,并且与卷积环的迭代的次数对应的深度也可急剧增加。
一旦卷积层被完全地执行,则可对第一特征图131执行下采样。在卷积操作完成之后,可产生具有可由于内核的数量或输入图像10的大小而导致对于处理过于繁冗的大小的第一特征图131的数据。因此,在池化层中执行用于在下采样对操作结果没有大的影响的范围内降低第一特征图131的大小的下采样(或子采样)。池化表示下采样。可在特征图131中以预先确定的步长滑动用于下采样的滤波器的同时,选择对应区域的平均值或最大值。选择最大值的情况被称为“最大池化”,用于输出平均值的方法被称为“平均池化”。可通过池化层基于第一特征图131来产生具有减小的大小的第二特征图(FM2)132。
可通过对第二特征图132执行卷积操作来产生第三特征图133。可通过池化层基于第三特征图133来产生第四特征图134。图2示出被连续执行两次的一组卷积层和池化层。然而,实施例不限于此。该组卷积层和池化层被迭代执行的次数可根据系统需要而变化。可根据上述操作的结果产生第五特征图135和输出结果20。
可对乘法和累积操作进行迭代以执行卷积层。关于卷积层的执行,如果在特定卷积深度检测到最大值的位置,则可仅在特征图或输入图像10的最大值的位置执行下面的卷积操作。此外,将偏差加到卷积操作的结果值的处理可仅被应用于检测到最大值的位置。因此,可跳过与无意义的图像区域相关联的卷积操作。此外,根据示例实施例,可仅将偏差加法操作应用于(例如,选择性地应用于)最大值的位置的数据,并可跳过池化操作中的比较操作。
图3是示出卷积层和池化层的操作的示图。参照图3,第一特征图131可通过使用输入图像10经由卷积操作来产生,并且第一特征图131可通过池化操作被输出为第二特征图132。
输入图像10可使用内核151通过内核化来形成阵列形状的第一特征图131。可通过将输入图像10与内核151的重叠位置的内核化的值相加来产生第一特征图131的一个点的特征值。如果在针对输入图像10的全部位置对内核151进行移位的同时执行内核化,则可产生一个特征阵列。如果使用全部内核(例如,M个内核,每个内核大小为K×K)152执行卷积操作,则可产生多个特征图阵列(例如,M个图阵列)。
这里,可将通过卷积操作处理的输入图像10基本划分成各种分量。例如,可将一个输入图像10划分成用于表示与每个RGB(红、绿、蓝)分量相关联的对比度和颜色的多条图像数据。此外,可将输入图像10划分成大小被改变的多条数据。下面,用于通过使用全部内核(例如,M个内核)152对各个图像数据执行卷积操作的处理单元被称为“卷积环”。可通过输入图像10的多个深度执行卷积环。然而,如果在特定深度或更深深度执行卷积环,则作为对一个图像执行的卷积操作的结果值的累积值的特征图可倾向于使输入特征图或输入图像10的最大值的位置变得一致。因此,如果执行卷积环直到达到特定深度为止,则可固定最大值的位置。
根据示例实施例的一方面,如果确定在卷积操作的特定深度检测到特征的最大值,则可仅在输入图像10的与最大值对应的位置执行下面的卷积操作。因此,由于无意义(例如,不相关)的图像区域的卷积操作被跳过,所以计算复杂度可被显著地降低。
此外,如果将存储的最大值的位置信息用于对第一特征图131进行下采样的池化操作,则可在不比较最大值的候选的情况下将固定位置的特征返回到输出缓冲器170。例如,如果在通过大小为j×j滤波器153处理第一特征图131时将最大值的位置信息用于池化操作,则不必比较与滤波器153重叠的图像数据,。仅参考最大值的位置而选择的特征被输出。因此,根据示例实施例的一方面,如果最大值的位置被使用,则将在池化操作期间执行的比较操作的计算复杂度可被显著降低。此外,可仅将分配给通过卷积操作确定的特征值的偏差值应用于最大值的位置的特征。
图4是示出根据示例实施例的卷积操作的特性的示图。参照图4,如果使用输入图像10和内核151,则可产生特征值。
假设输入图像10是具有16个图像数据I0–I15的4乘4的矩阵。假设内核151是具有9个数据点“K0,0,0,0,0,K5,0,0和0”的3乘3大小的特征标识符。如果执行输入图像10和内核151的内核化,则通过内核化操作①产生部分和“K0×I0+K5×I6”。可以以相同的方式通过内核化操作②、③和④分别产生部分和(K0×I1+K5×I7)、(K0×I4+K5×I10)和(K0×I5+K5×I11)。如果将部分和组合为矩阵则可输矩阵作为特征图。对卷积操作进行迭代,直到达到预设深度为止。然而,如果根据示例实施例的控制器190(参照图1)确定卷积操作的特征值的最大值的位置是固定的,则控制器190可将关于最大值的位置的信息存储在最大位置缓冲器195中。在下面的卷积操作中,控制器190可通过使用卷积操作,仅处理存储在最大位置缓冲器195中的位置的图像数据。
图5是示出根据示例实施例的下采样过程的示图。参照图5,以下采样方式简明地示出了最大池化和平均池化。
第一特征图131的每个矩阵的值可以是通过上述图4的卷积操作计算的值。可在以步长2对2乘2大小的窗进行移位的同时执行下采样。首先,在最大池化的情况下,可通过选择第一特征图131的均具有2乘2大小的多个窗的最大值来产生2乘2大小的下采样值132a。可通过对第一特征图131的均具有2乘2大小的多个窗的特征的比较操作而选择最大值6、8、3和4,来输出下采样值132a。
相比之下,在平均池化的情况下,存在包括在第一特征图131的均具有2乘2大小的多个窗中的特征值的计算的平均值。可将计算的平均值输出作为2乘2大小的下采样值132b。可通过对第一特征图131的均具有2乘2大小的多个窗的特征的平均操作而选择平均值3、5、2和2,来输出下采样值132b。
图6是示出根据示例实施例的卷积层中的操作的示图。参照图6,根据示例实施例,简明地示出了与卷积层中的深度相关联的卷积操作的特性。根据示例实施例,执行卷积操作直到检测到最大值的位置的深度为止(MP跟踪)。在之后的卷积深度中,可仅将卷积操作应用于检测到最大值的图像的位置。
控制器190可检测输入图像10的特征的最大值的位置,其中,输入图像10的特征根据在执行卷积层时的深度的进展而被累积。如图6所示,可通过内核151对输入图像10的数据执行扫描和内核化。上述卷积环可继续,直到检测到最大值的位置为止。也就是说,可执行卷积环,并可累积作为卷积环的结果值的特征。通过内核151的特征值的最大值可从特定的卷积深度开始出现。例如,如果卷积环的深度有了进展,则由用于检测字母“m”的内核产生的特征值的位置开始被固定。如果以参考频率或更高频率在特定位置检测到最大值,则控制器190可确定检测到最大位置MP。控制器190可将最大位置数据存储在最大位置缓冲器195中。
控制器190可通过检测到最大位置MP之后的卷积深度的卷积操作,仅处理最大位置数据所指示的图像区域或特征图的区域。如果与字母“m”的位置对应的位置155被检测为最大位置MP,则可仅在最大位置MP执行之后的卷积操作。在这种情况下,与输入图像10的除最大位置155之外的剩余区域相关联的无意义的卷积操作可被跳过。
图7是示出根据示例实施例的执行在图6中简明地描述的卷积操作的方法的流程图。参照图7,控制器190(参照图1)可执行用于检测最大位置的操作,直到达到卷积操作的特定深度为止。如果检测到最大位置,则控制器190将最大位置数据存储在最大位置缓冲器195中。可在卷积神经网络系统100的训练操作期间以概率信息的形式将最大位置存储在最大位置缓冲器195中。可基于存储在最大位置缓冲器195中的最大位置数据来执行之后的卷积操作。下面将对这进行更详细地描述。
在操作S110中,控制器190可确定将要应用卷积操作的位置是否是固定的(例如,被预定义)。例如,针对卷积操作,可在输入图像的特定位置由用户固定(例如,与最大值对应的位置由用户输入)或者最大位置数据存在的情况下定义固定的位置。如果确定将要应用卷积操作的输入图像(或特征图)的位置是固定的(是),则处理进行到操作S120。如果确定将要应用卷积操作的输入图像或特征图的位置没有被设置成固定的值(否),则处理进行到操作S160。
在操作S120中,控制器190可确定最大位置是否被定义(例如,固定的、被检测到的)。例如,控制器190可在最大位置缓冲器195中搜索最大位置数据,并可确定是否检测到最大位置。如果确定检测到最大位置(是),则处理进行到操作S130。如果确定未检测到最大位置(否),则处理进行到操作S160。
在操作S130中,控制器190可控制输入缓冲器110、处理元件单元130、参数缓冲器150和输出缓冲器170,使得卷积环基于存储在最大位置缓冲器195中的最大位置数据被执行。控制器190可从输入图像10或特征图选择与最大位置对应的区域的数据,并对选择的数据执行卷积操作。控制器190可跳过对输入图像10或特征图的除与最大位置对应的区域之外的剩余区域的卷积操作。
在操作S140中,控制器190可确定操作S130中执行的卷积环是否对应于卷积层的最后的深度或环。如果在操作S130中执行的卷积环不对应于卷积层的最后的环,则处理进行到操作S130。如果在操作S130中执行的卷积环对应于卷积层的最后的环,则处理进行到操作S150。
在操作S150中,控制器190可将在最后的卷积环中累积的最大位置的特征复制到输出缓冲器170中。换言之,控制器190可将结果写入到输出缓冲器170的特定位置。
在操作S160中,控制器190可控制输入缓冲器110、处理元件单元130、参数缓冲器150和输出缓冲器170,使得用于确定最大位置的卷积环被执行。如果用于确定最大位置的卷积环被完全地执行,则处理进行到用于确定先前的卷积环的最大位置是否与当前执行的卷积环的最大位置相同的操作S120。
针对一个卷积层,上面描述了检测特征值的最大位置的方法和通过使用检测到的最大位置的信息来降低卷积操作的计算复杂度的方法。此外,如果检测到最大位置,则如果必要可应用终止另外卷积操作的技术。
图8是示出在图7中执行的操作S160的示例的流程图。将参照图8描述检测特征值的最大位置的方法的示例实施例(S160a)。
在操作S161中,控制器190可控制输入缓冲器110、处理元件单元130、参数缓冲器150和输出缓冲器170执行用于确定最大位置的卷积环。处理元件单元130可通过对输入特征图或输入图像10的全部位置的数据进行内核化来计算与内核的相关性。如果完成了该卷积环,则可产生更新的新特征图。
在操作S162中,可确定执行卷积环的当前深度是否大于(深于)特定深度(例如,最大深度)。可将特定深度称为最大深度,因为它表示将被迭代的卷积环的最大次数。这里,可将特定深度(例如,最大深度)设置为通过卷积环的执行而累积的特征值有意义的最小深度。如果当前卷积深度大于特定深度(是),则处理进行到操作S163。如果当前卷积深度不大于特定深度(否),则处理进行到操作S161。
在操作S163中,控制器190可从根据操作S161的卷积环的执行而产生的特征图(例如,输出特征图)的特征(例如,输出特征)检测最大位置MP。这里,最大位置MP可对应于从根据在一个输入图像10中的卷积操作产生的累积的特征(例如,输出特征)之中检测到的最大值。可选地,最大位置MP可对应于一个输入图像10中划分的各个区域单元的累积的特征的最大值。
在操作S164中,控制器190可将在当前卷积环中检测到的当前最大位置Current MP与在先前卷积环中检测到的先前最大位置Previous MP进行比较。如果最大位置Current MP与在先前卷积环中检测到的最大位置Previous MP相同(是),则处理进行到操作S166。如果最大位置Current MP与最大位置Previous MP不同(否),则处理进行到操作S165。
在操作S165中,控制器190可初始化存储在最大位置缓冲器195中的最大位置数据。例如,在同一位置(即,一个位置)检测到最大值的次数可以是“0”,并且先前最大位置可被更新。之后,处理进行到操作S161,其中,在操作S161中,执行用于检测最大位置的下一深度的卷积环。
在操作S166中,控制器190可将最大位置缓冲器195中的在检测到最大位置的位置检测到最大值的次数(还被称为“最大值检测计数”)nMP加起来。也就是说,控制器190可更新在当前特征图中的同一位置检测到最大值的次数。例如,可将“1”加到最大位置缓冲器195中的以表的形式管理的最大值检测计数nMP。
在操作S167中,可根据在同一位置的最大值检测计数nMP与整个卷积深度(例如,预定义的最大卷积深度)的相对比率来进行操作分支。例如,在当前最大值检测计数nMP超出整个卷积深度tConv depth和参考比率的乘积(例如,10%)(还被称为预设比率或阈值比率)的情况下,可将最大位置确定为是固定的(例如,被检测的、被定义的、收敛的)。换言之,最大位置可以是与基于多个卷积环产生的输出特征的最大值对应的输入特征图的位置收敛的地方。在这种情况下,相对比率可以是10%或0.1。可根据卷积神经网络系统100的特性不同地设置相对比率的大小。如果在同一位置的最大值检测计数nMP与整个卷积深度的比率超出预设的参考比率(是),则可将最大位置确定为是固定的,并且操作160a结束。可将固定的最大位置存储在最大位置缓冲器195中。如果最大位置检测计数nMP在同一位置没有达到在整个卷积深度占据的相对比率(否),则处理进行到操作S161,其中,在操作S161中,执行用于检测另外最大位置的卷积环。
上面描述了用于检测最大位置的示例实施例。如果在同一位置的连续最大值检测计数nMP与整个卷积深度的比率大于预设相对比率,则可将最大位置确定为是固定的。然而,可很好地理解基于在同一位置不连续地检测到最大值的nMP次数来确定最大位置是否是固定的。
图9是示出在图7中执行的操作S160的另一示例实施例的流程图。将参照图9描述检测特征图的最大位置的方法的另一示例实施例(S160b)。
在操作S161中,控制器190可控制输入缓冲器110、处理元件单元130、参数缓冲器150和输出缓冲器170执行用于确定最大位置的卷积环。处理元件单元130可通过卷积操作来处理输入特征图或输入图像10的全部位置的数据。可将多个内核用于卷积操作,因此,可产生多个特征图。如果完成了用于卷积操作的卷积环,则可产生更新的新特征图。
在操作S162中,控制器190可确定在操作S161中执行的卷积环的深度是否大于特定深度。这里,可将特定深度设置为通过卷积环的执行而累积的特征有意义的最小深度。如果当前卷积深度大于特定深度(是),则处理进行到操作S163。如果当前卷积深度不大于特定深度(否),则处理进行到操作S161。
在操作S163中,控制器190可从在操作S161的卷积环中产生的累积的特征(例如,输出特征)检测最大值以及检测到最大值的最大位置MP。这里,最大位置MP可对应于从根据一个输入图像10中的卷积操作产生的累积的特征之中检测到的最大值。可选地,最大位置MP可以是在一个输入图像10中划分的各个区域单元的累积的特征的最大值。
在操作S164中,控制器190可将在当前卷积环中检测到的最大位置Current MP与在先前卷积环中检测到的最大位置Previous MP进行比较。如果最大位置Current MP与在先前卷积环中检测到的最大位置Previous MP相同(是),则处理进行到操作S166。如果最大位置Current MP与最大位置Previous MP不同(否),则处理进行到操作S165。
在操作S165中,控制器190可初始化存储在最大位置缓冲器195中的最大位置数据。例如,在同一位置检测到最大值的次数可以是“0”,并且先前最大位置可被更新。之后,处理进行到操作S161,其中,在操作S161中,执行用于检测最大位置的下一深度的卷积环。
在操作S166中,控制器190可将最大位置缓冲器195中的在检测到的位置检测到最大值的次数nMP加起来。也就是说,控制器190可更新在当前特征图中的同一位置检测到最大值的次数。例如,可将“1”加到最大位置缓冲器195中的以表的形式管理的最大值检测计数nMP。
在操作S168中,可根据在同一位置的最大值检测计数nMP是否超过阈值TH来进行操作分支。例如,如果当前最大值检测计数nMP超过阈值TH,则控制器190可确定最大位置是固定的。可根据卷积神经网络系统100的特性来不同地设置阈值TH的大小。如果在同一位置的最大值检测计数nMP超过阈值TH(是),则可将最大位置确定为是固定的,并且操作S160b结束。可将固定的最大位置存储在最大位置缓冲器195中。如果在同一位置的最大值检测计数nMP没有达到阈值TH(否),则处理进行到操作S161,其中,在操作S161中,可执行用于检测另外最大位置的卷积环。
上面描述了用于检测最大位置的另一示例实施例。如果在同一位置的最大值检测计数nMP大于阈值TH,则可确定检测到最大位置。然而,可很好地理解基于在同一位置不连续地检测到的最大值检测计数nMP来确定最大位置是否是固定的。
图10是示出在图7中执行的检测最大位置的方法的另一示例实施例的流程图。参照图10,可以以从“A”到“B”的特定深度间隔检测特征图的最大位置。将使用操作S160c简明地描述该示例实施例。
在操作S161中,控制器190可控制输入缓冲器110、处理元件单元130、参数缓冲器150和输出缓冲器170执行用于确定最大位置的卷积环。处理元件单元130可通过卷积操作来处理输入特征图或输入图像10的全部位置的数据。可将多个内核用于卷积操作,因此,可产生多个特征图。如果完成了用于卷积操作的卷积环,则可产生更新的新特征图。
在操作S162中,控制器190可确定在操作S161中执行的卷积环的深度是否大于特定深度。这里,可将特定深度设置为通过卷积环的执行而累积的特征有意义的最小深度。如果当前卷积深度大于特定深度(是),则处理进行到操作S163。如果当前卷积深度不大于特定深度(否),则处理进行到操作S161。
在操作S162’中,控制器190可确定在操作S161中执行的卷积环的深度是否被包括在特定范围内。这里,从“A”到“B”的特定范围可以是被选择来降低用于检测最大位置的计算复杂度的卷积环的深度范围。可仅在卷积环的特定深度检测具有最大值的特征值。如果在操作S161中执行的卷积环的深度没有被包括在从“A”到“B”的特定范围内(否),则处理进行到操作S161。如果在操作S161中执行的卷积环的深度被包括在从“A”到“B”的特定范围内(是),则处理进行到操作S163。
在操作S163中,控制器190可检测在操作S161的卷积环中产生的累积的特征(例如,输出特征)最大值以及检测到最大值的最大位置MP。这里,最大位置MP可对应于从根据一个输入图像10或特征图中的卷积操作产生的累积的特征之中检测到的最大值。可选地,最大位置MP可对应于在一个输入图像10或特征图中划分的各个区域单元的累积的特征的最大值。
在操作S164中,控制器190可将在当前卷积环中检测到的最大位置Current MP与在先前卷积环中检测到的最大位置Previous MP进行比较。如果最大位置Current MP与在先前卷积环中检测到的最大位置Previous MP基本相同(是),则处理进行到操作S166。如果最大位置Current MP与最大位置Previous MP不同(否),则处理进行到操作S165。
在操作S165中,控制器190可初始化存储在最大位置缓冲器195中的最大位置数据。换言之,最大位置可被找到。例如,在同一位置检测到最大值的次数可以是“0”,并且先前最大位置可被更新。之后,处理进行到操作S161,其中,在操作S161中,执行用于检测最大位置的下一深度的卷积环。
在操作S166中,控制器190可将最大位置缓冲器195中的在检测到的位置检测到最大值的次数nMP加起来。也就是说,控制器190可更新在当前特征图中的同一位置检测到最大值的次数。例如,可将“1”加到最大位置缓冲器195中的以表的形式管理的最大值检测计数nMP。
在操作S168中,可根据在同一位置的最大值检测计数nMP是否超过阈值TH来创建操作分支。例如,如果当前最大值检测计数nMP超过阈值TH,则控制器190可确定最大位置是固定的。可根据卷积神经网络系统100的特性来不同地设置阈值TH的大小。如果在同一位置的最大值检测计数nMP超过阈值TH(是),则可将最大位置确定为是固定的,并且操作S160c结束。可将固定的最大位置存储在最大位置缓冲器195中。如果在同一位置的最大值检测计数nMP没有达到阈值TH(否),则处理进行到操作S161,其中,在操作S161中,执行用于检测另外最大位置的卷积环。这里,可很好地理解使用整个卷积深度(例如,最大卷积深度)的特定比率来替换阈值TH,其中,阈值TH指示最大值检测计数nMP和特定比率的乘积,最大值检测计数nMP指示检测到最大值的环的数量。
上面描述了用于检测最大位置的另一示例实施例。由于用于检测最大位置的操作在从“A”到“B”的特定深度范围内被激活,因此用户可基于卷积神经网络系统100的操作条件或输入图像的类型来不同地调节检测条件。
图11是示出使用本发明构思的最大位置的另一示例实施例的示图。参照图11,在检测到最大位置MP之后,可仅对输入图像200或输入特征图的与最大位置MP对应的区域执行卷积操作。此外,还可将应用于卷积操作的结果值的偏差加法仅应用于最大位置MP。
输入图像200可以是构成输入原始图像的多个图像数据层中的一个。可选地,输入图像200可以是通过先前卷积操作产生的特征图。假设通过最大检测操作检测到的最大位置是最大区域(MP)202。在这种情况下,在检测到最大值之后,则可仅在最大区域202中执行卷积环。也就是说,可在最大区域202中移动多个内核,并且可对重叠区域的参数进行相乘和累积。然而,可跳过输入图像200的与最大区域202的外部对应的无效区域206的卷积操作。可将无效区域206的特征值设置为“0”,或将无效区域206的特征值设置为固定的特定水平。
如图11所示,任何一个内核204可在用于卷积操作的输入图像200中与最大区域202重叠。可将重叠区域的内核加权值和输入数据值进行相乘。可作为将相乘的值相加的结果输出一个特征值。然而,可将“0”输出为除最大区域202之外的无效区域的特征值。在这种情况下,将偏差值α加到作为卷积操作的结果而产生的特征值。根据示例性实施例的一方面,可在将卷积操作和偏差值α的相加仅应用于最大区域202的条件下,产生输出特征图210。也就是说,可跳过与输入图像200的无效区域206相关联的卷积操作和偏差相加操作。
通过将卷积操作和偏差相加应用于最大区域202,可显著地降低在检测到最大位置之后将应用的卷积环的计算复杂度。
图12是示出使用本发明构思的最大位置的另一示例实施例的流程图。参照图12,如果检测到最大位置MP,则控制器190(参照图1)可将最大位置数据存储在最大位置缓冲器195中。之后,可基于存储在最大位置缓冲器195中的最大位置数据来执行卷积操作。此外,控制器190可通过使用存储在最大位置缓冲器195中的最大位置数据来对在卷积环中产生的特征图执行下采样操作。
在操作S210中,可执行用于检测特征值的最大位置的与内核的卷积操作。针对卷积操作,控制器190可控制输入缓冲器110、处理元件单元130、参数缓冲器150和输出缓冲器170,使得用于确定最大位置的卷积环被执行。控制器190可通过一个卷积环的执行来产生多个特征图。
在操作S220中,控制器190可检测包括在特征图中的特征值的最大值。控制器190可将在先前卷积环中累积的特征值的最大位置与在当前卷积环中产生的最大位置进行比较。参照图8至图10的流程图详细描述了确定最大位置的方法,因此省略其描述。如果确定检测到最大位置(是),则可将最大位置数据记录在最大位置缓冲器195中。之后,处理进行到操作S230。如果确定未检测到最大位置(否),则处理进行到操作S210。
在操作S230中,可继续进行在最大值的检测之后的卷积环。也就是说,控制器190可控制输入缓冲器110、处理元件单元130、参数缓冲器150和输出缓冲器170,使得仅检测到的最大位置MP所指示的最大区域202(参照图1)的特征图区域或图像数据通过使用内核的卷积操作而被处理。
在操作S240中,可检查在操作S230中执行的卷积环是否是用于处理输入图像10或特征图的最后的卷积环。如果在操作S230中执行的卷积环是最后的环(是),则处理进行到操作S250。如果在操作S230中执行的卷积环不是最后的环(否),则处理进行到操作S230。
在操作S250中,可执行偏差应用操作。也就是说,可将偏差α加到根据最后的卷积环的执行而产生的特征值(例如,输出特征值)。然而,可仅将偏差α选择性地加到与最大位置MP对应的特征值。相比之下,可跳过与最大位置不相关的区域的偏差相加。
在操作S260中,可执行池化或下采样操作。控制器190可参照存储在最大位置缓冲器195中的最大位置数据执行池化操作。例如,在使用最大池化的情况下,控制器190可在不应用池化滤波器的情况下参照存储在最大位置缓冲器195中的最大位置,将最大值特征发送到输出缓冲器170。因此,可不需要用于最大池化的比较操作。在针对下采样应用平均池化的情况下,可以以用于选择与最大区域对应的特征并获得平均值的方式来执行池化操作。除了上述平均池化之外,还可提供用于执行池化操作的各种方法。例如,可通过应用用于对池化滤波器的值进行排序的方式、用于选择中值的方式等来另外执行池化操作。
在操作S270中,在应用最大池化的情况下,可在没有对最大值特征的比较操作的情况下参照存储在最大位置缓冲器195中的最大位置,将结果写入到输出缓冲器170中。
上面简明地描述了使用在卷积层中产生的特征的最大位置的方法。当卷积深度深时,作为卷积环的执行结果而产生的特征的最大位置可被固定。如果使用卷积层的特性检测到最大位置,则可跳过除最大值之外的图像区域的卷积操作。因此,可显著地降低包括乘法和累积操作的卷积操作所需的计算复杂度。
根据一个或多个示例实施例,提供一种能够降低用于确定与内核的相关性的卷积环被执行的次数的卷积神经网络系统。因此,根据一个或多个示例实施例的卷积神经网络系统可显著地降低卷积操作所需的计算复杂度。这可意味着驱动卷积神经网络系统所需的功率被降低。
虽然已经描述了各个示例实施例,但是本领域技术人员将清楚,在不脱离本公开的精神和范围的情况下,可做出各种改变和修改。因此,应理解,上面的示例实施例不是限制性的,而是说明性的。