机器学习装置的制作方法

文档序号:18901908发布日期:2019-10-18 22:03阅读:199来源:国知局
机器学习装置的制作方法

本发明涉及机器学习装置。



背景技术:

在使用神经网络的内燃机的控制装置中,如下的内燃机的控制装置是公知的:其基于内燃机转速、吸入空气量等内燃机的运转参数的值,以使向燃烧室内的吸入气体量与实际的向燃烧室内的吸入气体量一致的方式预先学习神经网络的权重,在内燃机运转时,使用学习了权重的神经网络,根据内燃机的运转参数的值来推定向燃烧室内的吸入气体量(例如参照专利文献1)。

现有技术文献

专利文献

专利文献1:日本特开2012-112277号公报



技术实现要素:

发明所要解决的课题

另外,内燃机转速这样的与内燃机相关的特定类别的运转参数的值的使用范围能够根据内燃机的种类而预先设想,因此,通常,对于内燃机的运转参数的值的预先设想的使用范围,以使神经网络的输出值与向燃烧室内的实际的吸入气体量这样的实际的值之差变小的方式预先学习神经网络的权重。然而,实际上,内燃机的运转参数的值有时会成为预先设想的使用范围外,在该情况下,对于预先设想的使用范围外,由于未进行基于实际的值的学习,所以存在使用神经网络运算出的输出值会成为从实际的值大幅背离的值这一问题。这样的问题不限于内燃机的领域,而会在成为机器学习的对象的各种领域的机器中产生。

为了解决上述问题,根据第一个发明,提供一种机器学习装置,用于使用神经网络来输出相对于机器的运转参数的值的输出值,其中,预先设定有与上述的机器相关的特定类别的运转参数的值的范围,并且预先设定有与上述的机器相关的特定类别的运转参数的值的范围所对应的神经网络的隐藏层的节点的个数,在新取得的与上述的机器相关的特定类别的运转参数的值为预先设定的范围外时,使神经网络的输出层的前一个隐藏层的节点的个数增大,使用对新取得的与上述的机器相关的特定类别的运转参数的值通过实测而得到的训练数据及对预先设定的范围内的上述的机器的运转参数的值通过实测而得到的训练数据来学习神经网络的权重,使用学习了权重的神经网络来输出相对于与上述的机器相关的特定类别的运转参数的值的输出值。

为了解决上述问题,根据第二个发明,提供一种机器学习装置,用于使用神经网络来输出相对于机器的运转参数的值的输出值,其中,预先设定有与上述的机器相关的多个类别的运转参数的值的范围,并且预先设定有与上述的机器相关的多个类别的运转参数的值的范围所对应的神经网络的隐藏层的节点的个数,在新取得的与上述的机器相关的多个类别的运转参数的值为预先设定的范围外时,使神经网络的输出层的前一个隐藏层的节点的个数增大,使用对新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据及对预先设定的范围内的上述的机器的运转参数的值通过实测而得到的训练数据来学习神经网络的权重,使用学习了权重的神经网络来输出相对于与上述的机器相关的多个类别的运转参数的值的输出值。

为了解决上述问题,根据第三个发明,提供一种机器学习装置,用于使用神经网络来输出相对于机器的运转参数的值的输出值,其中,预先设定有与上述的机器相关的多个类别的运转参数的值的范围,并且预先形成有与上述的机器相关的多个类别的运转参数的值的范围所对应的神经网络,在新取得的与上述的机器相关的多个类别的运转参数的值中的至少一个类别的运转参数的值为预先设定的范围外时,形成新的神经网络,使用对新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据来学习新的神经网络的权重,使用学习了权重的神经网络来输出相对于与上述的机器相关的多个类别的运转参数的值的输出值。

发明效果

在上述的各发明中,在新取得的机器的运转参数的值为预先设定的范围外时,通过使神经网络的隐藏层的节点的个数增大或者通过制作新的神经网络,能够抑制在机器的运转参数的值成为了预先设定的范围外的值时,使用神经网络运算出的输出值成为从实际的值大幅背离的值。

附图说明

图1是内燃机的整体图。

图2是示出神经网络的一例的图。

图3a及图3b是示出sigmoid函数σ的值的变化的图。

图4a及图4b分别是示出神经网络和来自隐藏层的节点的输出值的图。

图5a及图5b分别是示出来自隐藏层的节点的输出值和来自输出层的节点的输出值的图。

图6a及图6b分别是示出神经网络和来自输出层的节点的输出值的图。

图7a及图7b是用于说明通过本申请发明所要解决的课题的图。

图8a及图8b分别是示出神经网络和神经网络的输入值与输出值的关系的图。

图9是示出神经网络的图。

图10是用于执行学习处理的流程图。

图11是示出神经网络的变形例的图。

图12是示出用于执行学习处理的另一实施例的流程图。

图13是示出神经网络的图。

图14a及图14b是示出内燃机转速等的预先设定的范围的图。

图15是示出神经网络的变形例的图。

图16是示出用于执行学习处理的又一实施例的流程图。

图17是示出根据内燃机的运转参数的值而划分出的已学习划分区域的图。

图18a、图18b及图18c分别是示出训练数据相对于内燃机转速和点火正时的分布、训练数据相对于点火正时和节气门开度的分布及训练数据与学习后的输出值的关系的图。

图19a及图19b是示出训练数据与学习后的输出值的关系的图。

图20是用于进行空调的自动调整的机器学习装置的整体图。

图21是示出神经网络的图。

图22a及图22b是示出气温等的预先设定的范围的图。

图23是示出用于执行学习处理的又一实施例的流程图。

图24a及图24b是示出气温等的预先设定的范围的图。

图25是示出用于执行学习处理的又一实施例的流程图。

图26是用于推定二次电池的劣化度的机器学习装置的整体图。

图27是示出神经网络的图。

图28a及图28b是示出气温等的预先设定的范围的图。

图29是用于执行算出处理的流程图。

图30是用于执行训练数据取得处理的流程图。

图31是示出用于执行学习处理的又一实施例的流程图。

图32a及图32b是示出气温等的预先设定的范围的图。

图33是示出用于执行学习处理的又一实施例的流程图。

具体实施方式

<内燃机的整体结构>

首先,对将本发明的机器学习装置应用于内燃机的情况进行说明。参照示出内燃机的整体图的图1,1表示内燃机主体,2表示各气缸的燃烧室,3表示配置于各气缸的燃烧室2内的火花塞,4表示用于向各气缸供给燃料(例如,汽油)的燃料喷射阀,5表示平衡罐,6表示进气支管,7表示排气歧管。平衡罐5经由进气管道8而连结于排气涡轮增压器9的压缩机9a的出口,压缩机9a的入口经由吸入空气量检测器10而连结于空气滤清器11。在进气管道8内配置有由致动器13驱动的节气门12,在节气门12安装有用于检测节气门开度的节气门开度传感器14。另外,在进气管道8周围配置有用于冷却在进气管道8内流动的吸入空气的中冷器15。

另一方面,排气歧管7连结于排气涡轮增压器9的排气涡轮机9b的入口,排气涡轮机9b的出口经由排气管16而连结于排气净化用催化转换器17。排气歧管7与平衡罐5经由废气再循环(以下,称作egr)通路18而互相连结,在egr通路18内配置有egr控制阀19。各燃料喷射阀4连结于燃料分配管20,该燃料分配管20经由燃料泵21而连结于燃料箱22。在排气管16内配置有用于检测废气中的nox浓度的nox传感器23。另外,在空气滤清器11内配置有用于检测大气温的大气温传感器24。

电子控制单元30由数字计算机构成,具备通过双向性总线31而互相连接的rom(只读存储器)32、ram(随机存取存储器)33、cpu(微处理器)34、输入端口35及输出端口36。吸入空气量检测器10、节气门开度传感器14、nox传感器23及大气温传感器24的输出信号经由对应的ad变换器37而向输入端口35输入。在加速器踏板40上连接有产生与加速器踏板40的踩踏量成比例的输出电压的负荷传感器41,负荷传感器41的输出电压经由对应的ad变换器37而向输入端口35输入。而且,在输入端口35上连接有每当曲轴旋转例如30°时产生输出脉冲的曲轴角传感器42。在cpu34内,基于曲轴角传感器42的输出信号来算出内燃机转速。另一方面,输出端口36经由对应的驱动电路38而连接于火花塞3、燃料喷射阀4、节气门驱动用致动器13、egr控制阀19及燃料泵21。

<神经网络的概要>

在本发明的实施例中,使用神经网络来推定表示内燃机的性能的各种值。图2示出了该神经网络的一例。图2中的圆形记号表示人工神经元,在神经网络中,该人工神经元通常被称作节点或单元(在本申请中称作节点)。在图2中,l=1表示输入层,l=2及l=3表示隐藏层,l=4表示输出层。另外,在图2中,x1及x2表示来自输入层(l=1)的各节点的输出值,y表示来自输出层(l=4)的节点的输出值,z1、z2及z3表示来自隐藏层(l=2)的各节点的输出值,z1及z2表示来自隐藏层(l=3)的各节点的输出值。需要说明的是,隐藏层的层数可以设为1个或任意的个数,输入层的节点的个数及隐藏层的节点的个数也可以设为任意的个数。需要说明的是,在图2中虽然示出了输出层的节点的个数为1个的情况,但输出层的节点的个数可以设为2个以上的多个。

在输入层的各节点中,输入原样输出。另一方面,对隐藏层(l=2)的各节点输入输入层的各节点的输出值x1及x2,在隐藏层(l=2)的各节点中,使用各自对应的权重w及偏倚b来算出总输入值u。例如,在图2中的隐藏层(l=2)的zk(k=1,2,3)所示的节点中算出的总输入值uk成为下式这样。

接着,该总输入值uk由活性化函数f进行变换,从隐藏层(l=2)的zk所示的节点作为输出值zk(=f(uk))而输出。关于隐藏层(l=2)的其他节点也是同样的。另一方面,对隐藏层(l=3)的各节点输入隐藏层(l=2)的各节点的输出值z1、z2及z3,在隐藏层(l=3)的各节点中,使用各自对应的权重w及偏倚b来算出总输入值u(σz·w+b)。该总输入值u同样由活性化函数进行变换,从隐藏层(l=3)的各节点作为输出值z1、z2而输出,需要说明的是,在本发明的实施例中,使用sigmoid函数σ作为该活性化函数。

另一方面,对输出层(l=4)的节点输入隐藏层(l=3)的各节点的输出值z1及z2,在输出层的节点中,使用各自对应的权重w及偏倚b来算出总输入值u(σz·w+b),或者,仅使用各自对应的权重w来算出总输入值u(σz·w)。在本发明的实施例中,在输出层的节点中使用恒等函数,因此,从输出层的节点将在输出层的节点中算出的总输入值u直接作为输出值y而输出。

<基于神经网络的函数的表现>

当使用神经网络时,能够表现任意的函数,接着,对此进行简单说明。首先,对用作活性化函数的sigmoid函数σ进行说明,sigmoid函数σ由σ(x)=1/(1+exp(-x))表示,如图3a所示,根据x的值而取0与1之间的值。在此,若将x置换为wx+b,则sigmoid函数σ由σ(wx+b)=1/(1+exp(-wx-b))表示。在此,若增大w的值,则如图3b中的曲线σ1、σ2、σ3所示,sigmoid函数σ(wx+b)的曲线部分的倾斜逐渐变陡,若使w的值无限大,则如图3b中的曲线σ4所示,sigmoid函数σ(wx+b)在成为x=-b/w(成为wx+b=0的x,即,成为σ(wx+b)=0.5的x处,如图3b所示,呈阶梯状变化。若利用这样的sigmoid函数σ的性质,则能够使用神经网络来表现任意的函数。

例如,使用如图4a所示的由1个节点构成的输入层(l=1)、由2个节点构成的隐藏层(l=2)及由1个节点构成的输出层(l=3)所构成的神经网络,能够表现近似于二次函数的函数。需要说明的是,在该情况下,即使使输出层(l=3)的个数为多个也能够表现任意的函数,但为了容易理解,以输出层(l=3)的节点的个数为一个的情况为例来说明。在图4a所示的神经网络中,如图4a所示,对输入层(l=1)的节点输入输入值x,对隐藏层(l=2)中的z1所示的节点输入使用权重w1(l2)及偏倚b1算出的输入值u=x·w1(l2)+b1。该输入值u由sigmoid函数σ(x·w1(l2)+b1)进行变换,作为输出值z1而输出。同样,对隐藏层(l=2)中的z2所示的节点输入使用权重w2(l2)及偏倚b2算出的输入值u=x·w2(l2)+b2,该输入值u由sigmoid函数σ(x·w2(l2)+b2)进行变换,作为输出值z2而输出。

另一方面,对输出层(l=3)的节点输入隐藏层(l=2)的各节点的输出值z1及z2,在输出层的节点中,使用各自对应的权重w1(y)及w2(y)来算出总输入值u(σz·w=z1·w1(y)+z2·w2(y))。如前所述,在本发明的实施例中,在输出层的节点中使用恒等函数,因此,从输出层的节点将在输出层的节点中算出的总输入值u直接作为输出值y而输出。

图4b的(i)示出了以在x=0处sigmoid函数σ(x·w1(l2)+b1)的值成为大致零的方式设定了权重w1(l2)及偏倚b1时的来自隐藏层(l=2)的节点的输出值z1。另一方面,在sigmoid函数σ(x·w2(l2)+b2)中,若例如使权重w2(l2)为负的值,则sigmoid函数σ(x·w2(l2)+b2)的曲线的形状如图4b的(ii)所示,成为伴随于x的增大而减小的形状。图4b的(ii)示出了以在x=0处sigmoid函数σ(x·w2(l2)+b2)的值成为大致零的方式设定了权重w2(l2)及偏倚b2时的来自隐藏层(l=2)的节点的输出值z2的变化。

另一方面,在图4b的(iii)中,用实线示出了来自隐藏层(l=2)的各节点的输出值z1与z2之和(z1+z2)。需要说明的是,如图4a所示,对各输出值z1、z2乘以各自对应的权重w1(y)及w2(y),在图4b的(iii)中,用虚线a示出了w1(y)、w2(y)>1且w1(y)≈w2(y)时的输出值y的变化。而且,在图4b的(iii)中,用单点划线b示出了w1(y)、w2(y)>1且w1(y)>w2(y)时的输出值y的变化,在图4b的(iii)中,用单点划线c示出了w1(y)、w2(y)>1且w1(y)<w2(y)时的输出值y的变化。在图4b的(iii)中,w所示的范围内的虚线a的形状表示如y=ax2(a是系数)所示的近似于二次函数的曲线,因此可知,通过使用如图4a所示的神经网络,能够表现近似于二次函数的函数。

另一方面,图5a示出了通过增大图4a中的权重w1(l2)及w2(l2)的值而使sigmoid函数σ的值如图3b所示那样呈阶梯状变化的情况。图5a的(i)示出了以在x=-b1/w1(l2)处sigmoid函数σ(x·w1(l2)+b1)的值呈阶梯状增大的方式设定了权重w1(l2)及偏倚b1时的来自隐藏层(l=2)的节点的输出值z1。另外,图5a的(ii)示出了以在比x=-b1/w1(l2)稍大的x=-b2/w2(l2)处sigmoid函数σ(x·w2(l2)+b2)的值呈阶梯状减小的方式设定了权重w2(l2)及偏倚b2时的来自隐藏层(l=2)的节点的输出值z2。另外,在图5a的(iii)中,用实线示出了来自隐藏层(l=2)的各节点的输出值z1与z2之和(z1+z2)。如图4a所示,对各输出值z1、z2乘以各自对应的权重w1(y)及w2(y),在图5a的(iii)中,用虚线示出了w1(y)、w2(y)>1时的输出值y。

这样,在图4a所示的神经网络中,通过隐藏层(l=2)的一对节点,得到如图5a的(iii)所示的长条状的输出值y。因此,若增大隐藏层(l=2)的成对的节点数,适当设定隐藏层(l=2)的各节点处的权重w及偏倚b的值,则能够表现如图5b中的虚线的曲线所示的近似函数y=f(x)的函数。需要说明的是,在图5b中,虽然以各长条相接的方式描绘,但实际上各长条有时会局部重叠。另外,由于实际上w的值并非无限大,所以各长条不成为准确的长条状,而成为图3b中的σ3所示的曲线部分的上半部分那样的曲线状。需要说明的是,虽然省略详细的说明,但如图6a所示,若对于不同的两个输入值xi及x2在隐藏层(l=2)中设置各自对应的一对节点,则如图6b所示,得到与输入值xi及x2对应的柱状的输出值y。在该情况下,可知,若对于各输入值xi、x2在隐藏层(l=2)设置许多成对的节点,则分别得到与不同的输入值xi及x2对应的多个柱状的输出值y,因此,能够表现表示输入值xi及x2与输出值y的关系的函数。需要说明的是,即使在存在不同的三个以上的输入值x的情况下,也同样能够表现表示输入值x与输出值y的关系的函数。

<神经网络中的学习>

另一方面,在本发明的实施例中,使用误差反向传播法来学习神经网络内的各权重w的值及偏倚b的值。该误差反向传播法是周知的,因此,关于误差反向传播法,以下简单说明其概要。需要说明的是,偏倚b是权重w的一种,因此,在以下的说明中,偏倚b被设为权重w的一个。在如图2所示的神经网络中,当将向l=2、l=3或l=4的各层的节点的输入值u(l)中的权重用w(l)表示时,误差函数e对权重w(l)的微分即梯度若改写则成为下式所示那样。

在此,因此若设为则上述(1)式能够用下式表示。

在此,当u(l)变动时,通过下一层的总输入值u(l+1)的变化而引起误差函数e的变动,因此δ(l)能够用下式表示。

在此,若表示为z(l)=f(u(l)),则上述(3)式的右边出现的输入值uk(l+1)能够用下式表示。

在此,上述(3)式的右边第一项是δ(l+1),上述(3)式的右边第二项能够用下式表示。

因此,δ(l)由下式表示。

即,

即,当δ(l+1)求出后,能够求出δ(l)

在对某输入值求出了训练数据yt,相对于该输入值的来自输出层的输出值是y的情况下,在使用平方误差作为误差函数的情况下,平方误差e以e=1/2(y-yt)2求出。在该情况下,在图2的输出层(l=4)的节点中,输出值y=f(u(l)),因此,在该情况下,输出层(l=4)的节点处的δ(l)的值成为下式这样。

在本发明的实施例中,如前所述,f(u(l))是恒等函数,f’(u(l))=1。因此,δ(l)=y-yt,δ(l)求出。

当δ(l)求出后,使用上式(6)求出前层的δ(l-1)。这样依次求出前层的δ,使用这些δ的值,根据上式(2),关于各权重w求出误差函数e的微分,即梯度当求出梯度后,使用该梯度以使误差函数e的值减小的方式更新权重w的值。即,进行权重w的值的学习。需要说明的是,在输出层(l=4)具有多个节点的情况下,若将来自各节点的输出值设为y1、y2…,将对应的训练数据设为yt1、yt2…,则作为误差函数e,使用以下的平方和误差e。

<本发明的实施例>

接着,参照图7a~图10,对本发明的机器学习装置的第一实施例进行说明。在本发明的第一实施例中,如图4a所示,使用包含一个输入层(l=1)、由一层构成的隐藏层(l=2)及一个输出层(l=3)的神经网络。另外,该第一实施例示出了使用如图4a所示的神经网络以使输出值y由输入值x的二次函数表示的方式进行了神经网络的权重的学习的情况。需要说明的是,在图7a~图8b中,虚线表示真正的二次函数的波形,涂黑的圆表示训练数据,环状的圆表示以使对应于输入值x的输出值y与训练数据之差变小的方式进行了神经网络的权重的学习后的输出值y,实线的曲线表示学习结束后的输入值x与输出值y的关系。另外,在图7a~图8b中,a与b之间即r表示输入值x的预先设定的范围。

图7a及图7b是用于说明本申请发明所要解决的课题的图,因此,首先,参照图7a及图7b,对本申请发明所要解决的课题进行说明。图7a示出了如下情况:使用如图4a所示那样隐藏层(l=2)的节点的个数是2个的神经网络,对于预先设定的范围r内的输入值x,以使输出量y成为输入值x的二次函数y=ax2(a是常数)的方式学习了神经网络的权重。如图7a所示,即使在神经网络的隐藏层(l=2)仅具有2个节点的情况下,在输入值x处于预先设定的范围r内的情况下,也如实线所示,表现接近于二次函数的函数。

即,在关于输入值x的预先设定的范围r进行了学习的情况下,关于预先设定的范围r,通过多个sigmoid函数σ的曲线部分的合适的组合,输出值y表现为接近于二次函数的函数。然而,关于输入值x的预先设定的范围r外,由于未进行学习,所以如实线所示,sigmoid函数σ大幅变化的曲线部分的两端的直线部分直接作为输出值y而出现。因此,学习完成后的输出值y如图7a中的实线所示,在输入值x的预先设定的范围r内,以接近于二次函数的函数的形式出现,在输入值x的预先设定的范围r外,以相对于输入值x几乎不变的接近于直线的形式出现。因此,如图7a所示,在输入值x的预先设定的范围r外,输出值y相对于虚线所示的2次曲线大幅背离。

另一方面,图7b示出了如下情况:在输入值x例如如图7b中的x0所示那样成为了输入值x的预先设定的范围r外的情况下,将输入值x为x0时的输出值y0也包含于训练数据,学习了神经网络的权重。这样,在也包含输入值x的预先设定的范围r外的输出值y0而进行了学习的情况下,图4b的z1所示的sigmoid函数σ的成为z1=1的直线部分以包含输出值y0的方式上升,图4b的z2所示的sigmoid函数σ整体向右移动并且sigmoid函数σ的值整体变低,因此如图7b中的实线所示,在预先设定的范围r内,学习结束后的输出值y的值相对于2次曲线大幅背离。这样,在成为了输入值x的预先设定的范围r外的情况下,无法得到合适的输出值y。

但是,弄清楚了,在该情况下,若增大神经网络的隐藏层(l=2)的节点的个数,则即使在输入值x成为了预先设定的范围r外的情况下,也能够得到合适的输出值y。接着,参照示出本发明的第一实施例的图8a及图8b来对此进行说明。图8b示出了在如图8a所示那样将神经网络的隐藏层(l=2)的节点的个数从2个增大为3个的状态下将输入值x为x0时的输出值y0也包含于训练数据而学习了神经网络的权重时的学习结果。当这样增大神经网络的隐藏层(l=2)的节点的个数时,如图8b中的实线所示,输出值y的值与虚线所示的2次曲线重叠。因此,如图8b所示,可知,即使在输入值x成为了预先设想的使用范围r外的情况下,通过增大神经网络的隐藏层(l=2)的节点的个数,也能够得到合适的输出值y。于是,在本发明的第一实施例中,在输入值x成为了预先设定的范围r外的情况下,使神经网络的隐藏层(l=2)的节点的个数增大。

接着,对图7a~图8b所示的输入值x及输出值y的具体的一例进行说明。在内燃机的领域中,在将与内燃机相关的特定类别的运转参数的值设为输入值x时,实际的输出量y有时成为输入值x的二次函数的形式,作为这样的情况的一例,存在与内燃机相关的特定类别的运转参数的值即输入值x是内燃机转速n(rpm)且输出量y是排气损失量的情况。在该情况下,内燃机转速n的使用范围当内燃机确定时与之相应地确定,因此,内燃机转速n的范围预先设定。另一方面,排气损失量表示从内燃机燃烧室排出的热能量,与从内燃机燃烧室排出的废气量成比例,与从内燃机燃烧室排出的废气温与外气温的温度差成比例。该排气损失量基于实际使内燃机运转时的气体温度等的检测值而算出,因此,该算出的排气损失量表示通过实测而得到的值。

在该具体的一例中,在输入值x即内燃机转速n为预先设定的范围r内时,使用通过实测而得到的训练数据,以使输出值y与对应于输入值x的训练数据之差变小的方式学习神经网络的权重。即,在与内燃机相关的特定类别的运转参数的值为预先设定的范围r内时,使用通过实测而得到的训练数据,以使输出值y与对应于与内燃机相关的特定类别的运转参数的值的训练数据之差变小的方式学习神经网络的权重。另一方面,在输入值x即内燃机转速n为预先设定的范围外时,增大神经网络的隐藏层的节点的个数,并且使用对新取得的输入值x即内燃机转速n通过实测而得到的训练数据,以使输出值y与对应于输入值x的训练数据之差变小的方式学习神经网络的权重。即,在与内燃机相关的特定类别的运转参数的值为预先设定的范围外时,增大神经网络的隐藏层的节点的个数,并且使用对新取得的与内燃机相关的特定类别的运转参数的值通过实测而得到的训练数据,以使输出值y与对应于与内燃机相关的特定类别的运转参数的值的训练数据之差变小的方式学习神经网络的权重。因此,在该情况下,即使内燃机转速n变得比预先设定的范围r高,也能够比较准确地推定排气损失量。

需要说明的是,本发明的第一实施例也能够应用于如图9所示的具有多个隐藏层(l=2及l=3)的神经网络。在如图9所示的神经网络中,根据输出层(l=4)的前一个隐藏层(l=3)的节点的输出值z1、z2,从输出层(l=4)输出的函数的形式确定。即,输出值y能够由何种函数表现受到输出层(l=4)的前一个隐藏层(l=3)的节点的个数支配。因此,在如图9所示的神经网络中,在增大隐藏层的节点的个数时,如图9所示,增大输出层(l=4)的前一个隐藏层(l=3)的节点的个数。

在上述的第一实施例中,对预先设定的范围r内的各种输入值x实测出的排气损失量作为训练数据而事先求出,即,对预先设定的范围r内的与内燃机相关的特定类别的运转参数的值通过实测而事先求出了训练数据,根据这些与内燃机相关的特定类别的运转参数的值及训练数据来决定神经网络的构造,以使输出值y与对应于与内燃机相关的特定类别的运转参数的值的训练数据之差变小的方式事先学习神经网络的权重。对该预先设定的范围r内的与内燃机相关的特定类别的运转参数的值通过实测而事先求出的训练数据存储于电子控制单元30的存储部。在该第一实施例中,使用与在事先学习中使用的神经网络相同构造的神经网络,使用学习完成时的神经网络的权重,在车辆运转中以车载方式进一步进行学习。图10示出了该以车载方式进行的第一实施例的学习处理例程。需要说明的是,图10所示的学习处理例程通过每隔一定时间(例如每隔一秒)的中断来执行。

参照图10,首先,在步骤101中,读入存储于电子控制单元30的存储部的已学习的权重、在事先的学习中使用的训练数据即对预先设定的范围r内的与内燃机相关的特定类别的运转参数的值通过实测而事先求出的训练数据、表示输入数据的范围r即与内燃机相关的特定类别的运转参数的值的预先设定的范围的值a、b。该已学习的权重用作权重的初始值。接着,在步骤102中,读入在事先的学习中使用的神经网络的输出层的前一个隐藏层的节点的个数k。接着,进入步骤103,取得新的输入值x即新的与内燃机相关的特定类别的运转参数的值,该新的输入值x即新的与内燃机相关的特定类别的运转参数的值存储于电子控制单元30的存储部。而且,在步骤103中,将相对于新的输入值x的排气损出量的实测值作为训练数据存储于电子控制单元30的存储部。即,在步骤103中,将对新取得的与内燃机相关的特定类别的运转参数的值通过实测而得到的训练数据存储于电子控制单元30的存储部。

接着,在步骤104中,判别新的输入值x即新取得的与内燃机相关的特定类别的运转参数的值是否处于表示预先设定的范围r的a、b之间,即,新的输入值x是否为a以上且b以下。在新的输入值x处于表示预先设定的范围r的a、b之间时,进入步骤105,将输入值x即新取得的与内燃机相关的特定类别的运转参数的值向神经网络的输入层的节点输入,基于从神经网络的输出层的节点输出的输出值y和对新取得的与内燃机相关的特定类别的运转参数的值通过实测而得到的训练数据,使用误差反向传播法,以使输出值y与训练数据之差变小的方式学习神经网络的权重。

另一方面,在步骤104中判别为新的输入值x即新取得的与内燃机相关的特定类别的运转参数的值不处于表示预先设定的范围r的a、b之间时,进入步骤106,更新神经网络的输出层的前一个隐藏层的节点的个数k,增大输出层的前一个隐藏层的节点的个数k。此时,在第一实施例中,将输出层的前一个隐藏层的节点的个数k增大1个。接着,在步骤107中,以使输出层的前一个隐藏层的节点的个数k增大的方式更新神经网络,接着,进入步骤105。在步骤105中,将对新的输入值x新得到的训练数据也包含于训练数据,以使输出值y与训练数据之差变小的方式学习更新后的神经网络的权重。即,在步骤105中,使用对新取得的与内燃机相关的特定类别的运转参数的值通过实测而得到的训练数据及对预先设定的范围r内的与内燃机相关的特定类别的运转参数的值通过实测而事先求出的训练数据,以使根据预先设定的范围内及预先设定的范围外的与内燃机相关的特定类别的运转参数的值而变化的输出值y与对应于与该内燃机相关的特定类别的运转参数的值的训练数据之差变小的方式学习更新后的神经网络的权重。

在该情况下,在新取得的与内燃机相关的特定类别的运转参数的值为预先设定的范围外时,也可以在对新取得的与内燃机相关的特定类别的运转参数的值通过实测而得到的训练数据的个数为2个以上的一定个数以上的情况下,使神经网络的输出层的前一个隐藏层的节点的个数增大。因此,在该第一实施例中,在新取得的与内燃机相关的特定类别的运转参数的值为预先设定的范围外时,根据对新取得的与内燃机相关的特定类别的运转参数的值通过实测而得到的训练数据的个数的增大来增大神经网络的输出层的前一个隐藏层的节点的个数。

另外,在对预先设定的范围外的新取得的与内燃机相关的特定类别的运转参数的值通过实测而得到的训练数据存在多个的情况下,可以与图8b中的b与c之间所示的预先设定的运转参数的值的范围中的训练数据的数据密度的增大相应地,使神经网络的输出层的前一个隐藏层的节点的个数增大。需要说明的是,在图8b中,b及c分别表示该预先设定的运转参数的值的范围的最小值和最大值,因此,准确地说,可以与将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值c及最小值b的差值(c-b)而得到的数据密度的增大相应地,使神经网络的输出层的前一个隐藏层的节点的个数增大。

如图1所示,在本发明的实施例中使用的内燃机具备电子控制单元30,该电子控制单元30具备:参数值取得部,取得内燃机的运转参数的值;运算部,使用包含输入层、隐藏层及输出层的神经网络来进行运算;及存储部。在此,图1所示的输入端口35构成了上述的参数值取得部,cpu34构成了上述的运算部,rom32及ram33构成了上述的存储部。需要说明的是,在cpu34即上述的运算部中,内燃机的运转参数的值被向输入层输入,根据内燃机的运转参数的值而变化的输出值被从输出层输出。另外,针对与内燃机相关的特定类别的运转参数的值而预先设定的范围r预先存储于rom32内即上述的存储部。而且,已学习的权重和对预先设定的范围r内的与内燃机相关的特定类别的运转参数的值通过实测而事先求出的训练数据存储于ram33内即上述的存储部。

图11示出了在本发明的第一实施例中使用的神经网络的变形例。在该变形例中,输出层(l=4)具有两个节点。

在该变形例中,与图9所示的例子同样,输入值x被设为内燃机转速n(rpm)。另一方面,在该变形例中,一方的输出量y1与图9所示的例子同样,被设为排气损失量,另一方的输出量y2被设为成为输入值x的二次函数的某种量,例如燃料消耗率。在该变形例中也是,在输出层(l=4)的各节点中,使用恒等函数作为活性化函数。在这样输出层(l=4)具有多个节点的情况下,如前所述,使用前式(8)所示的平方和误差e(来自各节点的输出值为y1、y2…,对应的训练数据为yt1、yt2…)作为误差函数e。在该情况下,从前式(7)可知,关于一方的节点,利用y1对平方和误差e进行偏微分因此一方的节点处的δ(l)的值成为δ(l)=y1-yt1,关于另一方的节点,利用y2对平方和误差e进行偏微分因此另一方的节点处的δ(l)的值成为δ(l)=y2-yt12。关于输出层(l=4)的各节点,当δ(l)求出后,使用前式(6)求出前层的δ(l-1)。这样,依次求出前层的δ,使用这些δ的值,根据前式(2),关于各权重w求出误差函数e的微分即梯度当求出梯度后,使用该梯度以使误差函数e的值减小的方式更新权重w的值。

在如图11所示那样神经网络的输出层(l=4)具有多个节点的情况下也是,通过输出层(l=4)的前一个隐藏层(l=3)的节点的输出值z1、z2,从输出层(l=4)的各节点输出的函数的形式确定。即,各输出值y1、y2能够由何种函数表现受到输出层(l=4)的前一个隐藏层(l=3)的节点的个数支配。因此,在如图11所示的神经网络中,在增大隐藏层的节点的个数时,如图11所示,增大输出层(l=4)的前一个隐藏层(l=3)的节点的个数。

图12~图14b示出了本发明的机器学习装置的第二实施例。在该第二实施例中,与内燃机相关的运转参数由多个类别的运转参数构成,基于与内燃机相关的多个类别的运转参数的值来进行神经网络的权重的学习。作为具体的一例,示出了如下情况:内燃机的运转参数由内燃机转速、加速器开度(加速器踏板的踩踏量)及外气温构成,制作基于这些内燃机的运转参数的值来推定内燃机的输出转矩的神经网络模型。在该具体的一例中,如图13所示,神经网络的输入层(l=1)由3个节点构成,向各节点输入表示内燃机转速的输入值x1、表示加速器开度的输入值x2及表示外气温的输入值x3。另外,隐藏层(l=2,l=3)的层数能够设为1个或任意的个数,隐藏层(l=2,l=3)的节点的个数也能够设为任意的个数。需要说明的是,在图13所示的例子中,输出层(l=4)的节点的个数被设为1个。

另一方面,在图14a中,a1与b1之间即r1表示内燃机转速的预先设定的范围,a2与b2之间即r2表示加速器开度的预先设定的范围,a3与b3之间即r3表示外气温的预先设定的范围。需要说明的是,图14b也与图14a同样,a1与b1之间表示内燃机转速的预先设定的范围,a2与b2之间表示加速器开度的预先设定的范围,a3与b3之间表示外气温的预先设定的范围。需要说明的是,在该第二实施例中,加速器开度由负荷传感器41检测,外气温由大气温传感器24检测。另外,在该第二实施例中,例如,由安装于内燃机曲轴的转矩传感器实测内燃机的输出转矩,通过该实测而得到的转矩被设为训练数据。

在该第二实施例中也是,对预先设定的范围rn内的各种输入值xn(n=1,2,3)实测出的内燃机输出转矩作为训练数据而事先求出,即,对预先设定的范围rn内的与内燃机相关的多个类别的运转参数的值通过实测而事先求出了训练数据,根据这些与内燃机相关的多个类别的运转参数的值及训练数据来决定神经网络的构造,以使输出值y与对应于与内燃机相关的多个类别的运转参数的值的训练数据之差变小的方式事先学习神经网络的权重。对该预先设定的范围rn内的与内燃机相关的多个类别的运转参数的值通过实测而事先求出的训练数据存储于电子控制单元30的存储部。在该第二实施例中也是,使用与在事先学习中使用的神经网络相同构造的神经网络,使用学习完成时的神经网络的权重,在车辆运转中以车载方式进一步进行学习。图12示出了该以车载方式进行的第二实施例的学习处理例程,该学习处理例程通过每隔一定时间(例如,每隔一秒)的中断来执行。

参照图12,首先,在步骤201中,读入存储于电子控制单元30的存储部的已学习的权重、在事先的学习中使用的训练数据即对预先设定的范围rn内的与内燃机相关的多个类别的运转参数的值通过实测而事先求出的训练数据、表示输入数据的范围即与内燃机相关的多个类别的运转参数的值的预先设定的范围的值an、bn(n=1,2,3)(图13a)。该已学习的权重用作权重的初始值。接着,在步骤202中,读入在事先的学习中使用的神经网络的输出层的前一个隐藏层的节点的个数k。接着,进入步骤203,取得新的输入值x即新的与内燃机相关的多个类别的运转参数的值,该新的输入值x即新的与内燃机相关的多个类别的运转参数的值存储于电子控制单元30的存储部。而且,在步骤203中,将相对于新的输入值x的内燃机输出转矩的实测值作为训练数据而存储于电子控制单元30的存储部。即,在步骤203中,将对新取得的与内燃机相关的多个类别的运转参数的值通过实测而得到的训练数据存储于电子控制单元30的存储部。

接着,在步骤204中,判别新的输入值xn即新取得的与内燃机相关的多个类别的运转参数的值是否处于预先设定的范围rn(an与bn之间)内,即,新的输入值xn是否为an以上且bn以下。在新的输入值xn处于预先设定的范围rn内时,进入步骤205,将各输入值xn即新取得的与内燃机相关的多个类别的运转参数的值向神经网络的输入层的对应的节点输入,基于从神经网络的输出层的节点输出的输出值y和对新取得的与内燃机相关的多个类别的运转参数的值通过实测而求出的训练数据,使用误差反向传播法,以使输出值y与训练数据之差变小的方式学习神经网络的权重。

另一方面,在步骤204中判别为新的输入值xn即新取得的与内燃机相关的多个类别的运转参数的值中的至少一个类别的运转参数的值不处于预先设定的范围rn(an与bn之间)内时,例如,在图14b中表示内燃机转速的输入值x1处于b1~c1(b1<c1)的预先设定的范围(b1~c1)内的情况或者在图13b中表示外气温的输入值x3处于c3~a3(c3<a3)的预先设定的范围(c3~a3)内的情况下,进入步骤206。在步骤206中,首先,算出新的输入值xn所属的范围(bn~cn)或范围(cn~an)内的训练数据相对于新的输入值xn的密度d(=训练数据个数/(cn-bn)或训练数据个数/(an-cn))。

在图14b中,b1及c1分别表示内燃机转速的预先设定的范围的最小值和最大值,即运转参数的值的预先设定的范围的最小值和最大值,训练数据密度d表示将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值c1及最小值b1的差值(c1-b1)而得到的值。另外,在图14b中,c3及a3分别表示预先设定的外气温的范围的最小值和最大值,即运转参数的值的预先设定的范围的最小值和最大值,训练数据密度d表示将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值c3及最小值a3的差值(c3-a3)而得到的值。在步骤206中,当算出训练数据密度d后,判别训练数据密度d是否变得比预先确定的数据密度d0高。在训练数据密度d比预先确定的数据密度d0低的情况下,完成处理循环。

另一方面,在步骤206中判别为训练数据密度d变得比预先确定的数据密度d0高时,进入步骤207。在该情况下,在d(=训练数据个数/(an-cn))>d0时,通过下式算出追加节点数α。

追加节点数α=round{(k/(bn-an))·(an-cn)}

另一方面,在d(=训练数据个数/(cn-bn))>d0时,通过下式算出追加节点数α。

追加节点数α=round{(k/(bn-an))·(cn-bn)}

需要说明的是,在上式中,k表示节点的个数,round意味着四舍五入。

当在步骤207中算出追加节点数α后,进入步骤208,更新神经网络的输出层的前一个隐藏层的节点的个数k,使输出层的前一个隐藏层的节点的个数k增大追加节点数α(k←k+α)。这样,在该第二实施例中,当将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值及最小值的差值而得到的数据密度增大时,增大神经网络的输出层的前一个隐藏层的节点的个数。即,在该第二实施例中,与将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值及最小值的差值而得到的数据密度的增大相应地,增大神经网络的输出层的前一个隐藏层的节点的个数。

另一方面,如上所述,从步骤206进入步骤207是在训练数据密度d达到了预先确定的数据密度d0时,因此,在步骤207中用于追加节点数α的算出的(an-cn)的值及(cn-bn)的值与训练数据的个数成比例。因此,从上式可知,追加节点数α与新的输入值xn所属的范围(bn~cn)或范围(cn~an)内的训练数据的个数成比例。即,在该第二实施例中,与对新取得的与内燃机相关的多个类别的运转参数的值通过实测而得到的训练数据的个数的增大相应地,增大神经网络的输出层的前一个隐藏层的节点的个数。

当在步骤208中使输出层的前一个隐藏层的节点的个数k增大追加节点数α后(k←k+α),进入步骤209,以使输出层的前一个隐藏层的节点的个数k增大的方式更新神经网络。接着,进入步骤205。在步骤205中,将对新的输入值x新得到的训练数据也包含于训练数据,以使输出值y与训练数据之差变小的方式学习更新后的神经网络的权重。即,在步骤205中,使用对新取得的与内燃机相关的多个类别的运转参数的值通过实测而得到的训练数据及对预先设定的范围rn内的与内燃机相关的多个类别的运转参数的值通过实测而事先求出的训练数据,以使根据预先设定的范围内及预先设定的范围外的与内燃机相关的多个类别的运转参数的值而变化的输出值y与对应于与该内燃机相关的多个类别的运转参数的值的训练数据之差变小的方式学习更新后的神经网络的权重。

在本发明的第二实施例中,表示对与内燃机相关的多个类别的运转参数的值而预先设定的范围rn的值an、bn预先存储于rom32内即上述的存储部。另外,已学习的权重及对预先设定的范围rn内的与内燃机相关的多个类别的运转参数的值通过实测而事先求出的训练数据存储于ram33内即上述的存储部。

图15示出了在本发明的第二实施例中使用的神经网络的变形例。在该变形例中,输出层(l=4)具有两个节点。

在该变形例中,与图13所示的例子同样,输入值x1被设为内燃机转速,输入值x2被设为加速器开度,输入值x3被设为外气温。另一方面,在该变形例中,一方的输出量y1与图13所示的例子同样,被设为内燃机的输出转矩,另一方的输出量y2被设为内燃机的热效率。该热效率基于实际使内燃机运转时的内燃机转速、内燃机负荷、吸入空气压、吸入空气温、废气压、废气温、内燃机冷却水温等的检测值而算出,因此,该热效率表示通过实测而得到的值。在该变形例中也是,在输出层(l=4)的各节点中,使用恒等函数作为活性化函数。而且,在该变形例中,使用以内燃机的输出转矩的实测值及热效率的实测值为训练数据的前式(8)所示的平方和误差e作为误差函数e,使用误差反向传播法,以使误差函数e的值减小的方式更新权重w的值。

在如图15所示那样神经网络的输出层(l=4)具有多个节点的情况下也是,通过输出层(l=4)的前一个隐藏层(l=3)的节点的输出值z1、z2、z3、z4,从输出层(l=4)的各节点输出的函数的形式确定。即,各输出值y1、y2能够由何种函数表现受到输出层(l=4)的前一个隐藏层(l=3)的节点的个数支配。因此,在如图15所示的神经网络中,在增大隐藏层的节点的个数时,增大输出层(l=4)的前一个隐藏层(l=3)的节点的个数。

图16及图17示出了本发明的机器学习装置的第三实施例。在该第三实施例中也是,与内燃机相关的运转参数包含多个类别的运转参数,基于与内燃机相关的多个类别的运转参数的值来进行神经网络的权重的学习。在该第三实施例中也是,关于与内燃机相关的多个类别的运转参数的各个,预先设定有各类别的运转参数的值的范围。图17作为一例而示出了与内燃机相关的运转参数由两个类别的运转参数构成的情况,在图17中,一个类别的运转参数的值的预先设定的范围由rx表示,另一类别的运转参数的值的预先设定的范围由ry表示。在该第三实施例中,如图17所示,将各类别的运转参数的值的预先设定的范围rx、ry划分为多个,并且预先设定有通过各类别的运转参数的值的划分后的各划分范围的组合而划定的多个划分区域〔xn,ym〕(n=1,2…n,m=1,2…m)。

需要说明的是,在图17中,x1、x2…xn及y1、y2…yn分别表示各类别的运转参数的值的划分范围。另外,在该第三实施例中,作为具体的一例而示出了如下情况:内燃机的运转参数由内燃机转速及外气温构成,制作基于这些内燃机的运转参数的值来推定来自内燃机的hc排出量的神经网络模型。在该情况下,x1、x2…xn表示例如每隔1000rpm划分出的内燃机转速(1000rpm≤x1<200rpm,2000rpm≤x2<3000rpm…),y1、y2…yn表示例如每隔10℃划分出的外气温(-30℃≤y1<-20℃,-20℃≤y2<-10℃…)。

在该第三实施例中,针对各划分区域〔xn,ym〕分别制作有独立的神经网络。在这些神经网络中,输入层(l=1)由2个节点构成,向输入层(l=1)的各节点输入表示内燃机转速的输入值x1及表示外气温的输入值x2。另外,隐藏层(l=2,l=3)的层数能够设为1个或任意的个数,隐藏层(l=2,l=3)的节点的个数也能够设为任意的个数。需要说明的是,无论在哪个神经网络中,输出层(l=4)的节点的个数都被设为1个。需要说明的是,在该第三实施例中也是,作为变形例,可以将输出层(l=4)的节点的个数设为2个。在该情况下,例如,来自输出层(l=4)的一方的节点的输出量被设为来自内燃机的hc排出量,来自输出层(l=4)的另一方的节点的输出量被设为来自内燃机的nox排出量。

在该第三实施例中,隐藏层(l=3)的节点的个数针对各神经网络而不同,以下,将划分区域〔xn,ym〕中的神经网络的输出层的前一个隐藏层的节点的个数用knm表示。该隐藏层的节点的个数knm根据各划分区域〔xn,ym〕内的训练数据的变化相对于输入值的变化的复杂度而事先设定。需要说明的是,在该第三实施例中,取代图1所示的nox传感器23而在排气通路内配置hc传感器。在该第三实施例中,由该hc传感器实测来自内燃机的hc排出量,通过该实测而得到的hc排出量被设为训练数据。需要说明的是,在上述的第三实施例的变形例中,除了图1所示的nox传感器23之外还在排气通路内配置hc传感器。

在该第三实施例中,对在与内燃机相关的多个类别的运转参数的值的预先设定的范围rx、ry内形成的各划分区域〔xn,ym〕(n=1,2…n,m=1,2…m)内的各种输入值x1、x2实测出的hc排出量作为训练数据而事先求出,即,对预先设定的范围rx、ry内的与内燃机相关的多个类别的运转参数的值通过实测而事先求出了训练数据,根据这些与内燃机相关的多个类别的运转参数的值及训练数据,也包含隐藏层的节点的个数knm而决定相对于各划分区域〔xn,ym〕的神经网络的构造,以使输出值y与对应于与内燃机相关的多个类别的运转参数的值2的训练数据之差变小的方式事先学习各划分区域〔xn,ym〕的神经网络的权重。因此,在该第三实施例中,以下,有时也将该事先进行了学习的划分区域〔xn,ym〕(n=1,2…n,m=1,2…m)称作已学习划分区域〔xn,ym〕。需要说明的是,对该预先设定的范围rx、ry内的与内燃机相关的多个类别的运转参数的值通过实测而事先求出的训练数据存储于电子控制单元30的存储部。在该第三实施例中也是,关于各划分区域〔xn,ym〕,使用与在事先学习中使用的神经网络相同构造的神经网络,使用学习完成时的神经网络的权重,在车辆运转中以车载方式进一步进行学习。图16示出了该以车载方式进行的第三实施例的学习处理例程,该学习处理例程通过每隔一定时间(例如,每隔一秒)的中断来执行。

参照图16,首先,在步骤301中,读入存储于电子控制单元30的存储部的已学习的权重、在事先的学习中使用的训练数据即对预先设定的范围rx、ry内的与内燃机相关的多个类别的运转参数的值通过实测而事先求出的训练数据、各已学习划分区域〔xn,ym〕(n=1,2…n,m=1,2…m)。该已学习的权重用作权重的初始值。接着,在步骤302中,读入对各已学习划分区域〔xn,ym〕在事先的学习中使用的输出层的前一个隐藏层的节点的个数knm。接着,进入步骤303,取得新的输入值x1、x2即新的与内燃机相关的多个类别的运转参数的值,该新的输入值x1、x2即新的与内燃机相关的多个类别的运转参数的值存储于电子控制单元30的存储部。而且,在步骤303中,将相对于新的输入值x1、x2的hc排出量的实测值作为训练数据而存储于电子控制单元30的存储部。即,在步骤303中,将对新取得的与内燃机相关的多个类别的运转参数的值通过实测而得到的训练数据存储于电子控制单元30的存储部。

接着,在步骤304中,判别新的输入值x1、x2是否处于已学习划分区域〔xn,ym〕内,即,新取得的与内燃机相关的多个类别的运转参数的值是否处于预先设定的范围rx、ry内。在新的输入值x1、x2处于已学习划分区域〔xn,ym〕内时,即,在新取得的与内燃机相关的多个类别的运转参数的值处于预先设定的范围rx、ry内时,进入步骤305,将输入值x1、x2即新取得的与内燃机相关的多个类别的运转参数的值向新取得的与内燃机相关的多个类别的运转参数的值所属的已学习划分区域〔xn,ym〕的神经网络的输入层的各节点输入,基于从神经网络的输出层的节点输出的输出值y和对新取得的与内燃机相关的多个类别的运转参数的值通过实测而求出的训练数据,使用误差反向传播法,以使输出值y与训练数据之差变小的方式进一步学习新取得的与内燃机相关的多个类别的运转参数的值所属的已学习划分区域〔xn,ym〕的神经网络的权重。

另一方面,在步骤304中判别为新的输入值x1、x2不处于已学习划分区域〔xn,ym〕内时,例如,在图17中输入值x1、x2所属且通过输入值x1、x2的预先设定的范围的组合而划定的未学习区域〔xa,yb〕被设定于已学习划分区域〔xn,ym〕外。即,换言之,在新取得的与内燃机相关的多个类别的运转参数中的至少一个类别的运转参数的值为预先设定的范围rx、ry外时,各类别的运转参数的值所属且通过各类别的运转参数的值的预先设定的范围的组合而划定的未学习区域〔xa,yb〕被设定于预先设定的范围rx、ry外。

图17所示的例子示出了如下情况:新取得的与内燃机相关的一个类别的运转参数的值为预先设定的范围rx外,新取得的与内燃机相关的另一类别的运转参数的值属于预先设定的范围ry内的划分范围y2,在该情况下,该未学习区域〔xa,yb〕在对于一个类别的运转参数的值而处于预先设定的范围rx外且另一类别的运转参数的值所属的划分范围y2内,与该划分范围y2内的已学习划分区域〔xn,ym〕相邻地设定。

当设定未学习区域〔xa,yb〕后,进入步骤306。在步骤306中,首先,算出新的输入值x1、x2所属的未学习区域〔xa,yb〕内的训练数据密度d。该训练数据密度d(=训练数据个数/〔xa,yb〕)表示将训练数据的个数除以未学习区域〔xa,yb〕的面积即各类别的运转参数的值的预先设定的范围之积而得到的值。接着,判别训练数据密度d是否变得比预先确定的数据密度d0高及新的输入值x1、x2所属的新区域〔xa,yb〕内的训练数据的方差s2是否比预先确定的方差s20大。在训练数据密度d比预先确定的数据密度d0低的情况或训练数据的方差s2比预先确定的方差s20小的情况下,完成处理循环。

另一方面,在步骤306中判别为训练数据密度d比预先确定的数据密度d0高且训练数据的方差s2比预先确定的方差s20大时,进入步骤307。需要说明的是,在步骤306中,也可以省略方差s2是否比预先确定的方差s20大的判别,仅判断训练数据密度d是否变得比预先确定的数据密度d0高。在该情况下,在训练数据密度d比预先确定的数据密度d0低的情况下完成处理循环,在判别为训练数据密度d比预先确定的数据密度d0高时进入步骤307。在步骤307中,基于下述的节点数算出式,根据未学习区域〔xa,yb〕周围的已学习划分区域〔xn,ym〕中的节点数knm的平均值来算出相对于未学习区域〔xa,yb〕的节点数kab。

节点数kab=1/nσσkij(i=(a-1)~(a+1),j=(b-1)~(b+1))

需要说明的是,在上式中,n表示在未学习区域〔xa,yb〕周围相邻存在的已学习划分区域〔xn,ym〕的个数。在该情况下,在未学习区域〔xa,yb〕周围的相邻的划分区域〔xn,ym〕中存在还未使用的划分区域〔xn,ym〕即不存在节点数knm的划分区域〔xn,ym〕的情况下,该划分区域〔xn,ym〕被从个数n的算出排除。例如,若以图15所示的例子来说,则未学习区域〔xa,yb〕周围的相邻的已学习划分区域〔xn,y1〕的节点数kn1、已学习划分区域〔xn,y2〕的节点数kn2及已学习划分区域〔xn,y3〕的节点数kn3的平均值被设为相对于未学习区域〔xa,yb〕的节点数kab。

在各划分区域〔xn,ym〕内的训练数据的变化相对于输入值的变化的关系单纯的情况下,即使使隐藏层的节点的个数knm少也能够充分进行学习,但在各划分区域〔xn,ym〕内的训练数据的变化相对于输入值的变化的关系复杂的情况下,若不使隐藏层的节点的个数knm多则无法进行充分的学习。因此,如前所述,已学习划分区域〔xn,ym〕中的神经网络的隐藏层的节点的个数knm根据各已学习划分区域〔xn,ym〕内的训练数据的变化相对于输入值的变化的复杂度而设定。在两个划分区域〔xn,ym〕接近的情况下,在这些划分区域〔xn,ym〕之间,训练数据的变化相对于输入值的变化的关系相似,因此,在两个划分区域〔xn,ym〕接近的情况下,能够使用相同个数作为隐藏层的节点的个数knm。因此,在该第三实施例中,未学习区域〔xa,yb〕周围的相邻的已学习划分区域〔xn,ym〕中的节点数knm的平均值被设为相对于未学习区域〔xa,yb〕的节点数kab。

在此,作为第三实施例的变形例,对将未学习区域〔xa,yb〕中的训练数据的个数纳入考虑来求出相对于未学习区域〔xa,yb〕的节点数kab的方法进行简单说明。即,在未学习区域〔xa,yb〕中的训练数据个数比未学习区域〔xa,yb〕周围的相邻的已学习划分区域〔xn,ym〕中的训练数据个数多的情况下,相对于未学习区域〔xa,yb〕的节点数kab优选比未学习区域〔xa,yb〕周围的相邻的已学习划分区域〔xn,ym〕中的节点数knm多。因此,在该变形例中,求出未学习区域〔xa,yb〕周围的相邻的已学习区域〔xn,ym〕中的训练数据个数的平均值md,通过将未学习区域〔xa,yb〕中的输入数据个数mn除以平均值md来求出节点数增大率rk(=mn/md),对根据上述的节点数算出式求出的相对于未学习区域〔xa,yb〕的节点数kab乘以该节点数增大率rk,设为最终的相对于未学习区域〔xa,yb〕的节点数kab。

当在步骤307中算出相对于未学习区域〔xa,yb〕的节点数kab后,进入步骤308,制作相对于未学习区域〔xa,yb〕的新的神经网络。在该新的神经网络中,节点的个数关于输入层被设为2个,关于输出层的前一个隐藏层被设为kab个,关于输出层被设为1个或多个。接着,进入步骤305。在步骤305中,关于未学习区域〔xa,yb〕,以使输出值y与训练数据之差变小的方式,学习对未学习区域〔xa,yb〕制作出的神经网络的权重。

接着,参照图18a~图19b,对将本发明的机器学习装置应用于低负荷用的特殊的内燃机的情况的具体例进行说明。在该具体例中,如图12所示,使用隐藏层(l=3)具有4个节点的神经网络,制作根据节气门12的开度、内燃机转速及点火正时来输出表示nox排出量的输出值y的模型。需要说明的是,在该具体例中使用的内燃机中,节气门12的开度的使用范围被设定为5.5°~11.5°(将最大闭阀位置下的节气门12的开度设为0°)之间,内燃机转速的使用范围被设定为1600(rpm)~3000(rpm)之间,点火正时的使用范围被设定为0°(压缩上止点)~atdc(压缩上止点前)40°之间。

图18a示出了训练数据相对于点火正时和内燃机转速的分布,图18b示出了训练数据相对于节气门开度和点火正时的分布。需要说明的是,在图18a及图18b中,黑圆表示事先取得的训练数据的存在场所,三角记号表示事先未取得训练数据的场所。从图18a及图18b可知对于何种节气门开度、何种内燃机转速及何种点火正时事先取得了训练数据。例如,可知,在图18a中,在内燃机转速n为2000(rpm)且点火正时为atdc20°时,事先取得了训练数据,如图18b所示,在点火正时为atdc20°时,对于各种节气门开度,事先取得了训练数据。

另一方面,在该具体例中,将节气门开度、内燃机转速及点火正时向神经网络的输入层(l=1)的各节点输入,以使输出值y与表示由nox传感器23检测到的nox排出量的训练数据之差变小的方式学习神经网络的权重。学习后的输出值y与训练数据的关系示于图18c、图19a及图19b,需要说明的是,在图18c、图19a及图19b中,学习后的输出值y及训练数据的值以使最大值成为1的方式标准化而示出。

如上所述,在该具体例中使用的内燃机中,节气门12的开度的使用范围被设定为5.5°~11.5°之间,内燃机转速n的使用范围被设定为1600(rpm)~3000(rpm)之间,点火正时的使用范围被设定为0°(压缩上止点)~atdc40°之间。在图18c中,将在这些使用范围内使用了节气门开度、内燃机转速n及点火正时时的nox排出量作为训练数据而事先取得,以使输出值y与事先取得的训练数据之差变小的方式学习了神经网络的权重时的学习后的输出值y与训练数据的关系用圆形记号示出。

如图18c所示,表示学习后的输出值y与训练数据的关系的圆形记号集中于一直线上,因此可知,学习后的输出值y与训练数据一致。例如,若举出节气门12的开度为例,则因发动机的个体差异或历时变化,节气门12的开度会从标准的开度偏离,即使节气门12的开度的使用范围被设定为5.5°~11.5°之间,实际上,节气门12的开度有时也会超过预先设定的使用范围。图18a及图18b所示的三角标记表示在节气门12的开度超过预先设定的使用范围而成为了13.5°时新取得的训练数据的场所。

图18c的三角标记示出了在这样节气门12的开度超过预先设定的使用范围而成为了13.5°时不使用新取得的训练数据而仅使用事先取得的训练数据进行了神经网络的权重的学习的情况。在该情况下,可知,节气门12的开度超过预先设定的使用范围而成为了13.5°时的nox排出量的推定值会从实测值大幅偏离。另一方面,图19a的圆形记号示出了使用在这样节气门12的开度超过预先设定的使用范围而成为了13.5°时取得的新的训练数据和事先取得的训练数据这双方的训练数据进行了神经网络的权重的学习的情况。在该情况下,可知,nox排出量的推定值会整体从实测值偏离。

相对于此,图19b的圆形记号示出了与图19a同样地使用在节气门12的开度超过预先设定的使用范围而成为了13.5°时取得的新的训练数据和事先取得的训练数据这双方的训练数据,不同于图19a,将神经网络的隐藏层(l=3)的节点的个数从4个增大为7个后进行了神经网络的权重的学习的情况。在该情况下,可知,nox排出量的推定值与实测值高精度地一致。这样,在新取得的内燃机的运转参数的值为预先设定的范围外时,通过使神经网络的输出层的前一个隐藏层的节点的个数增大,能够提高推定精度。

图20~图25示出了将本发明的机器学习装置应用于空调(空调机)的自动调整的情况的第四实施例。在该实施例中,根据气温、湿度、位置及安装有空调的房间的大小,自动地设定最佳的空调的风量、风向及运转时间。在该情况下,空调的使用的条件、场所的范围即气温、湿度、位置及安装有空调的房间的大小等运转参数的值的使用范围能够根据空调的种类而预先设想,因此,通常,对空调的运转参数的值的预先设定的范围,以使神经网络的输出值与最佳的空调的风量、风向及运转时间之差变小的方式预先学习神经网络的权重。

然而,在该情况下,空调的运转参数的值有时也会成为预先设定的范围外,在该情况下,对于预先设定的范围外,由于未进行基于实际的值的学习,所以使用神经网络运算出的输出值会成为从实际的值大幅背离的值,于是,在该实施例中也是,在新取得的与空调相关的运转参数的值为预先设定的范围外时,使神经网络的输出层的前一个隐藏层的节点的个数增大,或者增大神经网络的个数,使用对新取得的与空调相关的运转参数的值得到的训练数据及对预先设定的范围内的与空调相关的运转参数的值得到的训练数据来学习神经网络的权重。

接着,对该第四实施例进行具体说明。参照图20,50表示空调主体,51表示配置于空调主体50内的送风电动机,52表示配置于空调主体50内的风向调整电动机,53表示用于检测气温的温度计,54表示用于检测大气的湿度的湿度计,55表示用于检测空调的设置位置的gps,56表示具有与图1所示的电子控制单元30同样的结构的电子控制单元。如图20所示,由温度计53检测到的气温、由湿度计54检测到的大气的湿度及由gps55检测到的位置信息向电子控制单元56输入,从电子控制单元56输出用于得到最佳的空调的风量的送风电动机51的驱动信号及用于得到最佳的空调的风向的风向调整电动机52的驱动信号。需要说明的是,安装有空调的房间的大小例如向电子控制单元56手动输入。

图21示出了在该第四实施例中使用的神经网络。在该第四实施例中,如图21所示,神经网络的输入层(l=1)由4个节点构成,向各节点输入表示气温的输入值x1、表示湿度的输入值x2、表示位置的输入值x3及表示安装有空调的房间的大小的输入值x4。另外,隐藏层(l=2,l=3)的层数可以设为1个或任意的个数,隐藏层(l=2,l=3)的节点的个数也可以设为任意的个数。另外,在该第四实施例中,输出层(l=4)由3个节点构成,从各节点输出表示空调的风量的输出值y1、表示空调的风向的输出值y2及表示空调的运转时间的输入值y3。

另一方面,在图22a中,a1与b1之间即r1表示气温的预先设定的范围(例如,-5℃~40℃),a2与b2之间即r2表示湿度的预先设定的范围(例如,30%~90%),a3与b3之间即r3表示位置(例如,北纬20度~46度之间)的预先设定的范围,a4与b4之间即r4表示安装有空调的房间的大小的预先设定的范围。需要说明的是,图22b也与图22a同样,a1~b1之间表示气温的预先设定的范围,a2与b2之间表示湿度的预先设定的范围,a3与b3之间表示位置的预先设定的范围,a4与b4之间表示安装有空调的房间的大小的预先设定的范围。

在该第四实施例中也是,对预先设定的范围rn内的各种输入值xn(n=1,2,3,4)实测出的最佳的空调的风量、风向及运转时间作为训练数据而事先求出,即,对预先设定的范围rn内的与空调相关的多个类别的运转参数的值通过实测而事先求出了训练数据,根据这些与空调相关的多个类别的运转参数的值及训练数据来决定神经网络的构造,以使各输出值y1、y2、y3与对应于与空调相关的多个类别的运转参数的值的训练数据之差变小的方式事先学习神经网络的权重。对该预先设定的范围rn内的与空调相关的多个类别的运转参数的值通过实测而事先求出的训练数据存储于电子控制单元56的存储部。

在该第四实施例中也是,使用与在事先学习中使用的神经网络相同构造的神经网络,使用学习完成时的神经网络的权重,在车辆运转中以车载方式进一步进行学习。图23示出了该以车载方式进行的第四实施例的学习处理例程,该学习处理例程通过每隔一定时间(例如,每隔一秒)的中断来执行。需要说明的是,在图23所示的学习处理例程的各步骤中进行的处理除了输入值的类别和输入值的个数及输出值的类别和输出值的个数不同这一点之外,与在图12所示的学习处理例程的各步骤中进行的处理相同。

即,参照图23,首先,在步骤401中,读入存储于电子控制单元56的存储部的已学习的权重、在事先的学习中使用的训练数据即对预先设定的范围rn内的与空调相关的多个类别的运转参数的值通过实测而事先求出的训练数据、表示输入数据的范围即与空调相关的多个类别的运转参数的值的预先设定的范围的值an、bn(n=1,2,3,4)(图22a)。该已学习的权重用作权重的初始值。接着,在步骤402中,读入在事先的学习中使用的神经网络的输出层的前一个隐藏层的节点的个数k。接着,进入步骤403,取得新的输入值x即新的与空调相关的多个类别的运转参数的值,该新的输入值x即新的与空调相关的多个类别的运转参数的值存储于电子控制单元56的存储部。而且,在步骤403中,将相对于新的输入值x的空调的风量、风向及运转时间的实测值作为训练数据而存储于电子控制单元56的存储部。即,在步骤403中,将对新取得的与空调相关的多个类别的运转参数的值通过实测而得到的训练数据存储于电子控制单元56的存储部。

接着,在步骤404中,判别新的输入值xn即新取得的与空调相关的多个类别的运转参数的值是否处于预先设定的范围rn(an与bn之间)内,即新的输入值xn是否为an以上且bn以下。在新的输入值xn处于预先设定的范围rn内时,进入步骤405,将各输入值xn即新取得的与空调相关的多个类别的运转参数的值向神经网络的输入层的对应的节点输入,基于从神经网络的输出层的节点输出的输出值y1、y2、y3和对新取得的与空调相关的多个类别的运转参数的值通过实测而求出的训练数据,使用误差反向传播法,以使输出值y1、y2、y3与训练数据之差变小的方式学习神经网络的权重。

另一方面,在步骤404中判别为新的输入值xn即新取得的与空调相关的多个类别的运转参数的值中的至少一个类别的运转参数的值不处于预先设定的范围rn(an与bn之间)内时,例如,在图22b中表示气温的输入值x1处于b1~c1(b1<c1)的预先设定的范围(b1~c1)内的情况或在图22b中表示位置的输入值x3处于c3~a3(c3<a3)的预先设定的范围(c3~a3)内的情况下,进入步骤406。在步骤406中,首先,算出新的输入值xn所属的范围(bn~cn)或范围(cn~an)内的训练数据相对于新的输入值xn的密度d(=训练数据个数/(cn-bn)或训练数据个数/(an-cn))。关于该训练数据密度d的定义,如前所述。在步骤406中,当算出训练数据密度d后,判别训练数据密度d是否变得比预先确定的数据密度d0高。在训练数据密度d比预先确定的数据密度d0低的情况下,完成处理循环。

另一方面,在步骤406中判别为训练数据密度d变得比预先确定的数据密度d0高时,进入步骤407。在该情况下,在d(=训练数据个数/(an-cn))>d0时,通过下式来算出追加节点数α。

追加节点数α=round{(k/(bn-an))·(an-cn)}

另一方面,在d(=训练数据个数/(cn-bn))>d0时,通过下式来算出追加节点数α。

追加节点数α=round{(k/(bn-an))·(cn-bn)}

需要说明的是,在上式中,k表示节点的个数,round意味着四舍五入。

当在步骤407中算出追加节点数α后,进入步骤408,更新神经网络的输出层的前一个隐藏层的节点的个数k,使输出层的前一个隐藏层的节点的个数k增大追加节点数α(k←k+α)。这样,在该第四实施例中,当将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值及最小值的差值而得到的数据密度增大时,增大神经网络的输出层的前一个隐藏层的节点的个数。即,在该第四实施例中,与将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值及最小值的差值而得到的数据密度的增大相应地,增大神经网络的输出层的前一个隐藏层的节点的个数。

当在步骤408中使输出层的前一个隐藏层的节点的个数k增大追加节点数α后(k←k+α),进入步骤409,以使输出层的前一个隐藏层的节点的个数k增大的方式更新神经网络。接着,进入步骤405。在步骤405中,将对新的输入值x新得到的训练数据也包含于训练数据,以使输出值y1、y2、y3与训练数据之差变小的方式学习更新后的神经网络的权重。即,在步骤405中,使用对新取得的与空调相关的多个类别的运转参数的值通过实测而得到的训练数据及对预先设定的范围rn内的与空调相关的多个类别的运转参数的值通过实测而事先求出的训练数据,以使根据预先设定的范围内及预先设定的范围外的与空调相关的多个类别的运转参数的值而变化的输出值y1、y2、y3与对应于与该空调相关的多个类别的运转参数的值的训练数据之差变小的方式学习更新后的神经网络的权重。

图24及图25示出了第四实施例的变形例。在该变形例中,与空调相关的各类别的运转参数的值的预先设定的范围被划分为多个。即,图24中的rw、rx、ry、rz分别表示气温、湿度、位置及安装有空调的房间的大小的预先设定的范围,如图24所示,对气温、湿度、位置及安装有空调的房间的大小预先设定的范围被划分为多个。需要说明的是,在图24中,w1、w2…wn,x1、x2…xn,y1、y2…yn,z1、z2…zn分别表示各类别的运转参数的值的划分范围。

而且,在该变形例中,预先设定有通过各类别的运转参数的值的划分后的各划分范围的组合而划定的多个划分区域〔wi,xj,yk,zl〕(i=1,2…n,j=1,2…n,k=1,2…n,l=1,2…n),针对各划分区域〔wi,xj,yk,zl〕分别制作有独立的神经网络。这些神经网络具有图22所示的构造。在该情况下,隐藏层(l=3)的节点的个数针对各神经网络而不同,以下,将划分区域〔wi,xj,yk,zl〕中的神经网络的输出层的前一个隐藏层的节点的个数用ki、j、k、l表示。该隐藏层的节点的个数ki、j、k、l根据各划分区域〔wi,xj,yk,zl〕内的训练数据的变化相对于输入值的变化的复杂度而事先设定。

在该变形例中,对在预先设定的范围rw、rx、ry、rz内形成的各划分区域〔wi,xj,yk,zl〕内的各种输入值x1、x2、x3、x4即气温、湿度、位置及安装有空调的房间的大小实测出的空调的风量、风向及运转时间作为训练数据而事先求出,即,对预先设定的范围rw、rx、ry、rz内的与空调相关的多个类别的运转参数的值通过实测而事先求出了训练数据,根据这些与空调相关的多个类别的运转参数的值及训练数据,也包含隐藏层的节点的个数ki、j、k、l而决定相对于各划分区域〔wi,xj,yk,zl〕的神经网络的构造,以使输出值y1、y2、y3与对应的训练数据之差变小的方式事先学习各划分区域〔wi,xj,yk,zl〕的神经网络的权重。

因此,在该变形例中,以下,将该事先进行了学习的划分区域〔wi,xj,yk,zl〕也称作已学习划分区域〔wi,xj,yk,zl〕。需要说明的是,对该预先设定的范围rw、rx、ry、rz内的与空调相关的多个类别的运转参数的值通过实测而事先求出的训练数据存储于电子控制单元56的存储部。在该变形例中也是,关于各划分区域〔wi,xj,yk,zl〕,使用与在事先学习中使用的神经网络相同构造的神经网络,使用学习完成时的神经网络的权重,在车辆运转中以车载方式进一步进行学习。图25示出了该以车载方式进行的变形例的学习处理例程,该学习处理例程通过每隔一定时间(例如,每隔一秒)的中断来执行。

参照图25,首先,在步骤500中,读入存储于电子控制单元56的存储部的已学习的权重、在事先的学习中使用的训练数据即对预先设定的范围rw、rx、ry、rz内的与空调相关的多个类别的运转参数的值通过实测而事先求出的训练数据、各已学习划分区域〔wi,xj,yk,zl〕。该已学习的权重用作权重的初始值。接着,在步骤501中,读入对各已学习划分区域〔wi,xj,yk,zl〕在事先的学习中使用的输出层的前一个隐藏层的节点的个数ki、j、k、l。接着,进入步骤502,取得新的输入值x1、x2、x3、x4即气温、湿度、位置及安装有空调的房间的大小,该新的输入值x1、x2、x3、x4即新的与空调相关的多个类别的运转参数的值存储于电子控制单元56的存储部。而且,在步骤502中,将相对于新的输入值x1、x2、x3、x4的空调的风量、风向及运转时间作为训练数据而存储于电子控制单元56的存储部。即,在步骤502中,将对新取得的与空调相关的多个类别的运转参数的值通过实测而得到的训练数据存储于电子控制单元56的存储部。

接着,在步骤503中,判别新的输入值x1、x2、x3、x4是否处于已学习划分区域〔wi,xj,yk,zl〕内,即新取得的与空调相关的多个类别的运转参数的值是否处于预先设定的范围rw、rx、ry、rz内。在新的输入值x1、x2、x3、x4处于已学习划分区域rw、rx、ry、rz内时,即,在新取得的与空调相关的多个类别的运转参数的值处于预先设定的范围rw、rx、ry、rz内时,进入步骤504,将新的输入值x1、x2、x3、x4即新取得的与空调相关的多个类别的运转参数的值向新取得的与空调相关的多个类别的运转参数的值所属的已学习划分区域〔wi,xj,yk,zl〕的神经网络的输入层的各节点输入,基于从神经网络的输出层的节点输出的输出值y1、y2、y3和对新取得的与空调相关的多个类别的运转参数的值通过实测而求出的训练数据,使用误差反向传播法,以使输出值y1、y2、y3与训练数据之差变小的方式进一步学习新取得的与内燃机相关的多个类别的运转参数的值所属的已学习划分区域〔wi,xj,yk,zl〕的神经网络的权重。

另一方面,在步骤503中判别为新的输入值x1、x2、x3、x4不处于已学习划分区域〔wi,xj,yk,zl〕内时,进入步骤505,首先,在预先设定的范围rw、rx、ry、rz外设定由新的输入值x1、x2、x3、x4划定的未学习区域。例如,在判别为新的输入值x2、x3、x4处于对应的预先设定的范围rx、ry、rz内且新的输入值x1不处于对应的预先设定的范围rw内时,若将新的输入值x1所属的范围设为wa,则设定由新的输入值x1、x2、x3、x4划定的未学习区域〔wa,xj,yk,zl〕。另外,在判别为新的输入值x3、x4处于对应的预先设定的范围ry、rz内且新的输入值x1、x2不处于对应的预先设定的范围rw、rx内时,若将新的输入值x1所属的范围设为wa且将新的输入值x2所属的范围设为xb,则设定由新的输入值x1、x2、x3、x4划定的未学习区域〔wa,xb,yk,zl〕。

接着,在步骤505中,制作相对于未学习区域〔xa,yb〕的新的神经网络。当在步骤505中制作新的神经网络后,进入步骤504。在步骤504中,关于未学习区域,以使输出值y1、y2、y3与训练数据之差变小的方式学习对未学习区域制作出的新的神经网络的权重。

图26~图33示出了将本发明的机器学习装置应用于二次电池的劣化度的推定的情况的第五实施例。在该实施例中,根据气温、二次电池的温度、二次电池的放电时间及二次电池的每单位时间的放电能量来检测二次电池的劣化度。在该情况下,二次电池的使用条件及使用方式的范围即气温、二次电池的温度、二次电池的放电时间及二次电池的每单位时间的放电能量等二次电池的运转参数的值的使用范围能够根据二次电池的种类而预先设想,因此,通常,对二次电池的运转参数的值的预先设定的范围,以使神经网络的输出值与实测出的二次电池的劣化度之差变小的方式预先学习神经网络的权重。

然而,在该情况下,二次电池的运转参数的值有时也会成为预先设定的范围外,在该情况下,对于预先设定的范围外,由于未进行基于实际的值的学习,所以使用神经网络运算出的输出值会成为从实际的值大幅背离的值,于是,在该实施例中也是,在新取得的与二次电池相关的运转参数的值为预先设定的范围外时,使神经网络的输出层的前一个隐藏层的节点的个数增大,或者增大神经网络的个数,使用对新取得的与二次电池相关的运转参数的值得到的训练数据及对预先设定的范围内的与二次电池相关的运转参数的值得到的训练数据来学习神经网络的权重。

接着,对该第五实施例进行具体说明。参照图26,60表示二次电池,61表示电动电动机,62表示电动电动机61的驱动控制装置,63表示用于检测二次电池60的输出端子间电压的电压计,64表示用于检测从二次电池60经由驱动控制装置62而向电动电动机61供给的电流的电流计,65表示用于检测气温的温度计,66表示用于检测二次电池60的温度的温度传感器,67表示具有与图1所示的电子控制单元30同样的结构的电子控制单元。如图26所示,由电流计53检测到的向电动电动机61的供给电流、由电压计64检测到的二次电池60的输出端子间电压、由温度计65检测到的气温及由温度传感器66检测到的二次电池60的温度向电子控制单元56输入,在电子控制单元56内,算出二次电池60的劣化度的推定值。需要说明的是,在电子控制单元56内,基于电流计64的检测值来求出二次电池60的放电时间,基于电流计64的检测值及电压计63的检测值来求出二次电池60的每单位时间的放电能量(电流·电压)。

图27示出了在该第五实施例中使用的神经网络。在该第五实施例中,如图27所示,神经网络的输入层(l=1)由4个节点构成,向各节点输入表示气温的输入值x1、表示二次电池60的温度的输入值x2、二次电池60的放电时间x3及表示二次电池60的每单位时间的放电能量的输入值x4。另外,隐藏层(l=2,l=3)的层数可以设为1个或任意的个数,隐藏层(l=2,l=3)的节点的个数也可以设为任意的个数。另外,在该第四实施例中,输出层(l=4)的节点被设为1个,从该节点输出表示二次电池20的劣化度的输出值y。

另一方面,在图28a中,a1与b1之间即r1表示气温的预先设定的范围(例如,-5℃~40℃),a2与b2之间即r2表示二次电池60的温度的预先设定的范围(例如,-40℃~40℃),a3与b3之间即r3表示二次电池60的放电时间的预先设定的范围,a4与b4之间即r4表示二次电池60的每单位时间的放电能量的预先设定的范围。需要说明的是,图28b也与图28a同样,a1与b1之间表示气温的预先设定的范围,a2与b2之间表示二次电池60的温度的预先设定的范围,a3与b3之间表示二次电池60的放电时间的预先设定的范围,a4与b4之间表示二次电池60的每单位时间的放电能量的预先设定的范围。

在此,对气温、二次电池60的温度、二次电池60的放电时间及二次电池60的每单位时间的放电能量与二次电池60的劣化度的关系进行简单说明。二次电池60越劣化则内部电阻越高,因此,能够根据内部电阻的变化来推定二次电池60的劣化度。然而,实际上,检测内部电阻是困难的。另一方面,在放电电流一定的情况下,内部电阻越高则二次电池60的发热量越增大,因此,内部电阻越高,即二次电池60越劣化,则二次电池60的温度越高。因此,基于二次电池60的温度上升量,能够推定二次电池60的劣化度。在该情况下,二次电池60的温度上升量受到气温的影响,另外,受到二次电池60的放电时间及二次电池60的每单位时间的放电能量左右。因此,二次电池60的劣化度根据气温、二次电池60的温度、二次电池60的放电时间及二次电池60的每单位时间的放电能量而求出,因此,根据气温、二次电池60的温度、二次电池60的放电时间及二次电池60的每单位时间的放电能量,能够推定二次电池60的劣化度。

另一方面,当二次电池60劣化时,向二次电池60的充电量减少。在该情况下,在向二次电池60的充电刚完成后使二次电池60的电路成为了闭环时,在二次电池60的输出端子间会出现与向二次电池60的充电量成比例的电压。即,在向二次电池60的充电刚完成后由电压计64检测到的二次电池60的输出端子间电压与向二次电池60的充电量成比例。因此,根据向二次电池60的充电刚完成后的电压计64的检测电压,能够检测二次电池60的劣化度。因此,在该第五实施例中,使用根据向二次电池60的充电刚完成后的电压计64的检测电压而检测到的二次电池60的劣化度作为输出值y的训练数据。

接着,参照图29及图30,对在电子控制单元67内执行的二次电池60的放电时间等的算出例程和训练数据的取得处理例程进行说明。参照示出算出例程的图29,在步骤600中,根据电流计64的输出值来算出二次电池60的放电时间。接着,在步骤601中,根据电流计64的输出值及电压计63的输出值来算出二次电池60的每单位时间的放电能量。

另一方面,参照示出训练数据的取得处理例程的图30,首先,在步骤610中,判别是否进行着向二次电池60的充电处理。在未进行向二次电池60的充电处理时,完成处理循环。相对于此,在进行着向二次电池60的充电处理时,进入步骤611而判别向二次电池60的充电是否已完成。在判别为向二次电池60的充电已完成时,进入步骤612,判别是否设置有在要求训练数据时设置的训练数据要求标志。关于该训练数据要求标志后述。在未设置训练数据要求标志时,完成处理循环。相对于此,在设置有训练数据要求标志时,进入步骤613,根据电压计64的检测电压来检测二次电池60的劣化度。接着,进入步骤614,设置追加学习标志。

在该第五实施例中也是,相对于预先设定的范围rn内的各种输入值xn(n=1,2,3,4)即气温、二次电池60的温度、二次电池60的放电时间及二次电池60的每单位时间的放电能量的二次电池60的劣化度作为训练数据而事先求出,即,对预先设定的范围rn内的与二次电池60相关的多个类别的运转参数的值通过实测而事先求出了训练数据,根据这些与二次电池60相关的多个类别的运转参数的值及训练数据来决定神经网络的构造,以使输出值y与对应于与二次电池60相关的多个类别的运转参数的值的训练数据之差变小的方式事先学习神经网络的权重。对该预先设定的范围rn内的与二次电池60相关的多个类别的运转参数的值通过实测而事先求出的训练数据存储于电子控制单元67的存储部。

在该第五实施例中也是,使用与在事先学习中使用的神经网络相同构造的神经网络,使用学习完成时的神经网络的权重,在车辆运转中以车载方式进一步进行学习。图31示出了该以车载方式进行的第五实施例的学习处理例程,该学习处理例程通过每隔一定时间(例如,每隔一秒)的中断来执行。

即,参照图31,首先,在步骤700中,读入存储于电子控制单元67的存储部的已学习的权重、在事先的学习中使用的训练数据即对预先设定的范围rn内的与二次电池60相关的多个类别的运转参数的值通过实测而事先求出的训练数据、表示输入数据的范围即与二次电池60相关的多个类别的运转参数的值的预先设定的范围的值an、bn(n=1,2,3,4)(图28a)。该已学习的权重用作权重的初始值。接着,在步骤701中,读入在事先的学习中使用的神经网络的输出层的前一个隐藏层的节点的个数k。接着,在步骤702中,判别是否设置有追加学习标志。在未设置追加学习标志时,进入步骤703。

在步骤703中,取得新的输入值x即新的与二次电池60相关的多个类别的运转参数的值,该新的输入值x即新的与二次电池60相关的多个类别的运转参数的值存储于电子控制单元67的存储部。

接着,在步骤704中,判别新的输入值xn即新取得的与二次电池60相关的多个类别的运转参数的值是否处于预先设定的范围rn(an与bn之间)内,即新的输入值xn是否为an以上且bn以下。在新的输入值xn处于预先设定的范围rn内时,进入步骤705,将各输入值xn即新取得的与二次电池60相关的多个类别的运转参数的值向神经网络的输入层的对应的节点输入,基于从神经网络的输出层的节点输出的输出值y和对新取得的与二次电池60相关的多个类别的运转参数的值通过实测而求出的训练数据,使用误差反向传播法,以使输出值y与训练数据之差变小的方式学习神经网络的权重。

另一方面,在步骤704中判别为新的输入值xn即新取得的与二次电池60相关的多个类别的运转参数的值中的至少一个类别的运转参数的值不处于预先设定的范围rn(an与bn之间)内时,例如,在图28b中表示气温的输入值x1处于b1~c1(b1<c1)的预先设定的范围(b1~c1)内的情况或在图28b中表示二次电池60的放电时间的输入值x3处于c3~a3(c3<a3)的预先设定的范围(c3~a3)内的情况下,进入步骤706。在步骤706中,设置训练数据要求标志,将此时取得的新的输入值xn作为用于追加学习的新的输入值xn而存储。接着,完成处理循环。

当设置训练数据要求标志后,从图30的训练数据取得处理例程可知,在二次电池60的充电完成时,检测二次电池60的劣化度,该二次电池60的劣化度作为用于追加学习的训练数据而存储。接着,设置追加学习标志。当在步骤706中设置追加学习标志后,在下次的处理循环中,从步骤702进入步骤707。在步骤707中,从存储部读出为了用于追加学习而存储的新的输入值xn和为了用于追加学习而存储的训练数据,算出该新的输入值xn所属的范围(bn~cn)或范围(cn~an)内的训练数据相对于新的输入值xn的密度d(=训练数据个数/(cn-bn)或训练数据个数/(an-cn))。关于该训练数据密度d的定义,如前所述。在步骤707中,当算出训练数据密度d后,判别训练数据密度d是否变得比预先确定的数据密度d0高。在训练数据密度d比预先确定的数据密度d0低的情况下,完成处理循环。

另一方面,在步骤707中判别为训练数据密度d变得比预先确定的数据密度d0高时,进入步骤708。在该情况下,在d(=训练数据个数/(an-cn))>d0时,通过下式来算出追加节点数α。

追加节点数α=round{(k/(bn-an))·(an-cn)}

另一方面,在d(=训练数据个数/(cn-bn))>d0时,通过下式来算出追加节点数α。

追加节点数α=round{(k/(bn-an))·(cn-bn)}

需要说明的是,在上式中,k表示节点的个数,round意味着四舍五入。

当在步骤708中算出追加节点数α后,进入步骤709,更新神经网络的输出层的前一个隐藏层的节点的个数k,使输出层的前一个隐藏层的节点的个数k增大追加节点数α(k←k+α)。这样,在该第五实施例中,当将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值及最小值的差值而得到的数据密度增大时,增大神经网络的输出层的前一个隐藏层的节点的个数。即,在该第五实施例中,与将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值及最小值的差值而得到的数据密度的增大相应地,增大神经网络的输出层的前一个隐藏层的节点的个数。

当在步骤709中使输出层的前一个隐藏层的节点的个数k增大追加节点数α后(k←k+α),进入步骤710,以使输出层的前一个隐藏层的节点的个数k增大的方式更新神经网络。接着,进入步骤705。在步骤705中,将相对于新的输入值x新得到的训练数据也包含于训练数据,以使输出值y与训练数据之差变小的方式学习更新后的神经网络的权重。即,在步骤705中,使用对新取得的与二次电池60相关的多个类别的运转参数的值通过实测而得到的训练数据及对预先设定的范围rn内的与二次电池60相关的多个类别的运转参数的值通过实测而事先求出的训练数据,以使根据预先设定的范围内及预先设定的范围外的与二次电池60相关的多个类别的运转参数的值而变化的输出值y与对应于与该二次电池60相关的多个类别的运转参数的值的训练数据之差变小的方式学习更新后的神经网络的权重。

图32及图33示出了第五实施例的变形例。在该变形例中,与二次电池60相关的各类别的运转参数的值的预先设定的范围被划分为多个。即,图32中的rw、rx、ry、rz分别表示气温、二次电池60的温度、二次电池60的放电时间及二次电池60的每单位时间的放电能量的预先设定的范围,如图24所示,气温、二次电池60的温度、二次电池60的放电时间及二次电池60的每单位时间的放电能量的预先设定的范围被划分为多个。需要说明的是,在图32中,w1、w2…wn,x1、x2…xn,y1、y2…yn,z1、z2…zn分别表示各类别的运转参数的值的划分范围。

而且,在该变形例中,预先设定有通过各类别的运转参数的值的划分后的各划分范围的组合而划定的多个划分区域〔wi,xj,yk,zl〕(i=1,2…n,j=1,2…n,k=1,2…n,l=1,2…n),针对各划分区域〔wi,xj,yk,zl〕分别制作有独立的神经网络。这些神经网络具有图27所示的构造。在该情况下,隐藏层(l=3)的节点的个数针对各神经网络而不同,以下,将划分区域〔wi,xj,yk,zl〕中的神经网络的输出层的前一个隐藏层的节点的个数用ki、j、k、l表示。该隐藏层的节点的个数ki、j、k、l根据各划分区域〔wi,xj,yk,zl〕内的训练数据的变化相对于输入值的变化的复杂度而事先设定。

在该变形例中,对在与二次电池60相关的多个类别的运转参数的值的预先设定的范围rw、rx、ry、rz内形成的各划分区域〔wi,xj,yk,zl〕内的各种输入值x1、x2、x3、x4即气温、二次电池60的温度、二次电池60的放电时间及二次电池60的每单位时间的放电能量实测出的二次电池60的劣化度作为训练数据而事先求出,即,对预先设定的范围rw、rx、ry、rz内的与二次电池60相关的多个类别的运转参数的值通过实测而事先求出了训练数据,根据这些与二次电池60相关的多个类别的运转参数的值及训练数据,也包含隐藏层的节点的个数ki、j、k、l而决定相对于各划分区域〔wi,xj,yk,zl〕的神经网络的构造,以使输出值y1、y2、y3与对应的训练数据之差变小的方式事先学习各划分区域〔wi,xj,yk,zl〕的神经网络的权重。

因此,在该变形例中,以下,有时也将该事先进行了学习的划分区域〔wi,xj,yk,zl〕称作已学习划分区域〔wi,xj,yk,zl〕。需要说明的是,对该预先设定的范围rw、rx、ry、rz内的与二次电池60相关的多个类别的运转参数的值通过实测而事先求出的训练数据存储于电子控制单元56的存储部。在该变形例中也是,关于各划分区域〔wi,xj,yk,zl〕,使用与在事先学习中使用的神经网络相同构造的神经网络,使用学习完成时的神经网络的权重,在车辆运转中以车载方式进一步进行学习。图33示出了该以车载方式进行的变形例的学习处理例程,该学习处理例程通过每隔一定时间(例如,每隔一秒)的中断来执行。

参照图33,首先,在步骤800中,读入存储于电子控制单元56的存储部的已学习的权重、在事先的学习中使用的训练数据即对预先设定的范围rw、rx、ry、rz内的与二次电池60相关的多个类别的运转参数的值通过实测而事先求出的训练数据、各已学习划分区域〔wi,xj,yk,zl〕。该已学习的权重用作权重的初始值。接着,在步骤801中,读入对各已学习划分区域〔wi,xj,yk,zl〕在事先的学习中使用的输出层的前一个隐藏层的节点的个数ki、j、k、l。接着,在步骤802中,判别是否设置有追加学习标志。在未设置追加学习标志时,进入步骤803。

在步骤803中,取得新的输入值x1、x2、x3、x4即气温、二次电池60的温度、二次电池60的放电时间及二次电池60的每单位时间的放电能量,该新的输入值x1、x2、x3、x4即新的与二次电池60相关的多个类别的运转参数的值存储于电子控制单元56的存储部。

接着,在步骤804中,判别新的输入值x1、x2、x3、x4是否处于已学习划分区域〔wi,xj,yk,zl〕内,即新取得的与二次电池60相关的多个类别的运转参数的值是否处于预先设定的范围rw、rx、ry、rz内。在新的输入值x1、x2、x3、x4处于已学习划分区域rw、rx、ry、rz内时,即,在新取得的与二次电池60相关的多个类别的运转参数的值处于预先设定的范围rw、rx、ry、rz内时,进入步骤805,将输入值x1、x2、x3、x4即新取得的与二次电池60相关的多个类别的运转参数的值向新取得的与二次电池60相关的多个类别的运转参数的值所属的已学习划分区域〔wi,xj,yk,zl〕的神经网络的输入层的各节点输入,基于从神经网络的输出层的节点输出的输出值y和对新取得的与二次电池60相关的多个类别的运转参数的值通过实测而求出的训练数据,使用误差反向传播法,以使输出值y与训练数据之差变小的方式,进一步学习新取得的与二次电池60相关的多个类别的运转参数的值所属的已学习划分区域〔wi,xj,yk,zl〕的神经网络的权重。

另一方面,在步骤804中判别为新的输入值x1、x2、x3、x4不处于已学习划分区域〔wi,xj,yk,zl〕内时,进入步骤806。在步骤806中,设置训练数据要求标志,此时取得的新的输入值xn作为用于追加学习的新的输入值xn而存储。接着,完成处理循环。

当设置训练数据要求标志后,从图30的训练数据取得处理例程可知,在二次电池60的充电完成时,检测二次电池60的劣化度,该二次电池60的劣化度作为用于追加学习的训练数据而存储。接着,设置追加学习标志。当在步骤806中设置追加学习标志后,在下次的处理循环中,从步骤802进入步骤807。在步骤807中,从存储部读出为了用于追加学习而存储的新的输入值xn和为了用于追加学习而存储的训练数据,在预先设定的范围rw、rx、ry、rz外设定由为了用于追加学习而存储的新的输入值x1、x2、x3、x4划定的未学习区域。例如,在判别为该新的输入值x2、x3、x4处于对应的预先设定的范围rx、ry、rz内且新的输入值x1不处于对应的预先设定的范围rw内时,若将新的输入值x1所属的范围设为wa,则设定由新的输入值x1、x2、x3、x4划定的未学习区域〔wa,xj,yk,zl〕。另外,在判别为新的输入值x3、x4处于对应的预先设定的范围ry、rz内且新的输入值x1、x2不处于对应的预先设定的范围rw、rx内时,若将新的输入值x1所属的范围设为wa,将新的输入值x2所属的范围设为xb,则设定由新的输入值x1、x2、x3、x4划定的未学习区域〔wa,xb,yk,zl〕。

接着,在步骤807中,制作相对于未学习区域的新的神经网络。当在步骤807中制作新的神经网络后,进入步骤805。在步骤805中,关于未学习区域,以使输出值y与为了用于追加学习而存储的训练数据之差变小的方式学习对未学习区域制作出的新的神经网络的权重。

根据以上的说明,在本发明的实施例中,在用于使用神经网络来输出相对于机器的运转参数的值的输出值的机器学习装置中,预先设定有与该机器相关的特定类别的运转参数的值的范围,并且预先设定有与该机器相关的特定类别的运转参数的值的范围所对应的神经网络的隐藏层的节点的个数。在新取得的与该机器相关的特定类别的运转参数的值为预先设定的范围外时,使神经网络的输出层的前一个隐藏层的节点的个数增大,使用对新取得的与该机器相关的特定类别的运转参数的值通过实测而得到的训练数据及对预先设定的范围内的该机器的运转参数的值通过实测而得到的训练数据来学习神经网络的权重。使用学习了权重的神经网络来输出相对于与该机器相关的特定类别的运转参数的值的输出值。

在该情况下,在本发明的实施例中,机器学习装置具备电子控制单元。该电子控制单元具备:参数值取得部,取得与上述的机器相关的特定类别的运转参数的值;运算部,使用包含输入层、隐藏层及输出层的神经网络来进行运算;及存储部,与上述的机器相关的特定类别的运转参数的值被向输入层输入,根据与上述的机器相关的特定类别的运转参数的值而变化的输出值被从输出层输出。预先设定有与上述的机器相关的特定类别的运转参数的值的范围,并且预先设定有与上述的机器相关的特定类别的运转参数的值的范围所对应的神经网络的隐藏层的节点的个数,对预先设定的范围内的与上述的机器相关的特定类别的运转参数的值通过实测而事先求出的训练数据存储于存储部。在新取得的与上述的机器相关的特定类别的运转参数的值为预先设定的范围内时,使用对新取得的与上述的机器相关的特定类别的运转参数的值通过实测而得到的训练数据,利用运算部,以使根据新取得的与上述的机器相关的特定类别的运转参数的值而变化的输出值与对新取得的与上述的机器相关的特定类别的运转参数的值通过实测而得到的训练数据之差变小的方式学习神经网络的权重。在由参数值取得部新取得的与上述的机器相关的特定类别的运转参数的值为预先设定的范围外时,与对新取得的与上述的机器相关的特定类别的运转参数的值通过实测而得到的训练数据的个数的增大或将训练数据的个数除以表示运转参数的值的预先设定的范围的最大值及最小值的差值而得到的数据密度的增大相应地,增大神经网络的输出层的前一个隐藏层的节点的个数,并且使用对新取得的与上述的机器相关的特定类别的运转参数的值通过实测而得到的训练数据及事先求出的训练数据,利用运算部,以使根据预先设定的范围内及预先设定的范围外的与上述的机器相关的特定类别的运转参数的值而变化的输出值与对应于与上述的机器相关的特定类别的运转参数的值的训练数据之差变小的方式学习神经网络的权重。使用学习了权重的神经网络来输出相对于与上述的机器相关的特定类别的运转参数的值的输出值。

另外,在该情况下,在本发明的实施例中,电子控制单元具备:参数值取得部,取得与上述的机器相关的特定类别的运转参数的值;运算部,使用包含输入层、隐藏层及输出层的神经网络来进行运算;及存储部,与上述的机器相关的特定类别的运转参数的值被向输入层输入,根据与上述的机器相关的特定类别的运转参数的值而变化的多个输出值被从输出层输出。预先设定有与上述的机器相关的特定类别的运转参数的值的范围,并且预先设定有与上述的机器相关的特定类别的运转参数的值的范围所对应的神经网络的隐藏层的节点的个数,对预先设定的范围内的与上述的机器相关的特定类别的运转参数的值通过实测而事先求出的训练数据存储于存储部。在由参数值取得部新取得的上述的机器的运转参数的值为预先设定的范围内时,使用对新取得的与上述的机器相关的特定类别的运转参数的值通过实测而得到的训练数据,利用运算部,以使根据与上述的机器相关的特定类别的运转参数的值而变化的多个输出值与对应于与上述的机器相关的特定类别的运转参数的值的训练数据之差变小的方式学习神经网络的权重。在由参数值取得部新取得的与上述的机器相关的特定类别的运转参数的值为预先设定的范围外时,根据对新取得的与上述的机器相关的特定类别的运转参数的值通过实测而得到的训练数据的个数的增大或将训练数据的个数除以表示预先设定的范围的最大值及最小值的差值而得到的数据密度的增大,来使神经网络的输出层的前一个隐藏层的节点的个数增大,并且使用对预先设定的范围内及预先设定的范围外的新取得的与上述的机器相关的特定类别的运转参数的值通过实测而得到的训练数据及事先求出的训练数据,利用运算部,以使根据与上述的机器相关的特定类别的运转参数的值而变化的多个输出值与对应于与上述的机器相关的特定类别的运转参数的值的训练数据之差变小的方式学习神经网络的权重。使用学习了权重的神经网络来输出相对于与上述的机器相关的特定类别的运转参数的值的多个输出值。

另一方面,在本发明的实施例中,在用于使用神经网络来输出相对于机器的运转参数的值的输出值的机器学习装置中,预先设定有与该机器相关的多个类别的运转参数的值的范围,并且预先设定有与该机器相关的多个类别的运转参数的值的范围所对应的神经网络的隐藏层的节点的个数,在新取得的与该机器相关的多个类别的运转参数的值为预先设定的范围外时,使神经网络的输出层的前一个隐藏层的节点的个数增大,使用对新取得的与该机器相关的多个类别的运转参数的值通过实测而得到的训练数据及对预先设定的范围内的该机器的运转参数的值通过实测而得到的训练数据来学习神经网络的权重。使用学习了权重的神经网络来输出相对于与该机器相关的多个类别的运转参数的值的输出值。

在该情况下,在本发明的实施例中,机器学习装置具备电子控制单元,该电子控制单元具备:参数值取得部,取得与上述的机器相关的多个类别的运转参数的值;运算部,使用包含输入层、隐藏层及输出层的神经网络来进行运算;及存储部,与上述的机器相关的多个类别的运转参数的值被向输入层输入,根据与上述的机器相关的多个类别的运转参数的值而变化的输出值被从输出层输出。关于与上述的机器相关的多个类别的运转参数的各个,预先设定有各类别的运转参数的值的范围,并且预先设定有与上述的机器相关的多个类别的运转参数的值的范围所对应的神经网络的隐藏层的节点的个数,对多个类别的运转参数的值通过实测而事先求出且各类别的运转参数的值为预先设定的范围内的训练数据存储于存储部。在由参数值取得部新取得的上述的机器的多个运转参数的值分别为预先设定的范围内时,使用对新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据,利用运算部,以使根据与上述的机器相关的多个类别的运转参数的值而变化的输出值与对应于与上述的机器相关的多个类别的运转参数的值的训练数据之差变小的方式学习神经网络的权重。在由参数值取得部新取得的与上述的机器相关的多个类别的运转参数中的至少一个类别的运转参数的值为预先设定的范围外时,与对新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据的个数的增大或将训练数据的个数除以表示预先设定的范围的最大值及最小值的差值而得到的数据密度的增大相应地,使神经网络的输出层的前一个隐藏层的节点的个数增大,并且使用对预先设定的范围内及该预先设定的范围外的新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据及事先求出的训练数据,利用运算部,以使根据与上述的机器相关的多个类别的运转参数的值而变化的输出值与对应于与上述的机器相关的多个类别的运转参数的值的训练数据之差变小的方式学习神经网络的权重。使用学习了权重的神经网络来输出相对于与上述的机器相关的多个类别的运转参数的值的输出值。

另外,在该情况下,在本发明的实施例中,电子控制单元具备:参数值取得部,取得与上述的机器相关的多个类别的运转参数的值;运算部,使用包含输入层、隐藏层及输出层的神经网络来进行运算;及存储部,与上述的机器相关的多个类别的运转参数的值被向输入层输入,根据与上述的机器相关的多个类别的运转参数的值而变化的多个输出值被从输出层输出。关于与上述的机器相关的多个类别的运转参数的各个,预先设定有各类别的运转参数的值的范围,并且预先设定有与上述的机器相关的多个类别的运转参数的值的范围所对应的神经网络的隐藏层的节点的个数,对多个类别的运转参数的值通过实测而事先求出且各类别的运转参数的值为预先设定的范围内的训练数据存储于存储部。在由参数值取得部新取得的上述的机器的多个运转参数的值分别为预先设定的范围内时,使用对新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据,利用运算部,以使根据与上述的机器相关的多个类别的运转参数的值而变化的多个输出值与对应于与上述的机器相关的多个类别的运转参数的值的训练数据之差变小的方式学习神经网络的权重。在由参数值取得部新取得的与上述的机器相关的多个类别的运转参数中的至少一个类别的运转参数的值为预先设定的范围外时,与对新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据的个数的增大或将训练数据的个数除以表示预先设定的范围的最大值及最小值的差值而得到的数据密度的增大相应地,使神经网络的输出层的前一个隐藏层的节点的个数增大,并且使用对预先设定的范围内及预先设定的范围外的新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据及事先求出的训练数据,利用运算部,以使根据与上述的机器相关的多个类别的运转参数的值而变化的多个输出值与对应于与上述的机器相关的多个类别的运转参数的值的训练数据之差变小的方式学习神经网络的权重。使用学习了权重的神经网络来输出相对于与上述的机器相关的多个类别的运转参数的值的多个输出值。

另一方面,在本发明的实施例中,在用于使用神经网络来输出相对于机器的运转参数的值的输出值的机器学习装置中,预先设定有与该机器相关的多个类别的运转参数的值的范围,并且预先形成有与该机器相关的多个类别的运转参数的值的范围所对应的神经网络,在新取得的与该机器相关的多个类别的运转参数的值中的至少一个类别的运转参数的值为预先设定的范围外时,形成新的神经网络,使用对新取得的与该机器相关的多个类别的运转参数的值通过实测而得到的训练数据来学习新的神经网络的权重。使用学习了权重的神经网络来输出相对于与该机器相关的多个类别的运转参数的值的输出值。

在该情况下,在本发明的实施例中,机器学习装置具备电子控制单元,该电子控制单元具备:参数值取得部,取得与上述的机器相关的多个类别的运转参数的值;运算部,使用包含输入层、隐藏层及输出层的多个神经网络来进行运算;及存储部。与上述的机器相关的多个类别的运转参数的值被向输入层输入,根据与上述的机器相关的多个类别的运转参数的值而变化的输出值被从对应的输出层输出。关于与上述的机器相关的多个类别的运转参数的各个,预先设定有各类别的运转参数的值的范围,将各类别的运转参数的值的预先设定的范围划分为多个,并且预先设定有通过各类别的运转参数的值的划分后的各范围的组合而划定的多个划分区域。针对各划分区域制作有神经网络并且预先设定有各神经网络的隐藏层的节点的个数。对多个类别的运转参数的值通过实测而事先求出的训练数据存储于存储部。在由参数值取得部新取得的与上述的机器相关的多个类别的运转参数的值为预先设定的范围内时,使用对新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据,利用运算部,以使根据与上述的机器相关的多个类别的运转参数的值而变化的输出值与对应于与上述的机器相关的多个类别的运转参数的值的训练数据之差变小的方式,学习新取得的与上述的机器相关的多个类别的运转参数的值所属的划分区域的神经网络的权重。在由参数值取得部新取得的与上述的机器相关的多个类别的运转参数中的至少一个类别的运转参数的值为预先设定的范围外时,设定至少一个类别的运转参数的值所属且由各类别的运转参数的值的预先设定的范围的组合划定的新的区域,并且对该新的区域制作新的神经网络。使用对新取得的与上述的机器相关的多个类别的运转参数的值通过实测而得到的训练数据,利用运算部,以使根据与上述的机器相关的多个类别的运转参数的值而变化的输出值与对应于与上述机器相关的多个类别的运转参数的值的训练数据之差变小的方式学习新的神经网络的权重。使用学习了权重的各神经网络来输出相对于上述的机器的运转参数的值的输出值。

标号说明

1内燃机

14节气门开度传感器

23nox传感器

24大气温传感器

30、56、67电子控制单元

50空调主体

53、65温度计

54湿度计

55gps

60二次电池

53电流计

64电压计。

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