可扩展性持有装置的制作方法

文档序号:15575567发布日期:2018-09-29 05:26阅读:148来源:国知局

本发明涉及一种对装置追加新能力的技术。



背景技术:

(背景技术)

以往,广泛地进行了与人工智能、神经网络相关的研究。例如,基于图像的对象物的识别技术正在不断改进,识别率逐步提高。通过被称为深度学习的新的学习方式,近年来识别率迅速提高,对图像的分类已经超过了人的识别率的水平。深度学习的技术不仅应用于图像识别,还能够应用于声音识别、个人认证、行为预测、文章摘要、自动翻译、监控、自动驾驶、故障预测、传感器数据分析、乐曲类型确定、内容生成和安全系统等广泛的领域。通过利用像深度学习那样的机器学习,不需要人参与,机器就能够获得新能力。

目前,深度学习等ai技术是特殊技术,为了将ai技术应用于特定领域,需要由具有特殊技能的人员进行研究和开发。例如,具有ai技术的人员来进行如下系统开发:针对每个顾客的委托来分析顾客的装置和需求,制作学习计划并构建训练系统,通过学习来生成新的神经网络并将其编入在客户的系统中。在使用深度学习等ai技术的学习中,由于通常需要大量的数据,并且反复计算次数较多,所以需要大规模的训练系统。在训练系统中,不仅需要安装ai技术,还使用处理大量数据的机构、并行化以及计算程序的硬件化等与以往web应用程序不同的更复杂的系统。目前,具有ai技术的ai技术服务企业通常向不熟悉ai技术的客户企业提供咨询和系统开发两者。

作为与向装置安装新能力的方法相关的技术,在专利文献1、2中公开了一种改写打印机固件的技术。另外,在专利文献3、4中公开了一种与机器学习相关的技术,并且在专利文献5中公开了一种利用了深度学习的文字识别系统。

现有技术文献

专利文献

专利文献1:日本特开2009-134474号公报

专利文献2:日本特开2007-140952号公报

专利文献3:日本特开2014-228972号公报

专利文献4:日本专利第5816771号公报

专利文献5:日本特开2015-53008号公报



技术实现要素:

发明所要解决的技术问题

今后,可以预想到的是开发装置的企业自身想要开发编入有ai技术的产品的需求不断提高。特别是在嵌入式设备中这种需求较多。但是,在机器学习(训练)中,需要高端的系统和大量的计算资源以及能够对它们进行维护的人员。因此,一般的制造厂商的技术人员自身也难以实施机器学习。由此,可以考虑机器学习的外包,但是对于例如不像嵌入式设备的开发人员那样熟悉ai技术的技术人员来说,难以将在外部实施的机器学习的结果编入于自身的装置。

另外,从家用设备到工业设备和基础设施,在大多数的装置和设备中利用顺序控制。但是,以神经网络为代表的人工智能并不擅长顺序控制,目前的技术难以利用机器学习来获得基于复杂的顺序控制的工作。因此,为了将机器学习应用于利用顺序控制的装置,重要的是如何将由机器学习得到的功能编入(如何协同工作)按照人(技术人员)制作的程序来进行工作的顺序控制的部分。

鉴于上述实际情况,本发明的目的在于提供一种即使是不具备与机器学习相关的知识、系统的人员也能够简单地向自身装置追加新能力的机构。

用于解决技术问题的手段

为了达成上述至少任一种目的,本发明采用以下的结构。

根据本发明的第一方式的可扩展性持有装置,其特征在于,具有:架构,用于向本装置的基本结构以追加方式编入新能力,并通过能力获得模型而模型化,所述能力获得模型包括执行能力的能力部、作为进行所述能力部的输入的接口的数据输入部以及作为进行所述能力部的输出的接口的数据输出部;以及能力设定部,基于包含能力设定数据、输入设定数据以及输出设定数据的能力赋予数据,对所述能力部、所述数据输入部以及所述数据输出部的每个设定功能,由此对本装置追加新能力。

根据本发明,设置有通过能力获得模型而模型化的架构和基于能力赋予数据对能力获得模型的各结构部设定功能的能力设定部,能够容易地实现向装置编入新能力。由此,能够提供一种可扩展性良好的装置,该装置具有能够简单地追加从外部提供的新能力的机构。另外,能够容易将新能力的开发外包,从而实现开发业务的效率化。

也可以是,所述基本结构包括通过顺序控制而进行工作的顺序控制部。由此,能够提高对在顺序控制下进行工作的装置的可扩展性。例如,也可以是,所述数据输入部具有按照来自所述顺序控制部的控制信号从所述基本结构读入数据的功能,所述数据输出部具有向所述顺序控制部输出数据的功能。由此,能够在顺序控制部的控制下执行由能力获得模型追加的新能力。另外,能够实现由基本结构提供的功能与追加的新功能之间的数据和处理结果的收发,能够容易地实现基本功能和追加的新功能的协同工作(协作)。

也可以是,所述能力赋予数据包含工作确认用数据,所述能力设定部在基于所述能力赋予数据分别对所述能力部、所述数据输入部和所述数据输出部设定功能之后,使用所述工作确认用数据来确认追加的所述新能力是否正常工作。由此,能够容易且自动地进行新能力的编入是否成功的工作确认,便利性良好。例如,所述工作确认用数据可以包含一个以上的输入数据和判断信息,所述判断信息用于判断是否为在向所述数据输入部输入了所述输入数据时经所述能力部的处理从所述数据输出部应输出的数据,所述能力设定部向所述数据输入部输入所述输入数据,并且通过利用所述判断信息来判断从所述数据输出部输出的数据,确认所追加的所述新能力是否正常工作。由此,能够进行数据输入部、能力部和数据输出部的一系列工作的确认。

也可以是,所述能力设定数据是用于对所述能力部设定执行所述新能力的功能的数据,所述输入设定数据是用于对所述数据输入部设定与进行对所述能力部的输入的接口相关的功能的数据,所述输出设定数据是用于对所述数据输出部设定与进行来自所述能力部的输出的接口相关的功能的数据。

也可以是,与进行对所述能力部的输入的接口相关的功能包含以下功能中的至少一个:从所述基本结构向所述数据输入部读入数据的功能、从本装置以外的设备向所述数据输入部读入数据的功能、对读入的数据实施加工的功能以及以适合于所述能力部的方式转换数据格式的功能。通过这种功能,能够在执行新能力时将必要的数据提供给能力部。

也可以是,与进行来自所述能力部的输出的接口相关的功能包含以下功能中的至少一个:对从所述能力部输出的数据实施加工的功能、以适合于所述基本结构的方式转换数据格式的功能以及以适合于本装置以外的设备的方式转换数据格式的功能。通过这种功能,能够以所希望的格式输出由能力部执行的新能力的结果。

也可以是,所述架构由能够改写的电子电路构成,所述能力赋予数据包含写入所述能够改写的电子电路的数据。另外,也可以是,所述架构由执行程序的处理器构成,所述能力赋予数据包含由所述处理器执行的程序。通过以这种结构提供能力赋予的机构,容易向装置追加新能力。

也可以是,所述新能力是通过机器学习而获得的能力。由于机器学习需要高端的系统和大量计算资源、以及能够对它们进行维护的人员,所以有时装置的开发人员自身难以实施机器学习。在这种情况下,通过利用本发明的可扩展性持有装置,能够由其他人员代行机器学习,实现将其学习结果以能力赋予数据形式交付这样的便利性高的服务。

需要说明的是,本发明能够看作具有上述结构或功能的至少一部分的可扩展性持有装置。可扩展性持有装置可以由单个装置构成,也可以由多个装置的组合构成。另外,本发明能够看作包含上述处理的至少一部分的方法、用于使计算机执行上述方法的程序、或以非临时方式存储这种程序的计算机能够读取的记录介质。只要上述结构和各种处理在技术上不产生矛盾,能够相互组合来构成本发明。

发明效果

根据本发明,能够提供一种使用于向装置追加新能力的开发业务效率化的体系。另外,根据本发明,能够提供一种具有能够简单地追加从外部提供的新能力的机构的可扩展性良好的装置。另外,根据本发明,能够提供一种能够向利用顺序控制的装置追加由机器学习获得的新能力的机构。

附图说明

图1是学习服务提供系统提供的学习服务的概念图。

图2是学习服务提供系统的系统结构图。

图3是能力获得模型的结构图。

图4是示出基于深度学习的能力获得模型的一例的图。

图5是示出训练信息和训练接受信息的数据结构的一例的图。

图6是委托接受部的结构图。

图7是对象装置的结构图。

图8是示出能力赋予数据的数据结构的一例的图。

图9是对图像进行处理的对象装置的结构图。

图10是对声音进行处理的对象装置的结构图。

图11是学习指令部和学习模拟器的详细结构图。

图12是学习服务提供系统的处理流程图。

图13是示出学习委托信息的数据结构的一例的图。

具体实施方式

本发明涉及一种可扩展性(extensibility)优异的装置,该装置具有能够追加通过机器学习而获得的新“能力”的架构(architecture)。在本说明书中,将具有这种可扩展性的装置称为“可扩展性持有装置”或“可扩展性设计(extensibilitydesign)装置”。在以下说明的实施方式中,对委托者利用外部的学习服务向自身的可扩展性持有装置(是指追加新能力的对象装置,以下记载为“对象装置”)编入新能力的例子。

<术语的说明>

在实施方式的说明之前,对在本说明书中使用的术语进行说明。

“学习服务”是指代行机器学习的服务。具体而言,是如下服务:基于来自委托者(希望赋予对象装置新能力的人)的委托,代替委托者来实施用于向对象装置追加新能力的机器学习,并且将作为机器学习的结果而得到的“能力”提供给委托者的对象装置。“学习服务提供系统”是如下系统:接受来自委托者的学习委托、实施机器学习和向委托者提供学习结果等进行与学习服务相关的一系列处理。

“机器学习”是指:如果向机器输入目标,则机器获得用于达成目标的能力,并且机器自身能够发挥新获得的能力。在本说明书中,在没有特别记载的情况下,“学习”是指机器学习。

“能力”是指装置能够提供的功能或装置能够执行的处理。向装置追加新能力是指向装置追加新功能或处理,或者是提高装置已具有的功能或处理的性能。需要说明的是,委托者的“对象装置”只要是具有能够编入新能力的结构的装置,则可以是任何种类的装置。例如,能够应用于制造装置、fa机器人、检查装置、生产管理系统、工厂控制系统、监控系统、楼宇控制系统、店铺管理系统、人形机器人、防灾机器人、web服务、移动终端、家用电器、业务系统、嵌入式系统、生物信息系统、图像识别装置、声音识别装置、自动驾驶系统、故障预测系统、数据分析装置、内容生成装置、安全系统、金融系统和病毒监控装置等各种领域的装置的开发。

“能力赋予数据”是用于将作为学习结果而得到的“能力”向委托者的对象装置追加的数据。能力赋予数据是具有能够直接编入(能够安装)至委托者的对象装置的数据格式。通过以适当格式将学习结果数据化,容易将学习服务的学习结果编入委托者的对象装置。

在以下说明的实施方式中,为了区分执行格式的程序和程序的定义,由“模型”描述程序的定义。“模型”使对象的行为、性质等一般化·抽象化并使用预定的描述语言来表现,与基于模型的开发中使用的模型相同。能够由模型定义任何程序、数据结构。另外,也能够由模型定义任何装置、环境、物理现象等。在基于模型的开发中,由模型定义各结构要素的内部结构和各结构要素间的关系,并能够模拟组合了多个模型的状态。另外,通过使用基于模型的开发工具,能够根据模型自动生成执行格式的程序、电路。

模型中不仅包含程序的定义,还能够包含执行格式的程序。由此,能够减少由学习模拟器执行所委托的学习时的处理。

在以下说明的实施方式中,通过由基于模型的开发工具来开发程序,能够明确地定义学习模拟中的各部分的关系。但是,在系统的安装过程中,不使用基于模型的开发工具也能够开发同样的程序。因此,本发明并不限定于由基于模型的技术开发的系统。

能够将模型中描述的项目的一部分“参数化”。即,预先由参数(变量)来定义项目的值,在接受学习委托时,由委托者输入或选择参数的值,能够在学习执行时在系统侧适当地设定参数的值。以后,将参数化的项目称为“参数项”或“未定义项”、或简称为“参数”,将定义了值、内容的项目称为“常数项”或“已定义项”。参数项并不限定于数据项目。例如通过利用函数式编程语言,也能够使处理项目(方法项)参数化。在函数式编程语言中能够将函数作为函数的变量进行传递。通过该功能,预定程序能够作为其他程序的变量来进行处理并启动。通过对函数的变量指定不同的函数(程序)的id信息,能够选择的处理被参数化。虽然代码量增加,但是能够利用通常的面向对象语言、c语言来描述同样的处理。

“学习模型”将由机器学习获得向对象装置追加的新能力的方法定式化。对本系统能够接受委托的机器学习的各种类分别制作学习模型。在以后的记载中,有时在上下文中将“学习模型”的术语仅用作“机器学习的种类”的意思。

“对象装置模型”是委托者的对象装置(追加新能力的装置)的模型。本系统生成并输出用于能够由该对象装置模型执行的能力赋予数据。

“对象模型”是与委托者的对象装置(追加新能力的装置)具有关系的对象的模型。与对象装置具有关系的对象相当于例如对象装置的周围环境、与对象装置之间进行输入输出的其他装置、以及对象装置产生作用的对象等。

<系统整体的工作概念>

图1示出本实施方式的学习服务提供系统提供的学习服务的概念图。委托者101通过互联网等网络来访问学习服务提供系统100,委托向对象装置104追加的能力的机器学习。用于进行机器学习所需要的信息作为学习委托信息102从委托者101提供给学习服务提供系统100。学习服务提供系统100基于从委托者101提供的学习委托信息102,一边模拟委托者101侧的对象装置104和对象105、一边进行必要的机器学习。学习服务提供系统100在完成从委托者101委托的学习后,将作为学习结果而获得的新能力作为能够编入对象装置104的数据格式的能力赋予数据103提供给委托者101。需要说明的是,委托者101可以利用个人计算机来访问学习服务提供系统100,如果对象装置104能够访问互联网,则也可以从对象装置104直接访问学习服务提供系统100。

<系统的结构>

图2示出学习服务提供系统的系统结构图。学习服务提供系统100具有:委托接受部200、学习指令部202、学习模拟器203、能力赋予数据生成部204和服务提供部205。

本系统100例如能够由通用的计算机构成,该通用的计算机具有:处理器、存储器、存储装置(硬盘、半导体磁盘等)、输入装置(键盘、鼠标、触摸面板等)、显示装置和通信装置等硬件资源。通过将存储于存储装置的程序加载到存储器中并由处理器执行,实现图2所示的本系统100的功能。需要说明的是,本系统100可以由一台计算机构成,也可以由基于多台计算机的分布计算构成。另外,为了处理的高速化,也能够利用专用硬件(例如gpu、fpga、asic等)来实现本系统100的功能的一部分或全部。

(能力的获得)

当向各种对象装置104提供本学习服务时,需要预先将用于向对象装置104编入新能力的架构通用化。在此,在本实施方式中,将用于向对象装置104编入新能力的架构模型化,并将其称为“能力获得模型”。对象装置104准备按照能力获得模型的编入接口,通过以本系统100的学习模拟器203获得与能力获得模型匹配的能力的方式进行机器学习,能够将由本系统100生成的能力赋予数据103编入对象装置10。

通过定义能力获得模型,与需要通用的架构相关的信息作为模型数据被数据化。与数据化的能力获得模型相关的信息在各学习模型中用于在学习模拟器203与对象装置104之间实现逻辑上匹配。通过数据化,能够进行使用各种开发工具的程序、电路的自动生成、自动测试。

当预先准备的能力获得模型不适合于对象装置104时,学习委托者101可以改变预先准备的能力获得模型的一部分或全部来制作新的能力获得模型。由系统建模语言描述能力获得模型,并且通过使能力获得模型包含在存储在文件中并提供给学习服务提供系统100的学习委托信息102中,任何对象装置104都能够进行学习委托。

通过向各能力获得模型赋予相互识别能力获得模型的识别信息(例如能力获得模型id、能力获得模型名称),能够使用识别信息在学习模拟器203和对象装置104之间确定能力获得模型并进行逻辑上匹配。

通过使用能力获得模型,无需在委托学习的委托者101和接受委托的人之间交换不必要的技术信息而能够推进各自的开发。

通过公开能力获得模型的信息,促进了作为与公开的特定能力获得模型对应的对象装置104的产品的普及。另外,能够从多个供应商提供与公开的特定能力获得模型对应的学习模型,从而能够期望通过竞争提高学习水平。

图3示出能力获得模型的结构。本实施方式的能力获得模型500包含以下三个定义:作为执行能力的结构的能力部502、作为进行能力部502的输入的接口的数据输入部501以及作为进行能力部502的输出的接口的数据输出部503。数据输入部501从对象装置104、其他设备以预订规格接收数据并实施必要的数据处理,并以适合于能力部502的方式转换数据格式并进行输入。数据输入部501包含从对象装置104等接收的数据的规格、数据处理的规格和输入能力部502的数据的规格等、从对象装置104、其他设备向能力部502输入数据的规格的定义。能力部502基于从数据输入部501输入的数据来实施信息处理,并将其结果向数据输出部503输出。通过改变该能力部502内部的结构,能够改变能力获得模型500的能力。数据输出部503从能力部502接收结果并实施必要的数据处理,以适合于对象装置104、其他设备的方式将数据格式进行转换而输出。数据输出部503包含从能力部502输出的数据的规格、数据处理的规格以及以预订接口规格向对象装置104等输出的数据的规格等、从能力部502向对象装置104、其他设备输出数据的规格的定义。

通过使用能力获得模型500,在学习模拟器203和对象装置104中,即使数据输入部501、能力部502和数据输出部503的安装方法不同,也保证逻辑上进行相同的工作。另外,通过使用能力获得模型,在学习委托者和接受委托的人之间无需交换不必要的信息而能够委托学习。

需要说明的是,在本系统100的学习模拟器203侧,为了将能力获得模型500应用于用于获得新能力的学习模拟,在以后的说明中将系统100侧的能力部502也称为“能力获得部”(参照图9的能力获得部1004)。另一方面,在对象装置104侧,由于为了接受并执行由系统100获得的新能力而利用能力获得模型500,所以将对象装置104侧的能力部502也称为“能力接受部”(参照图7的能力接受部904)。另外,在以后的说明中,为了区分学习模拟器203侧的能力获得模型和对象装置104侧的能力获得模型,使用图7和图9所示的附图标记。

为了能够将由学习模拟器203获得的能力赋予对象装置104,能力获得模型500可以至少包含:确定数据输入部501和能力部502之间的接口规格、能力部502和数据输出部503之间的接口规格、以及用于确定学习模型用于学习时对象装置104的能力接受部904的结构的信息。例如,获得的能力是“图像分类”时,由于对象装置104与能力获得模型的关系简单,仅通过上述方式就能够使学习模拟器203与对象装置104匹配。具体而言,只要定义输入是图像数据、输出是分类结果即可。

能力获得模型500还能够包含以下那样的详细信息。

输入安装于学习模拟器203的能力获得部1004的数据和输入对象装置104的能力接受部904的数据必须相同。能力获得模型500的数据输入部501能够包含定义从对象装置104的基本结构902向数据输入部903进行数据输入的接口规格。能够向数据输入部501编入任意的逻辑。

在学习中使用深度学习(deeplearning)的情况下,由于能力接受部904成为在学习模型中所使用的深层神经网络,所以能力获得模型500需要包含确定能够接受的网络的结构的信息。确定结构的信息可以唯一确定能够接受的网络,也可以表示多个能够选择的范围。在其他学习方法的情况下,包含获得能力的电路、软件等用于确定学习逻辑的信息。由此,确保了学习模拟器203的能力获得部1004与对象装置104的能力接受部904的逻辑结构一致。另一方面,学习模拟器203的能力获得部1004和对象装置104的能力接受部904的安装方法例如就通过硬件安装还是软件安装方面可以不同。例如,对象装置104的能力接受部904为软件安装时,为了缩短学习时间,在学习模拟器203侧,能够由硬件构成能力获得部1004的神经网络。

从安装于学习模拟器203的能力获得部1004经由数据输出部1005输出的数据与从对象装置104的能力接受部904经由数据输出部905输出的数据需要相同。因此,能力获得模型500的数据输出部503能够包含如下信息,该信息定义从数据输出部905向对象装置104的基本结构902进行数据输出的接口的规格。

通过定义在能力获得模型500和对象装置104的基本结构902之间进行输入输出的接口规格,在学习模拟器203中能够进行使用了基本结构902的模型1006的模拟。例如,当所获得的能力对对象装置104的基本结构902进行控制时,需要上述那样的详细信息。

能力获得模型500可以包含作为学习模拟器203中的安装、对象装置104中的安装的内容的电路信息、执行格式的程序。相反,也可以定义仅最小限的接口规格。通过定义仅最小限的接口规格,能够使定义能力获得模型500的文件的大小变小。可以包含接口规格和安装的逻辑的定义,分别对学习模拟器203和对象装置104从模型自动生成。通过自动生成,能够提高学习模型的开发效率,从而能够机器地进行使用了模型信息的严格的规格检查。

只要在各学习模型中以在学习模拟器203和对象装置104之间无矛盾的方式定义能力获得模型500即可。在学习模拟器203和对象装置104中的与能力获得模型500相当的部分的安装可以分别不同。

例如能够通过定义面向对象编程语言、函数式编程语言的抽象类或接口的类相当的语言功能来定义能力获得模型500。此外,也能够添加安装类。或者是通过系统建模语言定义为接口规格。也能够通过系统建模语言定义为包含安装的逻辑。或者是能够定义为硬件描述语言的接口规格。能够通过硬件描述语言定义为包含安装的逻辑。

可以分别仅定义接口规格,也可以与数据输入部501、能力部502和数据输出部503对应地包含安装的逻辑的定义。

学习模拟器203中的数据输入部1003和数据输出部1005进行如下工作:将与从对象装置104中的数据输入部903和数据输出部905输入输出的数据同等的数据作为学习用数据向能力获得部1004进行输入输出。由于只要将与对象装置104同等的数据输入能力获得部1004即可,所以学习模拟器203中的数据输入部1003、数据输出部1005以及对象装置104中的数据输入部903、数据输出部905不需要一定为相同结构。用于学习的数据格式和输出数据格式与对象装置104内处理的数据格式不同时,只要转换为学习模拟器203中的数据输入部1003和数据输出部1005与能力获得部1004之间的接口一致即可。通过在学习模拟器203和对象装置104之间使能力获得模型匹配,保证了学习时的能力获得部1004和对象装置104的能力接受部904能够执行同等的能力、以及分别输入输出同等的数据。另外,利用能力赋予数据103能够容易实现向对象装置104编入新能力的操作。如果能力获得模型匹配,则即使学习模拟器203的能力获得部1004和对象装置104的能力接受部904是不同的安装方式(例如硬件安装和软件安装上的不同或使用的编程语言不同)时,也能够由能力赋予数据103进行能力赋予。

通过机器学习来生成能力部502发挥的能力(用于实现信息处理的程序、各种参数等)。例如能够利用深度学习的技术来实施机器学习(在以下实施方式中假定主要使用了深度学习的实施方法)。但是,学习方法并不限定于深度学习。

例如,在电动机控制的学习中,能够通过以下方法来获得新能力。预先准备多个控制逻辑的结构要素。通过训练来随机选择并连接多个结构要素。在连接的模型中利用遗传算法对结果进行优化。在预定范围反复进行上述工作来选择最佳结果。

例如,在字符串的分类学习中,能够通过以下方法来获得新能力。准备人分类的多个样本。准备各种字符串函数。随机选择字符串函数并组合多个字符串函数。利用遗传算法对字符串函数的参数进行优化。在预定范围内反复进行上述工作来选择最佳参数。

例如,通过对每部分随机生成程序的机器代码,并针对输入选择最佳输出,能够获得新能力。通过针对每种目的适当地选择程序的分割,能够提高学习速度。

ai技术人员针对每个接受的委托,选择效率良好的能力获得模型及其训练方法来接受学习委托。作为深度学习中的学习方法,已知各种方法。ai技术人员针对每个应用的对象选择以更少的处理来结束学习的方法。

(深度学习的例子)

图4示出基于深度学习的能力获得模型的一例。数据输入部501是如下功能模块:以使输入对象装置104的信号格式适合于神经网络的方式进行转换并输入数据化的信号。在数据输入部501中,作为从对象装置104接收的数据的规格定义有“动态图像、rgb、分辨率1024×768、30fps”,并且作为输入能力部502的数据的规格定义有“静止图像、灰度、分辨率640×480”等。不需要颜色信息时,通过转换为灰度来缩短学习时间,能力部502的电路结构变得简单。这是进行数据格式的转换时的例子,需要颜色信息时,能够直接输入rgb的彩色信号。能力部502是如下功能模块:通过使用了深度学习技术的训练并利用已学习的神经网络,根据输入数据输出作为目的的结果。能力部502能够作为任意数量且任意尺寸的各层的输入输出全部连接而成的神经网络的子集而模型化。在能力部502的模型中,能够根据需要追加反馈电路、计算电路、逻辑电路、存储电路、同步电路、延迟电路和复位电路等附加电路。能力部502包含例如ai的种类、层数、各层的结构、激活函数和权重滤波等的定义。进行学习时,在由学习模型定义的结构中,依次构成神经网络并对参数进行优化。数据输出部503是如下功能模块:将神经网络的输出转换为能够由对象装置104、其他设备利用的信息并进行输出。数据输出部503定义从能力部502输出的数据的规格以及将其转换为对象装置104所需要的数据格式并最终输出的数据的规格等。

(训练信息304)

图5示出训练信息的数据结构的一例。训练信息304定义实施机器学习所需要的信息,包含学习模型信息700、对象装置模型信息701、对象模型信息702、学习模拟器模型信息703和能力赋予数据生成模型信息704。以下,分别对信息700~704进行说明。

(1)学习模型信息700

学习模型信息700是与学习模型相关的信息。学习模型使由机器学习获得向对象装置104追加的新能力的方法定式化。对每个进行处理的对象装置104、对象105分别制作学习模型。但是,行为类似的装置104、对象10能够应用相同的学习模型。

学习模型可以包含以下的信息。

·“学习目标”:能够将构成学习目标的项目的一部分或全部进行参数化,并且能够将学习目标的条件定义为能够指定的项目。作为学习目标的项目,例如可以是能力部502的输出结果的精度、误差、基于评价公式的评价结果、学习的反复计算的次数、输出的稳定性等任意项目。

·“与能力部的输入相关的定义”:定义从对象装置104或其他外部设备以何种方式输入向能力部502输入的数据。例如,如果从对象装置104输入了两种传感器数据,并向能力部502提供其平均数据,则定义两种传感器数据的规格、用于求出平均数据的处理方法、以及提供给能力部的数据的规格等。在处理的数据中例如具有图像、声音、自然语言和传感器数据等各种数据,但是如果数据的种类和规格不同,则分别定义不同的模型。

·“与能力部的结构相关的定义”:定义能力部502的内部结构。如果使用例如深度学习的神经网络,则定义层数、各层的结构(卷积层、池化层、全连接层、节点)、激活函数、滤波等。定义多个能够对应的结构(例如层数的范围、层结构的变化等),并可以在该范围内进行选择。

·“与能力部的输出相关的定义”:定义将从能力部502输出的数据作为何种信息向对象装置104或其他外部设备输出。例如,能力部502输出预测概率(实际数值)时,如果将概率是否比阈值大的二值的判断结果向对象装置104输出,则定义预测概率的数据的规格、判断结果的数据的规格、阈值的规格等。

·“对能力部进行训练的方法”:定义在能力部502的机器学习中使用的方法、具体地说实施机器学习的训练程序。ai技术人员通过预先制作训练程序,能够在委托时自动执行训练。例如,通过指定神经网络的输入输出的结构、神经网络的各层的结构和学习用数据等来制作深度学习的训练程序。深度学习的训练程序通过依次输入学习用数据并对神经网络的各层中的参数进行优化来获得新能力。训练程序能够定义为模型。通过将在训练中能够选择的项目进行参数化,能够以较少的模型应对多种变化。在本实施方式中,在每个向委托者101提出的学习模型中将上述训练程序定义为模型。

能够利用模型描述语言来描述以上说明的学习模型。利用模型描述语言来描述学习模型时,能够从模型描述语言自动转换为能够由模拟器执行的程序。也可以不利用模型描述语言而利用能够由模拟器执行的程序来描述学习模型。

能够将能够在模型基础上描述的任意方法应用于学习模型。例如,提供以深度学习为代表的支持ai技术的多种程序。能够利用它们来构建学习模型。也可以制作更高端化、高速化的模型。通过在训练信息中包含与学习模型相关的信息,能够利用学习模拟器获得新能力。

学习服务提供系统100以由针对各个学习模型的各个能力获得模型500定义的共同的架构进行学习模拟,从而能够利用能力赋予数据103向对象装置104编入通过学习获得的能力。

(2)对象装置模型信息701

对象装置模型信息701是与对象装置104的模型相关的信息。通过使用对象装置模型,即使不使用委托者101的对象装置104(实机),也能够通过计算机模拟在系统100侧模拟对象装置104的工作、输入输出。

对象装置模型可以包含以下信息。

·“能力部(能力接受部)的结构”:是定义对象装置104所具有的能力接受部904的硬件结构的信息。例如,可以指定fpga(field-programmablegatearray:现场可编程门阵列)的类型,也可以指定门数。或者是软件安装时,可以由cpu(centralprocessingunit:中央处理器)和gpu(graphicsprocessingunit:视觉处理器)类型和能够追加利用的存储容量来指定。利用云服务时,可以由云的种类、cpu种类、cpu数和时钟数和使用的存储容量来指定。并不限定于上述例子,电路结构的定义可以由任意方法来指定。

·“能力获得模型的接口规格”:定义对象装置104所具有的数据输入部903、能力接受部904、数据输出部905之间的连接方法。例如,在fpga的情况下,包含与各输入输出端子的信号相关的定义。在软件安装的情况下,包含能力接受部904的软件接口的定义。在利用云服务的情况下,包含用于利用能力的通信方法的定义。作为能力获得模型的接口能够利用能够定义为模型的任意接口。

对象装置104的数据输入部903、能力接受部904和数据输出部905能够分别通过硬件或软件来安装。对象装置104的数据输入部903、能力接受部904和数据输出部905分别与由能力获得模型500的数据输入部501、能力部502和数据输出部503定义的规格配合。

在各学习模型中,需要在对象装置104的能力获得模型901和学习模拟器203的能力获得模型1002之间使接口规格匹配。由学习模型的能力获得模型500定义的数据输入部501、能力部502和数据输出部503的接口规格定义为与对象装置104的数据输入部903、能力接受部904和数据输出部905匹配。通过使能力获得模型匹配,能够将由学习模拟器203获得的能力转换为能力赋予数据103并编入对象装置104。

·“装置的基本结构的模型”:是定义对象装置104原本具有的基本结构902(与能力获得模型500对应的结构以外的结构部分)的信息。为了在与能力获得模型500对应的结构901和对象装置104的基本结构902之间进行信号、数据的输入输出,进行学习模拟时需要对象装置104的基本结构902的规格。在基本结构的模型中,例如包含与由对象装置104的基本结构902和能力获得模型901实现的新能力之间的接口的定义。具体地说是从基本结构902输入数据输入部903的输入信号的定义、从数据输出部905输出至基本结构902的输出信号的定义、以及在对象装置104中以何种方式对各信号进行处理的定义等。

对象装置模型可以仅描述对象装置104的接口。能够在开始训练之前基于从委托者101或db所能够取得到的信息来生成对象装置模型。

(3)对象模型信息702

对象模型信息702是与对象装置104具有关系的对象105的模型所相关的信息。通过使用对象模型,能够模拟考虑了有可能对对象装置104产生影响的对象105(例如位于对象装置104外侧的其他装置、环境或利用者)。

以下,示出对象模型信息702的例子。

在web服务的情况下,对象模型例如能够作为支持html5的浏览器而进行模型化。另外,可以添加模拟利用者的模型。

在赛车游戏的情况下,游戏的规则、用于竞赛的车辆的规格、性能、成本规格以及物理现象被模型化。在控制某种装置、系统、厂房的情况下,将对作为控制对象的装置进行模型化的信息作为对象模型信息702。另外,如果由物理模型等对作为对象装置104或控制对象的装置对应的外界进行模型化,则能够包含外界来进行模拟。

对象模型可以仅描述对象105和对象装置104的接口。在开始训练之前基于能够从委托者101或db取得的信息来生成对象模型。

(4)学习模拟器模型信息703

学习模拟器模型定义在本系统100中的学习中所使用的模拟器的结构。在本实施方式中,组合学习模型、对象装置模型和对象模型来构成学习模拟器(详细后述)。

(5)能力赋予数据生成模型信息704

能力赋予数据生成模型基于本系统100中的学习结果,定义生成用于编入对象装置104的电路的“能力赋予数据”103方法等。具体而言,作为能力赋予数据生成模型只需准备转换程序即可,该转换程序将学习结果转换为能力赋予数据103。

例如,在以fpga安装的情况下,能够构成神经电路、输入接口电路和输出接口电路。在以软件安装的情况下,准备对神经电路进行仿真的软件和设定作为学习结果而得到的各参数的程序。使用能力赋予数据103,对用于安装所获得的能力的电路进行元件化,可以将该元件以物理方式插入对象装置104的接收插槽。

以上说明的训练信息304中所包含的各信息包括:由ai技术人员预先定义了值的常数项、以及处于值未定义的状态的参数项。关于参数项,在接受学习委托时向委托者101请求信息的输入。为了减轻委托者101的输入负担并使学习委托简单化,优选参数项尽可能少。因此,例如可以预先定义学习模拟器模型信息703和能力赋予数据生成模型信息704。另外,优选的是,也针对基本项目预先定义学习模型信息700、对象装置模型信息701和对象模型信息702,委托者101输入的项目限定为能力部502的结构及输入输出、学习目标等尽可能少的项目。

(委托接受部200)

使用图6对委托接受部200的结构进行说明。委托接受部200具有如通过互联网从委托者101的委托终端805接收学习委托信息102的功能。委托接受部200例如由委托接受应用程序801运行的web服务器800、委托信息db802、对象装置信息db803和对象信息db804等构成。

委托接受应用程序801使委托终端805显示用于输入学习委托所需要的信息的交互式用户界面,并且提供获取由委托者101输入的信息的功能。委托信息db802是存储所接收的学习委托信息102的数据库。对象装置信息db803是存储对象装置模型信息701等与委托者101的对象装置104相关的信息的数据库,对象信息db804是存储对象模型信息702等与对象105相关的信息的数据库。

委托接受部200向委托者101提示学习菜单,该学习菜单用于从登记于训练信息db302的多个学习模型中选择所希望的学习模型。如果由委托者101指定了所希望的学习模型,则委托接受部200使用与所指定的学习模型(机器学习的种类)对应的训练信息304,接收机器学习的实施所需要的信息并生成学习委托信息102。在必要的输入项目中例如具有:输入数据的种类和规格、学习目标、输出数据的种类和规格、确定对象装置或对象装置模型的信息、以及确定对象或对象模型的信息等。

委托接受部200将学习委托信息102登记于委托信息db802。在学习委托信息102中包含确定与所选择的学习模型对应的训练信息304的信息、以及由委托者101输入的信息(例如参数项的值)等。委托接受部200向学习指令部202通知学习委托信息102的登记结束。

另外,委托接受部200能够从委托终端805接收委托文件,该委托文件利用系统描述语言等来描述学习所需要的信息。例如在学习菜单中不存在委托者101所希望的学习模型时,委托者101制作描述所希望的学习内容的委托文件,从而能够进行学习委托。接收到由委托文件描述的学习委托时,ai技术人员基于委托文件制作新的学习模型并追加到学习菜单中。

(对象装置104)

委托者101指定作为赋予能力的对象的对象装置104来委托学习。只要是能够追加按照能力获得模型500的新能力的装置,则能够将任何装置作为对象装置104。作为一例能够例示的是:对静止图像进行分类的图像分类装置、利用传感器数据进行监控的监控装置、利用动态图像来预测对象的工作的预测系统、web服务系统和运转装置等。

图7示意性示出对象装置的结构。对象装置104大体具有:能力设定部900、与能力获得模型500对应的结构901、以及对象装置104原本具有的基本结构902。与能力获得模型500对应的结构901由数据输入部903、能力接受部904和数据输出部905构成。对象装置104具有以顺序控制进行工作的结构部分(以下称为“顺序控制部”)时,该顺序控制部包含在基本结构902中。能力设定部900具有如下功能:利用从本系统100提供的能力赋予数据103,以能力接受部904能够发挥新能力的方式设定与能力获得模型500对应的结构901。

与能力获得模型500对应的结构901由能够改变功能的硬件构成。例如可以在对象装置104组装后对能够改写的电子电路(fpga等)的程序进行改写。另外,也可以改变由cpu或gpu那样的处理器执行的程序,或者是改变在程序中使用的参数。例如,对于进行神经网络的仿真的程序,通过改变参数,能够改变神经网络的功能。或者是可以通过更换元件的一部分、所连接的装置从而改变功能。

如图8所示,能力赋予数据103例如具有包含能力设定数据1030、输入设定数据1031和输出设定数据1032的数据结构。能力设定数据1030用于对能力接受部904设定功能,该功能执行由学习获得的新能力(例如神经网络的图像的分类能力)。输入设定数据1031是用于为数据输入部903设定功能的数据,该功能与进行对能力接受部904的数据输入的接口相关。在与数据输入的接口相关的功能中例如具有如下功能:从对象装置104的基本结构902向数据输入部903读入必要的数据、从对象装置104以外的设备(例如传感器等)向数据输入部903读入必要的数据、对读入的数据实施必要的加工(例如平均化、统合、采样、噪音去除、特征量抽出、二值化、颜色转换和分辨率转换等)、以及以适合于能力接受部904的方式转换数据格式等,并且可以将其中至少一种功能的设定提供为输入设定数据1031。另外,输出设定数据1032是用于为数据输出部905设定功能的数据,该功能与进行来自能力接受部904的数据的输出的接口相关。在与数据输出的接口相关的功能中例如具有如下功能:对从能力接受部904输出的数据实施必要的加工(例如平均化、统合、采样、噪音去除、特征量抽出、二值化、颜色转换和分辨率转换等)、以及以适合于对象装置104的基本结构902的方式转换数据格式等,可以将其中至少一种功能的设定提供为输出设定数据1032。能力设定数据1030、输入设定数据1031和输出设定数据1032可以是程序本身,也可以是在程序中使用的参数,还可以是程序和参数两者。能力设定部900通过利用由能力赋予数据103提供的各设定数据来设定进行与能力获得模型500对应的结构901的设定,数据输入部903、能力接受部904和数据输出905能够执行与新能力对应的信息处理。

能力赋予数据103能够根据需要包含工作确认用数据1033。工作确认用数据1033用于确认设定于数据输入部903、能力接受部904和数据输出905的新能力是否正常工作。通过以成组的方式提供用于设定新能力的数据1030~1031和工作确认用数据1033,委托者自身或对象装置104自身能够容易地进行新能力的编入是否成功的工作确认,便利性良好。

工作确认用数据1033包含一个以上的输入数据和判断信息,该判断信息用于判断在向数据输入部903输入了该输入数据后是否为通过能力接受部904的处理而从数据输出部905应输出的数据(正确的输出数据)。例如,向能力接受部904追加的功能是静止图像的分类能力时,工作确认用数据1033作为输入数据可以包含一个以上的静止图像数据,作为判断信息可以包含各静止图像数据的正确的分类。另外,向能力接受部904追加的功能是产品的图像检查能力时,工作确认用数据1033作为输入数据可以包含合格品的图像数据和不合格品的图像数据,作为判断信息可以包含各图像数据的正确的检查结果(是合格品还是不合格品)。另外,向能力接受部904追加的功能是声音的说话者识别能力时,工作确认用数据1033作为输入数据可以包含一个以上的声音数据,作为判断信息可以包含各声音数据的说话者的信息。

在能力赋予数据103中包含工作确认用数据1033时,能力设定部900在为对象装置104的结构901设定了各设定数据1030~1032之后,向数据输入部903输入工作确认用数据1033内的输入数据。并且,能力设定部900使用工作确认用数据1033内的判断信息对从数据输出部905输出的数据进行判断,确认是否得到正确的输出。由此,能够进行数据输入部、能力部和数据输出部的一系列工作的确认。得到正确的输出时,对对象装置104进行的新能力的追加成功。另一方面,从数据输出部905输出的数据与正确的输出不同时,能够视作在能力赋予数据103中存在故障或在对对象装置104的结构901的设定中存在故障。在这种情况下,能力设定部900可以尝试使用能力赋予数据103进行再设定或向学习服务提供系统100发出故障通知。由此,能够自动进行工作确认和故障的应对,便利性良好。

设定完毕的数据输入部903从对象装置104的基本结构902获取数据、进行必要的加工、并以适合于能力接受部904的方式转换数据格式而输入数据。作为输入数据,例如输入相机数据、传感器数据和事件数据。在自然语言处理中,作为输入数据,输入多个文本文件。

设定完毕的数据输出部905对从能力接受部904输出的数据进行必要的加工,并且以适合于对象装置104的基本结构902的方式转换数据格式而输出数据。例如,编入于能力接受部904的神经网络的输出被输入数据输出部905,并且从数据输出部905向基本结构902输出数据。

通过具体例对能力接受部904进行详细说明。能力接受部904例如通过基于从外部输入的能力赋予数据103来构成神经网络来接受新能力。能力接受部904和能力赋予数据103例如能够以如下方式实现。

·能够改写的电子电路(例如fpga)。在这种情况下,例如,将写入能够改写的电子电路的神经网络电路和参数数据作为能力赋予数据。

·将能力作为cpu的程序进行安装。在这种情况下,例如,将计算神经网络电路的工作的执行格式的cpu程序作为能力赋予数据。

·将能力作为gpu的程序进行安装。在这种情况下,例如,将计算神经网络电路的工作的执行格式的gpu程序作为能力赋予数据。

·将能力作为元件进行安装。在这种情况下,例如,将向能够改写的fpga写入神经网络的构件作为包含能力赋予数据的元件。

·将能力作为云服务而进行利用。在这种情况下,例如将编入有上述任一种的网络服务的利用程序作为能力赋予数据。

·对象装置以外的装置利用在外部提供的能力。在这种情况下,将用于利用编入有上述任一种的装置的程序作为能力赋予数据。

·将能力作为装置进行追加。在这种情况下,例如,将利用编入有上述任一种的装置的程序作为能力赋予数据。

(对象装置模型)

对象装置104能够是任何种类的装置,如图7所示,通过对应于能力获得模型500的结构901与对象装置104原本具有的基本结构902的组合来进行模型化。如果将对应于基本结构902的基本结构模型与能力获得模型500进行组合,则成为获得新能力后的对象装置104的模型。如果利用该对象装置模型和将位于对象装置104外部的对象105进行模型化而得的对象模型,则在计算机上能够模拟对象装置104的工作。基本结构模型并不是必须对对象装置104所具有的全部结构进行模型化。只要至少由基本结构模型定义与能力获得模型500相互影响的部分的结构即可。

(对象装置的实施例1)

图8示出作为对象装置104的一个实施例利用图像进行检查对象的检查的图像检查装置的结构图。该对象装置104中的基本结构902具有:图像输入部910、顺序控制部911和检查结果输出部912。另外,对象装置104与作为外部装置的、对检查对象进行拍摄的相机913和对检查对象进行检测的传感器914连接。从相机913读入的图像数据被输入图像输入部910,传感器914的检测信号被输入顺序控制部911。

首先,对追加新能力前的工作(基本结构902单体的工作)进行说明。假设从传感器914检测到输送机上输送的检查对象开始10msec后,该检查对象到达能够由相机913进行拍摄的位置。如果顺序控制部911接收到传感器914的检测信号,则向图像输入部910输出控制信号,以使图像输入部910保持其10msec后的图像数据。接着,顺序控制部911读入由图像输入部910锁存的图像数据,并且利用该图像数据来进行检查对象的检查。例如,在表面贴装基板的外观检查的情况下,作为检查项目,具有元件的有无、焊锡焊接的优劣等。顺序控制部911将检查结果发送给检查结果输出部912,并且从检查结果输出部912向外部装置(显示器、生产管理系统、位于上游或下游的制造装置和管理者携带的终端等)输出检查结果。

接着,对追加了新能力后的工作进行说明。在本实施例中,与能力获得模型对应的结构901由fpga构成,作为新能力,追加了对与基本结构902不同的检查项目的检查处理的能力。如果顺序控制部911接收到传感器914的检测信号,则向图像输入部910输出控制信号,以使图像输入部910保持其10msec后的图像数据。接着,顺序控制部911读入由图像输入部910锁存的图像数据,并且利用该图像数据来进行检查对象的检查。另一方面,顺序控制部911向数据输入部903输出控制信号,以使结构901也读入由图像输入部910锁存的图像数据。数据输入部903对读入的数据进行必要的前处理、数据转换,并且向能力接受部904输入数据。能力接受部904利用该数据来进行检查并输出结果。数据输出部905对能力接受部904的输出进行必要的后处理、数据转换,并且向顺序控制部911进行输出。例如,从向数据输入部903读入数据到输出结果为止需要1msec时,顺序控制部911将从接收到传感器914的检测信号开始11msec后从数据输出部905输出的数据接收为检查结果。顺序控制部911向检查结果输出部912发送基本结构902侧的检查结果和能力接受部904侧的检查结果,并且从检查结果输出部912向外部装置输出检查结果。由此,能够实现在基本结构902和安装了新能力的结构901之间的数据和处理结果的收发,并且能够实现顺序控制与由机器学习获得的能力的协同工作(协作)。

需要说明的是,新的检查处理的学习委托例如能够以如下方式进行。委托者准备合格品和不合格品的图像样本(指导数据)。并且,委托者附加图像样本并将与图像的分类相关的学习委托给学习服务提供系统100。学习服务提供系统100利用从委托者提供的图像样本,实施由深度学习进行的学习。由此,能够获得能够识别合格品和不合格品的神经网络。学习服务提供系统100生成用于在对象装置104的fpga中安装该神经网络的能力赋予数据103,并且提供给委托者。在对象装置104中,通过能力设定部900利用能力赋予数据103对fpga的程序进行改写,能够追加进行新的检查处理的结构901。

(对象装置的实施例2)

图9示出作为对象装置104的一个实施例利用声音来识别说话者的说话者识别装置的结构图。该对象装置104是一种系统,该系统由云服务器构成,并且通过互联网向用户提供说话者识别服务。用户通过在智能手机或平板pc等用户终端中安装说话者识别服务的前端应用程序,能够利用对象装置104提供的说话者识别服务。

对象装置104中的基本结构902具有:声音输入部920、顺序控制部921和结果输出部922。从用户终端的应用程序接收的声音数据923被输入声音输入部920,由用户终端的应用程序输入的操作数据924(菜单选择和按钮按下等)被输入顺序控制部921。向能力接受部904追加作为新能力的说话者识别算法。需要说明的是,本实施方式的结构901、902都是通过由cpu执行的程序来安装的功能。

如果用户在用户终端的应用程序上指定声音数据并按下识别按钮,则包含该声音数据923与识别请求的操作数据924被发送给对象装置104。如果顺序控制部921接收到识别请求,则向数据输入部903输出控制信号,以将由声音输入部920读入的声音数据923读入数据输入部903。对数据输入部903读入的声音数据进行必要的前处理、数据转换,并且向能力接受部904输入数据。能力接受部904利用该数据来进行说话者识别并输出结果。数据输出部905对能力接受部904的输出进行必要的后处理、数据转换,并且向顺序控制部921进行输出。顺序控制部921向结果输出部922发送识别结果,并且从检查结果输出部922向用户终端输出识别结果。由此,能够实现由基本结构902提供的功能和追加的新功能之间的数据和处理结果的收发,并且能够实现顺序控制与由机器学习获得的能力的协同工作(协作)。

需要说明的是,说话者识别算法的学习委托例如能够以如下方式进行。委托者准备需要作为识别对象的人们的声音样本(指导数据)。并且,委托者附加声音样本并将与说话者的识别相关的学习委托给学习服务提供系统100。学习服务提供系统100利用从委托者提供的声音样本,实施由深度学习进行的学习。由此,能够获得能够识别说话者的神经网络。学习服务提供系统100生成用于由对象装置104的cpu执行该神经网络的能力赋予数据103,并且提供给委托者。在对象装置104中,通过能力设定部900安装由能力赋予数据103提供的程序和数据,能够追加具有新的说话者识别能力的结构901。

在图9和图10中示出了对象装置104包含一个能力获得模型的结构,但是也可以是包含多个能力获得模型的结构。通过具有多个能力获得模型,能够对多个项目获得能力。在以上的实施例中,示出了对象装置104和学习服务提供系统100作为不同的装置来实施的例子,但是对象装置104能够作为包含学习服务提供系统100的一部分或全部的构成。由此,对象装置104成为具有自学习能力的产品。例如,具有学习能力的本发明的人形机器人从人接受学习委托来进行学习,能够将能力赋予数据提供给与自身相同结构的自身以外的其他机器人。

只要提供对象装置模型和对象模型,本系统100的服务就能够对应于任何种类的对象装置104。需要说明的是,这些模型可以由委托者101自身制作并提供,也可以由委托者101以外的人员制作并提供。例如,向委托者101提供元件或产品的同业人员可以提供模型,本系统100的服务提供者也可以提供模型。需要说明的是,当对象装置模型和对象模型已经登记于本系统100的对象装置信息db803和对象信息db804时,委托者101也能够利用登记于这些db的模型。在这种情况下,接受学习委托时,只要向委托者101请求确定对象装置104的信息(装置的类型等)或确定对象装置模型的信息(模型id等)的输入即可。对象模型也同样。

(学习模拟器203)

图11示出学习指令部202和学习模拟器203的详细结构。

学习模拟器203利用对象装置104的基本结构模型1006、能力获得模型1002和对象模型1007,一边模拟对象装置104的工作、一边实施向对象装置104追加的新能力的机器学习。能力获得模型1002具有:数据输入部1003、能力部(能力获得部)1004和数据输出部1005。

能力获得部1004编入于委托者101的对象装置104并模拟执行能力的部分。进行学习时,能力获得部1004的电路结构能够适当变更。能力获得部1004例如能够由深度学习的神经网络实现。基于学习模型信息700来设定神经网络的层数、各层的结构。

数据输入部1003模拟如下工作:从能力获得模型1002的外部接收数据,在进行必要的处理后向能力获得部1004输入数据。数据输入部1003能够从对象装置104的基本结构902接收数据,也能够从对象装置104的外部接收数据。作为从对象装置104的外部接收数据的方式例如可以设想如下方式:从与对象装置104连接的传感器接收传感器数据的方式、从数据库取得数据的方式、以及通过网络接收数据流的方式等。

数据输出部1005模拟如下工作:在从能力获得部1004接收数据并进行必要的处理之后,向能力获得模型1002的外部输出数据。数据输出部1005例如将能力获得部1004的神经网络的输出转换为对象装置104的基本结构902或对象装置104外部的装置所需要的数据格式。

基本结构模型1006模拟对象装置104的基本结构902的工作。能力获得部1004与对象装置104的基本结构902相互影响时,数据输入部1003从基本结构模型1006获取必要的数据,数据输出部1005将能力获得部1004的输出提供给基本结构模型1006。

对象模型1007模拟对象装置104外部的对象105。例如,对象模型1007模拟:对象装置104连接的其他装置、对象装置104周围的环境(包含物理现象)、对象装置104使用的工具、对象装置104生成、加工的物体、以及操作对象装置104的操作者等。

学习模拟器203例如可以由设置在互联网上的云服务器组构成,也可以由存在于局域网上私人服务器组构成。为了使模拟处理高速化,可以使用嵌入式模拟器那样的专用系统。也可以将软件处理的一部分置换为硬件。针对例如数据量多的委托、层级数多的结构和对学习要求实时性的结构等每个学习模型,作为实施模拟的装置能够选择最适合的装置。

模拟例如通过利用基于多个cpu的分布处理的方法、以及利用被称为gpu的高速计算装置的方法等而能够高速化。需要说明的是,通过由fpga等构成神经电路来进行并行工作,能够使模拟高速化。能够使这种高速化的方法包含在学习模拟器模型中。

能够将模拟器与实体机(委托者101的对象装置104)连接。例如,可以将委托者101的对象装置104与模拟器(执行模拟器的计算机)连接。或者是能够由委托者101的对象装置104所具有的电路(cpu、gpu、fpga等)执行模拟。通过应用iot的技术,能够处理实时的大数据。利用这种技术,能够将与委托者101的对象装置104相关的各种数据通过互联网向模拟器实时发送,并且能够利用该数据进行模拟。或者是模拟器可以具有与对象装置104的模型相当的功能。

可以将提供服务的装置用作模拟器。例如,在由自然语言处理进行web服务的情况下,能够使用云上的服务器资源来实施web服务和学习服务两者。

(学习指令部202)

学习指令部202是进行训练的设定和控制的处理部,如图11所示,具有训练设定部1000和训练控制部1001。训练设定部1000基于从委托者101接受的学习委托信息102和对应的训练信息304,对学习模拟器203进行训练所需要的设定。训练控制部1001控制学习模拟器203并实施训练,开发(通过学习来生成)向对象装置104追加的能力。

具体地说,训练设定部1000基于学习模型信息700来设定学习目标、数据输入部1003和数据输出部1005的输入输出数据规格和处理内容、能力获得部1004的内部结构和训练程序等。另外,训练设定部1000基于对象装置模型信息701,设定对象装置104的基本结构模型1006和能力获得模型1002之间的输入输出等,此外,基于对象模型信息702来设定对象模型1007。

(能力赋予数据生成部204)

能力赋予数据生成部204将学习模拟器203的学习结果(由训练获得的能力)转换为用于编入于对象装置104的能力接受部904的数据(能力赋予数据103)。由能力赋予数据生成模型信息704预先提供根据学习结果而生成能力赋予数据103的转换程序。利用该转换程序,生成适合于对象装置104所具有的硬件结构(例如fpga、cpu、gpu等电路结构)的能力赋予数据103(例如程序、程序中使用的参数)。如上所述,能力赋予数据103可以包含能力设定数据、输入设定数据和输出设定数据。

(服务提供部205)

服务提供部205向委托者101提供由能力赋予数据生成部204生成的能力赋予数据103。提供方法可以是任意方法。例如,服务提供部205可以利用电子方式(例如电子邮件、ftp、来自文件服务器的下载等)向委托者101发送能力赋予数据103。另外,服务提供部205可以将能力赋予数据103存储在dvd-rom那样的记录介质中并向委托者101发送。另外,服务提供部205可以通过网络直接向委托者101的对象装置104发送能力赋予数据103。可以作为能够由对象装置104执行的程序来提供能力赋予数据103,也可以作为在云上执行的程序或从云提供的服务来提供能力赋予数据103。另外,也可以通过组合多个装置的iot服务的方式来提供能力赋予数据103。另外,可以将能力赋予数据103编入于半导体元件,或者是安装于能够编入于对象装置104的元件。或者是服务人员也可以前往委托者101的场所,将能力赋予数据103安装于对象装置104。另外,可以从委托者101取得对象装置104,在编入能力赋予数据103之后返还对象装置104。

(系统的工作)

图12示出从接受学习服务提供系统100中的学习委托开始到提供能力赋予数据为止的处理流程图。

如果委托者101通过互联网访问本系统100并申请新的学习委托,则委托接受部200开始接受学习委托(步骤s1200)。委托接受部200使委托输入画面显示于委托者101的终端805,由委托者101输入所希望的学习模型和学习所需要的信息(步骤s1201)。如果学习委托信息的输入结束(步骤s1202的是),则委托接受部200将学习委托信息102登记于委托信息db802,向学习指令部202通知接受了新的学习委托(步骤s1203)。

图13示出学习委托信息102的数据结构的一例。学习委托信息102包含学习目标信息1300、学习模型识别信息1301和学习模型参数1302。学习目标信息1300包含与由委托者101指定的学习目标相关的信息。学习模型识别信息1301包含确定与由委托者101指定的学习模型对应的训练信息304的信息(例如训练信息db302中的训练信息304的id等)。学习模型参数1302包含针对学习模型的各参数项由委托者101输入的信息。

接着,学习指令部202按照学习委托信息102对学习模拟器203进行学习模型、对象装置模型和对象模型等的设定(步骤s1204),并且控制学习模拟器203来实施训练(步骤s1205)。例如,在深度学习等神经网络的情况下,一边对多层分别阶段性地改变参数、一边评价输出,进行参数的优化来提高与学习目标适合性。如果相对于学习目标的适合性满足预先设定的结束条件(步骤s1206的是),则学习指令部202使训练结束。

接着,能力赋予数据生成部204基于学习模拟器203的学习结果(由训练而获得的能力)来生成能力赋予数据103(步骤s2107)。最后,服务提供部205向委托者101提供能力赋予数据103(步骤s1208)。

<本系统的优点>

对委托者101来说具有如下优点。首先,如果利用上述系统100,则委托者101自身不需要实施机器学习,因此能够使用于向对象装置104追加新能力的开发业务效率化。另外,由于委托者101仅提供机器学习所需要的信息,所以即使是不具备与机器学习相关的知识和系统的人,也能够容易地利用本系统100。另外,由于通过能力赋予数据103(向对象装置104追加新能力的数据)提供学习结果,所以委托者101能够简单地向自身的装置104追加由机器学习获得的新能力。

另一方面,对服务提供者来说具有如下优点。由于从委托者101提供进行机器学习所需要的信息,所以能够保证按照委托来执行机器学习。需要说明的是,能够尽可能使来自委托者101的委托接受和机器学习的实施等处理自动化、省力化。此外,由于将学习结果转换为能力赋予数据103并提供给委托者101,所以也能够使学习结果的提供和向对象装置104的安装自动化、省力化。

另外,在机器学习的过程中,通过实施利用对象装置模型和对象模型进行的模拟,即使不具备对象装置104的实体机,也能够进行考虑了对象装置104和对象105的行为和影响等的机器学习。如果不需要对象装置104的实体机,则非常容易实现机器学习的代行。特别是在像生产设备那样的大型装置或运转中的装置的情况下,将实体机用于机器学习是不现实的。在这种情况下也能够利用本学习服务,应用自由度和便利性良好。

需要说明的是,通过设置由能力获得模型500模型化的架构和基于能力赋予数据103来设定功能的能力设定部900,能够容易实现向对象装置104编入新能力。由此,能够提供一种可扩展性良好的对象装置104,该对象装置104具有能够简单地追加从外部提供的新能力的机构。需要说明的是,容易对新能力的开发进行外包,能够实现开发业务的效率化。

需要说明的是,上述实施方式的结构仅是本发明的一个具体例,并不限定本发明的范围。在不脱离本发明的技术思想的范围内,能够采用各种具体的结构。例如上述实施方式所示的系统结构、数据结构、用户界面和参数等是一例,能够根据机器学习的种类、学习的目的、想要获得的能力和对象装置的结构等进行适当变更。需要说明的是,在上述实施方式中,示出了由机器学习获得向对象装置104追加的新能力的例子,但是能力的获得方法并不限定于机器学习。例如,可以是由利用有限元法进行的三维结构模拟、流体模拟和优化问题等获得的能力,也可以是人开发的能力。

(附记1)

一种可扩展性持有装置,其中,

具备至少一个的存储器和与所述存储器连接的至少一个硬件处理器,

所述硬件处理器构成作为用于向本装置的基本结构以追加方式编入新能力的架构而通过能力获得模型被模型化的架构,所述能力获得模型包括执行能力的能力部、作为进行所述能力部的输入的接口的数据输入部以及作为进行所述能力部的输出的接口的数据输出部,

所述硬件处理器基于包含能力设定数据、输入设定数据以及输出设定数据的能力赋予数据,为所述能力部、所述数据输入部以及所述数据输出部中的每个设定功能,由此为本装置追加新能力。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1