用于受监督的神经网络学习的组合方法 【技术领域】
本发明一般而言涉及智能信息检索领域,更具体而言涉及基于机器学习的智能信息检索。
背景技术
智能信息检索的未来似乎是基于例如人工神经网络(ANN或NN)的机器学习技术的。ANN表示数据中非线性关系的能力能产生更好的分类,并且最适合用于例如模式识别、预测和分类的信息检索应用。
ANN技术试图模仿人脑的结构和信息表示模式。它的结构取决于要获得的目的。ANN中的学习可以是受监督的也可以是受监督的。在受监督的学习(SL)中,ANN假定结果应该是什么(就像老师指导学生一样)。在这种情况下,我们给出输入、检查输出显示的是什么并且调整输入和输出映射之间的连接强度(权重)直到得到正确的输出为止。这可以施加到所有输入直到网络变成尽可能无误差的网络为止。SL方法要求为每个输入提供输出类别声明。
目前SL方法能够处理离线(静态)或者在线(动态/时序)数据,但是不能两种都处理。此外,当前的SL方法花费很长的时间学习,而且要求相当多数量的迭代才能稳定。目前的SL方法在使用静态数据时将共轭的通用增量规则(共轭GDR)用于机器学习,并且不能确保找到全局最优。用于时序数据的基于随机逼近的GDR是复杂并且不可靠的,因为GDR只能处理离线数据。
因此,本领域需要一种既能处理静态数据又能处理时序数据的SL技术。此外,本领域还需要一种能够减少接收到的数据的维数以便提高机器学习速度和系统性能的SL技术。
【发明内容】
本发明的一个方面是一种用于机器学习的方法,例如受监督的人工神经网络学习。通过接收数据、检查接收到的数据的维数并使用主要(PCA)方法减少该维数以便提高机器学习的性能来执行所述方法。该方法还包括指定神经网络结构,以及初始化权重以便在包括减少的维数的读出数据和预测值之间建立连接。该方法还包括使用指定的神经网络结构、初始化的权重和包括减少的维数的读出数据来执行受监督的机器学习以便对于值进行预测。然后将预测的值与归一化的系统误差阈值进行比较,并且根据该比较的结果修改初始化的权重以便生成在权重空间具有减少的误差的学习过的神经网络。使用已知值验证学习过的神经网络,并且将其用于对于值进行预测。
本发明的另一个方面是具有用于执行受监督的人工神经网络学习的方法的计算机可执行指令的计算机可读介质。根据该方法,检查接收到的数据的维数,并使用PCA方法减少该维数以便提高机器学习的性能。该方法还包括指定神经网络结构,以及初始化权重以便在包括减少的维数的读出数据和预测值之间建立连接。该方法还包括使用指定的神经网络结构、初始化的权重和包括减少的维数的读出数据来执行受监督的机器学习以便对于值进行预测。然后将预测的值与归一化地系统误差阈值进行比较,并且根据该比较的结果修改初始化的权重以便生成在权重空间具有减少的误差的学习过的神经网络。使用已知值验证学习过的神经网络,并且将其用于对于值进行预测。
本发明的另一个方面是一种用于受监督的人工神经网络学习的计算机系统。该计算机系统包括存储设备、输出设备和被编程用于重复执行一种方法的处理器。根据该方法,检查接收到的数据的维数,并使用PCA方法减少该维数以便提高机器学习的性能。该方法还包括指定神经网络结构,以及初始化权重以便在包括减少的维数的读出数据和预测值之间建立连接。该方法还包括使用指定的神经网络结构、初始化的权重和包括减少的维数的读出数据来执行受监督的机器学习以便对于值进行预测。然后将预测的值与归一化的系统误差阈值进行比较,并且根据该比较的结果修改初始化的权重以便生成在权重空间具有减少的误差的学习过的神经网络。使用已知值验证学习过的神经网络,并且将其用于对于值进行预测。
本发明的另一个方面是一种用于受监督的人工神经网络学习的计算机实现的系统。该计算机系统包括用于接收数据的接收模块。一个读取模块读取接收到的数据。一个分析器检查读出数据的维数,并且根据该检查的结果来减少接收到的数据的维数以便提高机器学习的性能。该分析器还指定神经网络结构,以及初始化权重以便在接收到的数据和使用神经网络获得的预测值之间建立连接强度。该分析器使用指定的结构、初始化的权重和包括减少的维数的接收数据来执行受监督的学习以便对于值进行预测。一个比较器将预测的值与归一化的系统误差阈值进行比较。然后该分析器根据所述比较的结果来修改初始化的神经网络的权重以便生成在权重空间具有减少的误差的学习过的神经网络。
通过阅读本发明的以下的详细描述以及查看作为说明书一部分的附图,本发明的其他方面将会显而易见。
【附图说明】
图1是根据本发明教导的计算机实现的系统的主要部件的一个实施例的框图。
图2是说明图1所示的实施例的全部操作的流程图。
图3显示一个适合的计算系统环境的例子,该计算系统环境用于实现本发明的实施例,例如图1和2中所示的实施例。
【具体实施方式】
受监督的机器学习既可以在静态数据环境中执行也可以在实时数据环境中执行。
图1说明根据本发明的计算机实现的系统100的一个实施例的概览。数据库130被连接用以接收由110概括指示的各种类型的接收数据。例如,数据库130可以接收这样的数据,例如时序数据111、文本/文档数据112、静态的非结构化数据113、决定自动化数据114和/或函数逼近数据115。决定自动化数据是指软件系统中封装人类决策和领域专家经验的数据,计算机需要这种数据支持作出人类决定的活动。例如,在现代的汽车中已经使用了这样的数据,用于实现根据封装的复杂条件的判断实时作出专家刹车决定的控制系统。函数逼近是指用于在实际和计算的从属变量之间找到紧密联系以便得到一组独立变量的曲线拟和方法。在一些实施例中,耦合一个唯一数值表示模块120,用于接收文本/文档数据110并将接收到的文本/文档数据转换成唯一的数值表示。
接收模块140被连接到数据库130,用于从数据库130接收数据。读取模块150被连接到接收模块140,用于从接收模块140读取接收到的数据的样本。在一些实施例中,读取模块读取接收到的数据的样本,使得读出数据的样本具有一个预定的窗口长度。如果接收模块140接收静态数据,则读取模块150使用预定长度的静态窗口来读取接收到的静态数据的样本。如果接收模块140接收实时数据,则读取模块150使用动态改变的预定长度窗口来读取接收到的实时数据的样本。
耦合到读取模块150的分析器160检查读出数据的维数,并根据检查的结果减少读出数据的维数以便提高机器学习的性能。在一些实施例中,耦合到分析器160的比较器170将读出数据的维数与一个阈值进行比较,分析器160根据由比较器170所作的比较结果减少读出数据的维数,以便提高机器学习的性能。在一些实施例中,该阈值大于或等于25。在一些实施例中,比较器170将读出数据中的属性数量与阈值进行比较,分析器160通过使用主要(PCA)减少读出数据中的属性数量,从而减少读出数据的维数。
在一些实施例中,分析器160通过使用下列方程式形成协方差矩阵,从而减少读出数据的维数:
C
n×n=X
t*X
其中接收到的数据是以矩阵形式(例如X
M×N)输入的。然后分析器160使用下列方程式根据形成的协方差矩阵计算特征值和特征向量:
(C-λI)U
i=0-----------→ (1)
其中λ=(λ
1,λ
2,......,λ
n)是方程式的根。通过解方程(1)得到特征值,并且通过U
i=(u
i1,u
i2,......,u
in)得到对应的特征向量。然后分析器160使用下式选择主成分:
{ 1,2 , . . k | Σ i = 1 k λ i / Σ i = 1 n λ i ≥ β } ]]> 其中β是截止百分比(~85%)。分析器160还使用下式选择接收到的数据中的特征:
{ j | U ij ≥ max j { U ij } / 2 , i ∈ cuttoff ( k ) ]]> 以便减少接收到的数据的维数。
然后,分析器160指定神经网络结构并且初始化权重,以便建立读出数据和由神经网络预测的值之间的连接强度。分析器160使用指定的结构、初始化的权重和读出数据执行受监督的学习以便对于值进行预测。在一些实施例中,分析器160使用学习参数(例如,输入节点的数量、隐藏层数量、每层中的节点数量、输出层的节点数量、学习速度和/或动态存储)指定学习参数,用于更新初始的权重。在一些实施例中,分析器160使用范围从大约-0.5到0.5的随机值初始化权重。
比较器170将预测的值与归一化的系统误差阈值进行比较。分析器160然后根据该比较的结果修改神经网络的初始化的权重,以便生成在权重空间中具有减少的误差的学习过的神经网络。在一些实施例中,分析器160通过使用期望值和预测值计算归一化的系统误差。比较器170然后将计算的归一化的系统误差与归一化的系统误差阈值进行比较,以便使用基于该比较结果的梯度下降技术减少权重空间中的误差。
在一些实施例中,分析器160通过使用下列方程式减少权重空间中的先前迭代误差:
W
ij(n+1)=W
ji(n)+η(δ
jo
i)
其中W
ij是i行和j列空间中的权重,o
i是实际的输出,δ
j是期望的输出,而η是学习速度。
在一些实施例中,分析器160在使用赫斯(Hessian)矩阵减少在先前迭代中的误差(当计算的归一化的系统误差超过归一化的系统误差阈值时)的同时,提高神经网络的学习速度。在这些实施例中,分析器160使用赫斯矩阵的下列方程式提高神经网络的学习速度:
H [ i , k ] = Σ k Σ j G [ k ] * w [ i , j ] ]]> 其中H[i,k]是二阶导数的对角元素,其中i,j和k是节点和隐藏层的结构相关数,并且其中:
G [ k ] = Σ j w [ j , k ] * d [ i , k ] ]]> 其中G[k]是先前迭代误差相对于权重空间的梯度,并且i,j和k是节点和隐藏层的结构相关数。
在一些实施例中,分析器160还在当计算的归一化的系统误差超过归一化的系统误差阈值时使用函数逼近邻域技术减少在先前迭代中的误差(当计算的归一化的系统误差超过归一化的系统误差阈值时)的同时,提高神经网络的学习速度。在这些实施例中,分析器160使用下列函数逼近邻域技术的方程式更新权重:
W(t+1)=f(n,m,δr(t))
其中n是输入层中的节点数量,m是下一层中的节点数量,而δr(t)是基于时间函数的参数。
分析器160使用学习过的神经网络验证学习过的神经网络,以便通过执行受监督的学习来对于值进行预测,从而检验学习过的神经网络的可靠性。分析器160使用预测的值和已知和/或预期的数据计算预测值的准确度。比较器把计算的准确度与预测的值进行比较。然后分析器160重复受监督的学习来更新权重,进一步根据比较的结果减少系统误差。耦合到分析器170的输出模块180使用验证的神经网络和未知的输入来对于值进行预测。
图2说明本发明的过程200的一个实施例的概览。如图2所示,本发明的一个方面是具有计算机可执行的指令的计算机可读介质,该计算机可执行的指令用于执行受监督的机器学习的过程200。
该过程通过接收稀疏数据开始于步骤210,其中稀疏数据例如:时序数据(例如,时序数据可以包括诸如股票市场数据和天气预报数据、发动机数据和/或飞机维修数据的实时数据)、文本文档数据和/或静态的非结构化数据。在一些实施例中,如果接收到的数据是静态数据,则该过程包括使用预定的窗口长度接收数据,如果接收到的数据是动态数据,则该过程包括使用预定窗口长度的动态改变窗口接收动态数据。在一些实施例中,如果接收到的数据是实时数据,则该过程包括使用预定窗口长度的动态改变窗口重复读取接收到的实时数据的样本。
步骤220和225包括检查接收到的数据的维数,并分别根据检查的结果减少接收到的数据的维数以便提高机器学习的性能。在一些实施例中,这包括将接收到的数据的维数与一个阈值进行比较,并根据该比较的结果减少接收到的数据的维数,以便提高机器学习的性能。在一些实施例中,对接收到的数据的维数进行比较包括将接收到的数据中的属性数量与阈值进行比较,并根据该比较的结果使用PCA减少接收到的数据中的属性数量。参考图1更详细地描述这种使用PCA减少属性数量的技术。在一些实施例中,该阈值大于或等于25个属性。
步骤230包括指定受监督的神经网络结构。在一些实施例中,这包括指定神经网络的学习参数,例如输入节点的数量、隐藏层的数量、每层中的节点数量、输出层的节点数量和/或学习速度。这还可以包括分配动态存储器用于更新初始化的权重,并且在使用指定的神经网络结构进行每次迭代期间存储输入和输出节点之间的趋势(trend)。步骤235包括初始化权重以便在接收到的数据和预测值之间建立连接强度。在一些实施例中,初始化权重包括使用随机的权重初始化权重。
步骤240包括使用指定的结构、初始化的权重和包括减少的维数的接收数据执行受监督的机器学习,以便对于值进行预测。步骤245和250分别包括将预测值与期望值进行比较,并根据比较的结果修改神经网络的初始化的权重,以便生成在权重空间具有减少的误差的学习过的神经网络。在一些实施例中,将预测值与期望值进行比较包括通过使用期望值和预测值计算归一化的系统误差,从而使用梯度下降技术减少权重空间中的误差,以及将计算的归一化的系统误差与归一化的系统误差阈值进行比较。参考图1更详细地描述使用梯度下降的技术计算归一化系统误差。在这些实施例中,重复上述检查、减少、指定、执行和比较步骤直到计算的归一化的系统误差小于或等于归一化的系统误差阈值。
在一些实施例中,步骤255包括通过使用赫斯矩阵改变受监督的神经网络的学习速度,以便提高神经网络的学习,该步骤还包括使用函数逼近邻域技术干扰神经网络的学习参数,以便进一步提高神经网络的学习速度。参考图1更详细地讨论这些使用赫斯矩阵和函数逼近邻域技术来提高神经网络的学习速度的技术。
步骤260包括验证学习过的神经网络以便检验学习过的神经网络的可靠性。在一些实施例中,这包括使用学习过的神经网络执行受监督的学习以便对于值进行预测,并通过将预测值与已知值进行比较来计算预测值的准确度,然后将计算的准确度与准确度值进行比较,并根据该比较的结果重复执行、比较和验证步骤,以便进一步提高学习过的神经网络的可靠性。在一些实施例中,重复上述步骤直到计算的准确度小于或等于准确度值。在一些实施例中,在通过将计算的准确度与准确度值进行比较来验证神经网络的同时,还重复改变学习速度的步骤以便进一步提高神经网络的学习。
步骤270包括通过将未知的值输入到验证的神经网络中以及在验证的神经网络上执行受监督的学习来对于值进行预测。
图2所示的方法200可以实现为如图1所示的接收模块140、读取模块150,分析器160和/或比较器170。本发明的各方面可以以软件实现,该软件可以在图2中所示的环境中运行,或者在任何其他合适的计算环境中运行。本发明在很多其他的通用或专用计算环境中也是可操作的。一些计算环境是个人计算机、通用计算机、服务器计算机、手持式设备、膝上型设备、多处理器、微处理器、机顶盒、可编程的消费电子产品、网络PC、小型计算机、大型计算机、分布式计算环境等执行存储在计算机可读介质上的代码的计算环境。本发明可以部分或全部地实现为计算机可执行的指令,例如由计算机执行的程序模块。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,用于执行特定任务或实现特定的抽象数据类型。在分布式的计算环境中,程序模块可以位于本地或远程的存储设备。
图3显示用于实现本发明的实施例(如图1和2中所示)的合适的计算系统环境300的一个例子。本发明的各方面可以以软件实现,该软件可以在图3所示的环境中运行或在任何其他合适的计算环境中运行。本发明在很多其他的通用或专用计算环境中也是可操作的。一些计算环境是个人计算机、服务器计算机、手持式设备、膝上型设备、多处理器、微处理器、机顶盒、可编程的消费电子产品、网络PC、小型计算机、大型计算机、分布式计算环境等。本发明可以部分或全部地实现为计算机可执行的指令,例如由计算机执行的程序模块。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,用于执行特定任务或实现特定的抽象数据类型。在分布式的计算环境中,程序模块可以位于本地或远程的存储设备。
图3以计算机310的形式显示通用计算设备,计算机310包括处理单元302、存储器304、可移动存储器312和不可移动存储器314。存储器304可以包括易失存储器306和非易失存储器308。计算机310可以包括各种计算机可读介质,或者可以访问包括各种计算机可读介质的计算环境,各种计算机可读介质包括易失存储器306和非易失存储器308、可移动存储器312和不可移动存储器314。计算机可读介质还包括用于借助于任何类型的网络在不同设备之间传输可执行的代码的载波。计算机存储器包括RAM、ROM、EPROM和EEPROM、闪存或其他存储技术、CD ROM、数字多功能盘(DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁的存储设备、或任何其他能够存储计算机可读指令的介质。计算机310可以包括包含输入316、输出318和通信连接320的计算环境,或者可以访问包含输入316、输出318和通信连接320的计算环境。计算机可以使用通信连接连接到一个或多个远程计算机在连网环境中进行操作。远程计算机可以包括个人计算机、服务器、路由器、网络PC、同级设备或其他共用网络节点等。通信连接可以包括局域网(LAN)、广域网(WAN)或其他网络。
结论 上述计算机实现的技术提供了一种对于静态和时序的数据都可用的受监督的人工神经网络学习技术。此外,上述技术减少接收到的数据的维数以便提高机器学习速度和系统性能。上述技术可以被用于预测应用中的值,其中应用例如是自动的电子邮件回复、文本挖掘、文档分类、信息搜索、天气预报、销售预测、预测股票市场数据、验证数据和/或风险管理。上述技术还可以被用于例如工业自动化、过程控制和其他相似应用的应用中。
上述描述是说明性的而不是限制性的。很多其他的实施例对于本领域的技术人员来说是显而易见的。因此,本发明的范围是由所附的权利要求书以及这些权利要求的等同物的全部范围确定的。