信息处理方法、信息处理装置和信息处理程序
文献发布时间:2023-06-19 10:14:56
技术领域
本公开涉及信息处理方法、信息处理装置和信息处理程序,并且特别涉及自动搜索神经网络结构的处理。
背景技术
均模拟大脑神经系统机制的神经网络被用于各种技术领域。由于已知神经网络的学习精度在很大程度上取决于给定的数据和网络结构,因此已经提出了搜索神经网络中的适当结构的技术。
例如,已知一种技术,通过基于神经网络的评估结果更新帕累托最优解,并生成具有与和帕累托最优解相关的神经网络不同的结构的另一神经网络,来根据环境有效地搜索结构。
引用列表
专利文献
专利文献1:WO2017/154284。
发明内容
技术问题
根据传统技术,在使用遗传操作依次生成网络结构的同时,搜索最佳结构。此时,传统技术除了考虑识别性能之外还考虑计算量,并且因此即使是计算性能低的计算机也可以获得可处理的网络结构。
然而,传统技术假设单个装置处理一个神经网络。因此,例如,当执行多个装置共享神经网络的分布式处理时,并不总是能够搜索最佳网络结构。
因此,本公开提出了能够在神经网络的分布式处理中搜索适当网络结构的信息处理方法、信息处理装置和信息处理程序。
问题的解决方案
为了解决上述问题,根据本公开的信息处理方法包括以下步骤:由计算机基于关于神经网络中第一装置和第二装置之间的信息传输的信息,评估具有由第一装置和第二装置以分割方式保持的结构的神经网络;并且由计算机基于神经网络的评估,来确定神经网络的结构。
发明的有利效果
根据本公开的信息处理方法、信息处理装置和信息处理程序能够在神经网络的分布式处理中搜索适当的网络结构。本文描述的效果不一定受到限制,并且可以是本公开中描述的任何效果。
附图说明
图1是示出根据本公开第一实施例的信息处理系统的示图;
图2是示出根据本公开的用户接口的示例的示图;
图3是用于解释根据本公开的神经网络的结构的示图(1);
图4是用于解释根据本公开的神经网络的结构的示图(2);
图5是示出根据本公开第一实施例的信息处理装置的配置示例的示图;
图6是示出根据本公开第一实施例的算术单元信息存储单元的示例的示图;
图7是示出根据本公开第一实施例的通信标准存储单元的示例的示图;
图8是示出根据本公开第一实施例的模型存储单元的示例的示图;
图9是示出根据本公开的通过遗传操作的结构搜索的示例的示图;
图10是示出根据本公开的基于算术单元信息的结构搜索的示例的示图;
图11是示出根据本公开第一实施例的信息处理服务器的配置示例的示图;
图12是示出根据本公开第一实施例的终端装置的配置示例的示图;
图13是示出根据本公开第一实施例的信息处理的过程的流程图;
图14是示出根据本公开第一实施例的搜索处理的过程的流程图;
图15是示出实现信息处理装置的功能的计算机的示例的硬件配置图。
具体实施方式
下面基于附图详细描述本公开的实施例。在以下实施例中,相同的部分将由相同的附图标记表示,以省略其重复描述。
(1.第一实施例)
[1-1.根据本公开的神经网络]
神经网络是模拟人脑神经回路的模型,并且是在计算机上实现人类所拥有的学习能力的技术。神经网络的一个特点是具有学习能力。在神经网络中,通过突触形成网络的人工神经元(节点)通过学习改变突触的连接强度,以获得解决问题的能力。即,神经网络重复学习,以自动推断解决问题的规则。
神经网络学习的示例包括图像识别和语音识别。例如,在神经网络中,反复学习手写数字模式,以使得可以将接收的图像信息分类为数字0至9中的任何一个。如上所述的神经网络所具有的学习能力,作为开发人工智能的关键吸引了注意。神经网络所具有的模式识别能力也期望应用于各种工业领域。
已知神经网络的学习精度很大程度上取决于给定的数据和网络结构。即,在神经网络的学习中,给定数据的数量和质量直接影响性能。此外,即使给出相同的数据,具有不同网络结构的神经网络在学习精度上也可能有很大差异。
在神经网络的处理中,除了学习精度之外,计算量是重要的指标之一。在神经网络中,根据例如网络结构获得计算量。在神经网络中,学习精度通常倾向于随着计算量的增加而增加。
然而,由于计算量极大地影响加载有神经网络的硬件的存储器使用和执行时间,所以具有高学习精度的神经网络不一定是最好的。换言之,在神经网络中,计算量和学习精度具有所谓的折衷关系。因此,需要一种用于在减少计算量的同时搜索具有更高学习精度的网络结构的方法。
根据本公开的信息处理通过关注如上所述网络结构的搜索,来评估生成的神经网络。然后根据本公开的信息处理基于评估结果生成具有高效网络结构的神经网络,并将生成的神经网络提供给用户。在本公开中,神经网络的生成包括更新现有神经网络的结构的处理。
神经网络的生成可以通过例如遗传操作来实现,包括例如突变和交叉。突变可以是通过对在活生物体中发现的基因突变进行建模而获得的模型。即,在根据本公开的信息处理方法中,构成网络的每层被视为基因并且突变以生成具有不同网络结构的另一神经网络。上述交叉可以是通过对活生物体交叉中染色体的部分交换进行建模而获得的模型。即,在根据本公开的信息处理方法中,上述其他神经网络可以通过部分交换两个网络的层配置来生成。将在后面描述根据本公开的突变和交叉的细节。
根据本公开的神经网络具有分布到第一装置和第二装置的结构。例如,第一装置例如是物联网(IoT)装置,并且是具有较低计算性能的计算机。
第二装置是例如云上的服务器装置,并且是具有较高计算性能的计算机。作为示例,第一装置是具有拍摄功能的相机,第二装置是通过例如无线网络连接到相机的服务器装置。在这种情况下,假设的信息处理例如是对由相机捕捉的图像进行图像识别处理。
当使用具有较低计算性能的计算机(例如,IoT装置)来执行诸如图像识别的高级处理时,期望使用能够执行高级处理的装置以分布式方式来执行处理,而不是仅使用IoT装置来执行处理。例如,可以通过将从输入层到中间层的前部部分的神经网络范围分配给IoT装置,以及将从中间层的后部部分到输出层的神经网络范围分配给服务器,来分配使用神经网络的信息处理。
在这种情况下,IoT装置通过较小规模的神经网络获取尺寸小于输入数据的中间数据。换言之,IoT装置获取已经压缩的中间数据,以便具有比提供给输入层的输入数据(例如,图像数据)更小的信息量。在这样的压缩处理后,IoT装置将中间数据传输到服务器装置。服务器装置基于所获取的中间数据,来执行较大规模的神经网络的后部部分的处理。这种分布式处理可以实现高级识别处理,同时保持诸如电力的资源,电力消耗少于当输入数据原样传输到服务器装置时的消耗。
因此,在根据本公开的信息处理方法中,除了上述对例如计算量的评估之外,在第一装置中执行压缩处理,并且基于关于数据传输的信息来评估被分为前部和后部的神经网络,该信息包括例如确定中间数据将被传输到神经网络的哪层(在下文中,该传输地点被称为“传输点”)。因此,根据本公开的信息处理方法可以在分割的神经网络中适当地搜索高效结构。下面通过给出具体示例来描述根据本公开的信息处理方法。
[1-2.根据第一实施例的信息处理的概述]
图1是示出根据本公开第一实施例的信息处理的概述的示图。根据本公开第一实施例的信息处理由图1所示的信息处理系统1执行。信息处理系统1包括信息处理装置100、信息处理服务器200和终端装置300。
信息处理装置100是根据本公开的信息处理装置的示例,并且是由搜索神经网络结构的用户10管理的服务器装置。信息处理装置100根据用户10的操作生成神经网络。
信息处理服务器200是根据本公开的第二装置的示例,并且是在由信息处理装置100生成的神经网络中执行后部处理的服务器装置。
终端装置300是根据本公开的第一装置的示例,并且是执行由信息处理装置100生成的神经网络中的前部处理的信息处理终端。
使用图1,下面将沿着流程描述根据本公开的信息处理的概述。首先,通过由信息处理装置100提供的预定用户接口,用户10指定用户10想要生成的神经网络(步骤S1)。例如,用户10指定适合于用户10想要执行的处理(例如,图像识别或语音识别)的基本神经网络的结构。例如,当生成用于执行图像识别的神经网络时,用户10根据例如接收的图像数据的分辨率来指定例如层结构。
用户10还指定关于基于神经网络实际执行处理的信息处理服务器200和终端装置300的信息。例如,用户10指定例如终端装置300拥有的计算能力和信息处理服务器200的服务提供目的地,以加载后部神经网络。用户10还指定例如终端装置300和信息处理服务器200之间的通信标准。
将使用图2描述上述操作。图2是示出根据本公开的用户接口的示例的示图。用户10通过用户接口50输入关于用户10想要生成的神经网络的信息。
例如,用户10输入与处理神经网络前部的终端装置300的算术单元有关的信息。例如,用户10从下拉显示52选择板名、片上系统(SoC)和包括在终端装置300中的架构。虽然稍后将描述细节,但是在信息处理装置100中存储对应于这些选择的信息的预定数值,并且可以根据用户10的选择来改变神经网络的结构。
图2所示的信息的选择仅仅是一个示例,并且下拉显示52可以用于选择例如终端装置300的型号名称和制造商名称。在这种情况下,信息处理装置100可以通过存储与终端装置300的型号名称和制造商名称对应的信息,来参考与所选型号对应的算术单元和计算能力,而无需用户10指定终端装置300的板名等。
用户10从下拉显示54中选择终端装置300和信息处理服务器200之间的通信标准、以及用于指定关于通信标准的更详细信息的子类别和细节字段中的信息。通信标准例如是第三代(3G)标准、第四代(4G)标准或长期演进(LTE)标准。
用户10从下拉显示56中选择服务提供商的名称、特定服务名称和详细信息,该服务提供商提供例如要加载神经网络的后部部分的云服务器。服务提供商是向例如用户10或一般公司提供用于执行较高级处理的云服务的公司。
如上所述,信息处理装置100在存储单元120中预先存储与要由用户10选择的信息对应的预定数值,并且搜索适合于由用户10选择的信息的神经网络的结构。
下面使用图3描述在终端装置300和信息处理服务器200中以分割方式保持的神经网络的结构。图3是用于解释根据本公开的神经网络的结构的示图(1)。
在图3所示的示例中,概念性地示出了中间数据通过网络从终端装置300传输到信息处理服务器200的情况(步骤S11)。当执行这种处理时,终端装置300在具有第N层(其中,N是任何自然数)的中间层的神经网络中保持神经网络的前部部分20,如图3所示。信息处理服务器200保持神经网络的后部部分25。终端装置300执行前部部分20的处理,并且在传输点(图3的示例中的第三层)传输中间数据(步骤S12)。信息处理服务器200在传输点接收传输的中间数据,并使用包括第四层和后面层的后部部分25来执行处理。
随后,图4用于概念性地示出由图3所示的神经网络处理的信息量。图4是用于解释根据本公开的神经网络的结构的示图(2)。
图4的图表30示出了神经网络的结构和信息量之间的关系。图4中所示的显示32(图4中所示的“input_size”)指示提供给神经网络的输入层的输入数据的信息量。图4中所示的显示34(图4中所示的“compressed_size”)指示与输入数据相比信息量被压缩时的信息量。图4中所示的显示36(图4中所示的“transfer_point”)指示传输点,该传输点是中间数据被传输到信息处理服务器200的点。
在根据本公开的神经网络的层中,位于比输出最大信息量的层更深的部分中(在图4的示例中,这意味着更靠近输入层的一侧(更靠近左侧的一侧))并且输出比从神经网络的输入层输出的信息量更小的信息的层,被确定为将信息从终端装置300传输到信息处理服务器200的传输点。即,满足上述条件的层是用作神经网络中的传输点的中间层。在图4的示例中,第三层对应于传输点,如图表30所示。
在图表30中,显示38(图4中所示的“all_layer_num”)指示神经网络的总层数。显示40(图4中所示的“server_layer_num”)指示神经网络的后部部分的层数。显示42(图4中所示的“输出层”)指示神经网络的输出层。
如上所述,信息处理装置100搜索满足条件的传输点,以确定以分割方式保持的神经网络的结构。信息处理装置100搜索传输点,该传输点将从终端装置300传输到信息处理服务器200的中间数据的信息量减少到尽可能小的量。
这是因为,在分割的神经网络中,信息优选地尽可能快地从终端装置300传输到信息处理服务器200,并且通常通过将传输的信息量减少到尽可能小的量来提高信息处理的效率。
将返回参考图1继续描述。如使用图2至图4所描述的,信息处理装置100基于由用户10指定的信息和关于传输的信息生成神经网络,该关于传输的信息包括例如传输点的位置和中间数据的压缩量(步骤S2)。
信息处理装置100不仅综合评估上述信息,还综合评估包括例如终端装置300的计算量和计算能力的各种类型的信息,并且基于评估结果生成神经网络。
例如,信息处理装置100使用下面的表达式(1)计算神经网络的评估值。
V
在表达式(1)中,“V
“C
“V
如表达式(2)中所给出的,“V
如表达式(3)中所给出的,“r
如表达式(4)中所给出的,“r
如上所述,根据上面给出的表达式(2)至(4),信息处理装置100评估当神经网络具有在“神经网络的尽可能早的阶段(尽可能深的部分)”传输“尽可能小的中间数据”的结构时,神经网络节省更多的电力。
在上面的表达式(1)中,“k
信息处理装置100使用表达式(1)来评估生成的神经网络。然后信息处理装置100继续搜索神经网络的结构,直到评估值满足预定条件。例如,信息处理装置100使用稍后描述的遗传结构搜索方法来改变神经网络的结构,并计算改变的结构的评估值。
如果找到的结构满足预定条件(例如,如果评估值超过由用户10预先指定的阈值),则信息处理装置100确定评估的神经网络的结构是最佳的,并且确定要提供的神经网络的结构。信息处理装置100基于所确定的结构生成神经网络,并将所生成的神经网络存储在存储单元120中。
然后,信息处理装置100将具有所确定的结构的神经网络传输到信息处理服务器200(步骤S3)。信息处理服务器200接收传输的神经网络。然后信息处理服务器200在传输点分割接收的神经网络(步骤S4)。信息处理服务器200将分割后的神经网络的后部部分存储在存储单元220中。
信息处理服务器200进一步将分割的神经网络的前部部分传输到终端装置300(步骤S5)。终端装置300接收传输的神经网络的前部部分,然后将接收的前部部分存储在存储单元320中。
当有机会使用神经网络执行例如图像识别处理时,终端装置300使用神经网络的前部部分来获得通过压缩接收的图像数据而得到的中间数据。然后终端装置300将中间数据传输到信息处理服务器200。信息处理服务器200将从终端装置300传输的中间数据提供给神经网络的后部部分,以执行图像识别处理。由此,终端装置300和信息处理服务器200可以实现高级识别处理,而无需将具有大信息量的图像数据原样传输到信息处理服务器200。因此,可以减少通信和计算的处理负荷。
如上所述,根据本公开的信息处理方法基于关于具有由第一装置(终端装置300)和第二装置(信息处理服务器200)以分割方式保持的结构的神经网络中的第一装置和第二装置之间的信息传输的信息,来评估神经网络。根据本公开的信息处理方法还基于神经网络的评估来确定神经网络的结构。
具体地,根据本公开的信息处理方法基于例如由边缘侧(终端装置300)传输的数据的压缩量和传输点的位置,使用关于用于评估的传输的信息,来搜索以分割方式保持的神经网络的结构。因此,利用根据本公开的信息处理方法,在使用神经网络执行分布式处理(例如,通过通信的识别处理)的情况下,可以搜索最佳结构。
[1-3.根据第一实施例的信息处理装置的配置]
下面描述用作根据第一实施例执行信息处理的信息处理装置的示例的信息处理装置100的配置。图5是示出根据本公开第一实施例的信息处理装置100的配置示例的示图。
如图5所示,信息处理装置100包括通信单元110、存储单元120和控制单元130。信息处理装置100可以包括用于从例如管理信息处理装置100的管理员接收各种操作的输入单元(例如,键盘和鼠标)以及用于显示各种类型的信息的显示单元(例如,液晶显示器)。
通信单元110由例如网络接口卡(NIC)实现。通信单元110有线或无线连接到网络N(例如,互联网),并且通过网络N向例如信息处理服务器200和终端装置300传输信息和从其接收信息。
存储单元120由诸如随机存取存储器(RAM)或闪存的半导体存储装置、或诸如硬盘或光盘的存储装置来实现。存储单元120包括学习数据存储单元121、算术单元信息存储单元122、通信标准存储单元123和模型存储单元124。下面将依次描述存储单元。
在学习数据存储单元121中存储用于神经网络学习的学习数据组。学习数据例如是一组图像数据和用作图像数据的识别结果的一组正确答案数据。可以适当地从例如外部服务器获取学习数据,而不被信息处理装置100保持。
在算术单元信息存储单元122中存储关于包括在使用神经网络执行算术处理的装置中的算术单元的信息。图6示出了根据第一实施例的算术单元信息存储单元122的示例。图6是示出根据本公开第一实施例的算术单元信息存储单元122的示例的示图。在图6所示的示例中,算术单元信息存储单元122具有包括例如“装置标识符(ID)”、“类型”和“算术单元信息”的项。
“装置ID”是用于识别使用神经网络执行处理的装置的标识信息。“类型”表示装置的类型。
“算术单元信息”表示每个装置中包括的算术单元的信息。虽然在图6中,算术单元信息的项在概念上被描述为“算术单元信息#1”,但是在算术单元信息的项中,实际上存储了各种信息,例如,装置是否具有能够浮点运算的算术单元或者算术单元的计算性能、以及用于识别例如用于计算的板或SoC的信息。虽然稍后将描述细节,但是信息处理装置100可以根据每个装置中包括的算术单元及其计算性能,来计算神经网络的评估。此时,信息处理装置100可以基于执行神经网络的装置的算术单元信息,对评估值执行预定校正。
在图6所示的示例中,由装置ID“A01”标识的装置的类型是“服务器”,并且其算术单元信息是“算术单元信息#1”。
下面描述通信标准存储单元123。在通信标准存储单元123中存储当以分布式方式保持神经网络时用于第一装置和第二装置之间的通信的每个通信标准、与提供给通信标准的预定数值的关系。图7示出了根据第一实施例的通信标准存储单元123的示例。图7是示出根据本公开第一实施例的通信标准存储单元123的示例的示图。在图7所示的示例中,通信标准存储单元123具有包括例如“通信标准ID”、“通信标准”和“校正值”的项。
“通信标准ID”表示用于识别通信标准的标识信息。“通信标准”表示用于第一装置和第二装置之间的通信的通信标准。“校正值”是当用户10在神经网络的生成中指定通信标准时,用于根据指定的通信标准进行校正的值。例如,校正值用于确定表达式(1)中给出的权重值。尽管在图7中,校正值的项在概念上被描述为“校正值#11”,但是在校正值的项中实际上存储了要被替换为每个权重值的数值或者诸如要在权重值的计算中相乘的比率的数值。
即,图7所示的示例指示由通信标准ID“B01”识别的通信标准是“3G”,并且其校正值是“校正值#11”。
下面描述模型存储单元124。在模型存储单元124中存储由信息处理装置100生成的模型(例如,具有神经网络的分割结构的图像识别模型)。图8示出了根据第一实施例的模型存储单元124的示例。图8是示出根据本公开第一实施例的模型存储单元124的示例的示图。在图8所示的示例中,模型存储单元124具有包括例如“模型ID”、“结构信息”、“传输信息”和“评估值”的项。
“模型ID”表示用于识别模型的识别信息。“结构信息”表示关于模型所具有的结构的信息。虽然在图8中,结构信息的项在概念上被描述为“结构信息#1”,但是在结构信息的项中实际上存储了关于神经网络结构的各种类型的信息,例如,总层数、作为输入数据接收的数据的数据类型和信息量、以及激活函数的类型。
“传输信息”表示关于以分割方式保持的模型中的传输的信息。尽管在图8中,传输信息的项在概念上被描述为“传输信息#1”,但是在传输信息的项中例如实际存储传输的中间数据的压缩率和关于传输点的信息。
“评估值”表示模型的评估值。尽管在图8中,评估值的项在概念上被描述为例如“评估值#1”,但是在评估值的项中,例如实际存储了使用表达式(1)计算的模型的特定评估值的数值。
即,图8所示的示例指示由模型ID“M01”标识的模型具有结构信息“结构信息#1”、传输信息“传输信息#1”和评估值“评估值#1”。
将参考图5继续描述。通过使用例如RAM作为工作区域,由例如中央处理单元(CPU)或微处理器单元(MPU)执行存储在信息处理装置100中的计算机程序(例如,根据本公开的信息处理程序),来实现控制单元130。控制单元130是控制器,并且可以由诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的集成电路来实现。
如图5所示,控制单元130包括接收单元131、生成单元132、搜索单元133、评估单元134、确定单元135和传输单元136,并且实现或执行将在下面描述的信息处理的功能或操作。控制单元130的内部配置不限于图5所示的配置,并且可以是另一种配置,只要是执行将在下面描述的信息处理的配置。
接收单元131接收各种类型的信息。例如,接收单元131通过图2所示的用户接口50从用户10接收生成神经网络的请求。
接收单元131在接收生成请求的同时从用户10接收通过使用神经网络执行的信息处理的类型,例如,图像识别或语音识别。接收单元131还接收诸如输入数据的类型和分辨率的信息。即,接收单元131从用户10接收确定神经网络的基本结构所需的基本信息。
接收单元131还通过用户接口50接收执行所生成的神经网络的第一装置和第二装置的配置、第一装置和第二装置之间的通信标准以及关于提供神经网络的环境的信息。
第一装置和第二装置的配置是由用户10使用例如图2所示的下拉显示52指定的信息,并且是例如板名和例如第一装置的SoC的名称。第一装置和第二装置之间的通信标准是由用户10使用例如图2所示的下拉显示54指定的信息。例如,当使用由第一装置和第二装置支持的通信标准并实际使用神经网络来执行处理时,用户10指定例如第一装置和第二装置之间的假设通信标准。接收单元131接收由用户10指定的通信标准。
关于提供神经网络的环境的信息是由用户10使用例如图2所示的下拉显示56指定的信息,并且是例如服务提供商的名称,该服务提供商提供例如要加载神经网络的后部的云服务器。
接收单元131可以基于例如从用户10接收的第一装置和第二装置的配置、第一装置和第二装置之间的通信标准以及关于提供神经网络的环境的信息,来确定表达式(1)中的权重值。例如,由例如信息处理装置100的管理员预先给出用作参考的数值,作为权重值。具体地,例如,如果通信标准是“3G”,则例如通过将“k
生成单元132生成具有由第一装置和第二装置以分割方式保持的结构的神经网络。例如,生成单元132基于接收单元131接收的信息生成用户10所需的神经网络。
生成单元132通过稍后描述的搜索单元133和评估单元134的处理来更新生成的神经网络。例如,生成单元132通过搜索单元133的搜索处理来更新现有神经网络的结构。生成单元132基于由评估单元134计算的评估值来更新神经网络。例如,如果由评估单元134计算的评估值低于预定阈值,则生成单元132确定神经网络的结构不是最优的,并且将神经网络更新为搜索单元133新找到的结构。
搜索单元133搜索神经网络的结构。搜索单元133可以使用各种已知方法搜索该结构。例如,搜索单元133可以使用遗传操作来搜索神经网络的结构。
下面使用图9描述搜索单元133使用遗传操作来搜索神经网络的结构的示例。图9是示出根据本公开的通过遗传操作的结构搜索的示例的示图。图9示出了使用突变作为一个遗传操作搜索神经网络的结构(生成新的神经网络)的示例。
具体地,在图9所示的示例中,从用作基础的已经评估的神经网络(以下称为“种子网络”)生成具有不同网络结构的另一神经网络。
如上所述,使用遗传操作搜索神经网络的结构包括例如突变和交叉。即,在根据本公开的搜索方法中,构成网络的每层被视为基因,并且这些层突变或交叉,以生成具有不同网络结构的另一神经网络。
在图9所示的示例中,种子网络SN由包括“输入”和“输出”的10个层构成。“输入”表示输入层,“输出”表示输出层。图9中所示的“Conv1”和“Conv2”表示卷积层。“Pooll”和“Pool2”表示最大池层。如图9所示,在“Conv1”和“Conv2”的每一个中设置诸如内核形状和输出映射的数量的参数。在“Pool1”和“Pool2”的每一个中设置表示池化形状的参数。由于通常广泛使用图9所示的层,因此将不给出其详细描述。图9所示的层的结构由用户10通过例如用户接口50限定为要使用神经网络处理的任务特定信息。
随后,将描述图9所示的神经网络MN1。搜索单元133对种子网络SN进行突变或交叉,以生成用作另一神经网络的神经网络MN1(步骤S21)。
如图9所示,通过从种子网络SN的网络结构的层配置中部分地改变层配置,来获得神经网络MN1。具体地,在神经网络MN1中,种子网络SN的激活函数“relul”已经改变为另一激活函数“Tanhl”。通过这种方式,在根据本公开的信息处理方法中,可以通过改变网络结构中包括的层的层类型,来生成具有不同网络结构的另一神经网络。
此外,搜索单元133可以在神经网络MN1上突变或交叉,以生成用作又一神经网络的神经网络MN2(步骤S22)。
如图9所示,在神经网络MN2的网络结构中,除了神经网络MN1的层配置之外,还插入激活函数“Abs1”。通过这种方式,在根据本公开的信息处理方法中,可以通过新插入层,来生成具有不同网络结构的又一神经网络MN2。
除了上述处理之外,与遗传操作相关的突变包括诸如“层插入”、“层删除”、“层类型改变”、“参数改变”、“图分支”和“图分支删除”的操作。与遗传操作相关的交叉是在由用户10另外指定的种子网络和当前保持的神经网络之间交换层的操作。可以支持诸如单点交叉、两点交叉和多点交叉的各种方法,作为交换层的方法。
上述结构搜索处理仅仅是示例,并且用于搜索和生成结构的方法不限于在根据本公开的信息处理方法中使用遗传操作的示例。
评估单元134评估神经网络(换言之,神经网络具有的网络结构)。
首先,评估单元134使用由搜索单元133找到的神经网络的结构来学习保持在例如学习数据存储单元121中的学习数据。然后评估单元134综合考虑例如关于传输的信息、节电效果以及神经网络的识别性能和计算量来计算评估值,这将在后面描述。在上述学习处理中,例如,可以适当地使用为学习和评估神经网络而开发的现有软件库。
在本公开中,评估单元134基于关于具有由第一装置和第二装置以分割方式保持的结构的神经网络中第一装置和第二装置之间的信息传输的信息,来评估神经网络。
例如,评估单元134将信息要从第一装置传输到第二装置的传输点确定为神经网络的层中的层,该层位于比输出最大信息量的层更深的部分中,并且该层输出比从神经网络的输入层输出的信息量更小的信息。然后评估单元134基于关于所确定的传输点的信息来评估神经网络。
作为示例,评估单元134基于位于比传输点更浅部分中的层的数量和构成神经网络的层的总数来评估神经网络。具体地,评估单元134基于由以上表达式(1)至(4)中给出的“V
评估单元134不仅可以基于关于传输的信息,还可以基于以上表达式(1)中给出的其他指标值来综合评估神经网络。
例如,评估单元134基于表示神经网络的识别性能的指标值来评估神经网络。具体地,评估单元134基于由以上表达式(1)中的“V
评估单元134还基于神经网络中的计算量来评估神经网络。
具体地,评估单元134基于由以上表达式(1)中的“C
评估单元134还可以基于关于第一装置的算术处理的性能的信息来评估神经网络。诸如IoT装置的各种装置被假设为处理神经网络的前部的第一装置,例如,终端装置300。为此,每个装置拥有的算术处理的性能也被假设为各不相同。因此,评估单元134可以通过添加关于第一装置的算术处理的性能的信息作为评估目标,来获得更符合实际条件的评估。
在这种情况下,评估单元134可以使用通过变量添加到上面给出的表达式(1)而获得的下面的表达式(5)来执行评估。
V
与表达式(1)相比,表达式(5)还包括权重值“k
例如,通过增加上述变量的权重,用户10可以更容易地获得在第一装置侧增加算术效率的网络结构。这意味着当第一装置中特定表现形式的算术效率低时,具有该形式的大量计算的网络的评估值低。
例如,评估单元134可以基于保持在第一装置中的神经网络的每层中的浮点运算的次数(指令数)和除浮点运算之外的运算的次数来评估神经网络。
即,当终端装置300不具有浮点算术单元时,评估单元134减少涉及较大量浮点运算的神经网络的评估值。否则,当使用量化方法将权重和中间数据表示为例如神经网络的多层中的固定点数时,评估单元134增加神经网络的评估值。
当计算与浮点运算相关的评估值时,评估单元134可以使用作为例如下面的表达式(6)给出的表达式来计算变量“V
在上面的表达式(6)中,“N
将使用图10描述上述操作。图10是示出根据本公开的基于算术单元信息的结构搜索的示例的示图。图10示出了传输点(“transfer_point”)是第三层的示例。
如图10的表60所示,评估单元134计算终端装置300中的神经网络的每层中使用浮点算术单元的指令的数量和其他指令的数量。图10概念性地示出了指令的数量,例如,“#21”。然后,评估单元134将表60中列出的指令的数量代入表达式(6),以计算“V
如表达式(1)和(5)中所给出的,为各个变量设置预定的权重值,以获得评估值。即,评估单元134基于通过将关于传输的信息、表示神经网络的识别性能的指标值、神经网络中的计算量以及关于第一装置的算术处理的性能的信息乘以相应的预定权重值而获得的值,来评估神经网络。
如上所述,评估单元134基于第一装置和第二装置的配置、第一装置和第二装置之间的通信标准以及关于提供神经网络的环境的信息来确定权重值。可替代地,评估单元134可以根据用户10的指定来确定每个权重值。用户10通过该指定可以自由地设置权重值,该权重值对用户10所强调的性能赋予更大的权重,并且因此可以获得用户10所期望的神经网络的结构。
确定单元135基于由评估单元134获得的神经网络的评估结果来确定神经网络的结构。
例如,如果评估单元134的评估结果满足搜索处理的结束条件,例如,超过预定阈值,则确定单元135确定神经网络的结构是最优的,并确定神经网络的结构。
相反,如果评估单元134的评估结果不满足搜索处理的结束条件,例如,结果值等于或小于预定阈值,则确定单元135可以例如通过应用遗传操作使搜索单元133再次执行搜索处理。用户10可以将结束条件设置为任何条件。可以通过组合例如神经网络的识别性能和计算量、省电效果、压缩比和迭代处理的迭代次数(例如,搜索处理被迭代多少次),来创建结束条件。
传输单元136将具有由确定单元135确定的结构的神经网络传输到第二装置。
[1-4.根据第一实施例的信息处理服务器的配置]
下面描述用作根据第一实施例的第二装置的示例的信息处理服务器200的配置。图11是示出根据本公开第一实施例的信息处理服务器200的配置示例的示图。
如图11所示,信息处理服务器200包括通信单元210、存储单元220和控制单元230。信息处理服务器200可以包括用于从例如管理信息处理服务器200的管理员接收各种操作的输入单元(例如,键盘和鼠标)、以及用于显示各种类型的信息的显示单元(例如,液晶显示器)。
通信单元210由例如NIC实现。通信单元210有线或无线连接到网络N,并且通过网络N向例如信息处理装置100和终端装置300传输信息和从其接收信息。
存储单元220由诸如RAM或闪存的半导体存储装置、或诸如硬盘或光盘的存储装置实现。存储单元220包括后部模型存储单元221。
在后部模型存储单元221中存储后部部分,该后部部分是从信息处理装置100传输的神经网络中传输点之后的部分。
通过使用例如RAM作为工作区域,由例如CPU或MPU执行存储在信息处理服务器200中的计算机程序,来实现控制单元230。控制单元230是控制器,并且可以由ASIC或FPGA实现。
如图11所示,控制单元230包括模型接收单元231、分割单元232、模型传输单元233、中间数据接收单元234、识别单元235和识别结果传输单元236,并且实现或执行将在下面描述的信息处理的功能或操作。控制单元230的内部配置不限于图11所示的配置,并且可以是另一种配置,只要是执行将在下面描述的信息处理的配置。
模型接收单元231接收从信息处理装置100传输的模型(例如,具有神经网络的结构的识别处理模型)。
分割单元232分割由模型接收单元231接收的模型。然后分割单元232将分割模型中的神经网络的后部部分存储到后部模型存储单元221中。
模型传输单元233将由分割单元232分割的模型中的神经网络的前部部分传输到终端装置300。
中间数据接收单元234接收从终端装置300传输的中间数据(在终端装置300中压缩的数据)。
识别单元235将由中间数据接收单元234接收的中间数据提供给神经网络的后部部分,以执行各种类型的识别处理。例如,当输入数据是图像数据时,识别单元235执行图像识别处理。
识别结果传输单元236将由识别单元235识别的结果传输到终端装置300。结果,终端装置300的用户可以获得用户输入的数据的识别结果。识别结果传输单元236还可以将由识别单元235识别的结果传输到信息处理装置100。
[1-5.根据第一实施例的终端装置的配置]
下面描述用作根据第一实施例的第一装置的示例的终端装置300的配置。图12是示出根据本公开第一实施例的终端装置300的配置示例的示图。
如图12所示,终端装置300包括通信单元310、存储单元320和控制单元330。终端装置300可以包括用于从例如使用终端装置300的用户接收各种操作的输入单元(例如,键盘和鼠标)、以及用于显示各种类型信息的显示单元(例如,液晶显示器)。
通信单元310由例如NIC实现。通信单元310有线或无线连接到网络N,并且通过网络N向例如信息处理装置100和信息处理服务器200传输信息和从其接收信息。
存储单元320由诸如RAM或闪存的半导体存储装置、或诸如硬盘或光盘的存储装置实现。存储单元320包括前部模型存储单元321。
在前部模型存储单元321中存储后部部分,该后部部分用作由信息处理装置100生成的神经网络中的传输点之前的部分(比传输点更深的部分)。
通过使用例如RAM作为工作区域,由例如CPU或MPU执行存储在终端装置300中的计算机程序,来实现控制单元330。控制单元330是控制器,并且可以由ASIC或FPGA实现。
如图12所示,控制单元330包括模型接收单元331、感测单元332、识别单元333和中间数据传输单元334,并且实现或执行将在下面描述的信息处理的功能或操作。控制单元230的内部配置不限于图12所示的配置,并且可以是另一种配置,只要是执行将在下面描述的信息处理的配置。
模型接收单元331接收从信息处理服务器200传输的模型(例如,具有神经网络结构的识别处理模型)的前部部分。模型接收单元331将接收到的模型的前部部分存储在前部模型存储单元321中。
感测单元332使用各种类型的传感器来执行感测,并获取各种类型的数据。例如,感测单元332使用相机来获取图像数据。感测单元332也可以使用麦克风来获取声音。感测单元332不仅可以获取使用传感器获得的信息,还可以获取各种类型的信息,例如,用户输入的数据,只要该信息可以用作具有神经网络的模型的输入数据。
识别单元333将由感测单元332获取的信息提供给神经网络的前部部分,以执行各种类型的识别处理。例如,识别单元333将输入数据提供给神经网络的前部部分,以获得与输入数据相比信息量被压缩的中间数据。即,识别单元333执行直到神经网络中的传输点的识别处理。
中间数据传输单元334将识别单元333输出的中间数据传输到信息处理服务器200。在将中间数据传输到信息处理服务器200之后,中间数据传输单元334从信息处理服务器200接收识别结果。由此,终端装置300可以获得例如图像识别的结果,而不执行需要较高级计算的后部部分中的处理。
[1-6.根据第一实施例的信息处理的过程]
下面使用图13和图14描述根据第一实施例的信息处理的过程。首先,将使用图13描述根据本公开第一实施例的信息处理的总体流程。图13是示出根据本公开第一实施例的信息处理的过程的流程图。
如图13所示,信息处理装置100确定是否已经通过用户接口50从用户10接收到模型设置信息(步骤S101)。如果没有接收到模型设置信息(步骤S101为否),信息处理装置100等待,直到接收到模型设置信息。
相反,如果已经接收到模型设置信息(步骤S101为是),则信息处理装置100对神经网络的结构执行搜索处理(步骤S102)。稍后将使用图14描述搜索处理的细节。
在搜索处理完成之后,信息处理装置100确定神经网络的网络结构(步骤S103)。然后信息处理装置100将具有所确定的结构的模型传输到信息处理服务器200(步骤S104)。
使用图4,下面描述根据本公开第一实施例的搜索处理的详细流程。图14是示出根据本公开第一实施例的搜索处理的过程的流程图。
如图14所示,信息处理装置100接收用作基础的种子网络(步骤S201)。随后信息处理装置100将遗传操作应用于种子网络的网络结构(步骤S202)。由此,信息处理装置100获得具有不同网络结构的神经网络。
然后信息处理装置100计算获得的神经网络的评估值(步骤S203)。随后信息处理装置100确定所获得的评估值是否满足搜索的结束条件(步骤S204)。
如果不满足结束条件(步骤S204为否),信息处理装置100再次对网络结构应用遗传操作,以获得具有新结构的神经网络(步骤S202)。
相反,如果满足结束条件(步骤S204为是),则信息处理装置100完成搜索处理。
(2.第二实施例)
以下描述了本公开的第二实施例。在上述第一实施例中,已经描述了在评估值中反映第一装置(终端装置300)的计算性能时信息处理装置100使用关于是否存在浮点算术单元以及浮点运算的性能的信息的示例。在本文中,信息处理装置100可以使用与上述操作不同的操作性能,来在评估值中反映第一装置的计算性能。
例如,根据第二实施例的信息处理装置100基于在第一装置中保持的神经网络的每层中执行的乘法次数和除乘法之外的运算次数之间的关系来评估神经网络。
这是因为在具有较低计算性能的装置(例如,IoT装置)的情况下,由于乘法次数较多,所以对算术处理施加了更多的负荷。即,信息处理装置100可以通过基于第一装置是否可以在不执行乘法的情况下执行计算来评估神经网络的结构,来实现更佳的省电。
具体地,当第一装置上的卷积运算和内积运算被使用例如称为BinaryNet的已知技术的较低负荷运算代替时,第一装置可以通过执行诸如XNOR和位计数运算的简单运算来执行近似计算,而不执行加法或乘法。例如,当第一装置由例如如上所述的ASIC或FPGA实现时,上述替换可以从第一装置移除乘法器,从而可以实现更佳的省电。当实现这种省电时,上面表达式(6)中给出的变量被重新定义为下面的表达式(7)。
在上面的表达式(7)中,“N
通过使用表达式(7)来评估神经网络的结构,以更好地考虑作为计算机的第一装置的特性。因此,信息处理装置100可以更容易地获得提高第一装置侧的算术效率的网络结构。结果,信息处理装置100可以间接地支持第一装置和第二装置执行高级识别,同时降低电力。
(3.其他实施例)
根据上述每个实施例的处理可以以不同于上述实施例的各种不同形式来执行。
在上述每个实施例中,已经描述了具有一个传输点的神经网络,作为示例。然而,可以存在多个传输点。例如,使用神经网络的处理可以由三个以上装置来执行。具体地,使用神经网络的处理可以由例如诸如耳机的可佩戴装置、诸如智能手机的智能装置和云服务器来执行。在这种情况下,信息处理装置100可以生成具有两个以上传输点的神经网络的结构,并评估该结构。
在上述每个实施例中,已经将省电描述为与压缩相关的评估量的示例。然而,评估量不限于电力,并且可以使用任何信息,只要数值具有某种类型的指示符,例如,传输的信息量或计算量。
信息处理装置100可以接收终端装置300和信息处理服务器200实际执行的识别结果的反馈,并再次搜索神经网络的结构。例如,当终端装置300和信息处理服务器200之间的传输次数等于或大于预期频率,或者通信状态比预期差时,信息处理装置100可以例如通过调整关于传输的信息的权重值并再次搜索神经网络的结构来执行调整。
在上述实施例中描述的过程中,被描述为自动执行的所有或一些过程可以手动执行,或者被描述为手动执行的所有或一些过程可以使用已知方法自动执行。此外,处理过程、具体名称以及包括上述文件和附图中给出的各种类型的数据和参数的信息可以自由改变,除非另有说明。例如,每个附图中所示的各种类型的信息不限于所示的信息。
附图中示出的装置的组件是功能概念组件,并且不需要如附图中示出的那样进行物理配置。即,装置的分布和集成的具体形式不限于附图中所示的那些,并且所有或一些装置可以根据各种负荷和使用状态在功能上或物理上分布或集成在任何单元中。
上述实施例和修改可以适当地组合,而不与处理的内容相冲突。
本说明书中描述的效果仅仅是示例,并不受到限制,还可以提供其他效果。
(4.硬件配置)
根据上述实施例的包括例如信息处理装置100、信息处理服务器200和终端装置300的信息装置均由例如具有如图15所示的配置的计算机1000来实现。下面描述根据第一实施例的信息处理装置100,作为示例。图15是示出实现信息处理装置100的功能的计算机1000的示例的硬件配置图。计算机1000包括CPU 1100、RAM 1200、只读存储器(ROM)1300、硬盘驱动器(HDD)1400、通信接口1500和输入/输出接口1600。计算机1000的单元通过总线1050连接。
CPU 1100基于存储在ROM 1300或HDD 1400中的计算机程序进行操作,并控制这些单元。例如,CPU 1100将存储在ROM 1300或HDD 1400中的计算机程序加载到RAM 1200中,并执行对应于各种计算机程序的过程。
在ROM 1300中存储例如启动程序,例如,当计算机1000启动时由CPU 1100执行的基本输入输出系统(BIOS),以及依赖于计算机1000的硬件的计算机程序。
HDD 1400是计算机可读记录介质,用于在其中存储例如由CPU 1100执行的计算机程序和由计算机程序以非暂时性方式使用的数据。具体地,HDD 1400是用于记录根据本公开的信息处理程序的记录介质,用作程序数据1450的示例。
通信接口1500是用于将计算机1000连接到外部网络1550(例如,互联网)的接口。例如,CPU 1100从另一装置接收数据,以及通过通信接口1500将由CPU 1100生成的数据传输到另一装置。
输入/输出接口1600是用于将输入/输出装置1650连接到计算机1000的接口。例如,CPU 1100通过输入/输出接口1600从诸如键盘或鼠标的输入装置接收数据。CPU 1100通过输入/输出接口1600向诸如显示器、扬声器或打印机的输出装置传输数据。输入/输出接口1600还可以用作介质接口,用于读取例如记录在预定记录介质上的计算机程序。该介质例如是光学记录介质(例如,数字多功能盘(DVD)或相变可重写盘(PD))、磁光记录介质(例如,磁光盘(MO))、磁带介质,磁记录介质或半导体存储器。
例如,当计算机1000用作根据第一实施例的信息处理装置100时,计算机1000的CPU 1100执行加载在RAM 1200中的信息处理程序,以实现例如控制单元130的功能。在HDD1400中存储根据本公开的信息处理程序和存储单元120中的数据。CPU 1100从HDD 1400读取并执行程序数据1450,但是作为另一示例,可以通过外部网络1550从另一装置获取上述计算机程序。
本技术也可以具有以下配置。
(1)一种信息处理方法,包括以下步骤:
由计算机基于关于神经网络中第一装置和第二装置之间的信息传输的信息,评估具有由第一装置和第二装置以分割方式保持的结构的神经网络;并且
由计算机基于神经网络的评估,来确定神经网络的结构。
(2)根据(1)的信息处理方法,其中,
在神经网络的层中,位于比输出具有最大信息量的层更深部分中并且输出具有比从神经网络的输入层输出的信息量更小的信息的层,被确定为将信息从第一装置传输到第二装置的传输点,并且
基于关于确定的传输点的信息来评估神经网络。
(3)根据(2)的信息处理方法,其中,基于位于比传输点更浅部分中的层的数量和构成神经网络的层的总数来评估神经网络。
(4)根据(1)至(3)中任一项的信息处理方法,其中,基于表示神经网络的识别性能的指标值来评估神经网络。
(5)根据(1)至(4)中任一项的信息处理方法,其中,基于神经网络中的计算量来评估神经网络。
(6)根据(1)至(5)中任一项的信息处理方法,其中,基于关于第一装置的算术处理的性能的信息来评估神经网络。
(7)根据(6)的信息处理方法,其中,基于保持在第一装置中的神经网络的每层中的浮点运算的次数和除浮点运算之外的运算的次数,来评估神经网络。
(8)根据(6)或(7)的信息处理方法,其中,基于在保持在第一装置中的神经网络的每层中执行的乘法的次数和除乘法之外的运算的次数之间的关系,来评估神经网络。
(9)根据(1)至(8)中任一项的信息处理方法,其中,基于通过将关于传输的信息、表示神经网络的识别性能的指标值、神经网络中的计算量以及关于第一装置的算术处理的性能的信息乘以相应的预定权重值而获得的值,来评估神经网络。
(10)根据(9)的信息处理方法,其中,基于第一装置和第二装置的配置、第一装置和第二装置之间的通信标准以及关于提供神经网络的环境的信息,来确定权重值。
(11)一种信息处理装置,包括:
评估单元,被配置为基于关于神经网络中第一装置和第二装置之间的信息传输的信息,评估具有由第一装置和第二装置以分割方式保持的结构的神经网络;以及
确定单元,被配置为基于评估单元对神经网络的评估,来确定神经网络的结构。
(12)一种信息处理程序,用于使计算机用作:
评估单元,基于关于神经网络中第一装置和第二装置之间的信息传输的信息,评估具有由第一装置和第二装置以分割方式保持的结构的神经网络;以及
确定单元,基于评估单元对神经网络的评估,来确定神经网络的结构。
附图标记列表
1 信息处理系统
100 信息处理装置
110 通信单元
120 存储单元
121 学习数据存储单元
122 算术单元信息存储单元
123 通信标准存储单元
124 模型存储单元
130 控制单元
131 接收单元
132 生成单元
133 搜索单元
134 评估单元
135 确定单元
136 传输单元
200 信息处理服务器
300 终端装置。
- 位置确定处理装置、位置确定处理方法、位置确定处理程序、移动信息处理装置、移动信息处理方法、移动信息处理程序和存储介质
- 信息处理装置、信息处理方法、信息处理程序以及记录有信息处理程序的记录介质