1.本发明涉及一种用于优化结构化网络的结构优化装置和结构优化方法,并且还涉及一种包括记录在其上的程序以实现装置和方法的计算机可读记录介质。
背景技术:2.在诸如深度学习和神经网络的机器学习中使用的结构化网络中,当构成结构化网络的中间层的数量增加时,计算单元的计算量也增加。由于这个原因,计算单元需要很长时间来输出诸如标识和分类的处理结果。计算单元的示例包括cpu(中央处理单元)、gpu(图形处理单元)和fpga(现场可编程门阵列)。
3.鉴于此,用于修剪中间层中包括的神经元(例如人工神经元,诸如感知器、s形神经元和节点)等的结构化网络修剪算法作为用于减少计算单元的计算量的技术而被公知。神经元是用于使用输入值和权重来执行乘法和加法的单元。
4.作为相关技术,非专利文献1公开了关于结构化网络修剪算法的考虑。结构化网络修剪算法是一种通过检测空闲神经元并且对检测到的空闲神经元进行修剪来减少计算机的计算量的技术。空闲神经元是对诸如标识和分类等处理的贡献度较低的神经元。
5.相关领域文献列表
6.非专利文献
7.非专利文献1:zhuang liu、mingjie sun2、tinghui zhou、gao huang、trevor darrell于2018年9月28日(修改于2019年3月6日)在iclr 2019会议上发表的“重新思考网络修剪的价值(rethinking the value of network pruning)”
技术实现要素:8.技术问题
9.同时,上述结构化网络修剪算法是用于对中间层中的神经元进行修剪的算法,但不是用于对中间层进行修剪的算法。即,结构化网络修剪算法不是用于减少结构化网络中对诸如标识和分类等处理的贡献度低的中间层的算法。
10.进一步地,由于上述结构化网络修剪算法对神经元进行修剪,因此诸如标识和分类等处理的准确性可能会降低。
11.本发明的示例目的是提供一种结构化网络能够被优化并且计算单元的计算量能够被减少的结构优化装置、结构优化方法和计算机可读记录介质。
12.问题解决方案
13.为了实现上述目的,一种根据本发明的示例方面的结构优化装置包括:
14.生成单元,其被配置为在结构化网络中生成对一个或多个中间层取捷径的残差网络;
15.选择单元,其被配置为根据中间层对使用结构化网络执行的处理的第一贡献度来选择中间层;以及
16.删除部件,其被配置为删除所选择的中间层。
17.而且,为了实现上述目的,一种根据本发明的示例方面的结构优化方法包括:
18.生成步骤,其用于在结构化网络中生成对一个或多个中间层取捷径的残差网络;
19.选择步骤,其用于根据中间层对使用结构化网络执行的处理的第一贡献度来选择中间层;以及
20.删除步骤,其用于删除所选择的中间层。
21.此外,为了实现上述目的,一种根据本发明的示例方面的计算机可读记录介质包括在其上记录的程序,该程序包括指令,该指令使计算机执行:
22.生成步骤,其用于在结构化网络中生成对一个或多个中间层取捷径的残差网络;
23.选择步骤,其用于根据中间层对使用结构化网络执行的处理的第一贡献度来选择中间层;以及
24.删除步骤,其用于删除所选择的中间层。
25.本发明的有利效果
26.根据上述本发明,能够优化结构化网络,并且能够减少计算单元的计算量。
附图说明
27.图1是示出了结构优化装置的示例的图。
28.图2是示出了学习模型的示例的图。
29.图3是用于图示残差网络的图。
30.图4是示出了包括结构优化装置的系统的示例的图。
31.图5是示出了残差网络的示例的图。
32.图6是示出了残差网络的示例的图。
33.图7是示出了中间层从结构化网络中删除的示例的图。
34.图8是示出了中间层已经从结构化网络中删除的示例的图。
35.图9是示出了神经元与连接之间的连通的示例的图。
36.图10是示出了包括结构优化装置的系统操作的示例的图。
37.图11是示出了根据第一示例变化的系统操作的示例的图。
38.图12是示出了根据第二示例变化的系统操作的示例的图。
39.图13是示出了实现结构优化装置的计算机的示例的图。
具体实施方式
40.(示例实施例)
41.在下文中,本发明的示例实施例将参照图1至13进行描述。
42.[装置配置]
[0043]
首先,根据示例实施例的结构优化装置1的配置将参照图1描述。图1是示出了结构优化装置的示例的图。
[0044]
图1所示的结构优化装置1是用于优化结构化网络以减少计算单元的计算量的装置。结构优化装置1的示例包括cpu、gpu或可编程设备(诸如fpga)或者信息处理设备(包括计算单元,该计算单元包括以上一个或多个)。而且,如图1所示,结构优化装置1包括生成单
元2、选择单元3和删除单元4。
[0045]
其中,生成单元2生成在结构化网络中对一个或多个中间层取捷径(shortcut)的残差网络。选择单元3根据中间层对使用结构化网络执行的处理的贡献度(第一贡献度)来选择中间层。删除单元4删除所选择的中间层。
[0046]
结构化网络是通过机器学习生成的学习模型,并且包括分别包括神经元的输入层、输出层和中间层。图2是示出了学习模型的示例的图。图2所示的示例是其中使用输入图像来标识和分类在输入图像中捕获的汽车、自行车、摩托车和行人的模型。
[0047]
而且,在图2中的结构化网络中,目标层中的神经元中的每个神经元通过加权连接(连接线)连通到目标层上方的层中的一些或所有神经元。
[0048]
对中间层取捷径的残差网络将被描述。图3是用于图示对中间层取捷径的残差网络的图。
[0049]
当图3的a所示的结构化网络被变换为图3的b所示的结构化网络时,即,当对p层取捷径的残差网络被生成时,使用连接c3、c4、c5和加法器add来对p层取捷径。
[0050]
在图3中,p-1层、p层和p+1层是中间层。p-1层、p层和p+1层分别具有n个神经元。注意,层中的神经元数量也可以彼此不同。
[0051]
p-1层输出x(x1、x2、
…
、xn)作为输出值,并且p层输出y(y1、y2、
…
、yn)作为输出值。
[0052]
连接c1包括将p-1层中的神经元的输出中的每个输出连通到p层中的神经元的所有输入的多个连接。连接c1中包括的多个连接被分别加权。
[0053]
而且,在图3所示的示例中,由于存在包括在连接c1中的n
×
n个连接,因此也存在n
×
n个权重。在以下描述中,连接c1的n
×
n个权重可以被称为w1。
[0054]
连接c2包括将p层中的神经元的输出中的每个输出连通到p+1层中的神经元的所有输入的多个连接。连接c2中包括的多个连接被分别加权。
[0055]
而且,在图3所示的示例中,由于存在包括在连接c2中的n
×
n个连接,因此也存在n
×
n个权重。在以下描述中,连接c2的n
×
n个权重可以被称为w2。
[0056]
连接c3包括将p-1层中的神经元的输出中的每个输出连通到加法器add的所有输入的多个连接。c3中包括的多个连接被分别加权。
[0057]
而且,在图3所示的示例中,由于存在包括在连接c3中的n
×
n个连接,因此也存在n
×
n个权重。在以下描述中,连接c3的n
×
n个权重可以被称为w3。此处,权重w3可以是通过对p-1层的输出值x进行相同变换获得的值,或者可以是通过将输出值x乘以常数获得的值。
[0058]
连接c4包括将p层中的神经元的输出中的每个输出连通到加法器add的所有输入的多个连接。连接c4中包括的多个连接中的每个连接被加权以对p层中的输出值y执行相同的变换。
[0059]
加法器add将由从连接c3获得的p-1层中的输出值x确定的值与由权重w3(n个元素)确定的值以及从连接c4(n个元素)获得的p层中的输出值y相加,以计算输出值z(z1、z2、...、zn)。
[0060]
连接c5包括将加法器add的输出中的每个输出连通到p+1层中的神经元的所有输入的多个连接。连接c5中包括的多个连接被分别加权。注意,上述n是1或更大的整数。
[0061]
而且,尽管在图3中示出了对一个中间层取捷径以简化描述,但是可以在结构化网
络中提供对中间层取捷径的多个残差网络。
[0062]
使用用于将目标中间层中的神经元连通到在目标中间层下方的层中提供的中间层的连接的权重来确定中间层的贡献度。在图3中的b中,在计算p层的贡献度的情况下,中间层的贡献度是使用连接c1的权重w1来计算的。例如,连接c1中包括的多个连接的权重被合计以计算总值,并且计算出的总值作为贡献度。
[0063]
关于中间层的选择,例如,确定贡献度是否为预定阈值(第一阈值)或更大,并且要被删除的中间层是根据确定结果来选择的。
[0064]
通过这种方式,在示例实施例中,当对中间层取捷径的残差网络在结构化网络中被生成之后,对使用结构化网络执行的处理的贡献度低的中间层被删除,因此能够优化结构化网络。因此,能够减少计算机的计算量。
[0065]
而且,在示例实施例中,通过在其中提供残差网络来优化结构化网络,能够抑制诸如标识和分类等处理的准确性降低。通常,在结构化网络中,中间层和神经元数量的减少会导致诸如标识和分类等处理的准确性降低,但贡献度高的中间层并没有被删除,因此能够抑制诸如标识和分类等处理的准确性降低。
[0066]
在图2所示的示例中,当其中汽车被捕获的图像被输入到输入层时,由于认为对处理的贡献度高,因此在对输出层中的图像中被捕获为汽车的对象进行标识和分类时很重要的中间层未被删除。
[0067]
进一步地,在示例实施例中,程序大小能够通过优化上述结构化网络来减小,因此能够减小计算单元、存储器等的规模。因此,装置能够被小型化。
[0068]
[系统配置]
[0069]
接下来,根据示例实施例的结构优化装置1的配置将使用图4更详细地图示。图4是示出了具有结构优化装置的系统的示例的图。
[0070]
如图4所示,除了结构优化装置1之外,示例实施例中的系统还包括学习装置20、输入设备21和存储设备22。存储设备22存储学习模型23。
[0071]
学习装置20基于学习数据来生成学习模型23。具体地,首先,学习装置20从输入设备21获得多条学习数据。接下来,学习装置20使用所获得的学习数据来生成学习模型23(结构化网络)。接下来,学习装置20将所生成的学习模型23存储在存储设备22中。注意,学习装置20可以是诸如服务器计算机的信息处理装置。
[0072]
输入设备21是向学习装置20输入学习数据的设备,该学习数据被用于使学习装置20学习。例如,注意,输入设备21可以是诸如个人计算机的信息处理装置。
[0073]
存储设备22存储由学习装置20生成的学习模型23。而且,存储设备22存储其中使用结构优化装置1优化结构化网络的学习模型23。注意,存储设备22也可以在学习装置20内部提供。可替选地,存储设备22可以在结构优化装置1内部提供。
[0074]
将描述结构优化装置。
[0075]
生成单元2生成对学习模型23中包括的结构化网络中的一个或多个中间层取捷径的残差网络。具体地,首先,生成单元2选择其中残差网络将被生成的中间层。例如,生成单元2选择一些或所有中间层。
[0076]
接下来,生成单元2相对于所选择的中间层生成残差网络。例如,如图3中的b所示,如果目标中间层是p层,则生成连接c3(第一连接)、c4(第二连接)、c5(第三连接)和加法器
add,并且使用这些连接和加法器来生成残差网络。
[0077]
生成单元2将连接c3的一端连通到p-1层的输出,并且将其另一端连通到加法器add的一个输入。而且,生成单元2将连接c4的一端连通到p层的输出,并且将其另一端连通到加法器add的其他输入。而且,生成单元2将连接c5的一端连通到加法器add的输出,并且将其另一侧连通到p+1层的输入。
[0078]
进一步地,残差网络中包括的连接c3可以利用用于执行输入值x的相同变换的权重或者用于执行输入值x乘以常数的常数乘法的权重作为权重w3来加权。
[0079]
注意,残差网络可以如图5所示针对每个中间层提供,或者对多个中间层取捷径的残差网络可以如图6所示提供。图5和6是示出残差网络的示例的图。
[0080]
选择单元3根据中间层对使用结构化网络执行的处理的贡献度(第一贡献度)来选择要被删除的中间层。具体地,首先,选择单元3获得连通到目标中间层的输入的连接的权重。
[0081]
接下来,选择单元3对所获得的权重进行合计并且权重的总值被作为贡献度。在图3中的b中,在计算p层的贡献度的情况下,选择单元3使用连接c1的权重w1来计算中间层的贡献度。例如,选择单元3对连接c1中包括的连接的权重进行合计并且所计算的总值被作为贡献度。
[0082]
接下来,选择单元3确定贡献度是否是预定阈值(第一阈值)或更大,并且根据确定结构来选择中间层。例如,阈值可以使用测试、模拟器等来获得。
[0083]
当贡献度是预定阈值或更大时,选择单元3确定目标中间层对使用结构化网络执行的处理的贡献度高。而且,当贡献度小于阈值时,选择单元3确定目标中间层对使用结构化网络执行的处理的贡献度低。
[0084]
删除单元4删除使用选择单元3选择的中间层。具体地,首先,删除单元4获得指示具有贡献度小于阈值的中间层的信息。接下来,删除单元4删除贡献度小于阈值的中间层。
[0085]
将使用图7和8来描述中间层的删除。图7和8是示出中间层已经从结构化网络中删除的示例的图。
[0086]
例如,当诸如图5所示的残差网络被提供并且p层的贡献度小于阈值时,删除单元4删除p层。因此,图5所示的结构化网络的配置将在图7中示出。
[0087]
换言之,由于从连接c42到加法器add2没有输入,因此加法器add1的输出中的每个输出被连通到如图8所示的p+1层的所有输入。
[0088]
[第一示例变化]
[0089]
将描述第一示例变化。即使所选中间层对处理的贡献度(第一贡献度)低,对处理的贡献度(第二贡献度)高的神经元也可以被包括在所选中间层中的神经元中,并且这种神经元的删除可以降低处理准确性。
[0090]
鉴于此,在第一示例变化中,当所选中间层包括贡献度高的神经元时,为了不删除该中间层,上述选择单元3被提供有附加功能。
[0091]
具体地,选择单元3根据中间层中包括的神经元对处理的贡献度(第二贡献度)来选择被选择作为删除目标的中间层。
[0092]
通过这种方式,在第一示例变化中,当贡献度高的神经元被包括在被选择作为删除目标的中间层时,所选择的中间层被从删除目标中排除,因此能够抑制处理准确性的降
低。
[0093]
将具体地描述第一示例变化。
[0094]
图9是示出了神经元与连接之间的连通的示例的图。选择单元3获得连通到p层(它是目标中间层)中的每个神经元的连接的权重。接下来,选择单元3对针对p层中的每个神经元获得的权重进行合计,并且总值被作为贡献度。
[0095]
图9中的p层中的神经元np1的贡献度通过计算w11、w21和w31的总值来获得。进一步地,p层中的神经元np2的贡献度通过计算w12、w22和w32的总值来获得。进一步地,p层中的神经元np3的贡献度通过计算w13、w23和w33的总值来获得。
[0096]
接下来,选择单元3确定p层中的神经元中的每个神经元的贡献度是否是预定阈值(第二阈值)或更大。例如,可以使用测试、模拟器等来获得阈值。
[0097]
接下来,如果神经元的贡献度是预定阈值或更大,则选择单元3确定该神经元对使用结构化网络执行的处理的贡献度高,并且从删除目标中排除p层。
[0098]
另一方面,如果p层中的所有神经元的贡献度小于阈值,则选择单元3确定目标中间层对使用结构化网络执行的处理的贡献度低,并且选择p层作为删除目标。接下来,删除单元4删除由选择单元3选择的中间层。
[0099]
以下是用于计算贡献度的方法的另一示例。对于每个神经元测量当属于p层的所有神经元的输出值发生微小量变化时对输出层的估计的影响程度,并且将其大小作为贡献度。具体地,具有正确答案的数据被输入以通过正常方法获得输出值。另一方面,当感兴趣的p层中的神经元的一个输出值被增大或减小规定的微小量δ时,对应输出值的变化量的绝对值能够被作为贡献度。p层神经元的输出能够被改变
±
δ,并且输出值之间的差异的绝对值能够被作为贡献度。
[0100]
通过这种方式,在第一示例变化中,如果贡献度高的神经元被包括在所选中间层中,则该中间层不被删除,因此能够抑制处理准确性的降低。
[0101]
[第二示例变化]
[0102]
现在将描述第二示例变化。即使所选中间层对处理的贡献度(第一贡献度)低,对处理的贡献度(第二贡献度)高的神经元也可以被包括在所选中间层中的神经元中,并且这种神经元的删除可以降低处理准确性。
[0103]
鉴于此,在第二示例变化中,如果贡献度高的神经元被包括在所选中间层中,则该中间层不被删除,并且仅贡献度低的神经元被删除。
[0104]
在第二示例变化中,选择单元3根据神经元对处理的贡献度(第二贡献度)来选择所选中间层中包括的神经元。删除单元4删除所选择的神经元。
[0105]
通过这种方式,在第二示例变化中,当贡献度高的神经元被包括在所选中间层中,则所选中间层不被删除并且仅贡献度低的神经元被删除,因此能够抑制处理准确性的降低。
[0106]
现在将具体描述第二示例变化。
[0107]
选择单元3获得连通到p层(它是目标中间层)中的每个神经元的神经元的连接的权重。接下来,选择单元3对针对p层中的神经元的每个神经元获得的权重进行合计,并且总值被作为贡献度。
[0108]
接下来,选择单元3确定p层中的每个神经元的贡献度是否是预定阈值(第二阈值)
或更大,并且根据确定结果来选择p层中的神经元。
[0109]
接下来,如果神经元的贡献度是预定阈值或更大,则选择单元3确定该神经元对使用结构化网络执行的处理的贡献度高,并且从删除目标中排除神经元。
[0110]
另一方面,如果p层中的神经元的贡献度小于阈值,则选择单元3确定神经元对使用结构化网络执行的处理的贡献度低,并且选择贡献度低的神经元作为删除目标。接下来,删除单元4删除由选择单元3选择的神经元。
[0111]
通过这种方式,在第二示例变化中,如果贡献度高的神经元被包括在所选中间层中,则所选中间层不被删除并且仅贡献度低的神经元被删除,因此能够抑制处理准确性的降低。
[0112]
[装置操作]
[0113]
接下来,根据本发明的示例实施例的结构优化装置的操作将使用图10描述。图10是图示了结构优化装置的系统操作的示例的图。在下面的描述中,图1到图9被适当引用。此外,在示例实施例中,结构优化方法通过操作结构优化装置来执行。因此,示例实施例的结构优化装置的操作的描述适用于根据本示例实施例的结构优化方法。
[0114]
如图10所示,首先,基于学习数据来生成学习模型23(步骤a1)。具体地,在步骤1中,首先,学习装置20从输入设备21获得多条学习数据。
[0115]
接下来,在步骤a1中,学习装置20使用所获得的学习数据来生成学习模型23(结构化网络)。接下来,在步骤a1中,学习装置20将所生成的学习模型23存储在存储设备22中。
[0116]
接下来,生成单元2生成对于学习模型23中包括的结构化网络中的一个或多个中间层取捷径的残差网络(步骤a2)。具体地,在步骤a2中,首先,生成单元2选择残差网络要被生成的中间层。例如,生成单元2选择一些或所有中间层。
[0117]
接下来,在步骤a2中,生成单元2为所选中间层生成残差网络。例如,如果目标中间层是图3的b所示的p层,则生成连接c3(第一连接)、c4(第二连接)、c5(第三连接)和加法器add,并且使用所生成的连接和加法器来生成残差网络。
[0118]
接下来,选择单元3计算每个中间层对使用结构化网络执行的处理的贡献度(第一贡献度)(步骤a3)。具体地,在步骤a3中,首先,选择单元3获得连通到目标中间层的输入的连接的权重。
[0119]
接下来,在步骤a3中,选择单元3对所获得的权重进行合计并且总值被作为贡献度。在图3中的b中,当计算p层的贡献度时,使用连接c1的权重w1来计算中间层的贡献度。例如,选择单元3对连接c1中包括的连接的权重进行合计,并且所计算的总值是贡献度。
[0120]
接下来,选择单元3根据所计算的贡献度来选择要被删除的中间层(步骤a4)。具体地,在步骤a4中,选择单元3确定贡献度是否是预定阈值(第一阈值)或更大,并且根据确定结果来选择中间层。
[0121]
例如,在步骤a4中,当贡献度是预定阈值或更大时,选择单元3确定目标中间层对使用结构化网络执行的处理的贡献度高。而且,当贡献度小于阈值时,选择单元3确定目标中间层对使用结构化网络执行的处理的贡献度低。
[0122]
接下来,删除单元4删除使用选择单元3所选择的中间层(步骤a5)。具体地,在步骤a5中,删除单元4获得指示其贡献度小于阈值的中间层的信息。接下来,在步骤a5中,删除单元4删除其贡献度小于阈值的中间层。
[0123]
[第一示例变化]
[0124]
现在将使用图11来描述第一示例变化的操作。图11是示出了第一示例变化中的系统操作的示例的图。
[0125]
如图11所示,首先,步骤a1到a4的处理被执行。由于步骤a1到a4的处理已被描述,在此处将不再给出描述。
[0126]
接下来,针对每个所选中间层,选择单元3计算中间层中包括的神经元中的每个神经元的贡献度(第二贡献度)(步骤b1)。具体地,在步骤b1中,选择单元3针对目标中间层中的神经元中的每个神经元获得所连通的连接的权重。接下来,选择单元3对每个神经元的权重进行合计,并且总值被作为贡献度。
[0127]
接下来,选择单元3根据所计算的每个神经元的贡献度来选择要被删除的中间层(步骤b2)。具体地,在步骤b2中,选择单元3针对所选中间层中的每个神经元来确定贡献度是否是预定阈值(第二阈值)或更大。
[0128]
接下来,在步骤b2中,如果在所选中间层中存在贡献度是预定阈值或更大的神经元,则选择单元3确定该神经元对使用结构化网络执行的处理的贡献度高,并且从删除目标中排除所选中间层。
[0129]
另一方面,在步骤b2中,如果所选中间层中的所有神经元的贡献度小于阈值,则选择单元3确定目标中间层对使用结构化网络执行的处理的贡献度低,并且选择目标中间层作为删除目标。
[0130]
接下来,删除单元4删除由选择单元3选择作为删除目标的中间层(步骤b3)。
[0131]
通过这种方式,在第一示例变化中,当贡献度高的神经元被包括在所选中间层中时,该中间层不被删除,因此能够抑制处理准确性的降低。
[0132]
[第二示例变化]
[0133]
现在将使用图12来描述第二示例变化的操作。图12是示出了第二示例变化中的系统操作的示例的图。
[0134]
如图12所示,首先,步骤a1到a4和步骤b1的处理被执行。步骤a1到a4和步骤b1的处理已被描述,并且在此处将不再给出描述。
[0135]
接下来,选择单元3根据所计算的每个神经元的贡献度来选择要被删除的神经元(步骤c1)。具体地,在步骤c1中,选择单元3针对所选中间层中的每个神经元来确定贡献度是否是预定阈值(第二阈值)或更大。
[0136]
接下来,在步骤c1中,如果存在贡献度是预定阈值或更大的神经元,则选择单元3确定该神经元对使用结构化网络执行的处理的贡献度高,并且从删除目标中排除所选中间层。
[0137]
另一方面,在步骤c1中,如果所选神经元的贡献度小于阈值,则选择单元3确定目标神经元对使用结构化网络执行的处理的贡献度低,并且选择目标神经元作为删除目标。
[0138]
接下来,删除单元4删除由选择单元3选择作为删除目标的神经元(步骤c2)。
[0139]
通过这种方式,在第二示例变化中,当贡献度高的神经元被包括在所选中间层中时,所选中间层不被删除并且仅贡献度低的神经元被删除,因此能够抑制处理准确性的降低。
[0140]
[示例实施例的效果]
[0141]
如上所述,根据示例实施例,在结构化网络中生成对中间层取捷径的残差网络,并且此后,对使用结构化网络执行的处理的贡献度低的中间层被删除,因此能够优化结构化网络。因此,能够减少计算单元的计算量。
[0142]
进一步地,在示例实施例中,如上所述,在结构化网络中提供残差网络以优化结构化网络,因此能够抑制诸如标识和分类等处理的准确性的降低。通常,在结构化网络中,中间层和神经元数量的减少会导致诸如标识和分类等处理的准确性降低,但贡献度高的中间层并没有被删除,因此能够抑制诸如标识和分类等处理的准确性的降低。
[0143]
在图2所示的示例中,当其中汽车被捕获的图像被输入到输入层时,标识和分类在输出层中的图像上被捕获为汽车的对象所必需的中间层未被删除,因为这种中间层对处理的贡献度高。
[0144]
进一步地,在示例实施例中,如果结构化网络如上所述被优化,则能够减小程序的大小,因此能够减小计算单元、存储器等的规模的大小。因此,装置能够变得更小。
[0145]
[程序]
[0146]
根据本发明的示例实施例的程序只需要是使计算机执行图10中的步骤a1到a5、图11中的步骤a1到a4和b1到b3、图12中的步骤a1到a4、b1、c1和c2或其两个或多个的程序。
[0147]
根据示例实施例的结构优化装置和结构优化方法能够通过被安装在计算机中并且执行的该程序实现。在这种情况下,计算机的处理器执行处理,同时作为生成单元2、选择单元3和删除单元4运作。
[0148]
而且,示例实施例的程序也可以由计算机系统执行,该计算机系统由多个计算机构成。例如,在这种情况下,计算机可以分别作为生成单元2、选择单元3和删除单元4之一运作。
[0149]
[物理配置]
[0150]
此处,将使用图13来描述通过执行示例实施例的程序实现结构优化装置的计算机以及第一示例变化和第二示例变化。图13是示出了实现根据本发明的示例实施例的结构优化装置的计算机的示例的框图。
[0151]
如图13所示,计算机110包括cpu(中央处理单元)111、主存储器112、存储设备113、输入接口114、显示控制器115、数据读取器/写入器116和通信接口117。这些单元经由总线121彼此连通,以便能够传递数据。注意,除了cpu 111之外或者代替cpu 111,计算机110可以包括gpu(图形处理单元)或fpga(现场可编程门阵列)。
[0152]
cpu 111将根据本示例实施例的被存储在存储设备113中的程序(代码)加载到主存储器112,并且以预定顺序来执行程序,从而执行各种种类的计算。主存储器112通常是易失性存储设备,诸如dram(动态随机存取存储器)。根据示例实施例的程序以被存储在计算机可读记录介质120的状态提供。注意,根据示例实施例的程序也可以被分布到互联网上,计算机经由通信接口117连通到互联网。
[0153]
存储设备113的具体示例可以包括硬盘驱动器、半导体存储设备(诸如闪存)等。输入接口114介导cpu 111与输入设备118(诸如键盘和鼠标)之间的数据传输。显示控制器115被连通到显示设备119,并且控制显示设备119中的显示器。
[0154]
数据读取器/写入器116介导cpu 111与记录介质120之间的数据传输,从记录介质120读出程序,并且在记录介质120中写入由计算机110执行的处理结果。通信接口117介导
cpu 111与其他计算机之间的数据传输。
[0155]
记录介质120的具体示例可以包括:通用半导体存储设备,诸如cf(紧凑型闪存(注册商标))或sd(安全数字);磁性记录介质,诸如柔性盘;以及光学记录介质,诸如cd-rom(光盘只读存储器)。
[0156]
[附记]
[0157]
关于以上示例实施例,以下附记被进一步公开。上述示例实施例可以通过以下附记1至12部分或全部实现,尽管本发明不限于以下描述。
[0158]
(附记1)
[0159]
一种结构优化装置,包括:
[0160]
生成单元,其被配置为在结构化网络中生成对一个或多个中间层取捷径的残差网络;
[0161]
选择单元,其被配置为根据中间层对使用结构化网络执行的处理的第一贡献度来选择中间层;以及
[0162]
删除部件,其被配置为删除所选择的中间层。
[0163]
(附记2)
[0164]
根据附记1的结构优化装置,
[0165]
其中,选择单元还根据中间层中包括的神经元对处理的第二贡献度来选择所选择的中间层。
[0166]
(附记3)
[0167]
根据附记1或2的结构优化装置,
[0168]
其中,选择单元还根据神经元对处理的第二贡献度来选择所选择的中间层中包括的神经元,并且
[0169]
删除单元还删除所选择的神经元。
[0170]
(附记4)
[0171]
根据附记1至3中任一项的结构优化装置,其中,残差网络中包括的连接包括用于执行将输入值乘以常数的输入值的常数乘法的权重。
[0172]
(附记5)
[0173]
一种结构优化方法,包括:
[0174]
生成步骤,其用于在结构化网络中生成对一个或多个中间层取捷径的残差网络;
[0175]
选择步骤,用于根据中间层对使用结构化网络执行的处理的第一贡献度来选择中间层;以及
[0176]
删除步骤,用于删除所选择的中间层。
[0177]
(附记6)
[0178]
根据附记5的结构优化方法,
[0179]
其中,在选择步骤中,根据中间层中包括的神经元对处理的第二贡献度来选择所选择的中间层。
[0180]
(附记7)
[0181]
根据附记5或6的结构优化方法,
[0182]
其中,在选择步骤中,根据神经元对处理的第二贡献度来进一步选择所选择的中
间层中包括的神经元,并且
[0183]
在删除步骤中,进一步删除所选择的神经元。
[0184]
(附记8)
[0185]
根据附记5至7中的任一项的结构优化方法,
[0186]
其中,残差网络中包括的连接包括用于执行输入值的常数乘法的权重。
[0187]
(附记9)
[0188]
一种计算机可读记录介质,包括在其上记录的程序,该程序包括指令,该指令使计算机执行:
[0189]
生成步骤,其用于在结构化网络中生成对一个或多个中间层取捷径的残差网络;
[0190]
选择步骤,其用于根据中间层对使用结构化网络执行的处理的第一贡献度来选择中间层;以及
[0191]
删除步骤,其用于删除所选择的中间层。
[0192]
(附记10)
[0193]
根据附记9的计算机可读记录介质,
[0194]
其中,在选择步骤中,根据所选择的中间层中包括的神经元对处理的第二贡献度来选择中间层。
[0195]
(附记11)
[0196]
根据附记9或10的计算机可读记录介质,
[0197]
其中,在选择步骤中,根据所选择的中间层中包括的神经元对处理的第二贡献度来进一步选择神经元,并且
[0198]
在删除步骤中,进一步删除所选择的神经元。
[0199]
(附记12)
[0200]
根据附记9至11中任一项的计算机可读记录介质,
[0201]
其中,残差网络中包括的连接包括将输入值乘以常数的权重。
[0202]
本技术在上面已经参照本示例实施例进行了描述,但是本技术不限于以上示例实施例。在本技术的范围内,本技术的配置和细节能够以可以由本领域技术人员理解的各种方式改变。
[0203]
本技术基于并且要求来自于2019年12月3日提交的日本技术no.2019-218605的优先权的权益,其公开内容通过引用全部并入本文。
[0204]
工业适用性
[0205]
如上所述,根据本发明,能够优化结构化网络并且能够减少计算单元的计算量。本发明在需要结构化网络的优化的领域中是有用的。
[0206]
参考符号列表
[0207]1ꢀꢀ
结构优化装置
[0208]2ꢀꢀ
生成单元
[0209]3ꢀꢀ
选择单元
[0210]4ꢀꢀ
删除单元
[0211]
20 学习装置
[0212]
21 输入设备
[0213]
22 存储设备
[0214]
23 学习模型
[0215]
110 计算机
[0216]
111 cpu
[0217]
112 主存储器
[0218]
113 存储设备
[0219]
114 输入接口
[0220]
115 显示控制器
[0221]
116 数据读取器/写入器
[0222]
117 通信接口
[0223]
118 输入设备
[0224]
119 显示设备
[0225]
120 存储介质
[0226]
121 总线。