推断程序、推断方法以及推断装置与流程

文档序号:19583055发布日期:2019-12-31 20:13阅读:185来源:国知局
推断程序、推断方法以及推断装置与流程

本发明涉及推断程序、推断方法以及推断装置。



背景技术:

以往,在灾害的分析、定制医疗等各种领域中,使用搜索用于实现某一状态(y)的输入参数(x)的模拟技术。例如,作为训练数据使用作为过去的模拟的执行结果的输入与输出的组,学习根据输出推断输入的推断器。而且,使用学习到的推断器,推断输出想要求出的输出(y)的输入(x)。

专利文献1:日本特开2011-185880号公报

专利文献2:日本特开2016-8564号公报

专利文献3:日本特开2004-62440号公报

然而,在上述技术中,在想要求出的值远离训练数据,而脱离推断器可推断的范围的情况下,推断精度劣化。

例如,在推断发生洪水等极端的状况(y)的参数(x)的情况下,极端的状况(y)不包含于过去的模拟结果的可能性较高,在这样的情况下,推断出的参数(x)与训练数据相距甚远,而可靠性降低。另外,在推断输出(y)与实际数据一致的参数(x)的情况下,实际数据未必包含于通过模拟器可实现的范围,存在脱离训练数据的可能性。此外,也考虑预先准备多种多样并且庞大的训练数据,但非常耗费时间,且不现实。



技术实现要素:

在一个侧面,目的在于提供能够提高推断精度的推断程序、推断方法以及推断装置。

在第一方案中,推断程序是使用第一推断器和第二推断器的推断程序,其中,上述第一推断器根据基于过去的数据学习的结果值来推断参数值,上述第二推断器根据参数值推断结果值,上述推断程序使计算机执行:根据由上述第一推断器和上述第二推断器使用特定的结果值、或者处于上述特定的结果值的附近的附近结果值推断出的重构值和所输入的结果值来计算重构误差。推断程序使计算机执行:搜索使根据上述输入的结果值和上述特定的结果值计算的代替误差与上述重构误差的和最小的第一结果值。推断程序使计算机执行:输出使用上述第一推断器根据上述第一结果值推断的参数值。

根据一个实施方式,能够提高推断精度。

附图说明

图1是表示实施例1的模拟装置的功能结构的功能框图。

图2是表示训练数据db中存储的训练数据的例子的图。

图3是表示测试数据db中存储的测试数据的例子的图。

图4是对假定的训练数据与测试数据的关系进行说明的图。

图5是对推断器的学习进行说明的图。

图6是对模拟进行说明的图。

图7是对重构误差的计算进行说明的图。

图8是对代替数据的生成进行说明的图。

图9是对实施例1的模拟进行说明的图。

图10是表示处理的流程的流程图。

图11是对推断值的比较进行说明的图。

图12是对推断器的学习的其它例子进行说明的图。

图13是表示硬件构成例的图。

具体实施方式

以下,基于附图对本申请所公开的推断程序、推断方法以及推断装置的实施例进行详细说明。此外,本发明并不被本实施例限定,各实施例能够在不矛盾的范围内适当地组合。

实施例1

实施例1的模拟装置10是用于对模拟器等的黑箱函数,高精度地推断与某个输出对应的输入的计算机装置。例如,模拟装置10用于使发生过去的模拟结果中未包含的洪水等极端的状况的参数的推断、输出与实际数据一致的参数的推断等。

一般而言,在作为简单的模拟器的输入参数的预测问题来考虑的情况下,以针对输出(y)的预测结果(x)的误差的最小化为目的来执行模拟。但是,实际上推断参数(x)的误差并不重要,而将(x)用于模拟器的情况下的结果s(x)与预测对象(y)的误差的最小化很重要。

因此,实施例1的模拟装置10不推断本来想要推断的数据,而是代替地推断处于可高精度地推断的范围内的相似数据。具体而言,模拟装置10不直接解决推断实际的推断对象(y)的问题,而置换地解决能够根据训练数据进行推断且推断尽可能接近(y)的其它的(y′)的问题。例如,模拟装置10进行将某个输入(x)应用于黑箱函数s(x)的情况下的误差(应用误差)的估计。而且,模拟装置10代替实际的推断对象(y),推断针对存在于被估计为应用误差较小的范围并处于(y)的附近的附近值亦即代替数据(y′)的输入(x)。

即,模拟装置10通过并用根据输入推断输出的推断器的学习以及根据输出推断输入的推断器的学习,估计可高精度地推断的输出的范围,即使在想要求出的值远离训练数据的集合,且脱离推断器可推断的范围的情况下,也抑制推断精度的劣化。

[功能结构]

图1是表示实施例1的模拟装置10的功能结构的功能框图。如图1所示,模拟装置10具有通信部11、存储部12、控制部20。此外,模拟装置10除了这些以外,也可以具有显示部、输入部等。

通信部11是控制其他装置之间的通信的处理部,例如是通信接口等。例如,通信部11从管理者终端等接收处理开始的指示,并受理训练数据、测试数据的输入,并将推断结果发送至管理者终端。

存储部12是存储程序、数据等的存储装置的一个例子,例如是存储器、硬盘等。存储部12对训练数据db13、测试数据db14、推断结果db15进行存储。

训练数据db13是作为训练数据存储过去的模拟的执行结果亦即输入和输出的组的数据库。图2是表示训练数据db13中存储的训练数据的例子的图。如图2所示,训练数据db13存储“输入、输出(y1,y2)”。“输入”是对模拟器等的未知的函数亦即黑箱函数(s(x))的输入,“输出”是将输入(x)输入至黑箱函数时的输出。在图2的例子中,示出向黑箱函数(s(x))输入了x=0.0时的模拟结果为(y1=0.4,y2=0.1)。此外,黑箱函数(s(x))是未知的函数,例如假定“y1=2x+ε,y2=x+ε,ε为噪声”等。

测试数据db14是存储假定的实际数据的数据库。图3是表示测试数据db14中存储的测试数据的例子的图。如图3所示,测试数据db14存储“输入、输出(y1,y2)”。“输入”是用于获得输出的输入值,“输出”是将输入输入至黑箱函数时的输出。如图3所示,由于输出是已知的,输入不清楚,所以在这里,学习根据黑箱函数(s(x))生成的训练数据,并求出生成尽可能接近测试数据的输出(y1,y2)的输入(x)。

在这里,对实施例1假定的训练数据与测试数据的关系进行说明。图4是对假定的训练数据与测试数据的关系进行说明的图。如图4所示,测试数据是远离训练数据的分布的输出值。因此,测试数据是由于脱离推断器可推断的范围,所以即使通过以往方法执行模拟,推断精度也变差的值。

推断结果db15是存储后述的控制部20的推断结果的数据库。例如,推断结果db15存储后述的合计误差小于阈值时的输入的推断器enc(y1,y2)的推断值。

控制部20是管理模拟装置10整体的处理部,例如是处理器等。该控制部20具有训练部21、输入推断部22、输出推断部23、以及代替数据生成部24。此外,训练部21、输入推断部22、输出推断部23以及代替数据生成部24是处理器所具有的电子电路的一个例子、处理器所执行的工序的一个例子。另外,代替数据生成部24是计算部、搜索部以及输出部的一个例子。

训练部21是使用训练数据学习输入的推断器enc(y),并使用训练数据学习输出的推断器dec(x)的处理部。图5是对推断器的学习进行说明的图。如图5所示,训练部21将训练数据db13中存储的训练数据的输出(y1,y2)代入输入的推断器enc(y1,y2),学习输入(x)。另外,训练部21将训练数据db13中存储的训练数据的输入(x)代入输出的推断器dec(x),学习输出(y1,y2)。此外,在实施例1中,作为各推断器使用线性学习器(简单的感知器),但并不限定于此,能够采用公知的各种学习器。

输入推断部22是使用输入的推断器enc(y),根据输出(y)来推断输入(x)的处理部。例如,输入推断部22将测试数据的输出(y1,y2)应用于通过训练部21学习的推断器enc(y),来推断输入(x)。而且,输入推断部22将推断出的输入(x)输出至输出推断部23。

输出推断部23是使用输出的推断器dec(x),根据输入(x)来推断输出(y)的处理部。例如,输出推断部23将从输入推断部22输入的(x)应用于通过训练部21学习的推断器dec(x),来推断输出(y)。而且,输出推断部23将推断出的输出(y)输出至代替数据生成部24。

代替数据生成部24是代替实际的推断对象(y),生成存在于估计为误差(应用误差)较小的范围的代替数据(y′),并输入至输入推断部22的处理部。另外,代替数据生成部24是通过最优化求出实际的推断对象(y)与代替数据(y′)之差亦即代替误差、以及(y′)与根据(y′)重构的(y″)之差亦即重构误差的总和(合计误差)最小的(y′)的处理部。

[模拟处理]

在这里,对实施例1的模拟进行说明。图6是对模拟进行说明的图。如图6的左图所示,代替数据生成部24估计与作为推断对象的(y)的误差亦即代替误差较小的代替数据(y′),并输入至输入推断部22。输入推断部22将所输入的代替数据(y′)应用于学习完毕的推断器enc(y),来推断输入(x)。并且,输出推断部23将推断出的输入(x)应用于学习完毕的推断器dec(x),来推断输出(y″)。

而且,代替数据生成部24计算代替数据(y′)与由推断器dec(x)推断出的重构数据(y″=dec(enc(y′)))之差亦即重构误差。接着,代替数据生成部24计算代替误差与重构误差的合计亦即合计误差。之后,代替数据生成部24在合计误差未收敛的情况下,计算合计误差变小的新的代替数据(y′),再次反复由推断器enc(y)以及推断器dec(x)进行的推断。而且,代替数据生成部24在合计误差收敛的情况下,作为推断结果输出此时的(x)。

此外,实施例1的模拟装置10由于并非以输入(x)的误差的最小化为目的,而是以推断出的enc(y)应用于模拟器的结果s(enc(y))的误差(合计误差为该估计)的最小化为目的,所以也可以变更作为推断对象的y。

在这里,对各数据与误差的关系进行说明。如图6的右图所示,作为预测对象的数据(y)是远离训练数据的位置的数据。因此,使用比预测对象(y)接近训练数据的代替数据(y′),来推断dec(x),并使用dec(x)来推断重构数据(y″=dec(enc(y′)))。在这里,预测对象(y)与代替数据(y′)的距离(例如欧几里得距离)是代替误差,代替数据(y′)与重构数据(y″)的距离是重构误差。

[重构误差的计算]

接下来,对重构误差的计算方法进行说明。图7是对重构误差的计算进行说明的图。如图7所示,输入推断部22将输入的推断器enc(y)应用于测试数据的输出(y1,y2),来推断输入(x)。例如,输入推断部22使用学习结果“x=-0.00732*y1+1.1763*y2-0.1249”,来计算输入(x=3.257)。

接着,输出推断部23将输入(x)应用于推断器dec(x),来推断输出(y1,y2)。例如,输出推断部23使用学习结果“y1=1.9171*x+0,3238,y2=0.9686*x+0.1286”,来计算输出(y1=6.569,y2=3.284)。

而且,代替数据生成部24计算测试数据的输出(y1,y2)与推断结果(y1=6.569,y2=3.284)的欧几里得距离亦即4.578,作为重构误差(l2)。而且,代替数据生成部24生成代替数据,并使由各推断器进行的推断处理执行,直到该重构误差(l2)成为阈值以下。

[代替数据的生成]

接着,对代替数据的生成进行说明。图8是对代替数据的生成进行说明的图。图8所示的菱形表示训练数据,带阴影的四方形表示测试数据(初始值),白色的四方形表示代替数据,三角形表示重构数据。代替数据生成部24以代替误差与重构误差相加所得的合计误差变小的方式,从测试数据(初始值)变更值(代替数据),并执行模拟(推断处理)。

在这里,代替数据生成部24通过最优化求出实际的推断对象(y)与代替数据(y′)之差(代替误差)、和代替数据(y′)与根据代替数据(y′)重构的重构数据(y″)之差(重构误差)的总和(合计误差)最小的(y′)。

例如,代替数据生成部24在训练数据的总数为阈值以下较少,认为代替误差的推断精度不充分的情况下,合计误差的计算也能够使用减小重构误差的权重后的加权和。更为详细而言,代替数据生成部24也能够如推断误差+0.8*重新合成误差=合计误差这样,减小重构误差的权重,来计算合计误差。

另外,代替数据生成部24在推断器enc、推断器dec构成为神经网络等可微分的函数的情况下,也能够使用针对代替数据(y′)的合计误差的梯度对(y′)进行最优化。更为详细而言,若将合计误差设为l=f(y),则在enc以及dec构成为神经网络等可微分的函数的情况下,f能够微分。在该情况下,对于某个y,为了减小l能够求出与y相加的微小的值(通常是矢量)。通过利用该性质从适当的y开始,求出针对y的合计误差l的梯度并沿梯度降低的方向使y依次移动,能够高效地求出l较小的y。作为这样的使用梯度的方法(梯度法)能够使用最陡下降法的更新公式等,但能够使用其它各种方法的更新公式。

[具体例]

接下来,对模拟的具体例进行说明。图9是对实施例1的模拟进行说明的图。如图9所示,首先,输入推断部22将输入的推断器enc(y)应用于测试数据的输出y(y1=2.0,y2=3.0),来推断输入(x)=3.257,输出推断部23将输入(x)应用于推断器dec(x),来推断输出y″(y1,y2)。其结果,代替数据生成部24计算输出y与输出y″的重构误差(4.578)和代替误差(0),并计算合计误差(4.578)。

在这里,由于合计误差(4.578)为阈值(例如2)以上,所以代替数据生成部24使用上述的方法,以重构误差变小的方式,生成代替数据y′(y1=2.0,y2=2.5)。而且,输入推断部22将输入的推断器enc(y)应用于代替数据y′(y1=2.0,y2=2.5),来推断输入(x)=2.669,输出推断部23将输入(x)应用于推断器dec(x),来推断输出y″(y1,y2)。其结果,代替数据生成部24计算输出y′与输出y″的重构误差(3.448)和代替误差(0.500),并计算合计误差(3.948)。

像这样,代替数据生成部24依次生成代替数据,反复进行由各推断器进行的推断,直到合计误差小于阈值。而且,在代替数据y′为(y1=3.0,y2=1.5)时,由于合计误差为1.849小于阈值,所以将此时的输入的推断器enc(y1,y2)的推断值“1.420”作为推断结果输出至推断结果db15。此外,在知道测试数据为远离训练数据的数据的情况下,也能够不执行使用测试数据的推断,在处理开始后首先生成代替数据,接着开始利用代替数据的推断。

[处理的流程]

图10是表示处理的流程的流程图。如图10所示,训练部21使用训练数据学习输入的推断器enc(s101),并使用训练数据学习输出的推断器dec(s102)。

之后,代替数据生成部24根据测试数据y生成代替数据y′(s103)。然后,输入推断部22使用输入的推断器enc(y),推断针对代替数据y′的输入x(s104),输出推断器23使用输出的推断器dec(x),推断针对输入x的y″(s105)。

之后,代替数据生成部24计算y与y′之差亦即代替误差(s106),来计算y′与y″之差亦即重构误差(s107)。而且,代替数据生成部24计算代替误差与重构误差的总和l(s108),在l不收敛的情况下(s109:否),在l变小的方向上对代替数据y′进行修正(s110),并执行s104以后的处理。

另一方面,代替数据生成部24在l收敛的情况下(s109:是),输出此时的x(s111)。

[效果]

如上所述,模拟装置10在利用推断器根据结果值推断参数值的推断方法中,在能够使用结果值的附近的值的情况下,能够使用推断精度较高的附近的值,来推断参数值。即,模拟装置10通过将根据输入推断输出的学习与根据输出推断输入的学习并用,能够高精度地估计可推断的输出的范围,针对离群值的推断变得可靠,能够提高推断精度。

图11是对推断值的比较进行说明的图。如图11所示,与针对远离训练数据的测试数据简单地使用输入的推断值的情况相比,模拟装置10在应用于黑箱函数时输出接近测试数据的值。换句话说,从使用测试数据(y1=2.0,y2=3.0)的推断结果的合计误差除去噪声后的应用误差为4.522。另一方面,在使用根据测试数据依次生成的代替数据的推断结果的情况下,能够将应用误差最终减小到1.789,与通常的方法相比较精度提高。

换句话说,在进行使发生过去的模拟结果所包含的洪水等极端的状况的参数推断的情况下,如通常的方法那样,即使直接推断出极端的状况,推断精度也降低,但通过推断使发生接近洪水的状况的输入(例如雨量),能够抑制推断精度的降低。

实施例2

以上,对本发明的实施例进行了说明,但本发明除了上述的实施例以外,也可以以各种不同的方式来实施。因此,以下对不同的实施例进行说明。

[推断器的学习]

例如,模拟装置10也能够使用autoencoder方式,在学习时,以针对训练数据的重构误差变小的方式,学习推断器enc以及推断器dec。图12是对推断器的学习的其它例子进行说明的图。在autoencoder方式下作为训练数据,能够使用如下2个:(1)针对输入x的输出y的组、(2)输入不清楚的输出y(可选)。

因此,如图12所示,模拟装置10能够执行3个学习。例如,如图12的(a)所示,模拟装置10使用(1)的数据,以针对输出y的输入的推断值x′=enc(y)与x的误差变小的方式,学习推断器enc。另外,如图12的(b)所示,模拟装置10使用(1)的数据,以针对输入x的输出的推断值y′=dec(x)与y的误差变小的方式,学习推断器dec。

另外,如图12的(c)所示,模拟装置10使用(1)的y和(2)的数据,以针对对于输出y的输入的推断值x′=enc(y)的输出的推断值y′=dec(x′)=dec(enc(y))与y的误差变小的方式,学习推断器enc和推断器dec。通过这样,模拟装置10能够进一步提高推断精度。

[代替数据的生成]

例如,模拟装置10能够使用除了上述的方法以外的各种方法,来进行代替数据的生成。例如,模拟装置10能够使用近似值、平均值等用直线表示训练数据的集合,并以测试数据接近该直线的方式,进行代替数据的生成。

[系统]

对于上述文件中、附图中示出的处理顺序、控制顺序、具体的名称、包含各种数据、参数的信息除了特别提及的情况以外能够任意地变更。

另外,图示出的各装置的各构成要素是功能概念,无需一定在物理上如图示那样构成。即,各装置的分散或统合的具体的方式未必是图示的结构。换句话说,能够根据各种负荷、使用状况等,以任意的单位在功能上或者物理上分散或统合地构成其全部或者一部分。进一步,由各装置进行的各处理功能的全部或者任意的一部分可以通过cpu以及由该cpu解析执行的程序来实现、或者作为由有线逻辑构成的硬件来实现。

[硬件结构]

图13是表示硬件构成例的图。如图13所示,模拟装置10具有通信接口10a、hdd(harddiskdrive:硬盘驱动器)10b、存储器10c、处理器10d。

通信接口10a是控制其他装置的通信的网络接口卡等。hdd10b是存储程序、数据等的存储装置的一个例子。

作为存储器10c的一个例子,可举出sdram(synchronousdynamicrandomaccessmemory:同步动态随机存取存储器)等ram(randomaccessmemory:随机存取存储器)、rom(readonlymemory:只读存储器)、闪存等。作为处理器10d的一个例子,可举出cpu(centralprocessingunit:中央处理器)、dsp(digitalsignalprocessor:数字信号处理器)、fpga(fieldprogrammablegatearray:现场可编程门阵列)、pld(programmablelogicdevice:可编程逻辑器件)等。

另外,模拟装置10作为通过读出程序并执行来执行推断方法的信息处理装置动作。换句话说,模拟装置10执行程序,该程序执行与训练部21、输入推断部22、输出推断部23以及代替数据生成部24相同的功能。其结果,模拟装置10能够执行执行与训练部21、输入推断部22、输出推断部23以及代替数据生成部24相同的功能的工序。此外,该其他实施例中所说的程序并不限于由模拟装置10执行。例如,在其他计算机或者服务器执行程序的情况下、它们配合执行程序的情况下,也同样能够应用本发明。

该程序能够经由互联网等网络分配。另外,该程序能够记录于硬盘、软盘(fd)、cd-rom、mo(magneto-opticaldisk:磁光盘)、dvd(digitalversatiledisc:数字多功能光盘)等通过计算机可读取的记录介质,通过计算机从记录介质读出来执行。

附图标记说明

10…模拟装置;11…通信部;12…存储部;13…训练数据db;14…测试数据db;15…推断结果db;20…控制部;21…训练部;22…输入推断部;23…输出推断部;24…代替数据生成部。

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