CN1227608C - 基于n元组或随机存取存储器的神经网络分类系统和方法 - Google Patents

基于n元组或随机存取存储器的神经网络分类系统和方法 Download PDF

Info

Publication number
CN1227608C
CN1227608C CNB998027618A CN99802761A CN1227608C CN 1227608 C CN1227608 C CN 1227608C CN B998027618 A CNB998027618 A CN B998027618A CN 99802761 A CN99802761 A CN 99802761A CN 1227608 C CN1227608 C CN 1227608C
Authority
CN
China
Prior art keywords
value
cell value
training
weights
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB998027618A
Other languages
English (en)
Other versions
CN1290367A (zh
Inventor
托马斯·M·乔根森
克里斯琴·林内伯格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intellix AS
Original Assignee
Intellix AS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from EP98201910A external-priority patent/EP0935212B9/en
Application filed by Intellix AS filed Critical Intellix AS
Publication of CN1290367A publication Critical patent/CN1290367A/zh
Application granted granted Critical
Publication of CN1227608C publication Critical patent/CN1227608C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation

Abstract

本发明涉及一种训练计算机分类系统的系统和方法,所述的计算机分类系统能够由包含多个n元组或查找表(LUTs)的网络定义,每个n元组或LUT包括多个与可能类的至少一个子集合对应的行,并且包括多个由被抽样的训练输入数据的样本的信号或元素编址的列,每列由具有值的单元的向量定义,该方法包括基于一个或多个、用于不同类的输入数据样本的训练集,确定列向量单元值,以使得至少部分这样的单元包括或指向基于相应的单元地址被从一个或多个训练输入样本中抽样的次数信息;以及确定对应于一个或多个、被训练样本编址或抽样的列向量单元的权值单元值,从而使得允许在分类处理中加权有正值的一个或多个列向量单元,所述权值单元值基于至少部分确定的列单元值的信息,和通过对至少部分输入样本训练集的使用来确定。发明的第二方面是用于—在计算机分类系统中—对应于由训练样本编址的一个或多个列向量单元的权值单元值的系统和方法,其中的确定基于至少部分确定的向量单元值的信息,所说的确定允许加权有正值或非正值的列向量单元。最终,发明提供了使用计算机分类系统,用于分类输入数据样本到多个类的方法和系统。

Description

基于N元组或随机存取存储器的神经网络分类系统和方法
                        发明背景
1、发明领域
总的来说,本发明涉及基于N元组或随机存取存储器(RAM)的神经网络分类系统,更特别地,涉及基于N元组或随机存取存储器的、具有元素的值在训练期间被确定的权向量的分类系统。
2、现有技术描述
对通过电信号或二进制码,和更精确地,通过施加到神经网络分类系统的输入中的信号向量表示的对象或模式进行分类的已知方式,处在所谓的学习或训练阶段的实施过程中。这个阶段一般包括对通过使用一个或多个被称作学习或训练集的信号集,起到尽可能有效地实现进行设想的分类功能的分类网络的配置,其中,这些信号的每一个在想要把他们分类进去的类别之一中的隶属度(membership)是已知的。这种方法被称为监督学习(supervisedlearning)或有教师学习(learning with a teacher)。
分类网络中使用监督学习方式的子类是使用基于存储器学习的网络。这里,最老的一个基于存储器的网络是由Bledsoe和Browning(Bledsoe,W.W.和Browning,I.,1959,“Pattern recognition and reading by machine”,Proceeding of the Eastern Joint Computer Conference,pp.225-232)  提出的“N元组网络”,关于它的较新的描述由Morciniec和Rohwer(Morciniec,M.和Rohwer,R.,1996,“A theoretical and experimental account of n-tuple classifierperformance”,Neural Comp.,pp.629-642)给出。
这种基于存储器的系统的一个好处是在学习阶段和分类阶段期间的计算时间都很快。对于也被称作“RAM网络”或“无权值神经网络”的n元组网络的已知类型,学习可以通过在随机存取存储器(RAM)中记录模式的特征来实现。
对传统的基于RAM的神经网络的训练程序是由Jorgensen(本发明的共同发明人)等人(Jorgensen,T.M.,Christensen,S.S.和Liisberg,C.,1995,“Cross-validation and information measures for RAM based neural networks”,Proceedings of the Weightless Neural Network Workshop WNNW95(Kent atCanterbury,UK)ed.D.Bisset,pp.76-81)说明的,在该文献中描述了基于RAM的神经网络如何被作为包括多个查找表(LUTs,Look Up Tables)来考虑。每一个LUT(Look Up Table)可以试验二进制输入数据向量的一个子集。在传统方案中,要使用的多个比特是随机选择的。该抽样的比特序列被用于构造地址。这种地址与LUT中的特定项(entry)(列)对应。LUT中的行数与可能的类数对应。对于每一个类,输出能够取成0或者1。值1对应于在那个特定类上的一票。当执行分类时,抽样输入向量,加入从所有LUTs来的输出向量,随后赢者取得所有为分类输入向量而作出的决定。为了执行对网络的一个简单训练,输出值可以在最初设置成0。然后,对于训练集中的每一个样本应该执行以下步骤:
把输入向量和目标类送给网络;对所有的LUT,计算它们对应的列的项数;以及在所有的“活动”列中,设置目标类的输出值为1。
通过使用这样的训练策略,可以保证每一个训练模式总是得到最多的得票数。因此,这样的网络不会在训练集上作出任何错误分类,但可能发生含糊不清的决定。这里,网络的推广能力与每个LUT的输入比特数直接关联。如果一个LUT抽样所有的输入比特,那么它的作用就像纯粹的存储器设备一样,而不会提供任何推广。当输入的比特数减少时,推广能力增加,其代价是含糊不清的决定数增加。此外,LUT的分类和推广性能高度依赖于所试验的输入比特的实际子集合。因此,“智能”训练过程的目的就是选择最恰当的输入数据的子集合。
Jorgensen等人进一步说明了什么是“交叉确认测试(cross validationtest)”,这种测试提出了一种用来选择最优输入连接数,以使用每个LUT的方法,以便用较短的总体计算时间,得到较低的分类错误率。为了执行这样的交叉确认测试,需要得知具有与编址列和类别相对应的、已经访问或已经编址的单元或者元素的训练样本的实际数目。因此建议把这些数字存储在LUTs中。Jorgensen等人还提出了如何能够以一种更优化的方法,通过连续不断地训练LUTs的新集合,并在每个LUT上执行交叉确认测试,来选择网络中的LUTs。因此,有种RAM网络是众所周知的,在该网络中LUTs是通过给系统送几次训练集来选出。
在Jorgensen(本发明的共同发明人)的文章(Jorgensen,T.M.,“Classification ot handwritten digits using a RAM neural architecture”,February1997,International Journal of Neural System,Vol.8,No.1,pp.17-25)中,提出了如何能够通过扩展传统RAM的体系结构,使其包括所谓的“抑制(inhibition)”,来进一步改进基于RAM的网络的分类识别。这种方法可以处理在很多情况下两种不同的类别可能仅仅有很少的特征不同的问题。在这种情况下,训练集之外的样本有一个高风险是,它和不正确的类共享其大部分特征。因此,为了处理这种问题,需要对给定类的不同特征加不同的权值。所以提出了一种方法。其中的网络包括对于编址列的某些类的抑制系数。这里,引入一个置信度量,而抑制系数的计算要使得置信度在抑制后与所要求的水平对应。
优选的抑制方案的结果是,所有在简单系统中被设置成1、编址的LUT单元或元素,也在修改后的变形中设置为1,但在修改后的变形中,被设置为1的列的单元可以进一步包括单元被训练集访问过的次数信息。然而,在简单系统中包含0的某些单元,在修改后的网络中,将把它们的内容变成负值。换句话说,传统网络被扩展成允许从一类到另一类的抑制。
为了把负值编码到LUT的单元中,象在传统RAM网络那样每个单元或元素使用一比特是不够的。因此带有被用于表示不同的负值的、值低于128的每一单元,最好使用一个字节,而超过128的值,一般用于存储与已经被访问或编址的单元的训练样本数有关的信息。当对对象分类时,值大于或等于1的编址单元可以被认为具有值1。
通过使用抑制,LUT的单元被给成不同的值,这些值可以认为是一种“加权”。然而,只有那些未被训练集访问过的单元才被允许通过把他们的值从0改成负值来进行抑制。当执行对输入数据分类时,没有任何具有正值的单元被加强(boosting)。因此,当很好地执行了多个LUT或多个LUT的列被剩余的网络伴随时,可能容易淹没掉。
因此,对RAM分类网络需要允许很快的训练或学习阶段以及接下来的分类,但同时又允许实时加权,以加强和抑制LUT列中的单元值,最终基于训练集的存取信息,得到对输入比特的抽样数的适当推广能力。本发明就提供一种基于RAM的这类分类系统。
                         发明概述
根据本发明的第一方面,提供一种用于训练计算机分类系统的方法,所述的系统能够由包含多个n元组或查找表(Look Up Table,LUTs)的网络定义,每个n元组或LUT包括多个与可能类的至少一个子集合对应的行,此外还包括多个被抽样训练输入数据样本的信号或元素编址的列,每列由具有值的单元的向量定义,所述方法包括基于一个或多个、用于不同类的输入数据样本的训练集,确定列向量单元值,以使得至少部分这些单元包括或指向基于相应的单元地址被从一个或多个训练输入样本中抽样的次数信息;以及包括确定对应于一个或多个被训练样本编址或抽样的列向量单元的权值单元值。
根据本发明的第二方面,提供了一种在计算机分类系统中确定权值单元值的方法,所述的系统能够由包含多个n元组或查找表(LUTs)的网络定义,每个n元组或LUT包括多个与可能类的至少一个子集合对应的行,此外还包括多个列向量,并且至少部分所述的列向量具有相应的权值向量,每个列向量由抽样的训练输入样本的信号或元素编址,并且每个列向量和权值向量具有这样的单元,它们的值基于一个或多个、用于不同类的输入数据样本的训练集确定,所述的方法包括基于输入样本的训练集确定列向量单元值,以使得至少部分所述值包括或指向基于相应的单元地址从训练输入样本集中被抽样的次数信息;以及包括确定对应于一个或多个列向量单元的权值单元值。
最好,权值单元值基于至少部分被确定的列向量单元的信息,以及使用至少部分输入样本的训练集来确定。根据本发明,训练输入数据样本最好能够作为输入信号向量送给网络。
权值单元值的确定最好以下面的方式执行:允许加权有正值的一个或多个列向量单元,和/或允许在分类处理中加强一个或多个列向量。此外或可替换地,权值单元值可以被确定得使在分类处理中允许抑制一个或多个列向量单元。
本发明也提供一种方法,在该方法中,权值单元值的确定允许加权具有正值(大于0)的一个或多个列向量单元,和有非正值(小于等于0)的一个或多个列向量单元。最好权值单元的确定允许加权任何列向量单元。
为了确定或计算权值单元值,这些值的确定可以包括:初始化一个或多个与至少部分列的单元对应的权值单元集合;以及基于至少部分的确定的列单元值信息,和通过对至少部分输入样本训练集的使用,调整至少部分权值单元值。当确定权值单元值时,确定出的这些值最好放在与至少部分列向量对应的权值向量中。
为了确定或调整根据本发明的权值单元值,应该确定列的单元值。这里,最好是将至少部分列向量单元值作为相应的单元地址从训练输入样本集中被抽样的次数的函数来确定。可替换地,列的单元的信息可以确定为使最大的列单元值为1,而至少部分这样的单元具有是相应的单元地址从训练输入样本集中被抽样的次数的函数的关联的值。列向量单元值最好在调整权值向量单元值之前,确定并且存储在存储装置中。
根据本发明,一种确定列向量单元值的优选方式可以包括以下训练步:
a)施加已知类的训练输入数据样本给分类网络,从而编址一个或多个列向量,
b)递增对应于已知类的行的编址列向量单元值或票(vote),最好以1递增,
c)重复(a)-(b)步,直到所有训练样本都被施加到网络。
但应该知道,本发明也覆盖了其列的单元的信息是由单元已经被输入训练集编址的次数的替代函数确定的实施例。因此,这些单元的信息不需要包括已经编址的全部次数的数目,但例如,可以包括一个指示,指示出该单元已经被访问零次、一次、多于一次、和/或两次以及多于两次等等。
迄今为止,已经提到了:对于一个或多个列的单元,可以确定权值单元值,但在一个优选实施例中,所有列向量都有对应的权值向量。
当初始化本发明的实施例的权值单元值时,初始化可以包括设置每一个权值单元值成一个预定的特定单元值。这些值对于不同的单元可以不同,但所有的权值单元值也可以设置成一个预定的常数。这样的值可以是0或者1,但也可以是别的优选值。
为了确定权值单元值,最好调整这些值,调整过程可以包括一个或多个迭代步骤。权值单元值的调整可以包括基于至少部分加权和列向量单元值,确定全局品质值的步骤;确定全局品质值是否达到要求的品质标准的步骤;以及调整至少部分权值单元值,直到达到全局品质标准的步骤。
调整过程也包括对于每一个抽样的训练输入样本,确定局部品质值,对选定的输入样本,如果局部品质值未达到特定或要求的局部品质标准,那么执行对一个或多个权值单元的调整。作为一个例子,权值单元值可以包括以下步骤:
a)从训练集中选择输入样本,
b)确定对应于抽样的训练输入样本的局部品质值,局部品质值是至少部分编址的权值和列的单元值的函数,
c)确定局部品质值是否达到要求的局部品质标准,若是否定的,如果未达到局部品质值标准,则调整一个或多个编址的权值向量单元值,
d)从训练集的预定样本数中,选定一个新的输入样本,
e)对所有预定的训练输入样本,重复局部品质测试步骤(b)-(d),
f)基于至少部分在局部品质测试中编址的权值和列向量,确定全局品质值,
g)确定全局品质值是否达到要求的品质标准,
h)重复(a)-(g)步,直到达到全局品质标准。以上提到的调整过程中(b)-(d)步,最好可以对训练集中的所有样本执行。
局部和/或全局品质值可以定义为至少部分权值和/或列的单元的函数。相应地,全局和/或局部品质标准也可以定义为权值和/或列的单元的函数。因此,品质标准不必是一个预定的常数阈值,而可以在调整迭代过程期间变化。但本发明也覆盖了品质标准是常数阈值的实施例。
应该知道的是,当通过每一个都有对应的品质标准的一个或多个特性值的使用来调整权值单元值时,如果品质标准在给定数目的迭代次数之后没有达到,那么最好停止调整的迭代过程。
还应该知道的是,在调整过程中,被调整的权值单元值最好在每次调整之后存储起来,并且当调整过程包括确定全局品质值时,如果确定的全局品质值比对应于先前分开存储的权值单元值或组态(configuration)值,更接近达到全局品质标准,则在全局品质值的确定步骤之后可以进一步包括分开存储这里得到的权值单元值或分类系统组态值的步骤。
本发明的实施例的训练分类系统的主要理由是,为了在未知类的输入样本的后续分类处理中得到高置信度。
因此,根据本发明的进一步的方面,还提供一种使用本发明的以上部分描述过的任何一种方法配置的计算机分类系统,把输入数据分类到多个类之一的方法,因此对每一个n元组或LUT,基于输入数据样本的一个或多个训练集,确定列的单元值和对应的权值单元值,所述方法包括:
a)施加要被分类的输入数据样本给配置过的分类网络,从而编址n元组或LUTs的集合中的列向量和对应的权值向量,
b)选择一个类别,从而编址n元组或LUTs的集合中的特定行,
c)作为编址权值单元值的函数来确定输出值,
d)重复步骤(b)-(c),直到确定完所有类的输出,
e)比较计算出来的输出值,以及
f)选择具有极大输出值的一个类或多个类。
当分类未知输入样本时,有几个函数可以用来从编址的权值单元中确定输出值。但是,用于确定输出值的参数最好包括编址的权值单元和编址的列单元这两个的值。因此,作为例子,输出值可以作为相应于大于或等于预定值的列的单元值的所有编址的权值单元值的第一个和值,加以确定。在另一个优选实施例中,确定输出值的步骤包括:确定相应于大于或等于预定值的列的单元值的所有编址的权值单元值的第一个和值;确定编址的权值单元值的第二个和值;以及通过把第一个和值除以第二个和值的来确定输出值。这里的预定值最好可以设成1。
本发明还提供一个根据以上描述的训练和分类方法的训练和分类系统。
因此,根据本发明,提供了一种系统,用来训练能够由包含被存储的个数的n元组或多个查找表(Look Up Tables,LUTs)的网络定义的计算机分类系统,每个n元组或LUT包括多个与至少一个可能类别的子集合对应的行,此外还包括多个被抽样的训练输入样本的信号或元素编址列,每列由具有值的单元的向量定义,所述的系统包括用于接收已知类的训练输入数据样本的输入装置;用于在被存储的n元组或LUTs集合中,抽样接收到的输入数据样本和编址列向量的装置;用于编址在n元组或LUTs中的特定行的装置,所述的行对应于已知的类;用于存储确定的n元组或LUTs的存储装置;用于确定列向量单元值,以使得它们包括或指向基于对应的单元地址被从输入样本的训练集中抽样的次数信息的装置;以及用于确定对应于一个或多个被训练样本编址或抽样的列向量单元的权值单元值的装置。
本发明还提供一种系统,用来确定分类网络的权值单元值,该网络能够由存储的个数的n元组或查找表(LUTs,Look Up Tables)定义,每个n元组或LUT包括多个与至少一个可能类数的子集合对应的行,此外还包括多个列向量,其具有至少部分所述列向量有对应的权值向量,每一列向量被抽样的训练输入数据样本的信号或元素编址,并且每一个列向量和权值向量具有在训练过程中,基于一个或多个训练数据输入样本确定的单元值,所述的系统包括:用于接收已知类的训练输入数据样本的输入装置;用于在被存储的n元组或LUTs中抽样接收到的输入数据样本和编址列向量和相应的权值向量的装置;用于编址n元组或LUTs中的特定行的装置,所述行对应于一个已知的类;用于存储确定的n元组或多个LUT的存储装置;用于确定列向量的单元值的装置,以使得它们包含或指向基于对应的单元地址被从输入样本的训练集中抽样的次数信息;以及用于确定对应于一个或多个列向量单元的权值单元值的装置。
这里,用于确定权值单元值的装置最好适合于基于至少部分确定的列向量单元值的信息,以及通过至少部分输入样本的训练集的使用,来确定这些值。
最好,用于确定权值单元值的装置适合于确定这些值,以使得允许加权有正值的一个或多个列向量单元,和/或允许在分类处理中加强一个或多个列向量。此外或可替换地,该确定装置还适合于确定权值单元值,以使得在分类处理中允许抑制一个或多个列向量。
根据本发明,确定权值的装置可以适合于确定权值单元值,以使得允许加权有正值(大于0)的一个或多个列向量单元,和有非正值(小于等于0)的一个或多个列向量单元。最好这种装置可以进一步适合于确定权值单元值,以使得允许加权任何列向量单元。用于确定权值单元值的这种装置也最好适合于确定这些值,以便把权值单元值配置在对应于至少部分列向量的权值向量中。
为了确定根据本发明的优选实施例的权值单元值,用于确定该权值单元值的装置可以包括:用于初始化一个或多个与至少部分列向量对应的权值单元集的装置;以及用来基于至少部分确定列向量单元值的信息,并且通过至少部分输入样本的训练集的使用,调整权值单元值的装置。
如上述所讨论的那样,为了确定权值单元值,列的单元值应该被确定。这里,用于确定列向量单元值的装置,最好适合于把这些值作为相应的单元地址从训练输入样本集中被抽样的次数的函数来确定。可替换地,用于确定列向量单元值的装置,可以适合于确定这些单元值,以得使最大值为1,而至少部分单元具有与相应的单元地址从训练输入样本集中被抽样的次数的函数相关联的值。
根据本发明的一个实施例,在属于已知类的训练输入数据样本施加到分类网络,从而编址一个或多个列向量时,用于确定列向量单元值的装置最好适合于递增与已知类的行对应的被编址的(addressed)列向量单元值或票,所述的值最好以1递增。
为了初始化依据本发明的实施例的权值单元,用于初始化权值向量的装置最好适合于设置该权值单元值到一个或多个预定值。
对于权值单元的调整过程,用于调整权值单元值的装置最好适合于基于至少部分加权和列向量单元值来确定全局品质值,确定全局品质值是否达到要求的品质标准,并且调整至少部分权值单元值,直到达到全局品质标准。
作为本发明的一个优选实施例的例子,用于调整权值单元值的装置可以适合于:
a)确定对应于抽样训练输入样本的局部品质值,局部品质值是至少部分编址的加权和列单元值的函数,
b)确定局部品质值是否达到要求的局部品质标准,
c)如果局部品质值未达到标准,则调整一个或多个被编址的权值向量单元值,
d)对预定数量的训练输入样本,重复局部品质测试,
e)基于至少部分在局部品质测试中编址的加权和列向量,确定局部品质值,
f)确定全局品质值是否达到要求的品质标准,以及
g)重复局部和全局品质测试,直到全局品质标准达到。
用于调整权值单元值的装置,可以进一步适合于:如果全局品质标准在给定数目的迭代次数之后没有达到,则停止迭代过程。在优选实施例中,存储n元组或多个LUT的装置包括:存储调整后的权值向量单元值的装置,以及分开的存储目前为止最好的权值单元值或目前为止最好的分类系统组态值的装置。这里,用于调整权值单元值的装置可以进一步适合于:如果确定的全局品质值比先前分开存储的权值单元值或组态值,更接近达到全局品质标准,则替换以前分开存储的当时最好的权值单元值,为这里得到的权值单元值。因此,即使系统在给定的迭代次数内,不能达到全局品质标准,系统也可以总是包括“目前为止最好”的组态。
根据本发明的进一步的方面,还提供一种系统,它用于分类未知类的输入数据样本成一系列类中的一类,所述系统包括:用于存储多个n元组或查找表(LUTs)的集合的存储装置,其中的每个n元组或LUT包括多个与至少一个可能类别的子集合对应的行,此外还包括多个对应于权值向量的列,每个列向量由被抽样的训练输入数据样本的信号或元素编址,并且每个列向量和具有值的单元的权值向量是在训练期间基于输入数据样本的一个或多个集合确定,所述系统进一步包括:用于接收将被分类的数据样本的输入装置;用于在存储的n元组或LUTs集中抽样接收到的输入数据样本,并编址列和相应的权值向量的装置;用于编址在n元组或LUTs中特定行的装置,所述的行对应于特定的类;用于确定输出值作为编址的权值单元的函数的装置;以及用于把对应于所有类计算的输出值相比较,并选择拥有极大输出值的类的装置。
根据本发明的分类系统的一个优选实施例,确定输出的装置包括:用于产生相应于特定类,并且相应于大于或等于预定值的列向量的单元值的所有编址的权值向量单元值的第一个和值的装置。确定输出的装置最好进一步包括:用于产生相应于特殊类的所有编址的权值单元值的第二个和值的装置,以及通过把第一个和值除以第二个和值的来确定输出值的装置。
应该知道的是,本发明的分类系统的列和权值向量的单元值,最好通过依据以上描述的任何一个系统的训练系统的使用来确定。因此,这些值可以在训练期间,依据以上描述的任何一种方法确定。
附图简要说明
为了更好地理解本发明,也为了示出以上所述的发明如何能实现,以下通过附图为例说明本发明,其中:
图1示出的是带有多个查找表(LUTs)的RAM分类网络的方框图;
图2示出的是本发明的一个实施例的单个查找表(LUT)的详细方框图;
图3示出的是本发明的计算机分类系统的方框图;
图4示出的是用于本发明的一个实施例的LUT列的单元的学习过程的流程图;
图5示出的是用于本发明的第一个实施例的权值单元的学习过程的流程图;
图6示出的是用于本发明的第二个实施例的权值单元的学习过程的流程图;
图7示出的是本发明的分类处理的流程图;
                       发明的详细描述
以下将通过体系结构的列的单元训练过程的一个例子和分类处理的一个例子,更加详细地给出本发明的分类系统的体系结构和原理的描述。此外,还描述本发明的多个实施例的权值单元的学习过程的不同例子。
                           符号
在以下的描述和样本中使用的符号如下:
X:        训练集。
x:       取自训练集中的一个样本。
Nx:      训练集X中的样本数目。
xj:      训练集的给定顺序中的第j个样本。
y;       一个特殊样本(可能在训练集之外)。
C:        类别标志。
C( x):   相应于样本 x的类别标志(真类(true class))。
Cw:      通过分类得到的冠军类(Winner Class)。
CR:      通过分类得到的亚军类(Runner Up Class)。
Λ( x):  用于 x的留一交叉确认分类法。
Nc:      相应于一个LUT中的最大行数的训练类别数目。
Ω:       LUT的集合(每个LUT可能包含仅仅一个全部可能地址列的子集合,并且不同的列可以只注册现有类的子集合)。
NLUT:     LUT的数量。
NCOL:     能在特定的LUT(依赖LUT)中被编址的不同列的数量。
SC:      被标为C类的训练样本的集合。
wiC:     由第i列和第C类编址的单元的权值。
viC:     由第i列和第C类编址的单元的项计数器。
ai( y): 在第i个被样本 y编址的LUT中的列的索引。
v:                     包含LUT网络中的所有viC元素的向量。
w:                     包含LUT网络中的所有wiC元素的向量。
QL( v, w, x,X):  局部品质函数。
QG( v, w,X):       全局品质函数。
                     体系结构和原理描述
以下参考示出了带有多个查找表(LUTs,Look Up Tables)的RAM分类网络的方框图的图1,以及示出了本发明一个实施例的单个查找表(LUT,Look Up Table)的详细方框图的图2。
RAM网或LUT由多个查找表(LUTs,Look Up Tables)(1.3)组成。让NLUT表示LUTs的数量。将要被分类的输入数据向量 y的一个样本可以被送给LUT网络的输入模块(1.1)。每个LUT可以抽样该输入数据的一部分,其中,对于不同的LUTs(1.2)可以抽样不同数量的输入信号(原则上也可能让一个LUT抽样整个输入空间)。LUTs的输出可以被馈给(1.4)RAM分类网络的输出模块(1.5)。
在图2中示出对于每个LUT,送给LUT网的样本的被抽样的输入数据(2.1)可以被馈给地址选择模块(2.2)。这种地址选择模块可以从输入数据中计算出在LUT中的一个或多个特定列(2.3)的地址。作为一个例子,让在第i个被输入样本 y编址的LUT中的列的索引被作为ai( y)计算。在特定的LUT中可编址列数可以表示成NCOL,一般来说它是随不同的LUT变化的。存储在LUT的特定行中的信息可以对应于特定的C类(2.4)。而行数的最大值可以对应于类别数NC。在一个优选实施例中,LUT中的每一列含有两组单元。每一组中的单元数量对应于LUT中的行数。第一组单元可以表示列向量单元,而这些单元值可以对应于所关心的列的类特定项目计数。另一组单元可以表示其单元值可以对应于权值系数的权值单元或者权值向量单元,并且这些单元的每一个都可以与一个项数计数器的值或列向量单元值相关联。由第i列和C类编址的单元的项计数器的值表示成viC(2.5)。由第i列和C类编址的单元的权值表示成wiC(2.6)。
被激活的LUT的列(2.7)的viC和wiC值可以馈给(1.4)输出模块(1.5),在这里可以为每一个类计算票,并且最终可以执行冠军得到一切(winner-takes-all,WTA)的判决。
让 x∈X表示用于训练的输入数据样本,而让 y表示不属于训练集的输入数据样本。让C( x)表示 x所属的类。那么给样本 y的类分配通过计算每一类的票数得到。对于C类而得到的票数计算成通过样本 y编址的viC和wiC的数量的函数:
VoteNo ( C , y ‾ ) = function ( v a 1 ( y ‾ ) , C , w a 1 ( y ‾ ) , C , v a 2 ( y ‾ ) , C , · · · · · · , v a NS LUT ( y ‾ ) , C , w a S LUT ( y ‾ ) , C )
从计算出来的得票数,能够得到冠军类Cw如下:
C w = arg max C ( VoteNo ( C , y ‾ ) ) , 1 = C = N C .
VoteNo(C, y)的一个敏感的选择例子是以下的表达式:
VoteNo ( C , y ‾ ) = Σ i ∈ Ω w a i ( y ‾ ) , C Θ 1 ( v a i ( y ‾ ) , C ) Σ i ∈ Ω w a i ( y ‾ ) , C = Σ i ∈ Ω w a i ( y ‾ ) , C Θ 1 ( Σ x ‾ ∈ S C δ a i ( x ‾ ) , a i ( y ‾ ) ) Σ i ∈ Ω w a i ( y ‾ ) , C ,
其中δi,j是克罗内克符号(如果i=j则δi,j=1,否则δi,j=0),而
Ω描述组成整个LUT网的LUTs的集合。Sc表示被标成C类的训练样本集合。全部wiC值均设置为1的特殊情况给出了传统的LUT网络,
C w = arg max C ( Σ i ∈ Ω Θ 1 ( v a i ( y ‾ ) , C ) ) .
图3示出了的是本发明的计算机分类系统的方框图。这里,象电视摄像机或数据库之类的信号源提供一个或一些描述将要分类的样本的输入数据信号(3.0)。这些数据被馈给一个预处理器(3.1),该处理模块能够以预定的方式抽取特征、还原和变换输入数据。这样的一种预处理器的样本是FFT板(Fast Fourier Transform,快速傅里叶变换)。然后把变换过的数据馈给包含本发明的RAM网络的分类器(3.2)。分类器(3.2)输出可能已经具有关联的置信度的排序的分类表。分类器能够通过使用为标准的个人计算机编制的程序的软件,或者编程硬件设备来实现,例如,使用组合有RAM电路和数字信号处理器的可编程的门阵列。这些数据能够在后处理器(3.3)中被解释,该后处理器可以是把已获得的分类与其他相关信息组合在一起的计算机模块。最后,这种解释结果被馈给象致动器那样的输出设备(3.4)。
                      体系结构的初始训练
根据本发明的一个实施例,图4的流程图解释了一遍学习方案或者过程,该方案或者过程用于列向量的项数计数器或者单元分布viC-分布(4.0)的确定,它可以被描述如下:
1)通过设置单元值 v成为0,来初始化所有的项计数器或列向量单元,并初始化权值 w。这可以通过设置所有的权值为常系数,或从一个指定的范围(4.1)中选取随机值来实现。
2)送出从训练集X来的第一个输入样本 x1给网络(4.2,4.3)。
3)为第一个LUT计算编址列(4.4,4.5)。把已经编址列的行中、相应于 x的类标的项数计数器加1(递增在所有LUTs中via(x),C(x))(4.6)。
4)对其余的LUTs重复步骤4(4.7,4.8)。
5)对其余的训练输入样本重复步骤3-5(4.9,4.10)。训练样本的数目表示为Nx
                     未知输入样本的分类
当本发明的RAM网络已经被训练成可以为定义LUTs的列的单元和权值单元确定值时,网络就可以用于分类未知输入数据样本。
在本发明的一个优选实施例中,分类是通过确定具有最大票数VoteNo的类来实现的,这里的VoteNo被如下的表达式给出
VoteNo ( C , y ‾ ) = Σ i ∈ Ω w a i ( y ‾ ) , C Θ ( v a i ( y ‾ ) , C ) Σ i ∈ Ω w a i ( y ‾ ) , C
如果分母为零,则定义VoteNo为零。
因此,通过参考到图1和图2,分类样本可以被描述如下:
●送出一个未知输入样本 y给网络(1.1)。
●对所有的LUTs计算出由 y编址列ai( y)(2.3)。
●对每一类(相应于每一个已经编址列中的一个特定行)产生wai( y),C Θ1(vai( y),C )的和值(sum_1)。其中的Θ1(vai( y),C )暗示wai( y),C 成分仅仅在 v a i ( y ‾ ) , C ≥ 1 时包含(1.5)。
●对每一类(相应于每一个已经编址列中的一个特定行)产生wai( y),C 的和值(sum_2)(1.5)。
●计算对应于C类的输出值作为Out(C)=sum_1/sum_2(1.5)。
●选择极大化Out(C)的类(或多个类)(1.5)。
图7示出了执行分类处理(7.0)的计算机分类系统的运行方框图。系统使用,例如光学传感系统,获得一个或者多个输入信号(7.1)。得到的输入数据在例如低通滤波器那样的预处理器中被预处理(7.2),并被送到根据本发明的一个实施例,可以是LUT-网络的分类模块(7.3)。然后,从分类模块中输出的数据,在例如用于计算循环冗余校验和的CRC算法这样的后处理模块(7.4)中作后处理,并且把结果提交给输出设备(7.5),这种输出设备可以是监视器屏幕。
                             权重调整
最初确定的权重单元值通常不能代表最优的选择值。因此,根据发明的一个优选实施例,应该执行对权重值优化或调整操作。
为了选择或调整权重值,以便改进分类系统的性能,本发明建议定义适当的品质(quality)函数,用于量度权值的性能。因此可以定义一个局部品质函数QL( v, w, x,X),这里的 v表示包含LUT网络中的所有viC元素的向量。局部品质函数可以给出特定样本 x的输出分类的置信量度。如果品质值不能满足已知标准(在迭代期间可能是动态变化的),则权值 w将被调整得使特性值满足或者接近满足该标准(如果可能的话)。
此外,可以定义一个全局品质函数QG( v, w,X)。该全局品质函数可以把输入训练集的性能作为整体进行度量。
图5示出的是本发明的权值单元的调整或学习的流程图。图5的流程图解释了较一般的调整或学习过程,对指定的实施例来说,该过程可以简化。
                             例1
输入样本 y的得票数函数被给成
VoteNo ( C , y ‾ ) = Σ i ∈ Ω w a i ( y ‾ ) , C Θ 1 ( v a i ( y ‾ ) , C ) Σ i ∈ Ω w a i ( y ‾ ) , C .
利用VoteNo()函数的以上定义,可以计算对于训练集的一个输入样本 x的留一交叉确认(leave-one-out cross-validation)分类如下:
Λ ( x ‾ ) = arg max C ( Σ i ∈ Ω w a i ( x ‾ ) , C Θ 1 + δ C ( x ‾ ) , C ( v a i ( x ‾ ) , C ) Σ i ∈ Ω w a i ( x ‾ ) , C ) .
实际上该表达式中除了系数Θ1+δC( x),C (vai( x),C )以外的部分,都在以上解释过,而Θ1+δC( x),C (vai( x),C )在C≠C( x)时,等于Θ1(vai( x),C );在C=C( x)时等于Θ2(vai( x),C )。Θ2(vai( x),C )在 v a i ( x ‾ ) , C ≥ 2 时,仅仅等于1,其它时候等于0。这就自然地保证了在计算留一交叉确认时,样本不会受到它自身的影响。
假设用于计算样本 x的局部品质函数定义以下:
           QL( v, w, x,X)=δΛ( x),C( x)
这里的QL在 x产生交叉确认错误时为0,否则为1。因此如果QL=0,则权值发生变化。
假设全局品质函数定义如下:
Q G ( v ‾ , w ‾ , X ) = Σ x ‾ ∈ X δ Λ ( x ‾ ) , C ( x ‾ ) = Σ x ‾ ∈ X Q L ( v ‾ , w ‾ , x ‾ , X ) .
因为如果C( x)=Λ( x),则在训练集上求和的每一项都等于1,否则等于0,所以该全局品质函数度量了来自训练集X的这样一些样本的数量,这些样本要是不计入训练集,那么它们就被正确地分类。全局品质标准可以满足QL>εNx,这里的ε是在留一交叉确认测试中,确定要求被正确地进行分类的训练样本的比值的参数。
用来改进QG的更新方案能够通过下列规则实现:
对有错误的交叉确认分类(Λ( x)≠C( x))的训练集的全部输入样本 x,
通过
w a i ( x ‾ ) , C ( x ‾ ) New = max ( w a i ( x ‾ ) , C ( x ‾ ) Old + k · Θ 2 ( v a i ( x ‾ ) , C ( x ‾ ) ) - k · ( 1 - Θ 2 ( v a i ( x ‾ ) , C ( x ‾ ) ) ) , 0 )
调整权重,其中k为小常数。k的可行的选择值是wiC的各值的绝对值的平均值之十分之一。
从这个更新规则可以推出:当 v a i ( x ‾ ) , C ( x ‾ ) ≥ 2 时,
w a i ( x &OverBar; ) , C ( x &OverBar; ) New = w a i ( x &OverBar; ) , C ( x &OverBar; ) Old + k ; 而当 v a i ( x &OverBar; ) , C ( x &OverBar; ) < 2 时, w a i ( x &OverBar; ) , C ( x &OverBar; ) New = w a i ( x &OverBar; ) , C ( x &OverBar; ) Old - k . 函数max()保证了权值不能成为负值。
现在参考图5,例1的权值更新或调整步骤可以描述如下:
●把所有wiC初始化为0(5.1)。
●循环经过训练集中的所有样本(5.2,5.10,5.3)。
●为每一样本计算局部品质值(如果该样本不在训练集中,它能被正确地分类吗?)(5.4,5.5)。
●如果回答是就处理下一个样本(5.10)。如果回答否,这时若相应的列单元给函数VoteNo()加一个正的值(即如果 v a i ( x &OverBar; ) , C ( x &OverBar; ) &GreaterEqual; 2 ),就增加编址的“真(true)”类的权值,若相反(即如果 v a i ( x &OverBar; ) , C ( x &OverBar; ) < 2 ),就降低编址的“真(true)”类的权值(5.6-5.9)。
●计算全局品质值。如果它是迄今为止得到的最高值,则存储LUT网络(5.11)。
●重复以上步骤,直到特性值令人满意,或者别的退出条件达到(5.12,5.13)。
                            例2
输入样本 y的得票数函数被给成
VoteNo ( C , y &OverBar; ) = &Sigma; i &Element; &Omega; w a i ( y &OverBar; ) , C &Theta; 1 ( v a i ( y &OverBar; ) , C ) &Theta; 0 ( w a i ( y &OverBar; ) , C ) &Sigma; i &Element; &Omega; | w a i ( y &OverBar; ) , C | .
对真类C( x),利用函数
Hist ( l , C ( x &OverBar; ) ) = &Sigma; i &Element; &Omega; &delta; l , v a i ( x &OverBar; ) , C ( x &OverBar; ) w a i ( x &OverBar; ) , C ( x &OverBar; )
求wai( x),C( x) 关于已知的v-值的和。参数l遍历viC的可能的值,0<viC<Nx。冠军类CW和亚军类CR之间的置信度Conf可以定义如下:
值m可以由以下函数确定:
m = max ( arg n &Sigma; l = 1 n Hist ( l , C ( x &OverBar; ) ) &le; Conf ) .
求和下标n的上限能从1变到向量 v内的最大值viC。该表达式说明m被选成了使得 &Sigma; l = 1 n Hist ( l , C ( x &OverBar; ) ) &le; Conf 成立的n的最大值。
现在可以把局部品质函数定义成:
Figure C9980276100268
这里的mthresh是一个阈值常数。如果QL<0,则通过调整关于亚军类CR的权值,来更新权值wij,以使得QL增加:
w a i ( x &OverBar; ) , C R New = w a i ( x &OverBar; ) , C R Old - k 1 &CenterDot; &Theta; 1 ( v a i ( x &OverBar; ) , C R ) + k 2 &CenterDot; ( 1 - &Theta; 1 ( v a i ( x &OverBar; ) , C R ) ) .
从这个更新规则可以推出:当 v a i ( x &OverBar; ) , C R &GreaterEqual; 1 时, w a i ( x &OverBar; ) , C R New = w a i ( x &OverBar; ) , C R Old - k 1 ; 而当 v a i ( x &OverBar; ) , C R < 1 时, w a i ( x &OverBar; ) , C R New = w a i ( x &OverBar; ) , C R Old + k 2 .
全局品质标准可以基于以下两个品质函数:
Q G 1 ( v &OverBar; , w &OverBar; , X ) = &Sigma; x &OverBar; &Element; X &delta; &Lambda; ( X &OverBar; ) , C ( x &OverBar; )
Q G 2 ( v &OverBar; , w &OverBar; , X ) = &Sigma; x &OverBar; &Element; X &Theta; 0 ( Q L ( v &OverBar; , w &OverBar; , x &OverBar; , X ) ) .
其中如果QL≥0,则Θ0(QL)等于1,如果QL<0则等于0。QG1度量训练集中,能够通过留一交叉确认测试的样本数,而QG2度量能通过局部品质标准的样本数。
然后这两个特性函数可以基于以下的布尔表达式,组合成一个特性函数(表达式为真,则给值为1,而表达式为假,给值为0):
Q G ( v &OverBar; , w &OverBar; , X ) = ( Q G 1 ( v &OverBar; , w &OverBar; , X ) > &epsiv; 1 N x ) ^ ( Q G 2 ( v &OverBar; , w &OverBar; , X ) > &epsiv; 2 N x )
这里的ε1和ε2分别是确定要求通过留一交叉确认测试和局部品质标准的训练样本的比例的两个参数。如果这两个标准均通过,则全局品质标准就通过,此时QG( v, w,X)等于1,否则等于0。
现在参考图5,例2的权值更新或调整步骤可以描述如下:
●把所有wiC初始化为0(5.1)。
●循环经过训练集中的所有样本(5.2,5.10,5.3)。
●为每一样本计算局部品质值(5.4)(该样本有足够“支持”(support)吗?)(5.5)。
●如果回答是,就处理下一个样本(5.10)。如果回答否,则降低关联于选进亚军类的单元的权值,并且增加关联于具有 v a i ( x &OverBar; ) , C R < 1 的单元的权值(5.6-5.9)。
●计算全局品质值。如果是迄今为止得到的最好值,则存储LUT网络(5.11)。
●重复以上步骤,直到特性值令人满意,或者别的退出条件达到(5.12,5.13)。
                               例3
输入样本 y的得票数函数再次被给成
VoteNo ( C , y &OverBar; ) = &Sigma; i &Element; &Omega; w a i ( y &OverBar; ) , C &Theta; 1 ( v a i ( y &OverBar; ) , C ) &Sigma; i &Element; &Omega; w a i ( y &OverBar; ) , C .
局部品质函数QL( v, w, x,X)被定义为输入训练样本x的投票置信度的度量。
对于样本 x,真类C( x)与亚军类CR之间的置信度Conf可以定义如下:
Conf ( x &OverBar; ) = &Sigma; i &Element; &Omega; w a i ( x &OverBar; ) , C ( x &OverBar; ) &Theta; 1 ( v a i ( x &OverBar; ) , C ( x &OverBar; ) ) &Sigma; i &Element; &Omega; w a i ( x &OverBar; ) , C ( x &OverBar; ) - &Sigma; i &Element; &Omega; w a i ( x &OverBar; ) , C R &Theta; 1 ( v a i ( x &OverBar; ) , C R ) &Sigma; i &Element; &Omega; w a i ( x &OverBar; ) , C R
置信度可以等于0,说明亚军类的投票水准与真类的水准相等(如果由一个或一个以上的类的投票水准与真类的水准相等,那么我们定义不同于第一真类的类之一为亚军类)。此时的局部品质函数可以定义为:
                QL( v, w, x,X)=Conf( x)。
可以为计算出的局部品质值确定一个阈值,并且如果QL<Qthresh,则更新权值,以使得QL增加。Qthresh的可能值总是0.1,它说明真类与亚军类的投票水准之差应该至少是最大投票水准的10%。可以通过调整亚军类CR的权值:
w a i ( x &OverBar; ) , C R New = w a i ( x &OverBar; ) , C R Old ( 1 - k [ 2 &Theta; 1 ( v a i ( x &OverBar; ) , C R ) - 1 ] )
和调整真类的权值:
w a i ( x &OverBar; ) , C ( x &OverBar; ) New = w a i ( x &OverBar; ) , C ( x &OverBar; ) Old ( 1 + k [ 2 &Theta; 1 ( v a i ( x &OverBar; ) , C ( x &OverBar; ) ) - 1 ] )
来更新权值,这里的k为小常数。该小常数k确定在将被调整的权值之中的相对变化。可能的选择总是k=0.05。
交叉确认错误的数量是一个可能的全局品质度量。
Q G 1 ( v &OverBar; , w &OverBar; , X ) = &Sigma; x &OverBar; &Element; X &delta; &Lambda; ( X &OverBar; ) , C ( x &OverBar; )
全局品质标准可以满足QL>εNx,这里的ε是在留一交叉确认测试中,确定要求被正确地进行分类的训练样本的比值的参数。
现在参考图5,例3的权值更新或调整步骤可以描述如下:
●把所有wiC初始化为0(5.1)。
●循环经过训练集中的所有样本(5.2,5.10,5.3)。
●为每一样本计算局部品质值(5.4)(如果该样本不在训练集中并同时有足够“支持”(support),它能被正确地分类吗?)(5.5)。
●如果回答是,就处理下一个样本(5.10)。如果回答否,则更新关联于选进亚军类的单元的权值,并且更新关联于选进真类的单元的权值(5.6-5.9),以便增加真类的投票水准且降低亚军类的投票水准。
●计算全局品质值。如果是迄今为止得到的最好值,则存储LUT网络(5.11)。
●重复以上步骤,直到特性值令人满意,或者别的退出条件达到(5.12,5.13)。
                               例4
输入样本 y的得票数函数再次被定义成
VoteNo ( C , y &OverBar; ) = &Sigma; i &Element; &Omega; w a i ( x &OverBar; ) , C &Theta; 1 ( v a i ( x &OverBar; ) , C ) &Sigma; i &Element; &Omega; w a i ( x &OverBar; ) , C .
在执行交叉确认测试时,对于一个训练样本得到的投票水准是:
VoteNo CV ( C , x &OverBar; ) = ( &Sigma; i &Element; &Omega; w a i ( x &OverBar; ) , C &Theta; 1 + &delta; C ( x &OverBar; ) C ( v a i ( x &OverBar; ) , C ) &Sigma; i &Element; &Omega; w a i ( x &OverBar; ) , C )
使用VoteNo(C, y)得到的亚军类可以被再次表示成CR(如果一个或一个以上的类具有与真类的投票水准相等的投票水准,那么我们将定义不同于第一个真类的类之一为亚军类)。
此时的局部品质函数QL( v, w, x,X)可以通过布尔表达式定义。
QL( v, w, x,X)=(VoteNoCV(C( x), x)>k1)∧(VoteNoCV(CR, x)<k2)∧(Λ( x)=C( x))其中的k1和k2是两个介于0和1之间的常数,并且k1>k2。如果三个标准(VoteNoCV(C( x), x)>k1、VoteNoCV(CR, x)<k2和Λ( x)=C( x))全部满足,则QL( v, w, x,X)等于1,否则等于0。两个标准对应于在留一交叉确认测试中,大于k1的、真类要求的投票水准,和小于k2、亚军类要求的投票水准,其中k1>k2。如果我们限制权值为正值,则用于本例的VoteNo()函数的值将在0和1之间,在这种情况时,k值的合理选择是:k1等于0.9而k2等于0.6。
如果关于由QL( v, w, x,X)给出的局部品质值的已知标准得不到满足,则可能的话,权值wiC被更新,以使得关于QL的标准通过调整亚军类CR的权值来满足:
w a i ( x &OverBar; ) , C R New = w a i ( x &OverBar; ) , C R Old ( 1 - k 3 [ 2 &Theta; 1 ( v a i ( x &OverBar; ) , C R ) - 1 ] )
和调整真类的权值:
w a i ( x &OverBar; ) , C ( x &OverBar; ) New = max ( w a i ( x &OverBar; ) , C ( x &OverBar; ) Old + k 4 [ 2 &Theta; 1 ( v a i ( x &OverBar; ) , C ( x &OverBar; ) ) - 1 ] , 0 )
这里k3为小常数。该小常数k3确定了将为亚军类而被调整的权值相对变化。可能的选择总是k3=0.1。k4可行的选择可能是wiC的值的绝对值的平均值的十分之一。
合适的全局品质函数可以通过关于训练输入样本的局部品质值的和定义:
Q G ( v &OverBar; , w &OverBar; , X ) = &Sigma; x &OverBar; &Element; X Q L ( v &OverBar; , w &OverBar; , x &OverBar; , X )
全局品质标准可以满足QL>εNx,这里的ε是确定被要求通过局部品质测试的训练样本的比值的参数。
现在参考图5,例4的权值更新或调整步骤可以描述如下:
●把所有wiC初始化为0(5.1)。
●循环经过训练集中的所有样本(5.2,5.10,5.3)。
●为每一样本计算局部品质值(5.4)(如果该样本不在训练集中并同时有足够的得得票数“支持”,它能被正确地分类吗?)(5.5)。
●如果回答是,就处理下一个样本。如果回答否,则更新关联于选进亚军类的单元的权值,并且更新关联于选进真类的单元的权值(5.6-5.9),以便增加真类的投票水准且降低亚军类的投票水准。
●计算全局品质函数。如果它是迄今为止得到的最好值,则存储LUT网络(5.11)。
●重复以上步骤,直到特性值令人满意,或者别的退出条件达到(5.12,5 13)。
                            例5
在这个样本中,输入样本 y的得票数函数被给成
VoteNo ( C , y &OverBar; ) = &Sigma; i &Element; &Omega; w a i ( y &OverBar; ) , C &Theta; 1 ( v a i ( y &OverBar; ) , C ) .
现在定义局部品质函数和阈值标准,该定义要使得问题“Qlocal OK?”的答案总是否。因此局部品质函数可以被定义成:
                        QL=FALSE
由于关于(5.5)的答案总是否定的,所以根据这些定义,所有样本都用于调整wai( y),C
权值更新规则是:
w a i ( x &OverBar; ) , C New = f &alpha; ( v a i ( x &OverBar; ) , C ) ,
这里的fα(z)定义如下:
Figure C9980276100312
α是迭代次数。
第a步迭代的全局品质函数可以定义为:
G G &alpha; = &Sigma; x &OverBar; &Element; X &delta; &Lambda; ( x &OverBar; , &alpha; ) , C ( x &OverBar; )
其中
&Lambda; ( x &OverBar; , &alpha; ) = arg max C ( &Sigma; i &Element; &Omega; f &alpha; + &delta; C ( X &OverBar; ) , C ( v a i ( x &OverBar; ) , C ) &Theta; 1 + &delta; C ( x &OverBar; ) , C ( v a i ( x &OverBar; ) , C ) )
参考图5,例5的权值更新或调整步骤可以描述如下:
●把所有wiC初始化为0(5.1)。
●循环经过训练集中的所有样本(5.2,5.10,5.3)。
●为每一样本计算局部品质值(5.4)(在该样本中,它总是假,即不能达到品质标准)。
●如果QL=TRUE(5.5),则处理下一个样本(对该样本这不是真的),否则,设置使用依赖当前迭代的fα(vai( x),C )的编址权值(5.6-5.9)。
●计算全局品质值。如果它是迄今为止得到的最高值,则存储该网络(5.11)。
●重复以上步骤,直到最后一次迭代(5.12,5.13)。
因此,以上描述的例5适合图5所示的流程结构。但是由于(5.5)的答案总是否定,所以权值分配程序在以下依据图6描述的情况下,能够被简化,这里的图6示出的是本发明的一个更加被简化了的权值单元调整过程的流程图:
用于设置wiC的值的多个方案αMAX可以被定义如下(6.1,6.6,6.7):
方案α:
(6.2)
对所有LUTs执行:
对所有i执行:
对所有C执行:
                wiC=fα(viC)
对每一个α方案,可以计算关于分类性能的全局品质函数(6.3)。用全局品质函数的一个可能性是计算交叉确认误差:
G G &alpha; = &Sigma; x &OverBar; &Element; X &delta; &Lambda; ( x &OverBar; , &alpha; ) , C ( x &OverBar; )
其中
&Lambda; ( x &OverBar; , &alpha; ) = arg max C ( &Sigma; f &alpha; + &delta; C ( x &OverBar; ) , C ( v a i ( x &OverBar; ) , C ) &Theta; 1 + &delta; C ( x &OverBar; ) , C ( v a i ( x &OverBar; ) , C ) )
然后,具有最好特性值的网络QG α可以被存储(6.4,6.5)。
这里,应该知道的是,迭代的次数可以选择,并且可以定义别的适当全局品质函数。
前面描述的本发明的优选示范型实施例,是为了解释和描述目的提出来的。它不意味着是本发明的详尽形式,或者限制发明于这种精确的公开形式,并且本领域的技术人员可根据本发明的精神,能够进行多种修改和变型。所有保留了这里公开的和权利要求中要求的基本内在原则的所述修改,都在本
发明的范围之内。

Claims (49)

1.一种训练计算机分类系统的方法,所述的系统能够由包含多个n元组或查找表的网络定义,每个n元组或查找表包括多个与可能类的至少一个子集合对应的行,此外还包括多个被抽样训练输入样本的信号或元素编址的列,每列由具有值的单元的向量定义,所述方法包括基于一个或多个、用于不同类的输入数据样本的训练集来确定列向量单元值,以使得至少部分这样的单元包括或指向基于相应的单元地址被从一个或多个训练输入样本中抽样的次数信息;以及,确定对应于一个或多个、被训练样本编址或抽样的列向量单元的权值单元值,从而使得允许在分类处理中,加权有正值的一个或多个列向量单元,所述权值单元值基于至少部分确定的列向量单元值的信息,和通过对至少部分输入样本训练集的使用来确定。
2.一种在计算机分类系统中确定权值单元值的方法,所述的系统能够由包含多个n元组或查找表的网络定义,每个n元组或查找表包括多个与可能类的至少一个子集合对应的行,此外还包括多个由抽样的训练输入样本的信号或元素编址的列向量,每个列由具有值的单元的向量定义,所述的方法包括基于一个或多个、用于不同类的输入数据样本的训练集来确定列向量单元值,以使得至少部分所述值包括或指向基于相应的单元地址从一个或多个训练输入样本集中被抽样的次数信息;以及包括确定对应于至少一个列向量单元的子集合的权值单元值,从而使得允许在分类处理中,加强一个或多个列向量单元,所述权值单元值基于至少部分确定的列向量单元值的信息,和通过对至少部分输入样本训练集的使用来确定。
3.如权利要求2所述的方法,其中确定权值单元值以使得在分类处理中允许抑制一个或多个列向量单元。
4.如权利要求1-3的任何之一所述的方法,其中权值单元值的确定允许加权具有正值的一个或多个列向量单元,和有非正值的一个或多个列向量单元。
5.如权利要求1-3的任何之一所述的方法,其中所述的权值单元值放在与至少部分列向量对应的权值向量中。
6.一种在计算机分类系统中确定权值单元值的方法,所述的系统能够由包含多个n元组或查找表的网络定义,每个n元组或查找表包括多个与可能类的至少一个子集合对应的行,此外还包括多个列向量,并且至少部分所述的列向量具有相应的权值向量,每个列向量由抽样的训练输入数据样本的信号或元素编址,并且每个列向量和权值向量具有带有值的单元,它们的值基于一个或多个、用于不同类的输入数据样本的训练集确定,所述的方法包括基于输入样本的训练集确定列向量单元值,以使得至少部分所述值包括或指向基于相应的单元地址从训练输入样本集中被抽样的次数信息;以及基于至少部分确定的列向量单元值的信息,和通过对至少部分输入样本训练集的使用,确定对应于一个或多个列向量单元的权值单元值,所述的确定允许加权具有正值的一个或多个列向量单元,和有非正值的一个或多个列向量单元。
7.如权利要求6所述的方法,其中权值单元的确定允许加权任何列向量单元。
8.如权利要求7所述的方法,其中所述的权值单元放在权值向量中,并且权值单元值的确定包括:初始化一个或多个与至少部分列的单元对应的权值单元集合;以及基于至少部分确定的列向量单元值信息,和通过对至少部分输入样本训练集的使用,调整至少部分权值向量的权值向量单元值。
9.如权利要求8所述的方法,其中至少部分列向量单元值,作为相应的单元地址从训练输入样本集中被抽样的次数的函数来确定。
10.如权利要求9所述的方法,其中最大的列向量单元值为1,而至少部分这些值具有作为相应的单元地址从训练输入样本集中被抽样的次数的函数的关联的值。
11.如权利要求10所述的方法,其中列向量单元值在调整权值向量单元值之前确定并且存储在存储装置中。
12.如权利要求11所述的方法,其中列向量单元值的确定包括以下训练步骤:
a)施加已知类的训练输入数据样本给分类网络,从而编址一个或多个列向量,
b)以1递增对应于已知类的编址列向量单元值或票,和
c)重复(a)-(b)步,直到所有训练样本都被施加到网络。
13.如权利要求12所述的方法,其中所有的列向量有对应的权值向量。
14.如权利要求13所述的方法,其中权值向量的初始化包括设置所有的权值单元值成一个预定的常数,所述的预定值最好是1。
15.如权利要求13所述的方法,其中权值向量的初始化包括设置每一个权值向量单元值成一个预定的特定的单元值。
16.如权利要求15所述的方法,其中权值向量单元值的调整包括:基于至少部分加权和列向量单元值,确定全局品质值的步骤;确定全局品质值是否达到要求的品质标准的步骤;以及调整至少部分权值单元值,直到达到全局品质标准的步骤。
17.如权利要求15所述的方法,其中权值单元值的调整包括以下步骤:
a)从训练集中选择一个输入数据样本,
b)确定对应于抽样的训练输入样本的局部品质值,局部品质值是至少部分编址的权值和列的单元值的函数,
c)确定局部品质值是否达到要求的局部品质标准,若是否定的,如果局部品质值未达到标准,则调整一个或多个编址的权值向量单元值,
d)从训练集的预定样本数中,选定一个新的输入样本,
e)对所有预定的训练输入样本,重复局部品质测试步骤(b)-(d),
f)基于至少部分在局部品质测试中编址的权值和列向量,确定全局品质值,
g)确定全局品质值是否达到要求的品质标准,
h)重复(a)-(g)步,直到达到全局品质标准。
18.如权利要求17所述的方法,其中(b)-(d)步对训练集中的所有样本执行。
19.如权利要求18所述的方法,其中品质标准在调整迭代过程期间变化。
20.如权利要求19所述的方法,其中如果品质标准在给定数目的迭代次数之后没有达到,则停止调整的迭代过程。
21.如权利要求20所述的方法,其中被调整的权值单元值在每次调整之后存储起来,并且当调整过程包括确定全局品质值时,如果确定的全局品质值比对应于先前分开存储的权值单元值或组态值更接近达到全局品质标准,则在全局品质值的确定步之后可以进一步包括分开存储如此得到的权值单元值或分类系统组态值的步骤。
22.一种把输入数据样本分类到多个类之一的方法,其使用根据权利要求1-21的任何之一的方法配置的计算机分类系统,由此对每一个n元组或查找表,基于输入数据样本的一个或多个训练集确定列的单元值和对应的权值向量单元值,所述方法包括:
a)施加将要被分类的输入数据样本给配置过的分类网络,从而编址n元组或查找表的集合中的列向量和对应的权值向量,
b)选择一个类别,从而编址n元组或查找表的集合中的特定行,
c)作为编址权值单元值的函数来确定输出值,
d)重复步骤(b)-(c),直到确定完所有类的输出,
e)比较计算出来的输出值,以及
f)选择具有极大输出值的一个类或多个类。
23.如权利要求22所述的方法,其中输出值还作为编址的列单元值的函数来确定。
24.如权利要求23所述的方法,其中输出值作为相应于大于或等于1的列的单元值的所有编址的权值单元值的第一个和值加以确定。
25.如权利要求23所述的方法,其中确定输出值的步骤包括:确定相应于大于或等于预定值的列向量的单元值的所有编址的权值向量单元值的第一个和值;确定编址的权值单元值的第二个和值;以及通过把第一个和值除以第二个和值的来确定输出值。
26.一种用来训练计算机分类系统的系统,所述计算机分类系统由包含被存储个n元组或多个查找表的网络定义,每个n元组或查找表包括多个与至少一个可能类别的子集合对应的行,还包括多个被抽样的训练输入数据样本的信号或元素编址的列,每列由具有值的单元的向量定义,所述的系统包括用于接收已知类的训练输入数据样本的输入装置;用于在被存储的n元组或查找表集合中,抽样接收到的输入数据样本和编址列向量的装置;用于编址在n元组或查找表中的特定行的装置,所述的行对应于已知的类;用于存储确定的n元组或查找表的存储装置;用于确定列向量单元值,以使得它们包括或指向基于对应的单元地址被从输入样本的训练集中抽样的次数信息的装置;以及包括确定对应于一个或多个、被训练样本编址或抽样的列向量单元的权值单元值,从而使得允许在分类处理中,加权有正值的一个或多个列向量单元的装置,所述权值单元值基于至少部分确定的列向量单元值的信息,和通过对至少部分输入样本训练集的使用来确定。
27.一种用来训练计算机分类系统的系统,所述计算机分类系统由包含被存储个n元组或查找表的网络定义,每个n元组或查找表包括多个与至少一个可能类数的子集合对应的行,还包括多个被抽样的训练输入样本的信号或元素编址的列向量,并且每一个列有具有值的单元的向量定义,所述的系统包括:用于接收已知类的训练输入数据样本的输入装置(3.0);用于在被存储的n元组或查找表中抽样接收到的输入数据样本和编址列向量的装置(3.1);用于编址n元组或查找表中的特定行的装置(3.2),所述行对应于一个已知的类;用于存储确定的n元组或多个查找表的存储装置;用于确定列向量的单元值,以使得它们包含或指向基于对应的单元地址被从输入样本的训练集中抽样的次数信息的装置;用于确定对应于列向量单元的至少一个子集的权值单元值,从而使得允许在分类处理中,加强一个或多个列向量单元的装置,所述权值单元值基于至少部分确定的列向量单元值的信息,和通过对至少部分输入样本训练集的使用来确定。
28.如权利要求27所述的系统,其中用于确定权值单元值的装置适合于确定这些值,以使得在分类处理中允许抑制一个或多个列向量单元。
29.如权利要求26-28的任何之一所述的系统,其中确定权值单元值的装置适合于确定这些值,以使得允许加权有正值的一个或多个列向量单元,和有非正值的一个或多个列向量单元。
30.如权利要求29所述的系统,其中确定权值单元值的装置适合于确定这些值,以便把权值单元值放在对应于至少部分列向量的权值向量中。
31.一种用来确定分类网络的权值单元值的系统,计算机分类系统由被存储个n元组或查找表定义,每个n元组或查找表包括多个与至少一个可能类数的子集合对应的行,还包括多个具有至少部分所述列向量有对应的权值向量的列向量,每一列向量被抽样的训练输入数据样本的信号或元素编址,并且每一个列向量和权值向量具有在训练过程中,基于一个或多个训练数据输入样本确定的单元值,所述的系统包括:用于接收已知类的训练输入数据样本的输入装置;用于在被存储的n元组或查找表中抽样接收到的输入数据样本和编址列向量和相应的权值向量的装置;用于编址n元组或查找表中的特定行的装置,所述行对应于一个已知的类;用于存储确定的n元组或多个查找表的存储装置;用于确定列向量的单元值,以使得包含或指向基于对应的单元地址被从输入样本的训练集中抽样的次数信息的装置;以及用来基于至少部分确定的列向量单元值的信息,和通过对至少部分输入样本训练集的利用,来确定对应于一个或多个列向量单元的权值单元值的装置,所述确定允许加权有正值的一个或多个列向量单元,和有非正值的一个或多个列向量单元。
32.如权利要求31所述的系统,其中用于确定权值单元值的装置适合于允许加权任何列向量单元。
33.如权利要求32所述的系统,其中用于确定权值单元值的装置包括:用于初始化一个或多个与至少部分列向量对应的权值向量集的装置;以及用来基于至少部分确定列向量单元值的信息,并且通过至少部分输入样本的训练集的使用,调整权值单元值的装置。
34.如权利要求33所述的系统,其中用于确定列向量单元值的装置适合于把这些值作为相应的单元地址从训练输入样本集中被抽样的次数的函数来确定。
35.如权利要求33所述的系统,其中用于确定列向量单元值的装置适合于确定这些单元值,以得使最大值为1,而至少部分值具有作为相应的单元地址从训练输入样本集中被抽样的次数的函数的关联的值。
36.如权利要求35所述的系统,其中当属于已知类的输入数据样本施加到分类网络,从而编址一个或多个列向量时,用于确定列向量单元值的装置适合于以1递增与已知类的行对应的、编址列向量单元值或票。
37.如权利要求36所述的系统,其中所有列向量都有对应的权值向量。
38.如权利要求37所述的系统,其中用于初始化权值向量的装置适合于设置所有权值单元值为1。
39.如权利要求38所述的系统,其中用于初始化权值向量的值的装置适合于设置每一个权值向量的值成一个预定的特定值。
40.如权利要求39所述的系统,其中用于调整权值向量单元值的装置适合于基于至少部分权值和列向量单元值来确定全局品质值,确定全局品质值是否达到要求的品质标准,并且调整至少部分权值单元值,直到达到全局品质标准。
41.如权利要求39所述的系统,其中用于调整权值单元值的装置适合于:
a)确定对应于抽样训练输入样本的局部品质值,局部品质值是至少部分编址的加权和列单元值的函数,
b)确定局部品质值是否达到要求的局部品质标准,
c)如果局部品质值未达到标准,则调整一个或多个被编址的权值向量单元值,
d)对预定数量的训练输入样本,重复局部品质测试,
e)基于至少部分在局部品质测试中编址的加权和列向量,确定局部品质值,
f)确定全局品质值是否达到要求的品质标准,以及
g)重复局部和全局品质测试,直到全局品质标准达到。
42.如权利要求40或41所述的系统,其中用于调整权值单元值的装置适合于:如果全局品质标准在给定数目的迭代次数之后没有达到,则停止迭代过程。
43.如权利要求40或41所述的系统,其中用于存储n元组或多个查找表的装置包括:存储调整后的权值向量单元值的装置,以及存储目前为止最好的权值单元值的分开的装置,用于调整权值单元值的所说的装置进一步适合于:如果确定的全局品质值比先前分开存储的权值单元值或组态值更接近达到全局品质标准,则替换以前分开存储的当时最好的权值单元值为所得到的调整后的权值单元值。
44.一种用于分类输入数据样本到多个类中的一类的系统,所述系统包括:用于存储多个或n元组或查找表的集合的存储装置,其中的每个n元组或查找表包括多个具有与至少一个可能类别的子集合对应的行,此外还包括多个具有对应于权值向量的列向量,每个列向量由被抽样的输入数据样本的信号或元素编址,并且每个列向量和具有值的单元的权值向量在训练期间基于训练输入数据样本的一个或多个集合来确定,所述系统进一步包括:用于接收将被分类的数据样本的输入装置;用于在n元组或查找表集合中抽样接收到的输入数据样本,并编址列和相应的权值向量的装置;用于编址在n元组或查找表中特定行的装置,所述的行对应于特定的类;用于确定输出值作为编址的权值单元的函数的装置;以及用于把对应于所有类的计算输出相比较并选择拥有极大输出值的类的装置。
45.如权利要求44所述的系统,其中输出值还作为编址的列单元值的函数来确定。
46.如权利要求44或45所述的系统,其中确定输出的装置包括:用于产生相应于特殊类,并且相应于大于或等于预定值的列的单元值的所有编址的权值单元值的第一个和值的装置。
47.如权利要求46所述的系统,其中确定输出的装置还进一步包括:用于产生相应于特定类的所有编址的权值单元值的第二个和值的装置,以及通过把第一个和值除以第二个和值来确定输出值的装置。
48.如权利要求47所述的系统,其中列向量和权值向量的单元值已经通过依据权利要求26-43描述的任何系统的训练系统的使用来确定。
49.如权利要求47所述的系统,其中列向量和权值向量的单元值在依据权利要求1-21描述的任何方法的训练过程中被确定。
CNB998027618A 1998-02-05 1999-02-02 基于n元组或随机存取存储器的神经网络分类系统和方法 Expired - Fee Related CN1227608C (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DK16298 1998-02-05
DK0162/1998 1998-02-05
DK0162/98 1998-02-05
EP98201910.1 1998-06-09
EP98201910A EP0935212B9 (en) 1998-02-05 1998-06-09 N-Tuple or ram based neural network classification system and method

Publications (2)

Publication Number Publication Date
CN1290367A CN1290367A (zh) 2001-04-04
CN1227608C true CN1227608C (zh) 2005-11-16

Family

ID=26063433

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998027618A Expired - Fee Related CN1227608C (zh) 1998-02-05 1999-02-02 基于n元组或随机存取存储器的神经网络分类系统和方法

Country Status (8)

Country Link
JP (1) JP2002503002A (zh)
CN (1) CN1227608C (zh)
AU (1) AU756987B2 (zh)
CA (1) CA2318502C (zh)
IL (1) IL137337A0 (zh)
NZ (1) NZ506053A (zh)
PL (1) PL343114A1 (zh)
WO (1) WO1999040521A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6995629B2 (ja) * 2018-01-05 2022-01-14 日本電信電話株式会社 演算回路
CN110163334B (zh) * 2018-02-11 2020-10-09 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN110197275B (zh) * 2018-02-27 2020-08-04 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN110197267B (zh) * 2018-02-27 2020-08-04 上海寒武纪信息科技有限公司 神经网络处理器板卡及相关产品
CN110197274B (zh) * 2018-02-27 2020-08-25 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN110197264B (zh) * 2018-02-27 2020-08-04 上海寒武纪信息科技有限公司 神经网络处理器板卡及相关产品

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9014569D0 (en) * 1990-06-29 1990-08-22 Univ London Devices for use in neural processing

Also Published As

Publication number Publication date
CN1290367A (zh) 2001-04-04
NZ506053A (en) 2003-02-28
IL137337A0 (en) 2001-07-24
CA2318502C (en) 2008-10-07
AU2265699A (en) 1999-08-23
WO1999040521A1 (en) 1999-08-12
AU756987B2 (en) 2003-01-30
PL343114A1 (en) 2001-07-30
JP2002503002A (ja) 2002-01-29
CA2318502A1 (en) 1999-08-12

Similar Documents

Publication Publication Date Title
CN1194319C (zh) 对表格式数据进行查找、列表及分类的方法和装置
CN1215386C (zh) 根据量子软计算控制过程或处理数据的方法和硬件体系结构
CN1238833C (zh) 语音识别装置以及语音识别方法
CN1159673C (zh) 从图像中提取管理信息的设备与方法
CN1144145C (zh) 用于数据仓库的选择聚集层和交叉产品层的方法和装置
CN1145901C (zh) 一种基于信息挖掘的智能决策支持构造方法
CN1281064C (zh) 利用与像素块分类信息对应的映射系数的图像编码和解码
CN1151573A (zh) 声音识别方法,信息形成方法,声音识别装置和记录介质
CN1171162C (zh) 基于字符分类检索字符串的装置和方法
CN1091906C (zh) 模式识别方法和系统以及模式数据处理系统
CN1846232A (zh) 使用加权信息的对象姿态估计和匹配系统
CN1331449A (zh) 用于将粘着法构成的文本或文档分段成词的字符串划分或区分的方法及相关系统
CN1842702A (zh) 声音合成装置和声音合成方法
CN1947150A (zh) 虹彩注册方法、虹彩注册装置及虹彩注册程序
CN1801183A (zh) 信息处理装置和方法以及程序
CN1808414A (zh) 学习、识别和生成数据的方法和设备以及计算机程序
CN1462428A (zh) 语音处理装置
CN1256700C (zh) 基于n元组或随机存取存储器的神经网络分类系统和方法
CN1228866A (zh) 语音处理系统及方法
CN1310825A (zh) 用于分类文本以及构造文本分类器的方法和装置
CN1637751A (zh) 多目的最优化装置、多目的最优化方法及多目的最优化程序
CN1655145A (zh) 最优化行级别数据库安全的系统和方法
CN1940965A (zh) 信息处理设备及其控制方法
CN1151465C (zh) 利用候选表进行分类的模式识别设备及其方法
CN1227608C (zh) 基于n元组或随机存取存储器的神经网络分类系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee