本发明涉及数据存储领域,具体涉及一种神经网络数据存储器、数据存储方法及数据查找方法。
背景技术:
目前已有的存储器和存储方法采用基于地址的存储方式,其特点是存储的数据量越大,则查找数据时需要使用的时间越长。并且在数据库中进行检索时,检索字段需要包括主键内容,否则查找时间会非常长。因此需要一种新的存储器、存储方法,来解决现有技术的缺陷。
技术实现要素:
本发明的目的是为了解决现有的数据存储器和存储方法的数据查找计算量随着数据存储量的增加而增加,需要使用主键作为检索字段的缺点,而提出一种神经网络数据存储器、数据存储方法及数据查找方法。
一种神经网络数据存储器,所述神经网络存储器是包括如下特征的神经网络模型:
n个输入节点;
n个输出节点;
连接于输入节点与输出节点间的第一隐节点组;其中第一隐节点组为2层,每层2个隐节点;第一隐节点组中隐节点的网络权值为(-1,1)区间内的随机数;
连接于输入节点与输出节点间的第二隐节点组;其中第二隐节点组为1层,其中的隐节点个数依据存储数据的规模而定;第二隐节点组中隐节点的网络权值是可调的。
一种神经网络数据存储方法,包括:
步骤一、将待存储数据分为p组,每组值代表一个待存储字段;
步骤二、通过输入节点输入至如权利要求2所述的神经网络数据存储器中;
步骤三、使用梯度法调整所述神经网络存储器中第二隐节点组中的网络权值使得网络输出在设定的精度下为0,即使得y={y1,y2,…,yn}={0,0,…,0}。
一种神经网络数据查询方法,所述方法用于查询通本发明的神经网络数据存储方法进行存储后的数据,所述神经网络数据查询方法包括:
步骤一、将输入向量k={k1,k2,…,km}输入至输入节点;输入向量k用于表示已知字段;输入节点中未接收输入向量的部分表示未知字段;
步骤二、通过梯度法调节未知字段对应的输入节点的向量值,使得输出节点的值均为0;
步骤三、获取此时未知未知字段对应的输入节点的向量值,作为待查询数据。
本发明的有益效果为:1、使用这样的存储结构,使得数据查找的计算量不随着存储量的增加而增加,查询速度非常快,当字段数量为2时,已知一个字段查询另一个字段,查询速度最快可为10ms;2、可以实现按照数据的一部分内容查找数据,这一过程模拟了人脑的记忆联想功能,是现有计算机存储器不具备的能力。因此该神经网络数据存储器可用于人工智能系统的知识和信息的存储。
附图说明
图1为本发明的神经网络数据存储器的结构示意图;
图2为本发明的具体实施方式五中神经网络数据查询方法的示意图。
具体实施方式
具体实施方式一:本实施方式提供了一种神经网络数据存储器,如图1所示,它是包括如下特征的神经网络模型:
n个输入节点。
n个输出节点。
连接于输入节点与输出节点间的第一隐节点组;其中第一隐节点组为2层,每层2个隐节点;第一隐节点组中隐节点的网络权值为(-1,1)区间内的随机数。
连接于输入节点与输出节点间的第二隐节点组;其中第二隐节点组为1层,其中的隐节点个数依据存储数据的规模而定,例如10或100个节点;第二隐节点组中隐节点的网络权值是可调的。
本实施方式的神经网络数据存储器实质上是一种神经网络模型,在使用时,将待存储数据输入至输入节点,经过隐节点的处理后由输出节点输出结果。这个过程类似于神经网络模型的训练过程,即待存储数据相当于训练数据,隐节点的处理过程相当于训练过程,输出结果相当于分类结果。而如果不对隐节点的结构进行改进,在查找时会出现查找到未存储过的数据的情况。因此本发明对隐节点的结构进行了限定,避免了这一情况。
具体实施方式二:本实施方式与具体实施方式一不同的是:
输入节点的作用函数为:y(1)=x(1);y(1)为输入节点的输出量,x(1)为输入节点的输入量。
输出节点的作用函数为:
第一隐节点组中隐节点的作用函数为:
其中x(2)i为第一隐节点组中的第i个输入量;ai是xi到该隐节点的连接值,c是该隐节点的网络权值,m为第一隐节点组中输入量的个数。
第二隐节点组中隐节点的作用函数为:
其中y(4)为第二隐节点组中隐节点的输出量;x(4)i为第二隐节点组中隐节点的输入量;ai是x(4)i到该隐节点的连接权值,b和c是该隐节点的网络权值;x={x1,x2,…,xm}是该隐节点的输入向量,d是该隐节点在其输入向量空间的坐标向量;函数f的表达式为:
其中r0为窗口半径。
窗口函数的作用是:在第二隐节点组中只有距离输入数据小于半径r0的隐节点才被激活,因为只有这些隐节点的输出不为0。这就保证无论第二隐节点组的数目有多少,对一个数据的学习或搜索只激活距离该数据小于r0的隐节点,因此本存储器数据查找的计算量不随数据存储量的增加而增加,适合大量数据的存储和查询。
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式提供一种神经网络数据存储方法,包括:
步骤一、将待存储数据分为q组,每组值代表一个待存储字段。
步骤二、通过输入节点输入至具体实施方式二的神经网络数据存储器中。需要说明的是,每个输入节点用于输入什么样的信息应当是确定的,例如一个神经网络存储器用于存储学生信息,其中第1至第5输入节点用来接收学生的学籍号信息,那么后续的存储也应如此,这样在后续查询的时候就能够通过输入节点的序号来确定查询结果的含义。
步骤三、使用梯度法调整所述神经网络存储器中第二隐节点组中的网络权值使得网络输出在设定的精度下为0,即使得y(2)={y1,y2,…,yn}={0,0,…,0}。
其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:
步骤二中,梯度下降法的公式为:
其中w代表第二隐节点组中隐节点的网络权值;j=y12+y22+…+yn2是神经网络存储器的目标函数。r是步长。
其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式提供一种神经网络数据查询方法,如图2所示,所述方法用于查询通过具体实施方式四的方法进行存储后的数据,所述神经网络数据查询方法包括:
步骤一、将输入向量k={k1,k2,…,km}输入至输入节点;输入向量k用于表示已知字段;输入节点中未接收输入向量的部分表示未知字段。未知字段在图2中用z表示。
步骤二、通过梯度法调节未知字段对应的输入节点的向量值,使得输出节点的值均为0。
步骤三、获取此时未知字段对应的输入节点的向量值,作为待查询数据。
例如,已知字段是学生的学籍号信息,未知字段的信息为学生的姓名信息,将学籍号信息输入至输入节点,通过调节其他字段(即待查询字段)使得输出节点的向量值为0,此时的输入节点的向量值即为待查询的学生姓名信息。
具体实施方式六:本实施方式的神经网络数据查询方法与具体实施方式五不同的是,步骤二中,通过梯度法调节未知字段对应的输入节点的网络权值所使用的公式为:
其中i=1,2,3,…,p,p为未知字段对应的输入节点的个数。zi为未知字段的第i个输入节点。
其它步骤及参数与具体实施方式五相同。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。