用于管理及预测自动分类器性能的方法和装置的制作方法

文档序号:6622820阅读:154来源:国知局
专利名称:用于管理及预测自动分类器性能的方法和装置的制作方法
技术领域
本发明涉及用于检测时间性过程变化的技术,以及用于管理和预测自动分类器性能的方法和装置。
背景技术
很多依赖于物体的模式识别和/或分类的工业应用(诸如自动制造检查或分类系统)都在利用有监督学习技术。如图1所代表的有监督学习系统是一种基于已加注标签的训练数据2的代表性输入集合,利用有监督学习算法4来创建经训练的分类器6的系统。训练数据2的集合中的每个成员都包含特征向量xi以及指示出具体成员所属唯一类别的标签ci。给定特征向量x,经训练的分类器f将返回相应的类别标签f(x)=c^.]]>有监督学习系统4的目标是使分类器6的准确性或相关的量度不仅对于训练数据2最大化,而且对于类似获得的、学习算法4无法获得的测试数据的集合也最大化。如果用于具体应用的类别标签的集合只包含两个条目,则将该应用称为二元(或两类)分类问题。二元分类问题在自动检查中常见,例如其目标通常是判断制成品是好还是坏。例如在将项目分类成一个或多个子类的过程(例如按品种对鱼分类、按速度对计算机存储器分类等等)中,也会遇到多类的问题。在统计模式识别中,已经广泛研究了有监督学习,并且基于不可见的测试数据来训练分类器并且预测经训练的分类器的性能的多种学习算法和方法是公知的。
再次参考图1,给定已加注标签的训练数据集合2(D={xi,ci}),有监督学习算法4可被用于产生经训练的分类器6(f(x)=c^).]]>风险或成本αij可能与以下情况相关联,即当样本所属的真正类别为j时将其错误地分类为属于类别i。传统上,正确的分类被指定为零成本αij=0。典型的目标是估计预期损失(即预计分类器6在从相同过程中得到的新样本上引起的成本的加权平均),并使其最小化。损失的概念非常普通。在i和j不同时设置αij=1,并且在i和j相同时设置αij=0(所谓的0/1损失),这种情况下等同于将所有错误看作是相同的,并且致使总的错误分类率最小。更典型地,不同类型的错误将具有不同的相关成本。更复杂的损失公式也是可能的。例如,损失αij可以是函数,而不是常数。但是,在每种情况下,都定义了预测分类器性能的某种量度,并且目标是使性能最大化,或者等同地,使损失最小化。
目前存在若干用于预测分类器性能的现有技术。一种这样的技术是使用独立的训练和测试数据集合。使用训练数据来构造经训练的分类器,然后基于独立的测试数据来评估经训练的分类器的性能。但是在很多应用中,收集已加注标签的数据困难而又昂贵,因此希望在训练期间使用所有可获得的数据,从而使所产生分类器的准确性最大化。
另一种被称为“传统k次交叉验证”(或简称为“k次交叉验证”)的用于预测分类器性能的现有技术不需要单独的测试数据,因此允许将所有可获得的数据用于训练。如图2A和2B所示,在k次交叉验证中,训练数据{xi,ci)被随机地分割成k个子集Di(1≤i≤k),这k个子集具有大致相等的大小(图2B,步骤11)。对于迭代i=1到k(步骤12-17),通过使用除Di之外的所有可获得的数据而使用有监督学习算法来训练分类器(步骤14)。然后,这个经训练的分类器被用于分类子集Di中的所有样本(步骤15),并且存储分类结果(步骤16)。在很多情况下,也可以(在步骤16处)只保存汇总统计量,而不保存个别的分类。例如在恒定损失的情况下,保存各种类型的错误的总数就足够了。在k次迭代之后,对于全部数据集合,就已经知道了真实(ci)和估计 的类别标签(或相应的足够统计量)。然后可以计算诸如错误分类率、工作特性曲线或预期损失之类的性能估计(步骤18)。如果样本总数为n,那么每个样本的预期损失例如可以被估计为 当k=n-1时,k次交叉验证也被称为“留一法交叉验证”。在某些应用中,被称为“广义交叉验证”的、在计算上更有效的变体方案可能是优选的。这里,我们将这些和类似的现有技术称为“传统交叉验证”,并且不对它们进行区分。
在k次交叉验证中,数据样本只在它们不对分类器的训练起作用时,才被用来估计性能,从而得到合理的性能估计。另外,对于足够大的k,在上述每次迭代期间的训练集合大小(大致为 其中n是已加注标签的训练数据样本的数目)只略小于全部数据集合的大小,从而导致对性能只是稍有悲观的估计。
很多有监督学习算法致使具有一个或多个可调整参数的分类器控制工作点。为了简单起见,这里将讨论局限于二元分类问题,其中ci是两个不同类别中的一个或另一个类别中的成员。但是,将会意识到,这里所论述的原理可以被扩展到多类分类问题。在二元分类中,假肯定(falsepositive)被定义为在样本实际上属于负(或好)类别时,将其错误地分类为属于正(或缺陷)类别。相似地,真肯定被定义为将样本正确地分类为属于正类别。然后,假肯定率(也被称为假报警率)被定义为假肯定的数目除以负类别的成员数目。相似地,敏感度被定义为真肯定的数目除以正类别的成员数目。根据这些定义,具有可调整工作点的二元分类器的性能可以由图3所示的工作特性曲线(有时被称为接收方工作特性(ROC)曲线)来概括。分类器工作点的变化等同于选择ROC曲线上的点。在每个工作点处,发生任一类型错误分类的比率估计是已知的。如果相关成本αij也已知,则可以计算出任一工作点的预期损失。对于单调的工作特性,可以选择出唯一的工作点以使预期损失最小化。如前所述,k次交叉验证提供了构造二元分类器的估计ROC曲线所需的信息。
除了有效地利用所有可获得的数据之外,k次交叉验证还具有允许估计预测性能的可靠性的额外优点。对于将数据划分到k个子集中的不同伪随机划分,可以重复k次交叉验证算法。这种方法例如不仅可用于计算预期损失,而且可用于计算该估计的标准方差。相似地,可以执行非参数假设测试(例如,k次交叉验证可被用于回答诸如“损失超过估计值两倍的可能性有多大?”之类的问题)。
用于预测分类器性能的现有技术的方法假设训练数据的集合具有代表性。如果不是这样,并且具体而言,如果产生训练数据样本的过程受时间性变化的影响(例如过程随时间偏移或改变),那么经训练的分类器的性能可能要比预测差得多。这样的性能差异或改变可以在其发生时被用于检测时间性变化,但是优选的做法是在训练阶段的过程中检测时间性变化。有监督的学习通常不能解决这个问题。
两种明确地对过程中的时间性变化进行预测的技术是时间序列分析和统计过程控制。时间序列分析试图理解和建模数据集合中的时间性变化,通常这种方法的目标是以一定时期内的行为来预测未来的行为,或者校正季节性或其他变化。统计过程控制(SPC)提供了使过程操作保持在可接受的限度内的技术,并且用于在无法这样做时发出警报。理想地,统计过程控制能够被用来使过程保持在其最佳工作点上或最佳工作点附近,几乎消除了由于基础过程中的时间性变化而引起的恶劣分类器性能。在实际中,由于时间、成本以及相关困难的影响,因此这种理想情况难以达到。因此,即使在被很好控制的过程中,时间性变化也可能存在于预定限度之内,并且这种变化可能足以干扰使用有监督学习所创建的分类器的性能。在出现时间性过程变化时,时间序列分析和统计过程控制都无法提供可直接用于分析和管理这种分类器的工具。
当a)生成训练数据集合的基础过程不具有严重的时间性变化,或者b)时间性变化出现时,可以应用预测分类器性能的现有技术方法,但是所述基础过程是平稳的并且是各态历经的,并且样本在一段足够长的时间段内被收集,因此它们具有代表性。在很多情况下,在所述基础过程中存在显式或隐式的时间性变化,在这些情况下,认为训练数据集合代表了基础过程的假设并不合理,并且k次交叉验证对性能的估计会明显过高。例如考虑图4A、4B和4C中所示的过程。在这些图形中的“状态”仅仅出于图示的目的。实际状态将具有很高的,通常未知的大小,并且其自身难以获知。如图4A所示的过程不具有时间性变化。如图4B所示的过程是具有随机的、各态历经的波动的平稳过程。如图4C所示的过程示出了稳定的偏移,其在局部均值周围伴随有随机波动。如果给定足够的训练数据,传统的k次交叉验证则将准确地预测出对于图4A所示的过程的分类器性能。对于图4B所示的过程,如果数据集合是在一段足够长的时间内被收集,从而大致以均衡分布对状态采样,那么也将获得正确的结果。如果没有这样做,则通常将对性能做出过高估计。对于图4C所示的过程,实际的性能可能在最初与预测性能相匹配,但是实际性能将随着对未来工作点的进一步采样而下降。这一系列采样过程仅仅出于图示的目的,决不是穷举性的。
判断训练数据的集合是否代表过程的步骤通常需要收集附加的已加注标签的训练数据,这可以是相当昂贵的。作为示例,考虑对复杂印制电路配件的制造。使用SPC,可以以高可靠性(例如以百万分之100(100ppm)数量级上的缺陷率)来构造这种印制电路配件上的单独的焊点。因此,有缺陷的焊点非常少。但是,大的印制电路配件可以有超过50000个的焊点,因此如果没有自动检测需要修复的焊点的能力,那么缺陷的经济影响将是巨大的。有监督的学习通常被用于为这种应用构造分类器。几千个缺陷需要训练,但是由于好的焊点以10000比1的比例在数量上超过坏的焊点,因此必须对几百万个好的焊点进行检查,以便获得足够的缺陷样本以训练分类器。这会给负责分配真实类别标签的分析者(通常是人类专家)带来沉重负担,因此对训练数据的收集非常耗时、昂贵,而且易于出现错误。另外,对训练数据的收集大于所需,这减慢了训练过程,并且不会提高性能。因此,希望尽可能使用最小的训练数据集合来获得所需的性能。
由于上述原因,因此希望能够从训练数据自身的指示中检测在过程中时间性变化的出现或可能出现。还希望即使在基础过程中出现时间性变化的情况下,也能够预测预期的未来分类器性能。最后,如果能从附加训练数据的收集中获得性能增益,并且为附加训练数据的使用提供不同的选项(例如用于回答如下问题是简单地增加现有训练数据的做法更好,还是基于训练数据样本的滑动窗而周期性地重新训练分类器的做法更好)将是非常有用的。

发明内容
本发明提供了用于检测时间性过程变化的技术,以及通过使用基于样本的时间排序而得到的性能估计来管理和预测被应用于这种过程的自动分类器的性能的技术。具体而言,本发明详述了在已加注标签的训练数据上检测在过程中出现或可能出现的时间性变化的方法,用于在这种时间性变化出现时预测使用有监督学习算法来训练的分类器的性能的方法,以及用于研究包含了附加训练数据的收集和最优利用过程的情形的方法。所描述的技术还可以被扩展到处理多个源的时间性变化。
本发明的第一方面包括根据所产生的过程样本中的指示来检测过程中的时间性变化,所述过程样本被用作已加注标签的训练数据,其用于利用有监督学习来训练分类器。根据本发明的第一方面,该方法包括以下步骤根据一个或多个第一标准选出已加注标签的训练数据的一个或多个第一教导子集,并且根据一个或多个第二标准选出已加注标签的训练数据的相应第一测试子集,其中所述一个或多个第一标准和一个或多个第二标准中的至少一个标准至少部分地基于时间顺序;分别使用相应的一个或多个第一教导子集来训练一个或多个第一分类器;分别使用相应的一个或多个第一分类器来分类一个或多个第一测试子集的成员;将分配给一个或多个第一测试子集的成员的分类与已加注标签的训练数据中的相应成员的相应真实分类相比较,从而基于比较结果而产生一个或多个第一性能估计;根据一个或多个第三标准选出已加注标签的训练数据的一个或多个第二教导子集,并且根据一个或多个第四标准选出已加注标签的训练数据的相应第二测试子集,其中所述第三标准中的至少一个标准至少部分不同于所述第一标准并且/或者所述第四标准中的至少一个至少部分不同于所述第二标准;分别使用相应的一个或多个第二教导子集来训练一个或多个第二分类器;分别使用相应的一个或多个第二分类器来分类一个或多个第二测试子集的成员;将分配给一个或多个第二测试子集的成员的分类与已加注标签的训练数据中的相应成员的相应真实分类相比较,从而基于比较结果而产生一个或多个第二性能估计;以及分析所述一个或多个第一性能估计和一个或多个第二性能估计,从而检测出时间性变化的证据。
还可以根据如下步骤来执行对过程中时间性变化的检测对训练数据的一个或多个第一子集执行按时间排序的k次交叉验证,以产生一个或多个第一性能估计;对训练数据的一个或多个第二子集执行按时间排序的k次交叉验证,以产生一个或多个第二性能估计;以及分析所述一个或多个第一性能估计和一个或多个第二性能估计,从而检测出时间性变化的证据。
本发明的第二方面包括预测在一组己加注标签的训练数据上被训练的分类器的性能。根据本发明的这个第二方面,该方法包括以下步骤根据一个或多个第一标准选出已加注标签的训练数据的一个或多个第一教导子集,并且根据一个或多个第二标准选出已加注标签的训练数据的相应第一测试子集,其中所述一个或多个第一标准以及一个或多个第二标准中的至少一个标准至少部分地基于时间顺序;分别使用相应的一个或多个第一教导子集来训练一个或多个第一分类器;分别使用相应的一个或多个第一分类器来分类一个或多个第一测试子集的成员;将分配给一个或多个第一测试子集的成员的分类与已加注标签的训练数据中的相应成员的相应真实分类相比较,从而基于比较结果而产生一个或多个第一性能估计;根据一个或多个第三标准而选出已加注标签的训练数据的一个或多个第二教导子集,并且根据一个或多个第四标准而选出已加注标签的训练数据的相应第二测试子集,其中所述第三标准中的至少一个标准至少部分不同于所述第一标准并且/或者所述第四标准中的至少一个标准至少部分不同于所述第二标准;分别使用相应的一个或多个第二教导子集来训练一个或多个第二分类器;分别使用相应的一个或多个第二分类器来分类一个或多个第二测试子集的成员;将分配给一个或多个第二测试子集的成员的分类与已加注标签的训练数据中的相应成员的相应真实分类相比较,从而基于比较结果而产生一个或多个第二性能估计;以及基于所述第一性能估计和第二性能估计的统计分析来预测所述分类器的性能。
分类器性能预测还可以根据如下步骤来执行对训练数据的一个或多个第一子集执行按时间排序的k次交叉验证,以产生一个或多个第一性能估计;对训练数据的一个或多个第二子集执行按时间排序的k次交叉验证,以产生一个或多个第二性能估计;以及对所述一个或多个第一性能估计和一个或多个第二性能估计执行统计分析,以预测所述分类器的性能。
可替换地,分类器性能预测还可以根据如下步骤来执行根据一个或多个第一标准选出已加注标签的训练数据的一个或多个教导子集,并且根据一个或多个第二标准选出已加注标签的训练数据的相应测试子集,其中所述一个或多个第一标准和一个或多个第二标准中的至少一个标准至少部分地基于时间顺序;分别使用相应的一个或多个教导子集来训练一个或多个第一分类器;分别使用相应的一个或多个第一分类器来分类一个或多个测试子集的成员;将分配给一个或多个测试子集的成员的分类与已加注标签的训练数据中的相应成员的相应真实分类相比较,从而基于比较结果而产生一个或多个性能估计;以及基于所述一个或多个性能估计的统计分析来预测分类器的性能。
本发明的第三方面包括预测由于训练数据集合大小的变化对分类器性能所产生的影响。根据本发明的这个第三方面,该方法包括以下步骤从已加注标签的训练数据中选出多个具有变化大小的训练子集以及相应的测试子集;在训练子集上训练多个分类器;使用相应分类器来分类测试子集的成员;以及将分配给测试子集成员的分类与已加注标签的训练数据中的相应成员的相应真实分类相比较,从而产生作为训练集合大小的函数的性能估计。
由于改变训练数据集合大小而进行的分类器性能预测还可以根据如下步骤来执行在训练数据上执行改变k值的按时间排序的k次交叉验证;并且内插或外插所产生的性能估计,以得到所期望的训练集合大小。
本发明的第四方面包括预测通过将滑动窗用于训练数据集合而被训练的分类器的性能。根据本发明的这个第四方面,该方法包括以下步骤根据一个或多个至少部分基于时间顺序的第一标准将训练数据集合排序成经排序的训练数据集合;选择一个或多个具有大致相等的第一预定大小的教导子集以及相应的一个或多个具有大致相等的第二预定大小的测试子集,所述教导子集包括所述经排序的训练数据集合中的第一相邻成员,并且所述测试子集包括来自所述经排序的训练数据集合的至少一个成员,该成员在时间上紧随其相应的一个或多个教导子集的所有成员之后;使用所述一个或多个教导子集来训练相应的一个或多个分类器;使用所述相应的一个或多个分类器来分类所述相应的一个或多个测试子集的成员;将分配给所述相应的一个或多个测试子集的成员的分类与分配给己加注标签的训练数据中的相应成员的相应真实分类进行比较,以产生一个或多个性能估计;并且基于所述一个或多个性能估计的统计分析来预测所述分类器的性能,所述分类器是通过将滑动窗用于大致具有所述第一预定大小的训练数据而被训练的。
由于将滑动窗用于训练而进行的分类器性能预测还可以根据如下步骤来执行根据至少部分基于时间顺序的一个或多个第一标准来选择训练数据集合的一个或多个组,所述一个或多个组具有大致相等的大小;从所述一个或多个组中的每个组中,根据至少部分基于时间顺序的一个或多个第二标准而选出具有大致相等的第一预定大小的一个或多个教导子集,并且根据至少部分基于时间顺序的一个或多个第三标准而选出相应的具有大致相等的第一预定大小的测试子集;使用来自所述一个或多个组中每个组的一个或多个教导子集来训练相应的一个或多个分类器;使用所述相应的一个或多个分类器来分类所述相应的一个或多个测试子集的成员;将分配给所述相应的一个或多个测试子集的成员的分类与分配给已加注标签的训练数据中的相应成员的相应真实分类进行比较,以产生与每个组相关联的一个或多个性能估计;并且基于与每个组相关联的一个或多个性能估计的统计分析来预测所述分类器的性能,所述分类器是通过将具有大致相等的第一预定大小的滑动窗用于训练数据而被训练的。
上述(多种)方法优选地使用实现所述功能的计算机硬件系统和/或包括程序指令的软件来执行,所述程序指令有形地实施上述(多种)方法。


结合附图参考以下详细描述,本发明的更完整评价及其很多附加优点将变得更加明显,并且更容易理解,在附图中,相同的标号指示出相同或相似的组件,其中图1是传统的有监督学习系统的框图;图2A示出了传统的k次交叉验证的数据流图;图2B示出了传统的k次交叉验证算法的流程图;图3示出了接收方工作特性(ROC)曲线的示例的图;
图4A示出了不具有时间性变化的按时间绘制的示例性过程的图;图4B示出了具有随机的、各态历经波动的按时间绘制的示例性平稳过程的图;图4C示出了具有稳定偏移的按时间绘制的示例性过程的图,其中所述稳定偏移在均值周围伴随有随机波动;图5A示出了按时间排序的k次交叉验证的数据流图;图5B示出了根据本发明实现的按时间排序的k次交叉验证算法的流程图;图6示出了基于用于训练分类器的训练数据而预测过程中的时间性变化的创造性技术的流程图;图7是根据本发明实现的用于实现时间性变化管理器的系统的框图;图8示出了用于预测分类器的未来性能的操作方法的流程图;图9示出了用于判断将滑动窗用于训练数据是否将提高分类器性能的操作方法的流程图;图10根据图9的方法,示出了在训练分类器时,使用训练数据样本的滑动窗的数据流图;图11示出了用于判断在训练分类器时,训练数据样本的滑动窗的使用是否将提高分类器性能的另一操作方法的流程图;以及图12根据图11的方法,示出了在训练分类器时,使用训练数据样本的滑动窗的数据流图。
具体实施例方式
本发明提供了一种技术,该技术从利用有监督学习来训练分类器的训练数据的指示中检测出在过程中出现或可能出现的时间性变化。本发明还提供了用于在基础过程中出现时间性变化时预测预期的分类器未来性能的技术,以及如果以及在收集附加的训练数据时,用于研究各种使附加的已加注标签的训练数据的使用最优化的选项的技术。本发明采用了被称为“按时间排序的k次交叉验证”的新颖技术,并且将使用传统的k次交叉验证获得的性能估计与使用按时间排序的k次交叉验证获得的性能估计进行比较,从而检测出基础过程中的时间性变化的可能指示。
如图5A和5B中附图所代表的按时间排序的k次交叉验证与传统的k次交叉验证的不同之处在于将已加注标签的训练数据(D={xi,ci})的集合划分成k个子集的过程不是随机完成的。相反,首先根据一个或多个相关标准(例如到达时间、检查时间、制造时间等等)按时间的递增顺序对训练数据进行排序(图5B中的步骤31)。然后将经排序的训练数据的集合(DSORTED)划分成(保持按时间排序的顺序)k个子集D1,D2,...,Dk,这k个子集(大致)具有相同数目的样本(步骤32)。
该过程的其余步骤都与传统的k次交叉验证相同。对于每个i=1,...k,基于去除掉Di的训练数据来训练分类器,并且所产生的分类器用于为Di的成员生成估计的类别标签 (步骤33-38)。最后,根据真实的和估计的类别标签,或者相应的汇总统计来计算预测性能PETIME_ORDERED(k)。如前所述,可以计算出性能的一个或多个标准量度,例如预期损失、错误分类率和工作特性曲线。与传统的k次交叉验证一样,数据集合中的所有样本都被用于训练和测试。
通常已经注意到,在性能的传统预测和按时间排序的预测有所不同的过程中,按时间排序的性能估计PETIME_ORDERED(k)通常提供比传统k次交叉验证的性能估计PE(k)好得多的未来分类器性能预测。根据本发明的一个方面,用于检测基础过程中可能出现的时间性变化的方法通过比较在传统和按时间排序的k次交叉验证中获得的性能估计而利用了这一事实。更具体而言,本发明采用了诸如图6所示的方法50之类的方法,该方法在已加注标签的训练数据上执行传统的k次交叉验证(步骤51)和按时间排序的k次交叉验证(步骤52)两者。在步骤53中,对根据两种技术产生的性能估计进行比较。如果由按时间排序的k次交叉验证估计出的性能与由传统的k次交叉验证估计出的性能相比不足够坏,则将传统的k次交叉验证用作对分类器未来性能的准确预测器(步骤54),并且没有找到时间性变化的证据,即,在收集训练样本的时间范围内没有出现时间性变化,或者即便出现时间性变化,那么由于训练样本是在一段足够长的时间段内收集的,它们具有代表性,因此所述过程表现出平稳性和各态历经性。
但是,如果基于按时间排序的k次交叉验证估计出的性能足够坏(步骤55),则选择性地生成警告(步骤56),该警告指出在基础过程中可能出现时间性变化,并且保证做进一步分析。另外在这些条件下,按时间排序的k次交叉验证的性能估计与传统的k次交叉验证的性能估计相比,提供了更好的对未来分类器性能的短期预测器。
在本发明的另一方面中,当检测到时间性变化时,自动地或者在人工用户控制下执行进一步分析,从而预测通过收集附加的训练数据,可能获得性能的怎样提高。具体而言,构造训练集合大小和预测性能之间的曲线图。另外,执行分析来判断是通过将新获得的训练数据和之前收集的训练数据组合起来将产生更好的性能,还是通过对正在进行的训练数据获取过程使用具有给定大小的滑动窗将产生更好的性能。
图7是根据本发明实现的系统100的框图。系统100检测用于产生已加注标签的训练数据集合104的过程130中可能出现的时间性变化,并且预测在数据集合104上使用有监督学习算法105而训练的分类器的未来性能。另外,系统100对于是否收集附加的训练数据给出建议,并且如果收集,则对如何利用它给出建议。系统100一般包括用于执行存储器103中所存储的实现本发明功能的代码(例如多个程序指令)的程序和/或逻辑控制101(例如处理器102)。具体而言,存储器103优选地包括实现有监督学习算法105、分类器106、时间性变化管理器110和数据选择模块111的代码。
有监督学习算法105使用由数据选择模块111选出的训练数据104中的一些或全部来构造经训练的分类器106。数据选择模块111在程序的控制下,能够根据指定标准109对数据进行排序,还能够以确定性的或者伪随机的方式选择经排序数据或者原始数据的子集。按时间排序的k次交叉验证算法和传统的k次交叉验证算法分别由模块116和112来实现。如图所示,模块118和114所产生的性能估计分别与将由图5B和图2B中的算法所产生的性能估计相同,并且因此模块116和112可以被认为在逻辑上截然不同。但是,在优选实施例中,所有的排序、子集选择和划分实际上都由数据选择模块111来执行,因此模块116和112实际上被实现为单个共享的k次交叉验证模块,该模块预计数据已被预先划分为k个子集。如图5B和2B所示,交叉验证模块使用学习算法105来构造经训练的分类器106,接着经训练的分类器106被用于为每个输入向量xi生成估计分类 。然后,通过比较真实的和预期的分类集合{ci)和 或相应的汇总统计来获得按时间排序的和传统性能估计118和114。在优选实施例中,预期损失被用作公共的性能估计。时间性变化管理器110根据从按时间排序的和传统的k次交叉验证中获得的汇总统计来构造ROC曲线,并且选择使预期的每样本损失最小化的工作点。
时间性变化管理器110还包括时间性变化检测功能块120,并且优选地包括未来性能预测功能块123和预测性能分析器124。
时间性变化管理器110的时间性变化检测功能块120包括比较功能块121,该功能块将传统k次交叉验证的性能估计113和按时间排序的k次交叉验证的性能估计117进行比较,从而确定在基础过程中可能出现的时间性变化。在优选实施例中,比较功能块120在使各个预期的每样本损失最小化的各条ROC曲线的各个工作点处,对分别从传统k次交叉验证性能估计113和按时间排序的k次交叉验证性能估计117中计算出的预期损失115和119进行比较。因此,在优选实施例中,比较功能块120判断使用按时问排序的k次交叉验证计算出的预期的每样本损失119与使用普通传统的k次交叉验证计算出的预期的每样本损失115相比是否足够大(在合理的误差边界内)。(对于非二元的情况,产生更高维平面而不是ROC曲线;但是,最优工作点以及相关的预期损失仍旧存在,它们可以被计算和比较。)如果按时间排序的k次交叉验证性能估计117与传统k次交叉验证性能估计113具有可比性,或者比其更好,则不存在未受控的时间性变化的证据,并且传统的k次交叉验证提供了适当的性能预测123。另一方面,如果由按时间排序的k次交叉验证预测的性能与由传统的k次交叉验证预测的性能相比足够坏,则暗示存在时间性变化,并且因此传统的k次交叉验证方法过高地估计了使用当前可获得的训练数据104中的全部数据进行训练的分类器的性能。在这种情况下,警告产生122优选地产生警告,该警告指出在基础过程中可能存在时间性变化。该警告可以以很多不同的方式产生,包括在指定的寄存器或存储器位置中设置一个比特或值、由处理器102产生中断、从过程调用中返回参数、调用产生警告的方法或过程(例如在图形用户界面中,或者作为外部信号),或者任何用于以信令来通报状态的已知计算机化方法。另外,在这种情况下,预测性能123将基于由按时间排序的交叉验证所估计出的每样本预测损失。
一种用于判断由按时间排序的k次交叉验证预测出的性能是否比由传统的k次交叉验证预测出的性能“足够坏”的方法如下由于按时间排序的分组是唯一的,因此按时间排序的分组无法被重新采样,从而按照通常由普通的交叉验证所使用的方式来估计所述性能估计的可变性。但是,由于传统的k次交叉验证分组是随机选择的,因此可以测试如下虚假设按时间排序的估计和传统估计之间的差别是由于传统k次交叉验证估计中的随机变化。如果在传统k次交叉验证的重复应用中,估计性能比在这时由按时间排序的k次交叉验证获得的估计性能坏p%,那么如果p(所获得的重要性等级)很小,所述差别则可能相当大。
也可以使用其它用于估计性能估计的变化性,并且判断它们是不是非常不同的方法。例如,在不重复传统的k次交叉验证的情况下,可以完成传统性能估计和按时间排序的性能估计之间的比较。对于传统的k次交叉验证和按时间排序的k次交叉验证两者,都可以在k个评估子集中的每一个或其组合上单独计算性能估计。然后,这些估计在每种类型的交叉验证内的变化性(例如标准方差或范围)可被用作相应的全面性能估计的可信度量度。然后,可以应用传统的统计测试来判断所述估计是否相当不同。
由于收集附加训练数据的步骤可能非常昂贵,因此希望在实际收集之前预测可能预期对分类器性能产生什么影响。时间性变化管理器110优选地包括预测性能分析器124,该预测性能分析器124与其它功能块一起预测增大已加注标签的训练数据集合的大小所产生的影响。通过估计可能产生的性能增益,可以用获取数据的成本换得收益。图8示出了操作60的优选方法,在操作60中,预测性能分析器124执行以上功能。如其所述,未来性能预测方法60重复地执行按时间排序的k次交叉验证,同时改变k并且将所产生的性能估计(优选地,在最优工作点处的预期损失)存储为有效的训练集合大小的函数。如果发现预测性能随着训练集合大小的增大而提高,那么结果可以被外插,从而预期训练集合大小的给定增长可能会导致性能收益。相反,如果没有发现性能随着训练集合大小的增大而提高或者提高很小,则说明附加的训练数据未必有用。注意,在该示例中,我们考虑获取附加的训练数据,并且将它们简单地添加到之前的数据中。诸如移动窗之类的附加选项将在下面进行描述。
更详细地讨论方法60,首先按照时间的递增顺序对可获得的已加注标签的训练数据进行排序(步骤61),并且将它们划分成具有大致相同大小的k=k1个子集,同时保持排序的顺序不变。如上所述,排序和划分功能由数据选择模块111来执行。执行按时间排序的k次交叉验证116,并且存储所产生的性能估计118以及有效的训练集合大小 然后,增大子集数目k,并且重复该过程,直到k超过选定的上限k>K2。
当对于k次迭代的每个值的性能估计都已被收集时,可以对性能估计(或其汇总数据)进行分析,并且可以计算未来分类器性能的预测。由于训练集合的大小大致随 而变,因此k的较大值接近较大训练集合的效果,当然易于受到统计变化。然后通过外插,可以利用各种数量的附加训练数据而估计出预期的分类器性能。当然,外插总是带有风险,因此必须利用实际的性能结果来核实这样的预测。但是,即使不经过外插,这样的曲线图也将指示出性能是否仍旧随着训练集合大小而快速改变。预测性能随着训练集合大小的快速提高清晰地指示出训练数据不代表基础过程,并且强烈指出需要收集附加的已加注标签的训练数据。利用内插或外插,还可以使用这样的曲线图来校正从具有不同大小的数据集合(例如两个分别包含N1和N2个点的数据集合)得出的预测,以回到公共的比较点(例如将对于包含N2个点的数据集合的预测性能校正为与对于包含N1个点的数据集合的预测性能具有可比性)。这种排序的校正增大了如下可能性性能上的其余差别是由于数据的实际变化所引起的,而不是由于对样本大小的简单人为改变所引起。
如果判断出将要收集附加的已加注标签的训练数据,则预测性能分析器124优选地判断怎样才能最好地利用己收集的附加的已加注标签的训练数据。例如,可以将附加的已加注标签的训练数据与已加注标签的训练数据104的初始集合组合起来,并在单个训练期间被用于训练分类器。可替换地,附加的已加注标签的训练数据可以被用于根据滑动窗方案而使用组合数据的子集来周期性地训练分类器。为了判断如何最好地利用附加的己加注标签的训练数据,预测性能分析器124可以利用滑动窗方案来仿真训练,并且可以将所产生的性能估计与使用所有可获得的训练数据得到的性能估计进行比较。这样的分析可以在收集附加的训练数据之前或者之后执行。
图9示出了示例性的方法70,该方法用于判断与使用整个训练集合的情况相比,将滑动窗用于已加注标签的训练数据是否将提高分类器的性能。出于这个目的,按相关时间的递增顺序对训练数据D进行排序(步骤71),然后将经排序的已加注标签的训练数据DSORTED划分为M个子集D1,D2,...,DM,优选地,这些子集具有大致相等的大小(步骤72)。这些操作由数据选择模块111来执行。从概念上讲,然后对仿真大小为n/M的滑动窗的D1,...,DM中的每一个单独执行按时间排序的k次交叉验证,并且将所产生的性能估计与从使用整个数据集合DSORTED的k次交叉验证中得到的结果进行比较。如上所述,在优选的实施例中,排序和划分操作都在数据选择模块111中执行,而不是由交叉验证模块来执行。为了对DSORTED执行按时间排序的k次交叉验证,例如,数据选择模块111将DSORTED确定性地划分为k个子集DSORTED_1...DSORTED_k,同时保持排序顺序不变。然后这些子集被传递到普通交叉验证模块116/112,所述普通交叉验证模块116/112无需执行任何附加的排序或划分,就可以计算出性能估计。相似地,D1,...,DM中的每一个都被单独地划分为k个子集,以用于交叉验证模块的处理。
将所产生的性能估计分别标注为PE1...PEM以及PESORTED,对这些性能估计进行比较(步骤74)。可能产生若干结果。如果PE1...PEM在大范围内变化,那么窗大小n/M可能太小,应该被增大。假设这些估计基本一致。在这种情况下,如果PE1...PEM与PESORTED具有可比性,则意味着将滑动窗用于训练数据的做法将不会提高性能。相反,如果PE1...PEM好于PESORTED,则指出需要使用滑动窗。利用变化的窗大小(即改变M)的进一步分析将被用于选择最优的窗大小。最后,如果PE1...PEM与PESORTED相比足够坏,那么滑动窗大小可能太小。在这种情况下,可以降低M并且重复分析,或者在步骤前进之前收集附加的训练数据。
根据第四种情况,当对于各个子集D1,D2,...,DM中的每一个子集的性能估计PE1,PE2,...,PEM彼此之间变化很大时,在产生训练数据样本的基础过程中可能存在时间性变化。在这种情况下,具有不同数据集合大小的滑动训练窗的使用可以提高分类器的性能。因此,可以以各种不同的数据集合大小来重复过程70,从而判断是否可以提高分类器性能,并且如果可以,则优选地,还使用导致最优分类器性能的数据集合大小。
图10示意性地示出了用于训练分类器的滑动窗的概念。在所示实施例中,按时间排序的已加注标签的训练数据DSORTED被划分为四个相互独立的子集D1、D2、D3和D4,这四个子集具有大致相等的大小(即在任意子集中,都没有成员属于任何其他的子集)。理想地,应该以大致恒定的采样频率来收集训练数据,从而使相等的样本大小对应于大致相等的持续时间。所述大小代表滑动窗在训练数据中的样本长度。这样,分类器将在子集D1上被训练,稍后在子集D2上被训练,以此类推。滑动窗的最优大小依赖于反映基础过程中的时间性变化的需求和代表性样本数目的需求之间的权衡。
当然,本领域技术人员将会意识到,子集的数目M可以根据具体应用而变化,并且还可以将子集构造为彼此重叠,从而使一个或多个子集包括来自于在时间上紧接给定子集之前或者紧随给定子集之后的那个子集的数据样本。按时间排序的k次交叉验证提供了用于选择这种滑动窗大小以使性能最优化的机制。
图11示出了另一示例性方法80,该方法用于判断与使用整个训练集合的情况相比,将滑动窗用于已加注标签的训练数据是否将提高分类器的性能。在该方法中,按相关时间的递增顺序对训练数据D进行排序(步骤81)。M个具有大致相等大小的子集D1,D2,...,DM是从经排序的已加注标签的训练数据DSORTED中选出的,同时保持时间上的顺序(步骤82)。从M个子集中选出训练数据子集和相应的测试数据子集对(步骤83)。测试数据子集被优选地选为在时间上跟随(将数据集合看作循环的)并靠近其相应的训练数据子集。同样,这些操作优选地由数据选择模块111来执行。然后,将每个选出的训练数据子集用于训练相应的分类器(步骤84),然后将相应的分类器用于分类其相应测试数据子集的成员(步骤85)。利用大小为n/M的有效滑动窗,将所分配的分类与已知的真实分类进行比较,从而产生性能估计(步骤86)。对这些性能估计PE1...PEM进行比较(步骤87)。
如果PE1...PEM基本上具有可比性,那么它们的平均值(或者其他统计汇总)预测出使用大小为n/M的滑动窗将会获得的性能(步骤88)。为了判断滑动窗是否将提高性能,需要将利用大小为n/M的滑动窗估计出的性能与使用完整的数据集合估计出的性能进行比较。这样,然后将基本上具有可比性的性能估计PE1...PEM或者它们的总体汇总(例如它们的平均值)与性能估计PESORTED进行比较(步骤89),如以上所描述并如图9所示出的,性能估计PESORTED是由在总的按时间排序的训练数据集合DSORTED上被训练的分类器所产生的。如果来自步骤89的比较指示出性能估计PE1...PEM或其统计汇总足够好于性能估计PESORTED,那么使用大小为n/M的滑动窗来训练分类器的做法应该引起分类器性能的提高(步骤90)。可以以各种不同的数据集合大小(n/M)来重复过程80,从而利用窗大小进行实验以找到能够产生最好的预期性能结果的大小。
但是,如果比较过程(来自步骤89)指示出性能估计PE1...PEM或其统计汇总没有足够好于性能估计PESORTED,则不存在证据表明大小为n/M的滑动窗将会提高分类器性能(步骤91)。为了找到能够提高性能的窗大小,可以用各种不同的数据集合大小(n/M)来重复过程80,从而利用窗大小进行实验。
相反,如果发现(在步骤87中)性能估计PE1...PEM差别相当大,则无法得出明确的结论(步骤92)(除非性能估计PE1...PEM的总体或其他统计汇总相当不同于PESORTED)。这样的结果可能是由于窗大小n/M太小,而使用更大的窗大小进行训练会得到更加具有可比性的性能估计PE1...PEM。因此,可以以各种不同的数据集合大小(n/M)来重复过程80,以判断是否能够获得分类器性能的提高,如果可以,还优选地使用能够产生最优分类器性能的窗大小n/M。
图12示意性图示出图11的滑动窗方法。在所示实施例中,按时间排序的已加注标签的训练数据DSORTED被划分为具有大致相等大小的四个相互独立的子集D1、D2、D3和D4。每个子集D1、D2、D3和D4被用于训练相应的分类器,并且每个相应的分类器被用于分类每个时间上连续的子集(在所示实施例中,以覆盖线表示)D4、D1、D2、D3的成员。分类结果被用于产生性能估计PE1...PE4。(注意,如果假设按时间排序的已加注标签的训练数据DSORTED是周期性的,那么可以将其看作循环的,并且因此在时间上随子集D4之后的子集将是D1。如果不假设按时间排序的已加注标签的训练数据DSORTED是周期性的,那么将从分析中省略掉相应于训练/测试子集对D4/D1的性能估计P4。)如前所述,训练数据应该以大致恒定的采样频率被收集,因此相等的样本大小对应于大致相等的持续时间。当然,本领域技术人员将会意识到,子集数目M可以根据具体应用而变化,并且还可以将子集构造为彼此重叠,从而使一个或多个子集包括来自于在时间上紧接给定子集之前或者紧随给定子集之后的那个子集的数据样本。
之前的论述已经假设单个时间足够刻画所考虑过程的时间性变化。这种假设并不总是有效的。可以引入时间性变化的多个源,并且每个源可能需要其自身用于特征化的时间戳。按时间排序的k次交叉验证可以被容易地扩展到处理多个时间。继续上述制造示例,假设制造和测量过程中的变化都很重要,并且以样本的制造时间和检查或测量时间两者来标注每个样本。因此现在每个样本具有两个相关时间t1和t2,这两个时间分别对应于制造和测量时间。可以将它们看作欧几里得空间中的正交维度。因此在本示例中的样本(训练数据)点可以被看作位于两维图形(例如沿着x轴的t1和沿着y轴的t2)上。假设t1的变化比t2的变化具有更大的影响。(可以随机地断开联系。)通过沿着选择t1轴选择断点而将样本划分为具有大致相等大小的k1个集合。然后,再通过沿着t2轴选择断点而将这k1个集合中的每一个进一步划分为具有大致相等大小的k2个集合。这就得到了k=k1k2个方形区域,其中每个区域包含的样本点数目大致相等。与一维的情况相同,这些区域可以在训练期间被保持,从而产生按时间排序的k1×k2次交叉验证。可以将相同的过程方便地扩展到处理更多维数的情况。
注意,这种按时间排序的分组是一种可能在传统的k次交叉验证的过程中产生的有效样本,虽然其概率较低。如前所述,可以将由传统的和按时间排序的k次交叉验证预测出的性能进行比较,以检测时间性变化的证据,从而判断附加训练数据的收集是否适当,并且判断如何最好地利用这样的附加训练数据。
总之,本发明在有监督学习和自动分类系统的环境中,利用传统的和按时间排序的k次交叉验证两者来检测和管理时间性变化的某些有问题的情况。它还提供了用于预测在这种情况下构造的分类器的性能的工具。最后,本发明可被用于提出如下方法;该方法用于管理训练数据库以及正在进行训练的分类器,从而在这种时间性改变的情况下使性能最大化。虽然以上内容是根据随时间变化的过程而设计和描述的,但是应该意识到,根据其他变量(例如温度、位置等等)的变化也可以用上述方式来应对。
虽然已经出于举例说明的目的而公开了本发明的优选实施例,但是本领域的技术人员将会意识到,无需脱离所附权利要求中所公开的本发明的范围和精神,可以进行各种修改、添加和替换。当前公开的发明的其他益处或用途也可能将随着时间而变得更加明显。
权利要求
1.一种用于预测分类器性能的方法,所述分类器是通过将滑动窗用于训练数据集合而被训练的,所述方法包括以下步骤根据至少部分基于时间顺序的一个或多个第一标准,将所述训练数据集合排序成经排序的训练数据集合;选择一个或多个具有大致相等的第一预定大小的教导子集以及相应的一个或多个具有大致相等的第二预定大小的测试子集,所述教导子集包括所述经排序的训练数据集合中的第一相邻成员,并且所述测试子集包括来自所述经排序的训练数据集合的至少一个成员,该成员在时间上紧随其相应的一个或多个教导子集的所有成员之后;使用所述一个或多个教导子集来训练相应的一个或多个分类器;使用所述相应的一个或多个分类器来分类所述相应的一个或多个测试子集的成员;将分配给所述相应的一个或多个测试子集的成员的分类与分配给已加注标签的训练数据中的相应成员的相应真实分类进行比较,以产生一个或多个性能估计;并且基于所述一个或多个性能估计的统计分析来预测所述分类器的性能,所述分类器是通过将滑动窗用于大致具有所述第一预定大小的训练数据而被训练的。
2.一种有形地包含程序指令的计算机可读存储介质,所述程序指令实现用于预测分类器性能的方法,所述分类器是通过将滑动窗用于训练数据集合而被训练的,所述方法包括以下步骤根据至少部分基于时间顺序的一个或多个第一标准,将所述训练数据集合排序成经排序的训练数据集合;选择一个或多个具有大致相等的第一预定大小的教导子集以及相应的一个或多个具有大致相等的第二预定大小的测试子集,所述教导子集包括所述经排序的训练数据集合中的第一相邻成员,并且所述测试子集包括来自所述经排序的训练数据集合的至少一个成员,该成员在时间上紧随其相应的一个或多个教导子集的所有成员之后;使用所述一个或多个教导子集来训练相应的一个或多个分类器;使用所述相应的一个或多个分类器来分类所述相应的一个或多个测试子集的成员;将分配给所述相应的一个或多个测试子集的成员的分类与分配给已加注标签的训练数据中的相应成员的相应真实分类进行比较,以产生一个或多个性能估计;并且基于所述一个或多个性能估计的统计分析来预测所述分类器的性能,所述分类器是通过将滑动窗用于大致具有所述第一预定大小的训练数据而被训练的。
3.一种用于预测分类器性能的系统,所述分类器是通过将滑动窗用于训练数据集合而被训练的,所述系统包括数据选择功能块,该功能块根据至少部分基于时间顺序的一个或多个第一标准,将所述训练数据集合排序成经排序的训练数据集合,并且该功能块选择一个或多个具有大致相等的第一预定大小的教导子集以及相应的一个或多个具有大致相等的第二预定大小的测试子集,所述教导子集包括所述经排序的训练数据集合中的第一相邻成员,并且所述测试子集包括来自所述经排序的训练数据集合的至少一个成员,该成员在时间上紧随其相应的一个或多个教导子集的所有成员之后;一个或多个分类器,分别使用所述一个或多个教导子集来训练所述一个或多个分类器,并且使用所述相应的一个或多个分类器来分别分类所述相应的一个或多个测试子集的成员;比较功能块,该比较功能块将分配给所述相应的一个或多个测试子集的成员的分类与分配给已加注标签的训练数据中的相应成员的相应真实分类进行比较,以产生一个或多个性能估计;以及预测功能块,该预测功能块基于所述一个或多个性能估计的统计分析来预测所述分类器的性能,所述分类器是通过将滑动窗用于大致具有所述第一预定大小的训练数据而被训练的。
4.一种用于预测分类器性能的方法,所述分类器是通过将滑动窗用于训练数据集合而被训练的,所述方法包括以下步骤根据至少部分基于时间顺序的一个或多个第一标准来选择所述训练数据集合的一个或多个组,所述一个或多个组具有大致相等的大小;从所述一个或多个组中的每个组中,根据至少部分基于时间顺序的一个或多个第二标准而选出具有大致相等的第一预定大小的一个或多个教导子集,并且根据至少部分基于时间顺序的一个或多个第三标准而选出相应的具有大致相等的第一预定大小的测试子集;使用来自所述一个或多个组中每个组的一个或多个教导子集来训练相应的一个或多个分类器;使用所述相应的一个或多个分类器来分类所述相应的一个或多个测试子集的成员;将分配给所述相应的一个或多个测试子集的成员的分类与分配给已加注标签的训练数据中的相应成员的相应真实分类进行比较,以产生与每个组相关联的一个或多个性能估计;并且基于所述与每个组相关联的一个或多个性能估计的统计分析来预测所述分类器的性能,所述分类器是通过将具有大致相等的第一预定大小的滑动窗用于所述训练数据而被训练的。
5.一种有形地包含程序指令的计算机可读存储介质,所述程序指令实现用于预测分类器性能的方法,所述分类器是通过将滑动窗用于训练数据集合而被训练的,所述方法包括以下步骤根据至少部分基于时间顺序的一个或多个第一标准来选择所述训练数据集合的一个或多个组,所述一个或多个组具有大致相等的大小;从所述一个或多个组中的每个组中,根据至少部分基于时间顺序的一个或多个第二标准而选出具有大致相等的第一预定大小的一个或多个教导子集,并且根据至少部分基于时间顺序的一个或多个第三标准而选出相应的具有大致相等的第一预定大小的测试子集;使用来自所述一个或多个组中每个组的一个或多个教导子集来训练相应的一个或多个分类器;使用所述相应的一个或多个分类器来分类所述相应的一个或多个测试子集的成员;将分配给所述相应的一个或多个测试子集的成员的分类与分配给已加注标签的训练数据中的相应成员的相应真实分类进行比较,以产生与每个组相关联的一个或多个性能估计;并且基于所述与每个组相关联的一个或多个性能估计的统计分析来预测所述分类器的性能,所述分类器是通过将具有大致相等的第一预定大小的滑动窗用于所述训练数据而被训练的。
6.一种用于预测分类器性能的系统,所述分类器是通过将滑动窗用于训练数据集合而被训练的,所述系统包括数据选择功能块,该功能块根据至少部分基于时间顺序的一个或多个第一标准来选择所述训练数据集合的一个或多个组,所述一个或多个组具有大致相等的大小,并且从所述一个或多个组中的每个组中,根据至少部分基于时间顺序的一个或多个第二标准而选出具有大致相等的第一预定大小的一个或多个教导子集,并且根据至少部分基于时间顺序的一个或多个第三标准而选出相应的具有大致相等的第一预定大小的测试子集;多个分类器,分别使用来自所述一个或多个组中每个组的一个或多个教导子集来训练所述多个分类器,并且所述多个分类器对所述相应的一个或多个测试子集的成员进行分类;比较功能块,该比较功能块将分配给所述相应的一个或多个测试子集的成员的分类与分配给已加注标签的训练数据中的相应成员的相应真实分类进行比较,以产生与每个组相关联的一个或多个性能估计;以及预测功能块,该预测功能块基于所述与每个组相关联的一个或多个性能估计的统计分析来预测所述分类器的性能,所述分类器是通过将具有大致相等的第一预定大小的滑动窗用于所述训练数据而被训练的。
全文摘要
本发明公开了用于检测时间性过程变化的技术,以及通过使用基于样本的时间排序而获得的性能估计,来管理和预测被应用于这种过程的自动分类器的性能的技术。
文档编号G06F17/00GK1749987SQ200510076969
公开日2006年3月22日 申请日期2005年6月9日 优先权日2004年9月14日
发明者约翰·M·海曼, 李强 申请人:安捷伦科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1