学习服务提供装置的制作方法

文档序号:15739794发布日期:2018-10-23 22:06阅读:188来源:国知局
学习服务提供装置的制作方法

本申请是基于在2016年3月14日申请的日本申请号2016-049236号而做出的,将其描述引用于此。

技术领域

本发明涉及用于使利用了机器学习的开发业务更有效率的机制。



背景技术:

从前,关于人工智能和神经网络的研究已被广泛地进行。例如,基于图像的对象物识别技术不断进行改良而识别率正在逐渐提高上来。由于被称为深度学习的新的学习方式,在这几年中,识别率迅速地提高,在图像分类上已达到了超过人的识别率的水平。深度学习技术不仅能够应用于图像识别,还能够应用于声音识别、个人认证、行动预测、文章的摘要、自动翻译、监视、自动驾驶、故障预测、传感器数据的分析、乐曲的流派判定、内容生成、安全系统等广泛的领域。通过利用深度学习这种机器学习,机器无需人工干预即可获得新的能力。

目前,深度学习等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技术的产品这样的需求会提高。特别是在嵌入式设备中这种要求多。但是,机器学习(训练)需要高度的系统和能够维护该系统的人员。因此,一般厂商的技术员亲自实施机器学习并不容易。



技术实现要素:

本发明鉴于上述实际情况而做出,其目的在于提供用于即使是不具有关于机器学习的知识和系统的人员也简单地将新能力追加到自己装置中的机制。

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

本发明的第一方面是一种学习服务提供装置,其特征在于,具有:请求接受部,从请求人接受用于进行追加至对象装置中的能力的机器学习所需的信息作为学习请求信息;学习模拟器,根据从所述请求人接受的所述学习请求信息而进行机器学习;能力赋予数据生成部,根据由所述学习模拟器产生的学习结果来生成能力赋予数据,该能力赋予数据是将作为所述学习结果而已获得的新能力追加至所述对象装置的数据;以及服务提供部,将所述能力赋予数据提供给所述请求人。

对对象装置的开发者(请求人)来说,具有如下这样的优点。首先,如果利用该学习服务提供装置,则请求人本身就无需实施机器学习,所以能够使用于将新能力追加至对象装置的开发业务更有效率。另外,请求人只提供机器学习所需的信息即可,所以即使是不具有关于机器学习的知识和系统的人员,也容易利用学习服务提供装置。另外,学习结果以能力赋予数据(将新能力追加至对象装置的数据)的形式提供,所以请求人能够将通过机器学习而已获得的新能力简单地追加至自己的装置中。

另一方面,对实施机器学习的人员(服务提供者)来说,具有如下这样的优点。由于为进行机器学习所需的信息由请求人提供,所以能够确保执行按照请求的机器学习。另外,能够使从请求人接受请求、实施机器学习等处理尽可能地自动化、省力化。并且将学习结果转换为能力赋予数据而提供给请求人,所以也能够对学习结果的提供和向对象装置的安装尽可能地自动化、省力化。

所述对象装置可以具有用于将新能力嵌入所述对象装置的架构,所述模拟器可以进行所述机器学习以获得与所述对象装置具有的所述架构匹配的能力。通过对象装置预先具有这种架构,新能力的嵌入变容易。另外,学习模拟器实施机器学习以与对象装置的架构匹配,从而将作为机器学习的结果而已获得的能力嵌入对象装置变得容易。

所述架构可以是通过能力获得模型来模型化的架构,而该能力获得模型包括:执行能力的能力部、作为所述能力部的输入接口的数据输入部以及作为所述能力部的输出接口的数据输出部,所述学习模拟器可以使用与所述对象装置的能力获得模型一致的能力获得模型来进行所述机器学习。通过像这样使对象装置与学习模拟器之间的能力获得模型一致,从而保证对象装置的能力部和学习模拟器的能力部能够执行同等的能力以及同等的数据被输入输出至各能力部。另外,能够容易实现在学习模拟器中已获得的能力向对象装置的嵌入。此时,能力赋予数据可以是将功能设定于对象装置的能力获得模型中的能力部、数据输入部以及数据输出部各个上的数据。所述学习接受部可以从所述请求人接受指定所述对象装置的能力获得模型的信息。

所述学习模拟器可以在所述机器学习的过程中模拟所述对象装置的动作。此时,所述学习模拟器可以在所述机器学习的过程中使用将所述对象装置模型化而得的对象装置模型来模拟所述对象装置的动作。另外,所述学习模拟器可以在所述机器学习的过程中还使用将所述对象装置具有关系的对象模型化而得的对象模型来模拟所述对象装置的动作。通过使用对象装置模型和对象模型,即使没有对象装置的实机,也能够进行考虑了对象装置和对象的行为、影响等的机器学习。如果不需要对象装置的实机,则代行机器学习就变得极其容易实现。特别是在像生产设备这样大型的装置或正在运转的装置的情况下,在机器学习中利用实机并不现实。即使在那种事例中,也能利用本发明的学习服务,应用的自由度和便利性优异。所述学习接受部可以从所述请求人接受指定所述对象装置或所述对象装置模型的信息。另外,所述学习接受部可以从所述请求人接受指定所述对象或所述对象模型的信息。

可以还具有训练信息数据库,该数据库预先存储按可接受请求的机器学习的每个种类描述了用于进行机器学习所需的信息的训练信息,所述请求接受部可以使所述请求人指定请求的机器学习的种类,使用对应于所述已指定的机器学习种类的所述训练信息来生成所述学习请求信息。根据该构成,装置开发者(请求人)能够对实施机器学习的人(服务提供者)简单地委托想追加至自己的装置中的能力的学习请求。另外,具有即使对服务提供者而言也能够无遗漏地取得用于进行机器学习所需的信息这样的优点。

所述训练信息中的一部分项目可以是由参数定义的参数型项目,所述请求接受部可以要求由所述请求人对所述参数型项目输入信息。通过预先准备请求人可指定的参数,从而能够进行按照请求人的希望的机器学习。需要注意的是,具有当请求人必须输入的项目增加时请求程序变困难这样的缺点。因此,参数型项目可以限定于训练信息中的一部分项目。

所述请求接受部可以对所述参数型项目向所述请求人提示多个选择项,使所述请求人从所述多个选择项中选择输入的信息。由此,能够减轻请求人的输入负担。

所述服务提供部可以通过电子手段来将所述能力赋予数据提供给所述请求人。电子手段为例如电子邮件、FTP、从文件服务器中下载等。通过利用这样的电子手段,能够使能力赋予数据的提供尽可能地自动化、省力化。

所述能力赋予数据可以包括嵌入所述对象装置具备的电路的数据(例如写入对象装置具备的FPGA中的数据等)、由所述对象装置具备的处理器执行的程序等。通过以这种形式提供能力赋予数据,从而请求人将能力赋予数据追加至对象装置的操作变容易。

需要说明的是,本发明能够视为具有上述构成或功能至少一部分的学习服务提供装置。学习服务提供装置既可以由单一装置构成,也可以由多个装置的组合构成。另外,本发明也能够视为包括上述处理的至少一部分的学习服务提供方法、或者用于使计算机执行该方法的程序、或者非暂时性地记录了那种程序的计算机可读取的记录介质。上述构成和处理的各个只要不产生技术矛盾则就能够相互组合来构成本发明。

发明效果

根据本发明,能够提供将用于使装置获得新能力的开发业务更有效率的机制。另外,根据本发明,能够提供一种即使是不具有关于机器学习的知识和系统的人也可在自己的装置中简单地实现通过机器学习而已获得的新能力的机制。另外,根据本发明,能够提供一种装置的开发者(请求人)可对实施机器学习的人(服务提供者)简单地委托想使自己的装置获得的能力的学习请求的机制。另外,根据本发明,能够提供一种可使实施机器学习的人(服务提供者)从装置的开发者(请求人)接受请求、实施机器学习、向请求人提供学习结果尽可能地自动化、省力化的机制。

附图说明

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

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

图3是服务管理部的结构图。

图4是示出训练信息DB的注册数据的一个例子的图。

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

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

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

图8是请求接受部的结构图。

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

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

图11是示出学习模拟器的构成例的图。

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

图13是示出学习请求信息的数据结构的一个例子的图。

图14A~图14D是示出请求输入画面的一个例子的图。

图15A~图15D是示出请求输入画面的一个例子的图。

图16A~图16B是示出请求输入画面的一个例子的图。

具体实施方式

本发明涉及一种用于使开发业务更有效率的学习服务提供装置,而该开发业务用于将新的“能力”追加至装置。在以下阐述的实施方式中,对作为学习服务提供装置的优选的具体例之一的“学习服务提供系统”进行说明。

<术语的说明>

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

“学习服务”是代行机器学习的服务。详细而言,是一种如下的服务:根据来自请求人(希望赋予对象装置以新能力的人)的请求,代替请求人实施用于追加至对象装置的新能力的机器学习,并将作为机器学习而已获得的“能力”提供给请求人的对象装置。“学习服务提供系统”是承担从请求人接受学习请求、实施机器学习、向请求人提供学习结果等关于学习服务的一系列处理的系统。

“机器学习”就是当将目标输入机器时机器获得用于实现目标的能力并且机器本身能够发挥新获得的能力。在本说明书中,在没有特别写明的情况下,“学习”意味着机器学习。

“能力”是装置可提供的功能或装置可执行的处理。所谓将新能力追加至装置中,就是向装置追加新的功能或处理、或者提高装置已有的功能或处理的性能。需要注意的是,请求人的“对象装置”只要是具有可嵌入新能力的结构的装置,则就可以是任何种类的装置。例如,能够应用于如下各种各样的领域的装置的开发:制造装置、FA机器人、检查装置、生产管理系统、电厂控制系统、监视系统、楼宇控制系统、店铺管理系统、人型机器人、防灾机器人、Web服务、移动终端、家电装置、业务系统、嵌入式系统、活体信息系统、图像识别装置、声音识别装置、自动驾驶系统、故障预测系统、数据分析装置、内容生成装置、安全系统、金融系统、病毒监视装置等。“能力赋予数据”是用于将作为学习结果而已获得的“能力”追加至请求人的对象装置中的数据。能力赋予数据是具有可直接嵌入(可实现于)请求人的对象装置中的数据格式的数据。通过以恰当的形式将学习结果进行数据化,将学习服务的学习结果向请求人的对象装置嵌入变容易。

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

在模型中,能够不仅包括程序的定义,还包括执行形式的程序。由此,能够减少在学习模拟器中执行已请求的学习时的处理。

在以下阐述的实施方式中,通过用基于模型的开发工具来开发程序,能够明确定义各部份在学习模拟中的关系。但是,在系统的实现上,能够不使用基于模型的开发工具而开发同样的程序。因此,本发明并不限定于用基于模型的技术开发出的系统。

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

“学习模型”是将通过机器学习来获得追加至对象装置中的新能力的方法公式化而得的模型。学习模型针对本系统可接受请求的机器学习的每个种类分别创建。在以下的描述中,也有将“学习模型”这个词只在“机器学习的种类”这一意义上使用的上下文。

“对象装置模型”是请求人的对象装置(被追加新的能力的装置)的模型。本系统生成、输出用于使之能够在该对象装置模型中执行的能力赋予数据。

“对象模型”是请求人的对象装置(被追加新的能力的装置)具有关系的对象的模型。例如对象装置的周围环境、在与对象装置之间进行输入输出的其它装置、对象装置发挥作用的对象等符合对象装置具有关系的对象。

<整个系统的动作概念>

图1示出本实施方式的学习服务提供系统提供的学习服务的概念图。请求人101经由因特网等网络来访问学习服务提供系统100,请求追加至对象装置104的能力的机器学习。进行机器学习所需的信息由请求人101提供给学习服务提供系统100作为学习请求信息102。学习服务提供系统100以由请求人101已提供的学习请求信息102为根据而边模拟请求人101侧的对象装置104和对象105边进行必要的机器学习。当由请求人101请求的学习完成时,学习服务提供系统100将作为学习结果而已获得的新的能力作为可嵌入对象装置104中的数据格式的能力赋予数据103来对请求人101提供。需要说明的是,请求人101既可以利用个人计算机来访问学习服务提供系统100,若对象装置104可接入因特网,则也可以从对象装置104直接访问学习服务提供系统100。

<系统的结构>

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

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

(服务管理部201)

在图3中示出服务管理部201的构成。服务管理部201具有服务管理终端300、服务管理控制部301、训练信息DB(数据库)302。服务管理部201管理本系统100可接受的多个学习模型。

作为本系统100的运营者(服务提供者)侧的人员的AI技术员利用服务管理终端300来对每个各学习模型创建训练接受信息303与训练信息304的对。已创建的训练接受信息303和训练信息304通过服务管理控制部301而被注册到训练信息DB302中。由此,请求人101在请求时可选择的学习模型被追加至学习菜单。图4示出了训练信息DB302的注册数据的一个例子。在训练信息DB302中,按每个学习模型而将训练接受信息303与训练信息304一对一地建立对应而进行了注册。

优选设计对请求人101提示的学习菜单以便即使是不熟悉AI技术的人也能够简单地进行请求。例如,在利用深度学习来学习的情况下,虽然需要设计层数、层的结构、激活函数等神经网络的参数,但这些参数被固定(在学习模型中已定义),请求人101可以不用考虑。另外,也优选,当向请求人101提示学习菜单时,极力避免专业术语而提示易于明白的说明文来支援输入。

学习菜单可以像例如:

·使用了静态图像的分类学习

·传感器数据中的异常检测的学习

·使用了动态图像的动作预测的学习

·自然语言信息中的主题提取的学习

·工厂运转能力的学习

这样地准备本系统100可执行的机器学习的种类作为选择项。此时,可以用易于理解学习的内容和目的的文章来提示。

学习菜单的结构不限定于上述,除此以外,还可采用各种各样的方法。例如,也可以像“分类的学习”、“异常检测的学习”、“运转能力的学习”这样按能力的分类来划分上级菜单。通过这样设置,能够对每个请求的差异高效地进行分类。

追加新的能力的对象装置104及其对象105针对每个请求是各种各样的。在请求人101将请求所需的事项在请求输入画面中依次输入下去的过程中,请求内容被自动分类,同时接受请求所需的信息被收集。因此,当请求接受部200完成请求的接受时,可以使能对应于请求内容的任一个学习模型已被选择。

或者,也可以准备像“关于图像的能力”、“关于声音的能力”、“关于自然语言的能力”、“关于系统控制的能力”这样的对应于获得能力的每个对象的分类的学习菜单。在这种情况下,可以使其能够先指定获得的能力的分类,在以后指定输入和输出。也可以将输入与输出的组合制成矩阵后以表形式提示来选择。或者,也可以以树形式显示矩阵的信息来选择。也可以当上级菜单的选择项被选择了时,提示每个各菜单的子菜单以便能够将请求详细分类来按层级接受。例如,可以是如下这样的分级菜单:当在上级菜单中选择“摄像头图像”时,提示“静态图像/动态图像”的选择项;当选择“静态图像”时,提示“图像的分类/异常检测/物体识别”这样的处理内容的选择项。

也可以不例示学习菜单,按如下这样进行。对每个各学习模型,预先创建说明文。请求人101用文章(自由文)来描述请求内容。在接受请求时,按相似度高的顺序列出与请求人101已输入的文章的相似度高的说明文来使请求人101从列表中选择所希望的学习模型。

或者,也可以将学习菜单的详情数据库化而能够从领域或目标、课题中检索。或者,也可以使请求人101以字符串的形式输入请求信息或要求上传用模型描述语言描述的模型。或者,对于不能够自动接受这样的案件,能够使操作者或技术员进行请求的接受以便通知给负责人。在这种情况下,就要创建针对接受的请求的学习模型。通过这样进行,能够对应于更广泛的案件。

(能力的获得)

当对各种各样的种类的对象装置104提供本学习服务时,必须预先使用于将新能力嵌入对象装置104的架构通用化。因此,在本实施方式中,使用于将新能力嵌入对象装置104的架构模型化,并将该模型称为“能力获得模型”。对象装置104准备根据能力获得模型设计的嵌入式接口,本系统100的学习模拟器203进行机器学习以获得与能力获得模型匹配的能力,从而在本系统100中已生成的能力赋予数据103能够向对象装置104嵌入。

通过定义能力获得模型,从而关于应使其通用的架构的信息作为模型数据而被数据化。被数据化的关于能力获得模型的信息用于在各个学习模型中在学习模拟器203与对象装置104之间取得逻辑一致。通过被数据化,能够进行使用了各种开发工具的程序和电路的自动生成、自动测试。

在预先准备好的能力获得模型不适合于对象装置104的情况下,学习请求人101可以变更预先准备好的能力获得模型的一部分或全部来创建新的能力获得模型。通过用系统建模语言来描述能力获得模型后保存于文件中而包括在提供给学习服务提供系统100的学习请求信息102中,从而能够对任意的对象装置104进行学习请求。

通过对各个能力获得模型赋予相互识别能力获得模型的识别信息(例如能力获得模型ID、能力获得模型名称),从而能够使用识别信息来在学习模拟器203与对象装置104之间指定能力获得模型以使它们在逻辑上一致。

通过使用能力获得模型,能够在请求学习的请求人101与接受请求的人之间无需交换过多的技术信息而进行各开发。

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

在图5中示出能力获得模型的结构。本实施方式的能力获得模型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也称为“能力获得部”(参照图10的能力获得部1004)。另一方面,在对象装置104侧,由于为了接纳、执行在系统100中已获得的新能力而利用能力获得模型500,因此将对象装置104侧的能力部502也称为“能力接纳部”(参照图9的能力接纳部904)。另外,在以后的说明中,为了区分学习模拟器203侧的能力获得模型和对象装置104侧的能力获得模型,使用在图9和图10中示出的符号。

为了做到能够将在学习模拟器203中已获得的能力赋予给对象装置104,能力获得模型500可以至少包括:数据输入部501与能力部502之间的接口规范、能力部502与数据输出部503之间的接口规范以及当学习模型用于学习时用于指定对象装置104的能力接纳部904的结构的信息。例如在获得的能力为“图像的分类”的情况下,由于对象装置104与能力获得模型的关系简单,所以只要那样即可使学习模拟器203与对象装置104匹配。具体而言,只要定义输入为图像数据、输出为分类结果即可。

能力获得模型500能够还包括如下这样的详细信息。

被输入至已安装于学习模拟器203上的能力获得部1004中的数据与被输入至对象装置104的能力接纳部904中的数据必须同等。能力获得模型500的数据输入部501能够包括定义从对象装置104的基本结构902对数据输入部903的数据输入的接口规范的信息。在数据输入部501中,能够嵌入任意的逻辑。

当在学习中使用深度学习时,能力接纳部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各个从模型中自动生成。通过自动生成,从而能够使学习模型的开发效率提高,能够以机械方式进行使用了模型信息的严格的规范检查。

能力获得模型500只要在各个学习模型中被定义为在学习模拟器203与对象装置104之间不矛盾即可。学习模拟器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技术员针对每个应用的对象而选择以更少的处理来结束学习这种手法。

(深度学习的例子)

图6示出基于深度学习的能力获得模型的一个例子。数据输入部501是一种功能块,该功能块输入对输入至对象装置104中的信号形式进行转换以适合于神经网络而数据化后的信号。在数据输入部501定义有“动态图像、RGB、分辨率1024×768、30fps”作为从对象装置104中接受的数据的规范、“静态图像、灰阶、分辨率640×480”等作为输入至能力部502的数据的规范。在不需要颜色信息的情况下,通过转换为灰阶,学习时间被缩短,能力部502的电路结构变简单。这是进行数据格式的转换的情况下的例子,在需要颜色信息的情况下,也可以直接输入RGB的彩色信号。能力部502是一种功能块,该功能块通过神经网络来根据输入数据而输出目标结果,而该神经网络通过采用了深度学习技术的训练而已学习完毕。能力部502能够模型化为任意数量、任意大小的各层的输入输出均已被连接的神经网络的子集。在能力部502的模型中,可以根据需要而追加反馈电路或运算电路、逻辑电路、存储电路、同步电路、延迟电路、复位电路等附加电路。能力部502包括例如AI的种类、层数、各层的结构、激活函数、权重过滤器等的定义。在进行学习时,由在学习模型中已定义的结构来依次构成神经网络,使参数最优化。数据输出部503是将神经网络的输出向可在对象装置104和其它设备中利用的信息转换并输出的功能块。在数据输出部503定义有从能力部502中输出的数据的规范和将其转换为对象装置104需要的数据格式后最终输出的数据的规范等。

(训练信息304)

在图7中示出训练信息的数据结构的一个例子。训练信息304定义实施机器学习所需的信息,包括学习模型信息700、对象装置模型信息701、目标模型信息702、学习模拟器模型信息、能力赋予数据生成模型信息704。以下,对各个信息700~704进行说明。

(1)学习模型信息700

学习模型信息700是关于学习模型的信息。学习模型是将通过机器学习来获得追加至对象装置104中的新能力的方法公式化而得的模型。学习模型对每个处理的对象装置104、目标105分别创建。但是,对于行为类似的装置104和目标105,也能够应用相同的学习模型。学习模型能够处理的关于对象装置104、对象105的信息能够描述在对应的训练接受信息303中。

学习模型可以包括以下的信息:

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

·“关于能力部的输入的定义”:定义从对象装置或其它外部设备中怎样输入向能力部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-Programmable Gate Array,现场可编程逻辑闸阵列)的型号,也可以指定门数。或者,在为软件实现的情况下,也可以用CPU(Central Processing Unit,中央处理单元)、GPU(Graphics Processing Unit,图形处理单元)的型号和可追加利用的存储容量来指定。在利用云服务的情况下,可以用云的种类、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的结构和输入输出、学习目标等尽可能少的项目。

(训练接受信息303)

训练接受信息303是用于支援由请求人101进行的信息输入的信息。由于每个学习模型(训练信息304)所需的信息不同,所以对应于各个训练信息304而分别准备训练接受信息303。通过边使用训练接受信息303来使请求人101进行训练信息304的各项目的输入边进行学习请求信息102的接受,从而保证无遗漏地输入用于学习所需的信息。在训练接受信息303中针对来自请求人101的输入必要的每个项目而定义有支援请求人101的输入的信息。

在图7中示出训练接受信息303的一个例子。训练接受信息303包括说明信息705、选择接受信息706、必要输入信息707。说明信息705是用于向请求人101说明各项目的内容的信息。选择接受信息706是定义各项目的选择项以便能够通过菜单选择来进行各项目的输入的信息。必要输入信息707是定义需要由请求人101进行的输入的项目的信息。能够使用这种训练接受信息303来对请求人101要求必要的信息输入。

(请求接受部200)

使用图8来对请求接受部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和训练接受信息303来接受实施机器学习所需的信息,生成学习请求信息102。

具体而言,请求接受部200从训练信息DB302中读出对应于已选择的学习模型的训练接受信息303,根据训练接受信息303来使请求人101进行必要的信息输入。例如,针对在必要输入信息707中定义的要输入项目,请求接受部200向请求人101提示在说明信息705中已定义的说明文和在选择接受信息706中已定义的选择项,要求信息的输入(选择)。在要输入项目中具有例如输入数据的种类和规范、学习目标、输出数据的种类和规范、指定对象装置或对象装置模型的信息、指定对象或对象模型的信息等。通过对所有的要输入项目重复这样的输入处理,请求人101希望的学习模型所需的信息全部都输入完毕。请求接受部200将学习请求信息102注册于请求信息DB802中。在学习请求信息102中包括指定对应于已选择的学习模型的训练信息304的信息、由请求人101已输入的信息(例如参数型项目的值)等。请求接受部200将学习请求信息102的注册完成通知给学习指令部202。

需要说明的是,请求接受部200也能够从请求终端805上接受使用系统描述语言等来描述了学习所需的信息的请求文件。例如在学习菜单中没有请求人101希望的学习模型时,请求人101能够创建描述了所希望的学习内容的请求文件,进行学习请求。在接受通过请求文件来进行的学习请求的情况下,AI技术员根据请求文件来创建新的学习模型,然后追加至学习菜单中。

在本实施方式中,采用了使用训练接受信息303来进行学习请求的接受的结构。也可以不是这种结构,而是针对每个各学习模型来准备用于从请求人101接受必需的信息的单个请求接受程序,切换到与由请求人101已选择的学习模型相对应的请求接受程序来进行学习请求的接受。

(对象装置104)

请求人101指定作为赋予能力的对象的对象装置104来请求学习。只要是能够根据能力获得模型500来追加新的能力的装置,则什么样的装置均能成为对象装置104。若列举一例,能够例示对静态图像进行分类的图像分类装置、利用传感器数据来进行监视的监视装置、使用动态图像来预测对象的动作的预测系统、Web服务系统、运转装置等。

在图9中示意性示出对象装置的结构。对象装置104大体上具有能力设定部900、对应于能力获得模型500的结构901以及对象装置104原本具有的基本结构902。对应于能力获得模型500的结构901由数据输入部903、能力接纳部904、数据输出部905构成。能力设定部900是一种使用由本系统100提供的能力赋予数据103来设定对应于能力获得模型500的结构901以使能力接纳部904能够发挥新的能力的功能。

对应于能力获得模型500的结构901由可变更功能的硬件构成。例如,也可以是重写FPGA的程序的结构。另外,也可以是变更在CPU、GPU这样的处理器中执行的程序或者变更在程序中使用的参数的结构。例如,通过对进行神经网络仿真的程序变更参数,能够变更神经网络的功能。或者,也可以是通过更换部件的一部分或连接的装置来变更功能的结构。能力赋予数据103包括例如“能力设定数据”、“输入设定数据”以及“输出设定数据”。能力设定数据是用于对能力接纳部904设定执行通过学习已获得的新能力(例如基于神经网络的图像分类能力)的功能的数据。输入设定数据是用于对数据输入部903设定关于向能力接纳部904输入数据的接口的功能的数据。在关于数据输入的接口的功能中具有:例如从对象装置104的基本结构902中捕获必要的数据至数据输入部903的功能、从对象装置104以外的设备(例如传感器等)中捕获必要的数据至数据输入部903的功能、对已捕获的数据实施必要的加工(例如平均化、合并、采样、去噪、特征量提取、二值化、颜色转换、分辨率转换等)的功能、转换数据格式以适合于能力接纳部904的功能等。另外,输出设定数据是用于对数据输出部905设定关于来自能力接纳部904的数据输出的接口的功能的数据。在关于数据输出的接口的功能中具有:例如对从能力接纳部904中输出的数据实施必要的加工(例如平均化、合并、采样、去噪、特征量提取、二值化、颜色转换、分辨率转换等)的功能、转换数据格式以适合于对象装置104的基本结构902的功能等。能力设定数据、输入设定数据、输出设定数据既可以是程序本身,也可以是在程序中使用的参数,还可以是程序和参数两者。能力设定部900利用由能力赋予数据103给出的各设定数据来进行对应于能力获得模型500的结构901的设定,从而数据输入部903、能力接纳部904以及数据输出905可以执行对应于新能力的信息处理。

设定完毕的数据输入部903从对象装置104的基本结构902中取得数据,进行必要的加工,转换数据格式以适合于能力接纳部904后输入数据。作为输入数据,输入例如摄像头数据、传感器数据、事件数据。在自然语言处理中,作为输入数据,输入许多文本文件。

设定完毕的数据输出部905对从能力接纳部904中输出的数据进行必要的加工,转换数据格式以适合于对象装置104的基本结构902后再输出数据。例如,已嵌入至能力接纳部904中的神经网络的输出被输入至数据输出部905,再将数据从数据输出部905输出至基本结构902。

列举具体例子来对能力接纳部904进行更详细说明。能力接纳部904通过根据例如从外部已输入的能力赋予数据103来构成神经网络而接纳新的能力。能力接纳部904和能力赋予数据103可以例如如下这样实现:

·可重写的FPGA。在这种情况下,例如,将写入FPGA的神经网络的回路和参数的数据作为能力赋予数据。

·将能力作为CPU的程序来实现。在这种情况下,例如,将对神经网络回路的动作进行运算的执行形式的CPU程序作为能力赋予数据。

·将能力作为GPU的程序来实现。在这种情况下,例如,将对神经网络回路的动作进行运算的执行形式的GPU程序作为能力赋予数据。

·将能力作为部件来追加。在这种情况下,例如,将神经网络写入了可重写的FPGA的部件作为包括能力赋予数据的部件。

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

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

·将能力作为装置来追加。在这种情况下,例如,将利用嵌入了上述任一个能力的装置的程序作为能力赋予数据。(对象装置模型)

不论对象装置104是怎样的种类的装置,均能够如图9所示用对应于能力获得模型500的结构901与对象装置104原本具有的基本结构902的组合来进行模型化。当将对应于基本结构902的基本结构模型和能力获得模型500组合时,就成为获得了新能力之后的对象装置104的模型。若使用该对象装置模型和将位于对象装置104外部的对象105模型化而得的对象模型,则就能够在计算机上模拟对象装置104的动作。基本结构模型未必非得将对象装置104具备的所有结构都模型化。只要至少与能力获得模型500相互影响的部分的结构通过基本结构模型被定义即可。

在该实施例中,对对象装置104包括一个能力获得模型的结构进行了示出,但也可以配置为包括多个能力获得模型的结构。通过具备多个能力获得模型,可以在多个项目上获得能力。在以上的实施例中,示出了将对象装置104与学习服务提供系统100作为不同的装置来实施的例子,但能够设为对象装置104包括学习服务提供系统100的一部分或全部的结构。由此,对象装置104成为具有自我学习能力的产品。例如基于具有学习能力的本发明的人型机器人能够从人接受学习请求而进行学习,并将能力赋予数据供给与自己相同结构的自己以外的其它机器人。

只要提供对象装置模型和对象模型,则本系统100的服务就能够对应于任何种类的对象装置104。需要说明的是,这些模型既可以是请求人101自己创建、提供,也可以是请求人101以外的人创建、提供。例如,既可以是向请求人101提供部件、产品的业者提供模型,也可以是本系统100的服务提供者提供模型。另外,在对象装置模型和对象模型已被注册到本系统100的对象装置信息DB803、对象信息DB804中时,请求人101也能够利用在那些DB中已注册的模型。在那种情况下,当接受学习请求时,可以要求请求人101输入指定对象装置104的信息(装置的型式等)或指定对象装置模型的信息(模型ID等)。对于对象模型,也是同样的。

(学习模拟器203)

在图10中示出学习指令部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的操作员等。

在图11中示出学习模拟器203的结构例。学习模拟器203需要许多计算资源,所以在图11的例子中,将实现学习指令部202的学习管理服务器1100和实现学习模拟器203的硬件资源各自分开。例如,能够通过设置在因特网上的云服务器组1101来构成学习模拟器203。在这种情况下,学习指令部202经由网关1102而对各云服务器发送必要的设定信息和处理任务来使其执行学习模拟,接受该模拟的结果。或者,也可以通过存在于局域网上的私人服务器组1103来构成学习模拟器203。在利用服务器组1101、1103的情况下,可以分别在单个服务器中执行能力获得模型1002、基本结构模型1006、对象模型1007的模拟。也可以对各模型1002、1006、1007的模拟处理再在多个服务器中进行分布式处理。由此,实现模拟的高速化。

为了使模拟处理高速化,也可以使用嵌入式模拟器1104这样的专用系统。也可以采用将软件处理的一部分替换为硬件的结构。能够做到针对每个学习模型,例如数据量多的请求、阶层数多的结构、学习要求实时性的结构等选择最适的结构作为实施模拟的装置。

模拟能够通过例如利用由许多CPU进行的分布式处理的方法、利用被称为GPU的高速运算装置的方法等来高速化。另外,通过用FPGA等构成神经回路来进行并行动作,能够使模拟高速化。能够将这种高速化的方法包含在学习模拟器模型中。

能够设定为将模拟器与实机(请求人101的对象装置104)已连接的结构。例如,可以将请求人101的对象装置104连接于模拟器(执行模拟的计算机)。或者,能够在请求人101的对象装置104具有的电路(CPU、GPU、FPGA等)中执行模拟。通过应用IoT(物联网)技术,可以处理实时的大数据。利用该技术,也能够经由因特网来将关于请求人101的对象装置104的各种数据实时地传送至模拟器,使用该数据来进行模拟。或者,也可以使模拟器具备相当于对象装置104的模型的功能。

可以利用提供服务的装置作为模拟器。例如在为由自然语言处理生成的Web服务的情况下,能够使用云上的服务器资源来实施Web服务和学习服务双方。

(学习指令部202)

学习指令部202是承担训练的设定和控制的处理部,如图10所示,具有训练设定部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)。从学习结果生成能力赋予数据103的转换程序预先由能力赋予数据生成模型信息704供给。通过该转换程序,生成适合于对象装置104具有的硬件结构(例如FPGA、CPU、GPU等电路结构)的能力赋予数据103(例如程序、在程序中使用的参数)。能力赋予数据103如上所述可以包括能力设定数据、输入设定数据、输出设定数据。

(服务提供部205)

服务提供部205将由能力赋予数据生成部204已生成的能力赋予数据103提供给请求人101。提供方法可以是任何方法。例如,服务提供部205可以利用电子手段(例如电子邮件、FTP、从文件服务器上下载等)来将能力赋予数据103发送给请求人101。另外,服务提供部205也可以将能力赋予数据103记录于DVD-ROM这样的记录介质中,寄送给请求人101。另外,服务提供部205也可以经由网络来将能力赋予数据103直接发送给请求人101的对象装置104。能力赋予数据103既可以作为可在对象装置104中执行的程序来提供,也可以作为在云上执行的程序、由云提供的服务来提供。另外,也可以以组合了多个装置的Iot服务的方式提供能力赋予数据103。另外,也可以将能力赋予数据103嵌入半导体部件或者安装于可装入对象装置104中的部件。或者,也可以是技术服务人员前往请求人101的地方,将能力赋予数据103安装于对象装置104。另外,也可以从请求人101暂存对象装置104,在嵌入了能力赋予数据103之后退还对象装置104。

(系统的动作)

在图12中示出学习服务提供系统100中的从学习请求的接受直至能力赋予数据的提供为止的处理流程。

当请求人101经由因特网而访问本系统100并申请新的学习请求时,请求接受部200开始学习请求的接受(步骤S1200)。请求接受部200在请求人101的终端805上提示请求输入画面,使请求人101输入希望的学习模型和学习所需的信息(步骤S1201)。此时,通过按照训练接受信息303而使请求人101进行信息输入,能够使其无遗漏地输入学习所需的信息。当学习请求信息的输入完成(步骤S1202的是)时,请求接受部200将学习请求信息注册到请求信息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将能力赋予数据103提供给请求人101(步骤S1208)。

(请求输入画面的例子)

在图14A~图14C、图15A~图15E、图16A~图16B中示出请求输入画面的一个例子。

图14A是示出在请求时输入的项目的一览的画面。在该例子中,要求“1请求的种类”、“2输入信息”、“3学习的目标”、“4对象装置信息”四个项目的输入。图14B是在图14A中选择了“1请求的种类”时显示的画面,是指定请求种类的画面。图14C是指定输入信息的种类的画面。输入信息的选择项根据在图14B中已指定的请求种类来适当设定。图14C的例子是在选择了“学习分类能力”之后显示的输入信息指定画面。在该例子中,能选择“时间序列传感器信息”、“摄像头图像”、“字符串文件”、“描述了输入信息的文件的上传”任一个。图14D是在图14C中选择了“时间序列传感器信息”之后显示的学习目标指定画面。在该例子中,作为针对将时间序列传感器信息进行分类的能力的学习目标的指定方法,能选择“指定分类的组数”、“用程序指定判定适合度”、“上传指定了分类的必要条件的文件”任一个。

图15A是在图14B中选择了“学习操作能力“的情况下的学习目标的指定画面的例子。要求操作对象的指定方法和学习目标的指定方法。同样地,图15B是在图14B中选择了“学习过滤能力“的情况下的学习目标的指定画面的例子,图15C是在图14B中选择了“学习信息生成能力“的情况下的学习目标的指定画面的例子,图15D是在图14B中选择了“学习业务执行能力“的情况下的学习目标的指定画面的例子。

图16A是对象装置信息的输入画面的例子。在对象装置信息的输入画面上,输入创建或指定对象装置模型和对象模型所需的信息。在该例子中,能选择“用部件ID来指定”、“用装置ID来指定”、“用规范描述文件来指定”任一个。图16B是在图16A中选择了“用部件ID来指定”之后显示的部件ID的指定画面的例子。例如在对象装置104的能力接纳部904由FPGA构成的情况下,可以指定FPGA的型式作为部件ID。或者,也可以指定对象装置104的型式等作为装置ID或指定包含对象装置104的模型信息的文件作为规范描述文件。或者,也可以指定已被注册于对象装置信息DB803中的识别对象装置模型的模型ID。对于对象105和对象模型的指定方法也是同样的。

<应用例>

以下,对几个学习模型示出具体的事例。(1)处理图像的装置

在利用深度学习来处理图像时,虽然各层的结构不同,但整个神经网络的结构类似。在为图像的情况下,使用例如卷积神经网络(CNN:Convolutional Neural Network)。关于神经网络的结构,以往已进行过许多研究,已知的是,针对每个处理的对象都具有恰当的结构。因此,在接受学习请求时,可以按如下方式来进行接受:根据图像的种类、图像的规格、从图像中应识别的信息等来选择恰当的结构。由于学习模型各不相同,所以预先分别创建学习模型。

例如在关于对静态图像进行分类的能力的学习模型的情况下,在学习模型中包含如下这样的信息:

·输入:种类=静态图像、1280×1280像素、RGB

·输出:图像的分类结果(100分类)

·学习数据:监督式样本数据

·获得的能力:对图像进行分类的能力

·能力部的构成:层数=10、层结构(卷积层、池化层)、激活函数

·学习的目标:识别准确率>98%

·训练方法:训练程序A

···

另外,在关于使用动态图像来预测动作的能力的学习模型的情况下,在学习模型中包含如下这样的信息:

·输入:动态图像、1920×800像素、RGB、60fps、摄像头的URL

·输出:每个识别对象的动作的预测结果

·获得的能力:预测动态图像内的识别对象的动作

·能力部的构成:层数=13、层结构(卷积层、池化层)、激活函数

·学习的目标:评价函数的值<0.1

·训练方法:训练程序B

(2)处理声音的装置

在利用深度学习来处理声音时,能够利用例如可处理时间序列数据的循环神经网络(RNN:Recurrent Neural Networks)。作为关于声音的能力,具有声音识别、说话人的识别、说话人的属性分析(性别、年龄、国籍、人种等的估计)、说话人的感情分析、使用声音数据的监视装置等。例如在学习识别说话人的能力的情况下,可以针对很多说话人将成为训练数据和测试数据的发声样本存储于数据库中,在与训练数据一致时使惩罚减少,在与训练数据不一致的情况下使惩罚增大,从而进行基于Deep learning的学习。(3)处理自然语言的装置通过针对处理自然语言的装置来创建学习模型,能够获得可灵活应用于Web服务的能力。在处理自然语言时,已被编码成字符串的数据成为输入。在利用深度学习来处理自然语言时,能够利用例如RNN。或者,能够利用词向量(Word Vector)。通过将编码后的数据作为输入而使输出最优化,从而能够获得新的能力。作为关于自然语言的能力,具有例如文章翻译、摘要生成、主题抽取、文章分类、作者或作者属性估计、文章关注度预测等。

(4)处理传感器数据的装置

能够通过学习来获得根据传感器数据进行分析、特征提取、变化点检测、异常检测、预测、监视等的能力。例如在为使用从传感器组获得的多个传感器数据来进行监视的能力的情况下,输入是多个传感器数据,输出是监视结果(异常的有无、异常的种类等)。在传感器数据为时间序列数据的情况下,能够利用RNN。

(5)运转装置

在运转装置的学习模型中,例如相对于传感器输入,进行致动器输出。传感器输入成为能力获得模型的输入,致动器输出成为能力获得模型的输出。通过使相对于传感器输入的致动器输出最优化,能够获得运行能力。在这种情况下,设定运转装置的信息作为对象装置模型,设定运转对象机械的信息作为对象模型。只要定义模型,则什么样种类的机械均能成为运转对象机械。例如,能够例示装配装置、游戏机的电脑端玩家、交通工具、工厂设备、机床、建设装置、农业机械、渔业机械、计算机等。在学习模拟中,可以使用运转对象机械的实机。

作为运转装置的一个例子,说明获得赛车游戏的电脑端玩家的能力的学习模型。能够通过例如将深度学习应用于了Q-learning中的DQN(Deep Q-Learning)来获得能力。通过学习来获得的能力是根据自车的周围状况来操作方向盘、加速器、刹车的能力。作为向能力获得部的输入,输入自车的状况(自车在跑道上的位置、行进方向、速度、周围的道路状态、在周围的其它车的位置、行进方向、速度等)。来自能力获得部的输出是方向盘的舵角、加速量、刹车量。作为对象装置模型,设定赛车的参加车辆的物理模型;作为对象模型,设定赛车游戏的模型。模型包括游戏规则、跑道信息、作为车辆行驶环境的跑道的物理模型。将赛车的参加车辆的模型和赛车游戏的模型组合起来进行学习模拟。

学习逐步进行。首先,只使用自车来操作方向盘、加速器、刹车,从而使其对在规定的方向上运转进行学习。如果已能够在规定的方向上运转,则就使其进行学习以能够在更短的时间内绕跑道旋转。如果已能够在更短的时间内绕跑道旋转,则就用多个相同车辆使其进行学习。再对性能不同的多个车辆,作为各不相同的玩家使其进行学习。在上述学习的过程中,将已学习的状态的玩家按已取得的分数进行分类后注册于数据库。由此,能够设定电脑端玩家的水平。学习的结果,相对于性能不同的车辆而各种各样的水平的玩家被注册到数据库中。在该例子中,示出了赛车游戏的例子,但通过精密创建实际车辆和道路的模型,也能够获得使实车行驶的能力。通过将能力获得模型的输入和输出标准化,也能够获得使各种各样的对象装置运行的通用控制装置的控制能力。

(6)业务执行装置

通过将业务作为模型来描述,还能够获得执行业务的能力。学习模型能够创建作为使被模型化后的业务最优化的模型。作为执行业务的能力,能够获得例如预算的最适充分利用、生产计划的最优化、对人应对业务、运输业务的最优化、健康增进咨询业务的最优化、投资判断业务等的能力。

在为业务执行装置的情况下,通过将业务和业务的对象模型化,能够获得由学习产生的新能力。业务能够模型化为对业务输入而进行业务输出的装置。业务输入和业务输出分别成为能力获得模型的输入和输出。例如,在为运输业务的情况下,能够使用过去的运输实绩数据和每个该数据的周围环境信息来获得运输计划制定能力。在这种情况下,输入包括运输请求和周围环境信息、车辆信息。输出成为运输计划。例如,在为对人应对业务的情况下,通过将应对的内容模型化,能够获得新能力。在这种情况下,输入包括与各个业务相关联的信息和从作为应对的对方的人上获得的信息。输出成为应对行动。例如,能够输出字符串、利用GUI(图形用户界面)来应对、利用网络虚拟形象来应对、利用人型机器人来应对。

<本系统的优点>

对于请求人101来说,具有如下这样的优点。首先,若利用该系统100,则请求人101自己就无需实施机器学习,所以能够使用于将新能力追加至对象装置104中的开发业务更有效率。另外,请求人101只供给机器学习所需的信息即可,所以即使是不具有关于机器学习的知识和系统的人员,也容易利用本系统100。另外,学习结果以能力赋予数据103(将新能力追加至对象装置104中的数据)的形式提供,所以请求人101能够将通过机器学习而已获得的新能力简单地追加至自己的装置104中。

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

另外,由于在机器学习的过程中进行使用了对象装置模型和对象模型的模拟,所以即使没有对象装置104的实机,也能够进行考虑了对象装置104和对象105的行为、影响等的机器学习。如果不需要对象装置104的实机,则代行机器学习就变得极其容易实现。特别是在像生产设备这样大型的装置或正在运转的装置的情况下,在机器学习中利用实机并不现实。本学习服务在那种情况下也能利用,应用的自由度和便利性优异。

另外,通过利用请求接受部200的对话式用户界面,从而请求人101能够对服务提供者简单地委托想追加至自己的装置104中的能力的学习请求。另外,即使对服务提供者而言,也具有能够无遗漏地取得为进行机器学习所需的信息这样的优点。

另外,在本系统100中,由于将训练信息304中的一部分项目设为参数型项目而使请求人101输入信息,所以能够进行按照请求人101的希望的机器学习。在此,通过将参数型项目限定于训练信息304中的一部分,从而减轻请求人101的输入负担,实现了学习请求的容易性与学习的可定制性的兼顾。而且,通过以使其从选择项中选择的形式来使其进行请求人101的信息输入,从而减轻了请求人101的输入负担。

需要注意的是,上述的实施方式的构成只不过是示出了本发明的一具体例,并非旨在限定本发明的范围。本发明在不脱离其技术思想的范围内可采用各种具体构成。例如在上述实施方式中示出的系统构成、数据结构、用户界面、参数等是一个例子,能够根据机器学习的种类、学习目的、已获得的能力、对象装置的结构等来适当变更。

(附记1)

一种学习服务提供装置,其中,具备至少一个存储器和与所述存储器已连接的至少一个硬件处理器,所述硬件处理器从请求人接受用于进行追加至对象装置中的能力的机器学习所需的信息作为学习请求信息,根据从所述请求人接受的所述学习请求信息来进行机器学习,根据通过所述机器学习而产生的学习结果来生成能力赋予数据,该能力赋予数据是将作为所述学习结果而已获得的新能力追加至所述对象装置中的数据,将所述能力赋予数据提供给所述请求人。

(附记2)

一种学习服务提供方法,其中,具备至少一个存储器和与所述存储器已连接的至少一个硬件处理器的计算机执行:从请求人接受用于进行追加至对象装置中的能力的机器学习所需的信息作为学习请求信息的步骤;根据从所述请求人接受的所述学习请求信息而进行机器学习的步骤;根据通过所述机器学习所产生的学习结果来生成能力赋予数据的步骤,而该能力赋予数据是将作为所述学习结果而已获得的新能力追加至所述对象装置中的数据;以及将所述能力赋予数据提供给所述请求人的步骤。

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